parallelproj - high-level python routines for tomographic reconstruction
parallelproj provides simple and fast high-level python routines for tomographic reconstruction 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).
If you are using parallelproj, we recommend to read and cite our publication
- G. 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
parallelproj is distributed through conda-forge (it cannot be installed with pip
alone — its compiled backend is only on conda-forge, not on PyPI):
mamba create -n parallelproj -c conda-forge parallelprojFull installation instructions, the API reference and the example gallery are in the official documentation on Read the Docs: https://parallelproj.readthedocs.io/en/stable/
You can also try the examples in your browser — no install — via Binder, or start from the minimal quickstart example.
Contributions are welcome! Development uses pixi (pixi shell,
pixi run test, pixi run docs). See CONTRIBUTING.md for the
full development setup, coding conventions, testing/coverage and the pull-request
workflow.
Note: this repository is the pure-Python front end. The compiled projection kernels live in the separate
libparallelprojproject (distributed asparallelproj-coreon conda-forge), so changes to the C/CUDA Joseph projectors must be made there — editing this clone does not rebuild the backend.
