Magnetic Resonance Imaging Reconstruction


MRIReco is a Julia packet for magnetic resonance imaging. It contains algorithms for the simulation and reconstruction of MRT data and is both easy to use and flexibly expandable.

Both direct and iterative methods are available for image reconstruction. In particular, modern compressed sensing algorithms such as ADMM can be used.

The MRT imaging operator can be set up for a variety of scanning patterns (cartesian, spiral, radial, ...) and can take into account field inhomogeneity as well as the use of coil arrays. The operator can be quickly evaluated using NFFT-based methods.

One strength of the package is that it is strongly modular and uses high quality Julia packages. These are e.g.

  • NFFT.jl and FFTW.jl for fast Fourier transformations
  • Wavelets.jl for sparsification
  • LinearOperators.jl in order to be able to divide the imaging operator modularly into individual parts
  • RegularizedLeastSquares.jl for modern algorithms for solving linear optimization problems

This interaction allows new algorithms to be easily integrated into the software framework. It is not necessary to program in C/C++ but the advantages of the scientific high-level language Julia can be used.


MRIReco.jl is work in progress and in some parts not entirely optimized. In particular the FFT and NFFT implementation are currently limited to the CPU and do not support GPU acceleration yet.


Start julia and open the package mode by entering ]. Then enter

add MRIReco

This will install MRIReco and all its dependencies. If you want to develop MRIReco itself you can checkout MRIReco by calling

dev MRIReco

More information on how to develop a package can be found in the Julia documentation.


On purpose MRIReco is not depending on a particular plotting package since there are various plotting packages in the Julia ecosystem. Within the examples outlined in the tutorial we will use PyPlot for plotting but you may prefer using the Plots package. You can add both packages the same way MRIReco has been added.


There is a Jupyter-based tutorial on MRIReco at

that has been presented at the ISMRM conference in Montreal 2019. Since the API has slightly changed, we, however recommend that you read this documentation and in particular execute the example scripts as is described in the Getting Started section.