Making Sure that the SDC has well-Applied

Hello everyone,

I have run fMRIPrep vesrion 23.0.1 on resting state fMRI data with fieldmap data (2 maginute and a phasediff). I am not sure how to QC the SDC output and to make sure whether the SDC has have done a good job or not using the html output of fMRIPrep. I have attached screenshots of the SDC corrected and the distorted image from the fMRIPrep html output, I would appreciate it if you could please guide me on that.
I checked this question from the past, but was not still sure.

Many thanks,


First, when you look at those two images, you can check wether the obviously stretched/compressed area of your native image are “undistorded” in the correct direction, i.e unstreched/uncompressed, respectively.
Secondly, the most important check is to look at the " Alignment of functional and anatomical MRI data" to check if the alignment bold-to-anatomical worked well and if the geometry of the corrected bold image overlap correctly with the T1w image.

Thanks a lot for your clarifications @jsein.
I am not sure whether I am looking at it right but it looks to me that SDC is doing a good job (e.g., in undistoriting the stretched area in the bottom right image). Would you please clarify it more with an example here if possible.

The Alignment of functional and anatomical MRI data seems to have done a pretty good job here.


What is shown here is the anatomical image along with the white and pial surfaces. What you can say from this image is that the anatomical processing from freesurfer went well. When you let your mouse hover on the image, you will go to the “moving” image, i.e the bold image (the ventricle are white) and you can check how well it align with white and pial surface. When looking at the image flickering from “fixed” to “moving” repetitively, you can assess if the ventricules and other structures overlap well between the anatomical and the bold images.

Hi @jsein ,

Many thanks for your guidance and reply. I wanted to remove SDC from fMRIPrep script and compare SDC output with no-SDC and decide whether to apply SDC or not (I replied with a delay to include the results). Accordingly, after checking both cases, my guess is that skipping SDC does a better job in terms of the alignment of functional and structural image in our data. The SDC output seems to be a bit scattered and the alignment is not as good as no-SDC although it is reasonable.
I would appreciate it if you could please enlighten me if I am mistaken.



The fixed image has been uploaded in the previous message.

Many thanks,

Indeed, I tend to agree with you, looking at these snapshots, I think also that EPI with no SDC has a closer fit (or at least looks surprisingly less deformed) to the anatomical image than the image with SDC. This follows the trend of reports showing this with FMRIPREP version > 20.2.7 and 2 magnitude and one phase difference image. See a similar report here and the two propositions to correct for this situation:

  • move to fmriprep LTS v20.2.7 and use SDC
  • skull strip the phase image (and not the magnitude images) before feeding them to fmriprep (whichever version).

You may try also the fieldmap-less option proposed by FMRIPREP to see if that works for your data if the SDC with provided fieldmap does not work well.

@jsein Thank you so much again for your time and the detailed guidance.

I have applied SDC using fMRIPrep LTS v20.2.7 as suggested, the output looks pretty reasonable.

I checked the fieldmap less SDC by including --use-syn-sdc flag with both v23.0.1 and v20.2.7_LTS. It did work fine to some extent for v.20.2.7 but not good for v23.0.1. The outputs are as follows:
synsdc with LTS v20.2.7

synsdc with v23.0.1

I started skullstripping the phasediff image using SynthStrip, but I’m having some trouble navigating it on singularity and HPC. I will try that and will upload the output here once created. (I intend to fix the issue by skull stripping the phasediff as suggested, to be able to use the latest fMRIPrep version).

Many thanks,

1 Like

Is there a way in the latest fmriprep version (>=23.x.x) to force usage of the LTS v20.2.7 SDC pipeline?
Is there a way in the latest fmriprep version (>=23.x.x) to produce both fieldmap-less and fieldmap-full func outputs?

No. The architecture of SDC changed completely between 20.2 and 21.0. I considered trying to restore it as an option, but the options are basically to revert it 100% or fix the problems in the new architecture.

1 Like

In regards to the second question:

  • would it be possible to produce both types of fieldmap corrected files? I’m guessing this is hard because the pipeline is designed to provide only one func/*_preproc_bold per input and I realize these would have to be labelled in the filename or the sidecar.

I’m just thinking it would be nice to have both SYN-SDC, 23.x.x fieldmap and 20.2.7 fieldmap func files in a BIDS organized manner next to each other

You’d need to run separately, but then you’re welcome to combine the derivatives however you want. It would be good to note that in a README and in the GeneratedBy section of the dataset_description.json.

1 Like