Summary of what happened:
Hi all,
We’ve recently been trying out a cs-DSI sequence here at UCSB (which we got, I believe, from @mattcieslak) and I’m hoping to get some insights on processing these data through qsiprep. We collected one set of DSI images with A>>P phase encoding + an additional P>>A spin-echo sequence for SDC. My initial understanding was that we could use SHORELine for HMC, which would generate the A>>P b=0 images needed for subsequent SDC via 3dQwarp, as per:
Phase Encoding POLARity (PEPOLAR) techniques (also called blip-up/blip-down): This is the implementation from sdcflows, using 3dQwarp to correct a DWI series using a fieldmap in the fmaps directory [Jezzard1995]. The reverse phase encoding direction scan can come from the fieldmaps directory or the dwi directory.
It seems qsiprep is defaulting to TOPUP instead, though, and thus throws an error that TOPUP is not supported with SHORELine (see traceback below). So, I’m basically just wondering if—in this case—we actually need to collect both AP/PA SE fieldmaps, or need a P>>A DSI (which unfortunately our protocol won’t have time for), or if there’s just something else super obvious I’m missing entirely.
Thanks in advance for the help!
Command used (and if a helper script was used, a link to the helper script or the command generated):
/opt/singularity/bin/singularity run --cleanenv \
--bind /zwork/tyler/task28/data:/input \
--bind /zwork/tyler/task28/dwiDerivs:/output \
--bind /zwork/tyler/task28/dwiWork:/work \
--bind /sw/freesurfer/license.txt:/license.txt \
/zwork/tyler/qsiprep/qsiprep-1.0.1.sif /input /output participant \
--participant-label ${subID} \
--work-dir /work \
--anat-modality T1w \
--denoise-method dwidenoise \
--unringing-method rpg \
--b0-to-t1w-transform Rigid \
--output-resolution 1.7 \
--hmc-model 3dSHORE \
--hmc-transform Rigid \
--fs-license-file /license.txt
Version:
1.0.1
Environment (Docker, Singularity / Apptainer, custom installation):
Singularity
Data formatted according to a validatable standard? Please provide the output of the validator:
Collected data:
dwi:
- /input/sub-02/dwi/sub-02_dwi.nii.gz
flair: []
fmap:
- /input/sub-02/fmap/sub-02_acq-dwi_dir-PA_epi.nii.gz
roi: []
sbref: []
t1w:
- /input/sub-02/anat/sub-02_T1w.nii.gz
t2w: []
Relevant log outputs (up to 20 lines):
Traceback (most recent call last):
File "/opt/conda/envs/qsiprep/lib/python3.10/multiprocessing/process.py", line 314, in _bootstrap
self.run()
File "/opt/conda/envs/qsiprep/lib/python3.10/multiprocessing/process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/qsiprep/cli/workflow.py", line 118, in build_workflow
retval['workflow'] = init_qsiprep_wf()
File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/qsiprep/workflows/base.py", line 82, in init_qsiprep_wf
single_subject_wf = init_single_subject_wf(subject_id, session_ids)
File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/qsiprep/workflows/base.py", line 400, in init_single_subject_wf
dwi_preproc_wf = init_dwi_preproc_wf(
File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/qsiprep/workflows/dwi/base.py", line 251, in init_dwi_preproc_wf
hmc_wf = init_qsiprep_hmcsdc_wf(
File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/qsiprep/workflows/dwi/hmc_sdc.py", line 182, in init_qsiprep_hmcsdc_wf
raise Exception('TOPUP is not supported with SHORELine ')
Exception: TOPUP is not supported with SHORELine