Skip to content

samdporter/petsird-v0.2-parallelproj

 
 

Repository files navigation

PETSIRD v0.2 - parallelproj repository

The purpose of this repo is to provide a starting point for developing software that uses PETSIRD. Here we will focus on python usecases using parallelproj projection library.

Create your conda / mamba environment

conda env create -f environment.yml

Run a first PETSIRD example

conda activate petsird-v0.2-parallelproj
cd python
python petsird_generator.py > test.bin
python petsird_analysis.py < test.bin

Projects to work on

Read scanner geometry from a PETSIRD file and visualize it

TODO:

  • start from this parallel example here and this petsird example here
  • map PETSIRD scanner detector elements to LOR endpoints
  • How to map BoxShape to a single LOR point? (center of the Box is not want we want. We need most likely interaction point.)
  • use LOR endpoints to setup BlockScannerModules tha can be used in ModularizedPETScannerGeometry or a RegularPolygonPETScannerGeometry - depending of the system geometry and module definition. Using the latter is more convient for the definition of sinograms, the former is better for systems with less symmetries where it is less straight forward to define "sinograms".

Simulation of PETSIRD LM data using parallelproj

Start from this parallelproj example.

TODO:

  • rewrite (simplify) util function that converts sinogram to listmode including event detectors IDs instead of coordinates. Write an updated noisy emission sinogram to LM converter similar to this but skipping the detector ID to world coordinate lookup.
  • write scanner geometry to file

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 89.0%
  • Dockerfile 9.3%
  • CMake 1.1%
  • Shell 0.6%