Introduction

KomaMRI is a Julia package meant to simulate general Magnetic Resonance Imaging (MRI) scenarios. Its name comes from the Japanese word for spinning-top ใ“ใพ (ko-ma) as they precess due to gravity like spins in a magnetic field.

KomaMRI generates raw data by solving the Bloch equations using the specified scanner, phantom and sequence. It also provides a Graphical User Interface (GUI) that encapsulates the whole imaging pipeline (simulation and reconstruction).

We organized the documentation following the philosophy presented by David Laing.

Features

Some of the features of KomaMRI are:

  • Fast simulations by using CPU and GPU parallelization ๐Ÿƒ๐Ÿ’จ.
  • Open Source, so anyone can include additional features ๐Ÿ†™.
  • Compatibility with community-standards ๐Ÿค like Pulseq .seq and ISMRMRD .mrd.
  • Compatibility with Pluto and Jupyter notebooks ๐ŸŽˆ
  • Cross-platform ๐ŸŒ thanks to the use of the Julia programming language.
  • Friendly user interface for people with no programming skills ๐Ÿ˜Œ.
  • Flexible API for advanced users ๐Ÿ‘จโ€๐Ÿ’ป.

Potential Use Cases

We see Koma being used in:

  • The generation of synthetic data to train Machine Learning models.
  • To test novel pulse sequences before implementing them directly in a real scanner (with a Pulseq sequence).
  • Teaching exercises for MRI acquisition or reconstruction.