Jon-Fredrik Nielsen1, Kang Wang2, Rolf F Schulte3, Ante Zhu4, Afis Ajala4, Sherry Huang5, Dinank Gupta1, Scott Peltier1, Maximillian Egan1, Rex Fung1, Maxim Zaitsev6, and Douglas C Noll1
1Functional MRI Laboratory, University Of Michigan, Ann Arbor, MI, United States, 2GE HealthCare, Waukesha, WI, United States, 3GE HealthCare, Munich, Germany, 4Technology and Innovation Center, GE HealthCare, Niskayuna, NY, United States, 5Science and Technology Office, GE HealthCare, Royal Oak, MI, United States, 6Medical Physics, Dept. of Radiology, University Medical Center Freiburg, Freiburg, Germany
Synopsis
Keywords: Software Tools, Pulse Sequence Design, Pulseq, vendor-agnostic sequences
Motivation: To enable vendor-neutral MR pulse sequence programming for rapid prototyping and reproducible research.
Goal(s): Implement an accurate interpreter of Pulseq files for GE scanners.
Approach: We convert the Pulseq file, which is a streaming-based description, to a ‘segment’-based representation where each segment consists of sub-sequences (groups) of Pulseq blocks that are always executed together and in a particular order. This segment is then executed repeatedly with different waveform amplitudes.
Results: The proposed Pulseq interpreter for GE scanners allows the execution of arbitrary Pulseq sequences. The same interpreter source code (written in EPIC) can be compiled for all recent GE MRI scanner software versions.
Impact: The proposed interpreter allows researchers to design sequences in Pulseq and execute them on GE scanners. This allows rapid prototyping of novel sequences, and identical implementations across sites. Pulseq and the proposed ‘segment’-based description are equivalent vendor-independent sequence descriptions.
Introduction
Pulseq is an open, human-readable, and flexible file specification for describing arbitrary MRI pulse sequences [1]. Using a vendor-specific interpreter written in a particular vendor’s native sequence development environment (e.g., IDEA for Siemens, or EPIC for GE HealthCare), a Pulseq file can in principle be executed identically across dissimilar hardware platforms. This enables rapid prototyping of new sequences, and potentially more reproducible MRI measurements across sites and along time. A practical benefit of this approach is that the same Pulseq file can be used across scanner software upgrades; only the vendor-specific interpreter needs to be updated.
Until now, however, there has only been partial support for Pulseq on GE MRI scanners. Specifically, the interpreter reported in [2] required gradients to start and end at zero within each block, and did not fully adhere to the sequence timing in the Pulseq file. These limitations were due to the fact that Pulseq is a streaming-based sequence description where blocks are defined on-the-fly during sequence execution, which is not directly compatible with EPIC. Furthermore, a different version of the interpreter source code had to be maintained for each scanner software version. Here we report on the development of a new Pulseq interpreter for GE scanners that overcomes these limitations, and demonstrate its use with state-of-the-art 3D and simultaneous multislice (SMS) EPI sequences.Methods
Segment-based pulse sequence description: The proposed interpreter is based on converting the Pulseq file to an equivalent sequence representation consisting of one or more ‘segments’, with each segment consisting of a fixed sub-sequence of Pulseq blocks that are always executed together (Fig. 1). During sequence execution, segments are executed repeatedly with different waveform amplitudes as needed for image encoding. Internally in the EPIC code, separate sequencer memory is allocated for each segment.
Single source code for multiple scanner software versions: The interpreter EPIC source code consists of a single set of source files that can be compiled for all recent GE software versions, e.g., from DV26 to MR30.2. This is made possible by placing the Pulseq-specific instructions in a separate C file from the underlying ‘host’ sequence code, and introducing compiler flags to manage version dependencies in the host code.
Using the interpreter: The sequence designer must label the beginning of each segment execution in the Pulseq file, using the ‘makeLabel’ function in the Pulseq toolbox. No other changes to the Pulseq file are necessary. The Pulseq file is then ‘compiled’ for GE using the MATLAB script seq2ge.m, that creates a file that is executed by the interpreter (Fig. 2). This compiled file contains the segment-based representation of the Pulseq file, and patient (global SAR) and hardware safety (peak RF and gradient power) information used by the interpreter. Source code for converting the Pulseq file to the segment representation is open source and freely available. The interpreter EPIC source code is shared freely within the GE research user community.
SMS-EPI and 3D EPI sequences: We created an SMS-EPI sequence in Pulseq that matches the ABCD fMRI protocol, which required the definition of only one segment corresponding to a sequence TR (Fig. 3(a)). We also created a corresponding 3D EPI sequence with identical readout parameters (not shown). We compiled the interpreter source code for two different software versions: For MR30.2 for the purpose of simulating the sequence with GE’s latest ‘Pulse Studio’ sequence simulator, and for MR29.1 for execution on a GE 3T MR750 scanner. We also designed an SMS-EPI sequence for the MAGNUS head gradient system, to demonstrate the use of off-line tools for mechanical resonance and PNS analysis.Results
Figure 3(a) shows the SMS-EPI sequence in the Pulse Studio sequence simulator. Sequence timing is identical to the Pulseq file (not shown), and the CAIPI gradient blips cross the Pulseq block boundaries for maximum time efficiency. Representative images obtained with this sequence are shown in Fig. 3(b). Figure 4 shows functional activation maps obtained with the 3D EPI version of this sequence. Figure 5 shows acoustic/mechanical and PNS modeling results. Although not shown, the interpreter also supports the output of TTL trigger pulses (useful for synchronizing the pulse sequence with external devices such as a field monitoring tool) specified in the Pulseq file with the ‘makeDigitalOutputPulse’ function in the Pulseq toolbox.Discussion and Conclusion
Pulseq and the proposed segment-based sequence representation are equivalent vendor-independent sequence descriptions. The segment representation can be implemented directly on GE hardware as shown here, and may furthermore be of use on other hardware platforms in the future.Acknowledgements
This work was supported by NIH Grants U24NS120056 and R01EB032378.References
[1] Layton KJ, Kroboth S, Jia F, Littin S, Yu H, Leupold J, Nielsen JF, Stöcker T, Zaitsev M. Pulseq: A rapid and hardware-independent pulse sequence prototyping framework. Magn Reson Med. 2017 Apr;77(4):1544-1552
[2] Nielsen JF, Noll DC. TOPPE: A framework for rapid prototyping of MR pulse sequences. Magn Reson Med. 2018 Jun;79(6):3128-3134
[3] Schulte RF and Noeske R, Peripheral nerve stimulation-optimal gradient waveform design. Magn Reson Med. 2015 Aug;74(2):518-522
[4] Uecker M et al, Berkeley Advanced Reconstruction Toolbox. Proc. Intl. Soc. Mag. Reson. Med. 23 (2015), p2486