Skip to content

Applying multiple pairs of PEPOLAR-style field maps with B0Field* fails #3276

Open
@tsalo

Description

@tsalo

What happened?

I am attempting to process some HCP data that has been internally curated. The curators chose to use all four AP-PA field map pairs as the B0FieldSource for the functional runs. Based on a discussion with @effigies (see https://mattermost.brainhack.org/brainhack/pl/wnupxzxja786bcjt1yqtwo95dy), SDCFlows should be able to handle this scenario, as long as we use B0Field* fields instead of IntendedFor (see nipreps/sdcflows#342), but I am getting an error when I run fMRIPrep.

I have modified ds002156 to reproduce the problem with publicly-shareable data. The modified dataset is available at https://upenn.box.com/s/alwtsx9y1m143ylvyfy2o72uixfydg6g. It's about 50 MB.

What command did you use?

singularity run --home $HOME --cleanenv --containall \
    -B /cbica/home/salot/datasets/sdcflows-test/data:/data \
    -B /cbica/home/salot/datasets/sdcflows-test/derivatives:/out \
    -B /cbica/home/salot/datasets/sdcflows-test/work:/work \
    -B /cbica/home/salot/datasets/mobile-phenomics/freesurfer_license.txt:/license.txt \
    /cbica/home/salot/datasets/hcpd-derivatives/code/singularity/fmriprep-23_2_1.sif \
    /data \
    /out/fmriprep \
    participant \
    -w /work \
    --nprocs 1 \
    --omp-nthreads 1 \
    --output-spaces func T1w MNI152NLin6Asym \
    --output-layout bids \
    --cifti-output \
    --fs-license-file /license.txt

What version of fMRIPrep are you running?

23.2.1

How are you running fMRIPrep?

Singularity

Is your data BIDS valid?

Yes

Are you reusing any previously computed results?

No

Please copy and paste any relevant log output.

Process Process-2:
Traceback (most recent call last):
  File "/opt/conda/envs/fmriprep/lib/python3.10/multiprocessing/process.py", line 314, in _bootstrap
    self.run()
  File "/opt/conda/envs/fmriprep/lib/python3.10/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/opt/conda/envs/fmriprep/lib/python3.10/site-packages/fmriprep/cli/workflow.py", line 115, in build_workflow
    retval["workflow"] = init_fmriprep_wf()
  File "/opt/conda/envs/fmriprep/lib/python3.10/site-packages/fmriprep/workflows/base.py", line 94, in init_fmriprep_wf
    single_subject_wf = init_single_subject_wf(subject_id)
  File "/opt/conda/envs/fmriprep/lib/python3.10/site-packages/fmriprep/workflows/base.py", line 577, in init_single_subject_wf
    raise NotImplementedError("Sophisticated PEPOLAR schemes are unsupported.")
NotImplementedError: Sophisticated PEPOLAR schemes are unsupported.

Additional information / screenshots

When I run the sdcflows command line within the fMRIPrep singularity image, I get the following. This seems to imply that fMRIPrep should be able to handle these data.

>>> singularity shell /cbica/home/salot/datasets/hcpd-derivatives/code/singularity/fmriprep-23_2_1.sif
>>> sdcflows data derivatives participant --dry-run
Estimation for </cbica/home/salot/datasets/sdcflows-test/data> complete. Found:
        sub-23638
                FieldmapEstimation(sources=<6 files>, method=<EstimatorType.PEPOLAR: 2>, bids_id='pepolarall')
                        j	ses-01/fmap/sub-23638_ses-01_acq-rest_dir-match_run-1_epi.nii.gz
                        j	ses-01/fmap/sub-23638_ses-01_acq-rest_dir-match_run-2_epi.nii.gz
                        j	ses-01/fmap/sub-23638_ses-01_acq-rest_dir-match_run-3_epi.nii.gz
                        j-	ses-01/fmap/sub-23638_ses-01_acq-rest_dir-opp_run-1_epi.nii.gz
                        j-	ses-01/fmap/sub-23638_ses-01_acq-rest_dir-opp_run-2_epi.nii.gz
                        j-	ses-01/fmap/sub-23638_ses-01_acq-rest_dir-opp_run-3_epi.nii.gz

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions