Introduction of a Pulseq interpreter module to enable use of the Pulseq toolbox with Varian-based legacy systems. Targeted as an aid for both educational and research applications, the interpreter module’s development centered around flexibility and ease of use. Preliminary evaluation of the interpreter module has presented promising results when compared to the existing Varian standard sequences. The interpreter module is still in refinement, with plans to introduce new features such as variable names for amplitudes and comparison methods to identify user defined shapes that are already present in the system library.
Methods
Development of the interpreter module centered around two goals: flexibility and ease of use. As a means to allow the user to focus solely on the pulse sequence writing, the interpreter module was created with the intention of minimizing its interaction with the student. The result of this effort was the interpreter module being a single function that received only two inputs: the Pulseq-generated “.seq” file name, as well as the desired name for the Varian-compatible pulse sequence.
In order to properly structure the sequence, the interpreter module recognizes events active within a given time bin, which Pulseq refers to as blocks. Pulseq bases the duration of the block on the longest duration event contained within the block1. The interpreter module looks at what events are active within a given time block, then passes that information to the proper function to write the output file. Due to system limitations and the need to standardize gradient commands, presently if two or more gradients are active at the same time, they are both set to be the duration of the longest gradient event.
The interpreter module is to be distributed to students with a MRSL–adapted version of the Pulseq toolbox. In addition to the standard Pulseq download, the MRSL’s version includes the MRSL’s Varian interpreter, supporting subfunctions, and supplementary materials such as a user manual, extra functions, and Matlab livescript examples. The student will download this toolbox to their own device to be able to write pulse sequences using Matlab. Once the user has used Pulseq to develop and output the .seq file, our interpreter is used to generate a Varian compatible script. This function recognizes the base sequence using an algorithm that looks at pulse profile repetitions following an acquisition. This algorithm was determined sufficient for the targeted application in the introductory MRI course offered at Texas A&M, however it can be easily modified and adapted to fit the needs of the user.
As a means for evaluating the interpreter’s performance, Pulseq and the interpreter module were used to generate a basic spin echo pulse sequence for comparison against the Varian equivalent “Ssems.c”, which is commonly used in the introductory MRI course as a starting point from which students make modifications to accommodate diffusion, flow, or chemical shift measurements. Key parameters for the pulse sequence included a repetition time of 1000 ms, an echo time of 30 ms, 3mm slice thickness, a RF pulse duration of 2000 microseconds, a phase encoding pulse duration of 2 ms, ramp times of 500 microseconds, 90° RF pulse power of 37 dB, 180° RF pulse power of 43 dB, and a receiver gain of 14 dB.
The pulse sequences shown in Figure 2 are real RF and gradient waveforms from the MRSL’s 33 cm Varian Inova system. These sequences were used to produce the images shown in Figure 3. These images are of a 7.75 cm cylindrical phantom containing two ramps and pin holes, filled with a copper sulfate solution, that is commonly used in the MRI introduction course. The phantom was positioned in the magnet to image a uniform region.