Question about Susceptibility Distortion Correction (SDC) in fMRIPrep with Fieldmaps

Summary of what happened:

I am writing to clarify some questions regarding Susceptibility Distortion Correction (SDC) in fMRIPrep:

  1. If fieldmaps (fmap) are provided in a valid BIDS format, will fMRIPrep automatically detect and apply them for SDC? If not, what command-line option should I explicitly use to enable SDC?
  2. The fMRIPrep documentation states:
    “Please note that all routines for susceptibility-derived distortion correction have been excised off of fMRIPrep for utilization on other projects (e.g., dMRIPrep). For more detailed documentation on SDC routines, check on www.nipreps.org/sdcflows.”*

Does this mean that fMRIPrep no longer implements SDC at all, or just that the implementation has been modularized and can still be invoked?

  1. I have fieldmaps available, but the final fMRIPrep report shows “Susceptibility distortion correction: None”. My file structure follows BIDS convention, so I am wondering why SDC was not applied.

Command used (and if a helper script was used, a link to the helper script or the command generated):

Here is the command I used:

#!/bin/bash
singularity run --cleanenv /home/hujian/HJ/soft/fmriprep.simg \
/home/preprocess/data \
/home/preprocess/out \
--nprocs 40 --omp-nthreads 1 \
--use-aroma --aroma-melodic-dimensionality -200 \
--output-spaces fsaverage5 MNI152NLin2009cAsym:res-2 \
--low-mem \
--write-graph \
--cifti-output 91k \
--fs-license /home/hujian/soft/freesurfer/license.txt \
-w /home/preprocess/out/temporal \
participant

Version:

Environment (Docker, Singularity / Apptainer, custom installation):

Singularity

Data formatted according to a validatable standard? Please provide the output of the validator:

  1. I added the following "IntendedFor" field to my fieldmap JSON:
"IntendedFor": [ 
    "bids::sub-0002/ses-01/func/sub-0002_ses-01_task-multi_run-1_bold.nii.gz", 
    "bids::sub-0002/ses-01/func/sub-0002_ses-01_task-multi_run-2_bold.nii.gz"   
]

But I received this validator error:

[ERR] 'IntendedFor' field needs to point to an existing file. (code: 37 - INTENDED_FOR)
./sub-0002/ses-01/fmap/sub-0002_ses-01_dir-AP_epi.nii.gz
Evidence: bids::sub-0002/ses-01/func/sub-0002_ses-01_task-multi_run-1_bold.nii.gz
./sub-0002/ses-01/fmap/sub-0002_ses-01_dir-AP_epi.nii.gz
Evidence: bids::sub-0002/ses-01/func/sub-0002_ses-01_task-multi_run-2_bold.nii.gz

However, the files do exist at the specified locations. Could you please clarify the correct format for the IntendedFor field when using absolute BIDS URIs?

Relevant log outputs (up to 20 lines):

PASTE LOG OUTPUT HERE

Screenshots / relevant information:


Hi @cjxjoy and welcome to neurostars!

In the future please use the Software Support post template which helps organize your post and asks for relevant information. You can see I edited in for you this time, and there is still missing information you can provide by editing your post. You can also see that I have edited your code/terminal text accordingly with the </> button in the text editor. Please use that for future code/terminal text.

No, you need to use IntendedFor or B0FieldIdentifier/B0FieldSource method (keep in mind if both are specified, fMRIPrep will default to the B0 metadata even if it is incorrect).

No, it just means all of the SDC code is in a different repo, called SDCFlows (GitHub - nipreps/sdcflows: Susceptibility Distortion Correction (SDC) workflows for EPI MR schemes). SDCFlows is used by fMRIPrep.

It appears based on your error that IntendedFor was not set correctly.

Please provide the tree directory structure of this subject, and the contents of the fieldmap jsons.

Best,
Steven

Thank you very much for your detailed explanation. Regarding the path issue, I have resolved it by referring to the example on the BIDS website. Thanks again!