Skip to content

Add multi-frame PET motion correction - #40

Merged
tctco merged 1 commit into
masterfrom
agent/pet-motion-correction
Aug 29, 2026
Merged

Add multi-frame PET motion correction#40
tctco merged 1 commit into
masterfrom
agent/pet-motion-correction

Conversation

@tctco

@tctco tctco commented Aug 29, 2026

Copy link
Copy Markdown
Owner

Summary

  • add a general PetMotionCorrector preprocessing module for X × Y × Z × N PET NIfTI data
  • add DCCCcore pet-motion-correct with optional corrected-dynamic NIfTI and motion TSV outputs
  • independently register every frame to frame 0 using ITK Euler 3D rigid transforms, Mattes mutual information, multi-resolution registration, and linear resampling
  • automatically motion-correct and average declared 4D inputs before the existing adni-pet-core 3D pipeline, while leaving declared 3D inputs on the existing path
  • distinguish true 3D NIfTI from declared 4D N=1 data, despite ITK collapsing trailing singleton axes
  • update DCCCcore to 4.3.0 and document the command

Tests

  • Docker Release build: passed
  • full Docker pytest suite: 113 passed, 8 skipped
  • targeted post-review rebuild/tests: 5 passed
  • manually verified /home/cheng/DCCCSlicer/localizer/src/tests/4frames.nii.gz: 4 frames corrected and averaged successfully

New automated coverage includes:

  • 3D input rejection by pet-motion-correct
  • 4D output-to-3D conversion and float output type
  • declared 4D N=1 identity behavior
  • known synthetic translations/rotations with substantial alignment recovery
  • corrected dynamic output and motion TSV contents
  • unchanged declared-3D adni-pet-core routing
  • automatic 4D motion correction → average → ADNI PET Core integration

@tctco
tctco merged commit 7d84a64 into master Aug 29, 2026
3 checks passed
@tctco
tctco deleted the agent/pet-motion-correction branch August 29, 2026 15:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant