Model-based parameter quantification using OpenCL and Python
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 .
Installation and usage guides, as well as API documentaiton, can be found in the Documentation
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.
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
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.:
For more detailed instructions on how to contribute have a look at contributing.
Added various new models for quantification
Initial release of ICTV/ICTGV image reconstruction code.
Added the possibility to use preconditioning during optimization.
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
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
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.
You can find the code for
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.