Many steps are available to clean functional MRI data prior to analysis. All are technically optional. Some are highly recommended. And there are many tools and methods to accomplish the same thing. This table is designed to help figure out what has already been done (and shouldn’t be done twice), what hasn’t, and how to design pipelines to get you from acquisition to actual analyses.

fMRIPrep
v20.2.0
HCP Original
v?
ABCD-DCAN
v0.0.4?
FSL Feat
v6.00

MR gradient nonlinearity induced distortions


not available

gradient_nonlin_unwarp

The bore of Siemens magnets have greater distortion than GE magnets, but none are completely consistent. The difference in magnetic field between the center and the periphery can be corrected with a gradient coefficient file from the scanner. This is less important with GE scanners, particular with centered participant placement. For this reason, the HCP gradunwarp tool only supports Siemens scanners, and has no option for GE.

See a great description in a github comment.

Motion Correction

mcflirt (6 DOF) 6 DOF FLIRT to single-band or slice 0

All fMRI acquisitions contain multiple volumes over time, each volume called a "TR" and usually taking around 2 seconds. Because the participant may move slightly over time, each volume is registered to the same space as a reference. The reference could be the first volume, the middle volume, the average of all volumes, or even the T1w space. These are all reasonable choices because the translation between them is linear. Good registrations to template spaces, like MNI152, would be nonlinear and overkill for motion correction.

Slice timing correction

turned off for multi-band with --ignore-slicetiming
normally, uses AFNI's 3dTShift

Susceptibility Distortion Correction (SDC)

was PEPOLAR, is now SDCFlows TOPUP FSL topup*
* SDC transform combined with BBR-based transform to other spaces for one-step transforms.

B1 intensity bias removal

approximate from structural image

Brain-mask BOLD frames

init_bold_reference_wf use PostFreeSurfer mask

Normalization

normalize to mean of 10,000

Smoothing

x x x optional

Smoothing is often used in volumetric studies to boost signal without boosting noise. In cortical surface studies, the same effect is obtained by averaging parcels without sacrificing spatial resolution in the same way.

Final image

files/task-*/task-*_nonlin_norm.wdir/

During later analyses, see fMRIPrep’s take and the 2007 Behzadi CompCor paper regarding confounds.

Additions, subtractions, and any corrections are appreciated. Email Mike or git clone https://github.com/mfschmidt/mfschmidt.github.io.git, edit, and submit a pull request.