Skip to content

Acknowledgments

UniMRI stands on a large body of open-source scientific software. This page credits every library, standard, and method the project uses or is built to use. Licenses are noted where known; consult each project for the authoritative terms.

Runtime dependencies

Libraries imported by the UniMRI core (pip install unimri):

Library Used for License
NumPy n-dimensional arrays; the default compute backend BSD-3-Clause
SciPy signal processing, linear algebra, spatial transforms BSD-3-Clause
h5py reading/writing HDF5 (ISMRMRD, UniMRI's cache format) BSD-3-Clause

UniMRI targets the Python Array API standard so that operators can run on NumPy, CuPy, or PyTorch arrays unchanged.

Optional integrations

Enabled through extras (pip install "unimri[...]"):

Library Extra Used for License
FINUFFT nufft the non-uniform FFT behind NUFFTOperator and non-Cartesian reconstruction Apache-2.0
Matplotlib viz plotting in the examples Matplotlib (BSD-style)
ISMRMRD (Python) ismrmrd reading ISMRMRD raw data permissive (see project)
PyTorch torch GPU / autograd array backend; unrolled-network reconstruction later BSD-3-Clause
CuPy gpu CUDA array backend MIT

Planned dependencies

These will be wrapped behind UniMRI interfaces as the corresponding milestones land (see the roadmap); UniMRI does not reimplement them.

Library Will be used for License
twixtools (P. Ehses) parsing Siemens TWIX .dat files MIT
MRI-NUFFT broader NUFFT backend (GPU, more kernels) behind the same NUFFTOperator interface BSD-3-Clause
cufinufft GPU NUFFT backend Apache-2.0
gpuNUFFT GPU gridding backend (via MRI-NUFFT) MIT
torchkbnufft (M. Muckley) differentiable Kaiser–Bessel NUFFT (via MRI-NUFFT) MIT
SigPy reference parallel-imaging / compressed-sensing recon, ESPIRiT BSD-3-Clause
BART optional reference calibration & iterative reconstruction BSD-3-Clause
array-api-compat array-backend compatibility, if a full shim becomes necessary MIT

Development and documentation tooling

Tool Role License
Hatch / hatchling build backend MIT
pytest + pytest-cov test runner and coverage MIT
Ruff linter and formatter MIT
mypy static type checking MIT
MkDocs + Material for MkDocs documentation site BSD-2-Clause / MIT
mkdocstrings API docs from docstrings ISC
pre-commit git hook management MIT
GitHub Actions continuous integration —

Standards and community templates

Methods and algorithms

UniMRI implements or will implement the following published methods; credit is to their originators, with full citations added alongside each implementation:

  • Shepp–Logan phantom — Shepp & Logan (1974); the modified (Toft) variant used by unimri.testing.phantoms.
  • Golden-angle radial sampling — Winkelmann et al. (2007).
  • Density-adapted 3D projection reconstruction — Nagel et al. (2009); the primary non-Cartesian / X-nuclei target.
  • Sampling density compensation (iterative) — Pipe & Menon (1999).
  • ESPIRiT coil-sensitivity calibration — Uecker et al. (2014).
  • POCS / homodyne partial-Fourier reconstruction — Haacke et al.; Noll et al.
  • CG-SENSE — Pruessmann et al. (2001).

Inspiration and prior art

UniMRI's unified-data-model + operator-based design follows earlier work, discussed in detail in Prior art:

  • MRIReco.jl — the same thesis, in Julia (Knopp & Grosser, Magn Reson Med 2021).
  • mrpro — a PyTorch MR reconstruction framework with a closely related architecture.
  • Gadgetron — streaming reconstruction and vendor converters (Hansen & Sørensen, Magn Reson Med 2013).
  • fastMRI, PyQMRI, DIRECT — adjacent toolkits.
  • mapVBVD / pymapVBVD — Siemens raw reading, the lineage twixtools comes from.

Getting credit right

If your library or method is used by UniMRI and is missing, mis-licensed, or mis-attributed here, please open an issue or pull request — corrections are welcome and appreciated.