Introduction#
MRI-NUFFT is an open-source Python library that provides state-of-the-art non-Cartesian MRI tools: trajectories, data loading and fast and memory-efficient operators to be used on laptops, clusters, and MRI consoles.
In particular, it provides a unified interface for computing Non-Uniform Fast Fourier Transform (NUFFT), using the specialized backend of your choice ((cu)finufft, gpunufft, torchkbnufft, … ), and with integrated MRI-specific features such as:
MRI-nufft is a nice and polite piece of software, that will return the same type of array (e.g numpy, cupy, torch) provided at input, without extra copies for conversions.
On top of that we ship a variety of non-Cartesian trajectories commonly used by the MRI community, and even tools to helps you develop new ones.
Usage#
from scipy.datasets import face # For demo
import numpy as np
import mrinufft
# Create 2D Radial trajectories for demo
samples_loc = mrinufft.initialize_2D_radial(Nc=100, Ns=500)
# Get a 2D image for the demo (512x512)
image = np.complex64(face(gray=True)[256:768, 256:768])
## The real deal starts here ##
# Choose your NUFFT backend (installed independently from the package)
# pip install mri-nufft[finufft] will be just fine here
nufft = mrinufft.get_operator("finufft",
samples_loc, shape=image.shape, density="voronoi", n_coils=1
)
kspace_data = nufft.op(image) # Image -> Kspace
image2 = nufft.adj_op(kspace_data) # Kspace -> Image
pinv = nufft.pinv_solver(kspace_data) # get a Pseudo inverse (least square minimization)
For improved image quality, embed these steps in a more complex reconstruction pipeline (for instance using PySAP).
Want to see more ?
Check the Documentation
Or go visit the Examples
Installation#
MRI-nufft is available on PyPi and can be installed with:
pip install mri-nufft
Additionally, you will have to install at least one NUFFT computation backend. See the Documentation for more guidance. Typically we recommend:
pip install mri-nufft[finufft]
pip install mri-nufft[cufinufft] # if you have a NVIDIA GPU and CUDA>=12
Benchmark#
A benchmark of NUFFT backend for MRI applications is available in mind-inria/mri-nufft-benchmark
Who is using MRI-NUFFT?#
Here are several project that rely on MRI-NUFFT:
Add yours by opening a PR or an issue, let us know how you use MRI-nufft !
How to cite MRI-NUFFT#
We published MRI-NUFFT at JOSS
Comby et al., (2025). MRI-NUFFT: Doing non-Cartesian MRI has never been easier. Journal of Open Source Software, 10(108), 7743, https://doi.org/10.21105/joss.07743
@article{Comby2025, doi = {10.21105/joss.07743},
author = {Comby, Pierre-Antoine and Daval-Frérot, Guillaume and Pan, Caini and Tanabene, Asma and Oudjman, Léna and Cencini, Matteo and Ciuciu, Philippe and GR, Chaithya},
title = {MRI-NUFFT: Doing non-Cartesian MRI has never been easier}, journal = {Journal of Open Source Software},
url = {https://doi.org/10.21105/joss.07743},
year = {2025},
publisher = {The Open Journal},
volume = {10},
number = {108},
pages = {7743},
}
Contributing#
We warmly welcome contributions ! Check out our guidelines , Don’t hesitate to look for unsolved issues