UCL / UCL/STIR

listmode projectors/ parallelproj for listmode

Open
#1,407 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
C++
Stars
160
Forks
113
Avg merge
12d 15h
Merged PRs (30d)
1

Description

Current listmode objective functions are essentially written in terms of ProjMatrixByBin. This is not suitable for GPU.

Some pointers:

Probably with not too much work the PoissonLogLikelihoodWithLinearModelForMeanAndListModeDataWithProjMatrixByBin can be generalised. We might need (and seem relatively easily add)

  • virtual void ForwardProjectorByBin::forward_project(std::vector<Bin>&), storing results in the value. (Currently a by bin version is disabled).
  • virtual void BackProjectorByBin::back_project(std::vector<Bin>&)

These would have to be implemented for the ProjMatrixByBin and Parallelproj projectors, but throw an error by default (for other projectors).

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with PoissonLogLikelihoodWithLinearModelForMeanAndListModeDataWithProjMatrixByBin and its gradient and sensitivity code, then read ForwardProjectorByBin.h, BackProjectorByBin, and the distributable.cxx gradient path. Compare the existing ProjMatrixByBin interfaces with the Parallelproj projector implementations. Done means listmode objective calculations can use vector for forward and back projection, with supported projectors implementing the operations and other projectors reporting an error.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
data
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.