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.