Skip to main content

MRpro logo


Python License Coverage Bagde DOI

MR image reconstruction and processing package specifically developed for PyTorch.

Awards

  • 2024 ISMRM QMRI Study Group Challenge, 2nd prize for Relaxometry (T2* and T1)

Main features

  • ISMRMRD support MRpro supports ismrmrd-format for MR raw data.
  • PyTorch All data containers utilize PyTorch tensors to ensure easy integration in PyTorch-based network schemes.
  • Cartesian and non-Cartesian trajectories MRpro can reconstruct data obtained with Cartesian and non-Cartesian (e.g. radial, spiral...) sapling schemes. MRpro automatically detects if FFT or nuFFT is required to reconstruct the k-space data.
  • Pulseq support If the data acquisition was carried out using a pulseq-based sequence, the seq-file can be provided to MRpro and the used trajectory is automatically calculated.
  • Signal models A range of different MR signal models are implemented (e.g. T1 recovery, WASABI).
  • Regularized image reconstruction Regularized image reconstruction algorithms including Wavelet-based compressed sensing or total variation regularized image reconstruction are available.

Examples

In the following, we show some code snippets to highlight the use of MRpro. Each code snippet only shows the main steps. A complete working notebook can be found in the provided link.

Simple reconstruction

Read the data and trajectory and reconstruct an image by applying a density compensation function and then the adjoint of the Fourier operator and the adjoint of the coil sensitivity operator.

# Read the trajectory from the ISMRMRD file
trajectory = mrpro.data.traj_calculators.KTrajectoryIsmrmrd()
# Load in the Data from the ISMRMRD file
kdata = mrpro.data.KData.from_file(data_file.name, trajectory)
# Perform the reconstruction
reconstruction = mrpro.algorithms.reconstruction.DirectReconstruction(kdata)
img = reconstruction(kdata)

Full example: https://github.com/PTB-MR/mrpro/blob/main/examples/scripts/direct_reconstruction.py

Estimate quantitative parameters

Quantitative parameter maps can be obtained by creating a functional to be minimized and calling a non-linear solver such as ADAM.

# Define signal model
model = MagnitudeOp() @ InversionRecovery(ti=idata_multi_ti.header.ti)
# Define loss function and combine with signal model
mse = MSE(idata_multi_ti.data.abs())
functional = mse @ model
[...]
# Run optimization
params_result = adam(functional, [m0_start, t1_start], n_iterations=n_iterations, learning_rate=learning_rate)

Full example: https://github.com/PTB-MR/mrpro/blob/main/examples/scripts/qmri_sg_challenge_2024_t1.py

Pulseq support

The trajectory can be calculated directly from a provided pulseq-file.

# Read raw data and calculate trajectory using KTrajectoryPulseq
kdata = KData.from_file(data_file.name, KTrajectoryPulseq(seq_path=seq_file.name))

Full example: https://github.com/PTB-MR/mrpro/blob/main/examples/scripts/comparison_trajectory_calculators.py

Contributing

We are looking forward to your contributions via "fork and pull requests". If you would like to fix a bug or add a new feature:

  1. Create your own copy of MRpro (i.e. create a fork via GitHub)
  2. Clone your forked copy of the MRpro repository
  3. Create/select a python environment (e.g. conda create -n mrpro python=3.12)
  4. Install MRpro in editable mode with developer dependencies: pip install -e ".[dev]"
  5. Setup pre-commit hook: pre-commit install
  6. Create a new branch
  7. Implement your changes to MRpro
  8. Commit and push them to GitHub
  9. Open a pull request via GitHub

You can find more information on "fork and pull requests" on the GitHub documentation

Please also look at our contributor guide for more information on the repository structure, naming conventions, and other useful information.

[!NOTE]
There are a few things which cannot be modified as "fork and pull requests" such as modifications of the docker images. If you think something needs to be changed there, please open up an issue first.

Metadata

Release files for mrpro 0.250429

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mrpro 0.250429
File Size Uploaded
mrpro-0.250429.tar.gz 183.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mrpro 0.250429
File Interpreter ABI Platform
mrpro-0.250429-py3-none-any.whl Python 3 none any Details

Total release size: 415.5 kB

Release files / mrpro-0.250429.tar.gz

Download URL mrpro-0.250429.tar.gz
Size 183.5 kB
Tags Source
SHA-256 checksum
How to use checksums
a19476b6b5dd44a082a9e98913062308f18a5e59bca65e733a3ccdbb0bd1495b
BLAKE2b-256 checksum
How to use checksums
86a567799a7163cfb129d09abc245d9db3d8e54dbc09a0751ca27740f6affeae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 29, 2025.

Transparency log

Release files / mrpro-0.250429-py3-none-any.whl

Download URL mrpro-0.250429-py3-none-any.whl
Size 231.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ebffdfd10517482a26db4c362b90052b99e698422d21ea473f05aca338ed49a5
BLAKE2b-256 checksum
How to use checksums
e7468367d6bd8478285c8d3cd8117a6ade2b9a628a399755db2a4864fe4d03dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 29, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.250429 This release

2 release files

0.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page