ENH: Upstream ResampleSeries resampling engine from fMRIPrep
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 35
- Forks
- 18
- Avg merge
- 21h 48m
- Merged PRs (30d)
- 1
Description
Summary
fMRIPrep contains the core one-shot resampling engine for EPI time series in fmriprep/interfaces/resampling.py. This is the most architecturally significant piece of fMRIPrep code that should be shared across NiPreps.
ResampleSeries interface + resample_image / resample_vol / resample_series functions
The core one-shot resampling engine that combines:
- Per-volume HMC transform application (VOX2VOX)
- Fieldmap-based coordinate displacement with PE direction
- Jacobian intensity correction
- Async concurrent per-volume resampling
The modality-agnostic core (resample_vol, async infrastructure) can serve as the shared resampling engine for fMRIPrep, dMRIPrep, and NiBabies.
Supporting utility: asynctools.worker (fmriprep/utils/asynctools.py)
Async semaphore-gated worker function for concurrent resampling.
Code to upstream
ResampleSeriesNipype interfaceresample_image,resample_vol,resample_seriesfunctionsasynctools.workerutility
Rationale
- dMRIPrep needs essentially identical one-shot resampling (with DWI-specific adaptations)
- The core
resample_volfunction is modality-agnostic - NiTransforms is the natural home for the reference resampling implementation
- This would become the shared resampling engine for the entire NiPreps ecosystem
Priority
HIGH — cornerstone of the transform stage, critical for dMRIPrep.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading fmriprep/interfaces/resampling.py and fmriprep/utils/asynctools.py, focusing on ResampleSeries, resample_image, resample_vol, resample_series, and worker. Determine how these components should be shared in NiTransforms; done means the listed interface, functions, and utility are upstreamed for reuse by fMRIPrep, dMRIPrep, and NiBabies.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100