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¶
- ISMRMRD — the raw-data interchange format UniMRI interoperates with (Inati et al., Magn Reson Med 2017).
- Python Array API standard — the backend abstraction contract.
- Contributor Covenant — the Code of Conduct.
- Keep a Changelog and Semantic Versioning — changelog and version scheme.
- Citation File Format —
CITATION.cff.
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
twixtoolscomes 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.