UCL / UCL/STIR

number of views in subsets can be very unbalanced

Open
#265 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

This was originally https://github.com/CCPPETMR/SIRF/issues/214. See there for more info.

When you run OSMAPOSL, STIR will check that subsets are balanced (in terms of #views only of course, not stricly in terms of equal subset-sensitivities). For other algorithms, this is not a requirement, so it won't do that check (I believe STIR writes a warning). @mehrhardt, I'm guessing that your algorithms doesn't need balanced subsets...

The subset scheme in STIR was developed for when the number of subsets does divide the number of views. With default settings for the projector, it's actually a bit more complicated, as it puts views that are related by symmetry inside the same subset. This means that usually you have that num_subsets needs to divide num_views/4.

I have never spend any time on checking what happens with the subsets for other cases. I know the code doesn't fall over, but that's about it! The actual code is here.

Clearly, what you see is not desirable, but this code is really is basic as it gets. I guess therefore that the effect that you see is due to surprises with the symmetries.

I'm not sure what we could do to resolve this.

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 src/recon_buildblock/find_basic_vs_nums_in_subset.cxx and the original issue 214. Investigate how non-divisible view counts and projector symmetries produce unequal subsets, then establish the expected behavior for algorithms other than OSMAPOSL. Done requires an agreed resolution and corresponding implementation for the imbalance.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
data
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.