JEMRIS

JEMRIS is a versatile, open-source, multi-purpose MRI simulator. It is well-suited for research and education.

90
mentions
2
contributors

What JEMRIS can do for you

Summary

JEMRIS is an extensible MRI (Magnetic Resonance Imaging) simulation framework which provides an MRI sequence development and simulation environment for the MRI community. The development was driven by the desire to achieve generality of simulated 3D MRI experiments reflecting modern MRI systems hardware. The accompanying computational burden is overcome by means of parallel computing. Many aspects are covered which have not hitherto been simultaneously investigated in general MRI simulations such as parallel transmit and receive, important off-resonance effects, non-linear gradients, and arbitrary spatiotemporal parameter variations at different levels. The latter can be used to simulate various types of motion, for instance. The JEMRIS user interface is very simple to use but, nevertheless, it presents few limitations. MRI sequences with arbitrary waveforms and complex inter-dependent modules are modelled in a GUI-based environment requiring no further programming.

Features

JEMRIS supports the following features:

  • Utilising an optimised library for numerical solutions of differential equations (CVODE) provides accurate 3D MRI simulation results in cases where no analytical solution is available, e.g. to simulate complex nonlinear RF waveforms for selective excitation or adiabatic full passage pulses.
  • JEMRIS can deal with arbitrary RF and gradient waveforms, arbitrary multi-channel Tx-Rx coil geometries and configurations, as well as many important physical concepts, such as nonlinear gradients, chemical shift, reversible spin dephasing (T2*), susceptibility-induced off-resonance, temporal varying processes of the object (e.g. movement or flow), concomitant gradient fields, etc.
  • Symbolic mathematical calculations are supported by means of the GiNaC library. Thus, many extensions are readily available with no additional programming involved.
  • The core simulation routines take advantage of massive parallel processing (using the MPI standard) and are available on different hardware architectures. JEMRIS simulations scale on single-core hardware, small HPC clusters and also on massively parallel supercomputers.
  • A Matlab graphical user interface (GUI) is provided with which all simulation parameters are configured, including nearly arbitrary complex MRI sequences. The GUI stores these configurations in XML format which is parsed by the simulator using the Xerces library.
  • JEMRIS supports the Pulseq file format, which allows you to run JEMRIS sequences on real MR scanners. This way the exact same sequence can be used in simulations and real experiments.
  • JEMRIS suppports the ISMRMRD raw data format. Thus, the simulated data can be forwarded to advanced MRI image reconstruction software such as the BART toolbox.
  • JEMRIS is open source and the community is encouraged to make contributions to the project under www.jemris.org. It has been successfully tested on Linux and Mac OS X.

Framework

Main Executable Program

All core routines of Jemris are written in C++. Simplified, the mode of action of the main simulator program is as follows: a master process splits the sample into equal portions which are distributed to the compute node processes. Here, the MRI sequence returns values of all pulse axes (RF magnitudes and phases for all transmit coils plus 3 gradient axes) at desired time points to the physical model which numerically solves the Bloch equation individually for each spin. The coil array receives and sums the net signal at every desired time point, which is sent back to the master process where finally the bulk signal is summed and stored.

Graphical User Interfaces

JEMRIS can be solely used from the command line. Additionally, three Matlab GUIs were developed, which call the JEMRIS core routines and visualise their output: one for interactively designing the MRI sequence, another for defining the coil configuration, and one for the set-up and execution of the main simulator, respectively. The latter provides several predefined objects for simulation (e.g. the MNI human brain phantom, Shepp-Logan phantom, as well as user-defined objects) and an automated image reconstruction pipeline based on a dedicated Docker container.

Main Reference

If you use JEMRIS for research publications, please cite this paper:
Stöcker, T., Vahedipour, K., Pflugfelder, D., & Shah, N. J. (2010). High-performance computing MRI simulations. Magnetic Resonance in Medicine, 64(1), 186–93. https://doi.org/10.1002/mrm.22406

Logo of JEMRIS
Keywords
Programming languages
  • C++ 66%
  • MATLAB 11%
  • Python 11%
  • CMake 8%
  • C 3%
  • M4 1%
License
  • GPL-2.0-or-later
</>Source code
Packages

Participating organisations

German Center for Neurodegenerative Diseases
Forschungszentrum Jülich

Mentions

Contributors

TS
Tony Stoecker
Lead developer, project founder
Deutsches Zentrum für Neurodegenerative Erkrankungen
DP
Daniel Pflugfelder
Lead developer
Forschungszentrum Jülich GmbH