Skip to main content

SPECT Point Spread Function Toolbox

This toolbox provides functionality for developing and fitting PSF models to SPECT point source data; the developed PSF models can be loaded into PyTomography for general PSF modeling.

Installation

  1. Clone this repository and navigate to the directory you cloned into.
  2. If using anaconda (recommended) then activate the conda environment you want to install the repository in.
  3. Use the command python -m pip install -e . to install the current main branch.

Usage

See the documentation and in particular the associated tutorials for demonstration on how to use the library.

Contributing

If you wish to contribute, please see follow the contributing guidelines file. Contributions might include fixing bugs highlighted in the issues, as well as adding new features, such as new operators that accelerate the computational time of PSF modeling.

License

The package is distributing under the MIT license. More details can be found in the LICENSE.

Testing

There is an automated testing script to test the functionality of the library in the tests folder. It requires the pytest package is ran using pytest test_functionality.py.

Context

Gamma cameras used in SPECT imaging have finite resolution: infinitesmal point sources of radioactivity show up as finite "point spread functions" (PSF) on the camera. Sample PSFs from point sources at various distances from a camera can be seen on the left hand side of the figure below.

The PSF consists of three main components: (i) the geometric component (GC) which depends on the shape and spacing of the collimator bores, (ii) the septal penetration component (SPC) which results from photons that travel through the collimator material without being attenuated, and (iii) the septal scatter component (SSC), which consists of photons that scatter within the collimator material and subsequently get detected in the scintillator. When the thickness of the SPECT collimator is large and the diameter of the collimator bores is small relative to the energy of the detected radiation, the PSF is dominated by the GC and can be reasonably approximated using a distance dependent Gaussian function. When the energy of the photons is large relative to the collimator parameters, the PSF contains significant contributions from SPC and SSC and it can no longer be approximated using simple Gaussian functions. The tails and dim background present in the PSF plots in the figure below correspond to the SPC and SSC. For more information, see chapter 16 of the greatest book of all time

The figure below shows axial slices of reconstructed Monte Carlo Ac225 SPECT data. The images highlighted as "PSF Model" correspond to application of a PSF operator developed in the library on a point source. The images highlighted as "New" are obtainable via reconstruction with PyTomography using the PSF operators obtained in this library; they require comprehensive PSF modeling.

ac225

Release files for spectpsftoolbox 0.1.2

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

Source distribution (sdist)

Source distribution for spectpsftoolbox 0.1.2
File Size Uploaded
spectpsftoolbox-0.1.2.tar.gz 3.2 MB Details

Built distribution (wheel)

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

Total release size: 3.2 MB

Release files / spectpsftoolbox-0.1.2.tar.gz

Download URL spectpsftoolbox-0.1.2.tar.gz
Size 3.2 MB
Tags Source
SHA-256 checksum
How to use checksums
3e044732587f779a5d012d82592e1a4d2fdfff0486ddc930890f6b8fba0d6757
BLAKE2b-256 checksum
How to use checksums
0de56fd541c607e1c08a2cc88b31cd92ac293d3b3a77b6330627d8588bf5b6a2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.8

Release files / spectpsftoolbox-0.1.2-py3-none-any.whl

Download URL spectpsftoolbox-0.1.2-py3-none-any.whl
Size 16.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7a69a0e0fc2ca12ac149dc8820651a96b0cbbba1abafd52d44faa78d3b125125
BLAKE2b-256 checksum
How to use checksums
026af17512dc21e4561514828fc0063a0716d817781c4c04f7eb57a026877356
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.8

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.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