parallelproj: a Python array API compatible library for fast tomographic projections

parallelproj provides simple and fast forward and back projectors for tomographic reconstruction (non-TOF and TOF, sinogram ans listmode) in Python that are python array API compatible meaning that they can be used with a variety of python array libraries (e.g. numpy, cupy, pytorch) and devices (CPU and CUDA GPUs).

github repository https://github.com/gschramm/parallelproj

Note

Features of parallelproj

  • C/OpenMP and CUDA implementations of 3D Joseph matched forward and back projectors [Jos82]

  • non-TOF and TOF versions of the projectors

  • dedicated sinogram and listmode versions of the projectors

  • Python array API compatible Python interface (e.g. directly compatible with numpy, cupy, pytorch)

  • available on conda-forge

Hint

If you are using parallelproj, we highly recommend to read and cite our publication [ST23]

    1. Schramm, K. Thielemans: “PARALLELPROJ - An open-source framework for fast calculation of projections in tomography”, Front. Nucl. Med., Volume 3 - 2023, doi: 10.3389/fnume.2023.1324562, link to paper, link to arxiv version

Hint

For bug reports or feature requests, please open a github issue here.

Getting started

All examples can be run interactively without installation on mybinder.org:

https://mybinder.org/badge_logo.svg

References

[DP95]

Alavaro De Pierro. A modified expectation maximization algorithm for penalized likelihood estimation in emission tomography. IEEE Transactions on Medical Imaging, 14(1):132–137, 1995. doi:10.1109/42.370409.

[DLR77]

P. Dempster, N. Laird, and D. Rubin. Maximum Likelihood from Incomplete Data via the EM Algorithm. Journal of the Royal Statistical Society. Series B (Methodological), 39:1–38, 1977.

[EMS19]

Matthias J. Ehrhardt, Pawel Markiewicz, and Carola Bibiane Schönlieb. Faster PET reconstruction with non-smooth priors by randomization and preconditioning. Physics in Medicine and Biology, 2019. doi:10.1088/1361-6560/ab3d07.

[HL94]

H. M. Hudson and R. S. Larkin. Accelerated Image Reconstructiong using Ordered Subsets of Projection Data. IEEE transactions on medical imaging, 13(4):601–609, 1994. doi:10.1109/42.363108.

[Jos82]

Peter Joseph. An Improved Algorithm for Reprojecting Rays Through Pixel Images. IEEE Transactions on Medical Imaging, 1(3):192–196, 1982. doi:10.1109/TMI.1982.4307572.

[LC84]

Kenneth Lange and Richard Carson. EM reconstruction algorithms for emission and transmission tomography. Journal of Computer Assisted Tomography, 8(2):306–316, 1984.

[SH22]

Georg Schramm and Martin Holler. Fast and memory-efficient reconstruction of sparse Poisson data in listmode with non-smooth priors with application to time-of-flight PET. Physics in Medicine & Biology, 67(15):155020, 2022. doi:10.1088/1361-6560/ac71f1.

[ST23]

Georg Schramm and Kris Thielemans. Parallelproj—an open-source framework for fast calculation of projections in tomography. Frontiers in Nuclear Medicine, 2023. doi:10.3389/fnume.2023.1324562.

[SV82]

L. A. Shepp and Y. Vardi. Maximum Likelihood Reconstruction for Emission Tomography. IEEE Transactions on Medical Imaging, 1(2):113–122, 1982. doi:10.1109/TMI.1982.4307558.