Introduction

Platforms

Download

Documentation

Sequences

Manual

Browse Code

Search Code

Mailing List

Authors




Search:



Screenshots:






Hello World
Welcome to the ODIN homepage! ODIN is a C++ software framework to develop, simulate and run magnetic resonance sequences on different platforms. 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.

  • Hardware Independent: ODIN runs on a variety of operating systems and scanners. Once you develop a sequence, it can be executed/simulated on very different hardware, ranging from a real-time sequence controller to your personal workstation.

  • 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 free software: Download it, use it, modify it, all free of charge!



  • Some Features

  • 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.

  • Calculation of gradient moments (k-space) and diffusion weighting.




  • 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:

  • ANALYZE
  • ASCII
  • DICOM
  • GNU-Zip container for other formats
  • JCAMP-DX data sets
  • JCAMP-DX image format
  • Matlab ascii 2D data matrix
  • MetaImage
  • NIFTI, dialects: fsl
  • Vista, dialects: common odin lipsia xlipsia
  • Visualization Toolkit
  • 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.

    Feedback
    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) or post your request on the mailing list.

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

    SourceForge.net Logo

    Last update: Jun 14 2008