JEMRIS is a versatile, open-source, multi-purpose MRI simulator. It is well-suited for research and education.
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.
JEMRIS supports the following features:
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.
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.
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