Navigation

Introduction

Platforms

Download

Documentation

Sequences

Manual

Browse Code

Authors




Search:



Screenshots:






Hello World
Welcome to the ODIN homepage! 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.

  • Truly 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 (eddy currents, B1 inhomogeneity, 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 [Screenshot] [Screenshot]
    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 [Screenshot]
    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 [Screenshot]
    A command line driven data viewer that supports the following formats:

  • 3D-indices of non-zeroes in ASCII, dialects: addval
  • ASCII, dialects: tcourse
  • Ansoft HFSS ASCII
  • DICOM, dialects: siemens
  • GNU-Zip container for other formats
  • ISMRMRD Image
  • Interfile, dialects: neurostat
  • Iris3D binary data
  • JCAMP-DX data sets
  • Matlab ascii 2D data matrix
  • MetaImage
  • NIFTI/ANALYZE, dialects: fsl
  • ODIN Image based on JCAMP-DX (Joint Committee on Atomic and Molecular Physical Data)
  • ODIN Image based on XML (Extensible Markup Language)
  • ODIN protocols based on JCAMP-DX (Joint Committee on Atomic and Molecular Physical Data)
  • ODIN protocols based on XML (Extensible Markup Language)
  • Portable Network Graphics
  • Visualization Toolkit, vtkStructuredPoints
  • double raw data
  • float raw data
  • signed 16 bit raw data
  • signed 32 bit raw data
  • signed 8 bit raw data
  • unsigned 16 bit raw data
  • unsigned 32 bit raw data
  • unsigned 8 bit raw data
  • x-y positions of non-zeroes in ASCII

  • Display properties (contrast, brightness) can be adjusted. The value of regions and single points can be retrieved and scan-line profiles can be generated interactively.



    Geoedit [Screenshot]
    A lightweight geometry editor that exports the selected geometry parameters to the ODIN sequence development framework.



    Many Useful Command-Line Utilities


    The main functionality of ODIN can be found in a couple of libraries:

    tjutils
    This library contains various helper classes and functions that are not specific to MR.

    odinpara
    Library to handle MR parameters, such as system properties, scan geometry, sequence parameters. Input/output of parameters is achieved via JCAMP-DX file format.

    odinseq
    This library contains the interface for sequence programming. It also contains the hardware specific driver routines.

    odindata
    The Blitz++ library is used for handling multidimensional arrays in ODIN. In addition, many MR-specific routines (FFT, phase correction) were added and placed in this library.

    Contact
    If you have any questions, bug-reports or improvements, if you need professional support with ODIN, or if you know how to make a better web page than this, please do not hesitate to contact me (Thies Jochimsen).

    Licensing
    ODIN is published under the terms of the GNU General Public License.

    Disclaimer
    ODIN is a framework for research purposes only. It is not certified for clinical use. Hence, it cannot replace approved solutions from commercial manufacturers.

    Get ODIN at SourceForge.net. Fast, secure and Free Open Source software downloads

    Last update: Oct 15 2021