We present a preliminary study on developing MRI pulse sequences using graphical user interface elements. We introduce a prototype where a sequence developer can specify a sequence structure and parameter dependencies just using the GUI. As a result, a sequence developer can concentrate on the MRI sequence design, rather than on software engineering issues. The GUI-based development framework is decoupled from the manufacturer’s development environments and promises to promote the development of basic sequence designs that are independent of the scanner platforms used.
The development of MRI sequences typically requires time-consuming, low-level programming and extensive experience with a manufacturer’s proprietary development tools. The sequences defined with these development tools require a well-defined order of parameter calculations to take account of the parameter dependencies, resulting in a sequence that both complex and inflexible. In addition, these pulse sequences are not easily ported to other scanner platforms, limiting their use in multi-centre studies.
A number of alternative pulse sequence programming tools have been introduced to address some of these issues [1][2][3].
These limitations are further addressed in the current work by introducing a concept in which a graphical user interface (GUI) plays the central role in the sequence development process. The concept was motivated by a study that was conducted to identify the key requirements of a user-friendly MRI sequence development environment [4]. The technique exploits previous work [5], which allows parameter dependencies to be resolved by an automatic algorithm without the requirement for the user to define the order of parameter calculations. The work also makes use of a special software (driver) on the scanner [6] that can run platform-independent sequences without code compilation.
A prototype of the proposed technique was developed using a simple GUI for the interactive definition of MRI sequences [Fig.1]. The GUI makes a number of UI elements available that can be combined directly to construct a new MRI pulse sequence. The resulting sequence components, such as a readout module, can be reused and integrated easily into another sequence type.
Each in UI defined sequence component has a set of parameters, such as an amplitude, that can be configured and added to by the sequence programmer. These parameters can be set to a static value or specified as a function written as an inline script. The parameter arguments of these functions are a list of other parameters, which can for example belong to other sequence components. A key feature of the development environment is that it is not necessary to define the order of parameter calculations, as in traditional pulse sequence programming. The user simply specifies the parameter dependencies for each sequence module and an algorithm is used [5] to resolve these dependencies and to apply the calculations in the correct order each time a parameter value is requested – also during runtime of the sequence on the scanner.
Once the sequence structure and a consistent set of parameter dependencies have been defined, the sequence can be exported via the GUI as a text file that can be installed at a scanner and run by a pre-installed scanner driver [6].
An overview of the overall development framework, based on a web server for performing the GUI-based sequence definition and export, is provided in fig. 2.
To demonstrate the feasibility of the proposed GUI-based sequence development technique, the GUI was used to define a 2D spoiled gradient echo sequence [7] with a FOCI inversion pulse [8]. The sequence was installed on Siemens MAGNETOM Skyra 3T scanner (MAGNETOM Skyra, Siemens Healthcare GmbH) running a compatible driver [6]. Using same sequence definition file two data sets were acquired.
Although this preliminary study has focussed on a relatively straight-forward sequence type, the sequence generated already demonstrates complex parameter dependencies and no major obstacles are expected when extending the basic principles to sequences with further complexity. This GUI approach to sequence development allows a high level of modularity as presented. By focusing the sequence development on the specification of a sequence structure and parameter dependencies using the GUI, the sequence developer can concentrate on the MRI sequence design, rather than on software engineering issues. This will make sequence programming accessible to a wider group of scientists.
[1] Magland, J. F. et al. (2016). "Pulse sequence programming in a dynamic visual environment: SequenceTree". Magnetic Resonance in Medicine, 75(1), 257–265. http://doi.org/10.1002/mrm.25640
[2] Layton, K. J. et al. (2016). "Pulseq: A rapid and hardware-independent pulse sequence prototyping framework". Magnetic Resonance in Medicine. http://doi.org/10.1002/mrm.26235
[3] Stöcker et al. (2010). "High-Performance Computing MRI Simulations". MRM 64:186-193
4] Archipovas, S. (2015). "Nutzerorientierte Gestaltung einer Entwicklungsumgebung von MR-Sequenzen auf Magnetresonanztomographen." Mensch und Computer 2015–Usability Professionals: Workshop. Walter de Gruyter GmbH & Co KG, p.311- 315.
[5] Cordes, C et at. (2016). "Parameter Dependency in Modular MR Sequences using Directed Graphs" International Society for Magnetic Resonance in Medicine (ISMRM), At Singapore, Volume: 24:3198
[6] Honroth, T et al. (2016). "Platform-independent, rapid prototyping of MR sequences without code compilation" International Society for Magnetic Resonance in Medicine (ISMRM), At Singapore, Volume: 24:3207
[7] Haase, A. et al. (1986). "FLASH imaging. Rapid NMR imaging using low flip-angle pulses". Journal of Magnetic Resonance (1969), 67(2), 258–266. http://doi.org/10.1016/0022-2364(86)90433-6
[8] Ordidge, R. J. et al. (1996). Frequency offset corrected inversion (FOCI) pulses for use in localized spectroscopy. Magnetic Resonance in Medicine: Official Journal of the Society of Magnetic Resonance in Medicine / Society of Magnetic Resonance in Medicine, 36(4), 562–566. http://doi.org/10.1002/mrm.1910360410
[9] Jupyter - Open source, interactive data science and scientific computing across over 40 programming languages. Retrieved November 08, 2016, from http://jupyter.org/