Skip to main content

Model-based parameter quantification using OpenCL and Python

Project description

travis gitlab pypi Documentation Status

PyQMRI - Model-Based Parameter Quantification

PyQMRI is a Python based toolbox for quantitative Magnetic Resonance Imaging (MRI). Utilizing _PyOpenCL and a double-buffering scheme, it enables the accelerated reconsruction and fitting of arbitrary large datasets on memory limited GPUs. Currently, PyQMRI supports the processing of 3D Cartesian and non-Cartesian (stack-of-) data.

Examples include T1 quantification from variable flip angle or inversion-recovery Look-Locker data, T2 quantification using a mono-exponential fit, or Diffusion Tensor quantification.

In addition, a Genereal Model exists that can be invoced using a text file containing the analytical signal equation.

For a real world usage example have a look at the Quickstart Guide. The example can also be run interactively using Open in Colab.

Installation and usage guides, as well as API documentaiton, can be found in the Documentation

Sample Data

In-vivo datasets used in the original publication (doi: [10.1002/mrm.27502]) can be found at zenodo. If you use the sample data with the recent release of PyQMRI please delete the “Coils” entry in the .h5 to force a recomputation of the receive coil sensitivities as the orientation does not match the data.

Contributing

Development and code contributions should be done at our GitLab site to facilitate the CI integration and GPU availability there. If you want to contribute please make sure that all tests pass and adhere to our Code of Conduct. Prior to running the tests it is necessary to start an ipcluster. An exemplary workflow would be: ipcluster start & followed by typing pytest test in the PyQMRI root folder. It is advised to run unit and integration tests after each other as OUT_OF_MEMORY exceptions can occur if both are in one session, e.g.: pytest test/unittests pytest test/integrationtests

For more detailed instructions on how to contribute have a look at contributing.

Changelog:

  • v1.2
    • Added and tested AMD CPU and AMD GPU support. (Tested on Ryzen 9 with AMD APP SDK and Radeon 6900XT with ROCm)

    • Added the model for fast field-cycling (FFC) MRI

  • v1.1
    • Added the first iteration of CPU support. Tested on Intel CPUS using pocl on Ubuntu and Arch Linux.

    • Changed stagnation to use inverse of exponential. Adapted default config accordingly

    • Added ASL model

  • v1.0
    • Initial Release

Citation:

If using the toolbox, please consider citing: “Maier et al., (2020). PyQMRI: An accelerated Python based Quantitative MRI toolbox. Journal of Open Source Software, 5(56), 2727, https://doi.org/10.21105/joss.02727

Also consider citing “Oliver Maier, Matthias Schloegl, Kristian Bredies, and Rudolf Stollberger; 3D Model-Based Parameter Quantification on Resource Constrained Hardware using Double-Buffering. Proceedings of the 27th meeting of the ISMRM, 2019, Montreal, Canada” if using parts of the software, specifically the PyOpenCL based NUFFT and the double buffering capabilities, in your work.

Older Releases:

You can find the code for

Maier O, Schoormans J,Schloegl M, Strijkers GJ, Lesch A, Benkert T, Block T, Coolen BF, Bredies K, Stollberger R
Rapid T1 quantification from high resolution 3D data with model‐based reconstruction.
Magn Reson Med., 2018; 00:1–16 doi: [10.1002/mrm.27502]

at [v0.1.0]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyqmri-1.2.2.tar.gz (95.8 kB view hashes)

Uploaded Source

Built Distribution

pyqmri-1.2.2-py3-none-any.whl (120.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page