NMR sequence simulation environment


Thies H. Jochimsen1, Michael von Mengershausen2, Andreas Schaefer3, Robert Trampel4, Enrico Reimer4, Dirk Mueller4, Torsten Schlumm4, Martin Kraemer5 and Markus Koerber

Estimated cost



Stable Release, v. 2.0.3 (GNU General Public License)

ODIN is a C++ software framework to develop and simulate magnetic resonance sequences. It is:

  • State-of-the-Art: Contemporary magnetic resonance imaging techniques are available, for example sequence modules for echo-planar imaging and spiral-imaging, parallel imaging with GRAPPA reconstruction, two-dimensional pulses and field-map-based distortion corrections.
  • Easy-to-Use: All common steps, from compiling your sequence to plotting or simulating it, can be performed within a graphical user interface.
  • Object-Oriented: Written in C++ with an object-oriented design, ODIN is very modular, flexible and requires very little code to write: The sequences that come with ODIN are easy to understand and modify.
  • Open Source: ODIN is a free software framework. It contains well-established techniques in magnetic resonance which were documented in scientific publications. It can be used and modified without restrictions.

Some Highlights of ODIN

  • Plotting of the sequence timecourse in a graphical user interface.
  • Simulating the spin-physics of the sequence (Bloch-Torrey equations) using a virtual phantom to generate a virtual MR signal. System imperfections such as eddy currents, B1 inhomogeneity and noise can be switched on/off at will during the simulation.
  • Visualization of the k-space trajectory, b-values, eddy currents, etc.
  • Highly-customizable, multi-threaded image reconstruction framework.

ODIN Components

  • Odin
    The control center for developing, testing, visualizing and simulating NMR sequences. It is a front-end to the ODIN libraries, allowing interactive editing, recompiling and dynamic linking of sequence modules.
  • Pulsar
    A graphical user interface for the generation and simulation of RF pulses is provided by the Pulsar program. Parameters of the pulse can be edited interactively and the corresponding excitation profile is displayed simultaneously. A modular approach is used for maximum flexibility: The pulse shape, k-space trajectory and filter function of the pulse are generated by independent functions. They can be combined in many ways, e.g. a box-shaped pulse can be generated using any of the spiral trajectories and any of the filter functions. The functions of the pulse are implemented using a plug-in mechanism (abstract C++ base classes where the functions are implemented in the derived classes). Thus new pulse shapes, trajectories and filter functions can be added easily by defining new function classes.
  • MiView
    A command line driven data viewer that supports different formats such as: DICOM, double raw data, float raw data, Iris3D binary data, JCAMP-DX (Joint Committee on Atomic and Molecular Physical Data) data sets, Matlab ascii 2D data matrix, MetaImage, NIFTI/ANALYZE, and specific ODIN Image data types. Display properties can be adjusted. The value of regions and single points can be retrieved and scan-line profiles can be generated interactively.
  • Geoedit
    A lightweight geometry editor that exports the selected geometry parameters to the ODIN sequence development framework.



1Department of Nuclear Medicine Leipzig University Hospital, Leipzig, Germany

2Max-Planck-Institute of Cognitive Neuroscience, Leipzig, Germany

3Friedrich-Alexander-Universität Erlangen-Nürnberg, Germany

4Max Planck Institute for Human Cognitive and Brain Science, Leipzig, Germany

5Medical Physics Group, Institute of Diagnostic and Interventional Radiology, Jena University Hospital, Friedrich-Schiller-University Jena, Jena, Germany