Gradient nonlinearity correction for Siemens: Best practices for HCP pipelines vs fMRIPrep

Summary of what happened:

We’re preparing preprocessing for a dataset (Siemens 3T) and want to clarify how to handle gradient nonlinearity correction across HCP Pipelines and fMRIPrep before implementation.

Setup

  • Siemens 3T (non-Connectom) scanner
  • Outputs both T1w (gradient-corrected) and T1w_ND (uncorrected) images
  • Have access to coeff.grad file

Questions

  1. HCP Pipelines
  • When using T1w_ND + coeff.grad, how much improvement should we expect on a standard 3T system compared to using the pre-corrected T1w with GradientDistortionCoeffs=“NONE”?

  • Does the pipeline also apply gradient correction to functional, diffusion, and field map data when a coeff.grad file is provided? How do I know if our scanner corrects for those files (if needed) by default?

  1. fMRIPrep
  • Does fMRIPrep support or use gradient coefficient files?
  • If only T1w is corrected, could this cause any issues with uncorrected functional data?
  • Are field maps affected by gradient distortion, and if so, does fMRIPrep account for this?

Currently fMRIPrep does not perform gradient nonlinearity correction. There are open efforts to handle this, but they are not comprehensive. For example, nobody has started working on fieldmaps, if they require it. I would assume they do, but I’ve been wrong before.

If you would like to process gradient unwarped data, you need to unwarp it prior to passing it to fMRIPrep, as of version 25.2 (and earlier).

I can’t say when (or if) that will change, but it would be a good practice to ensure that NonlinearGradientCorrection is accurately set in all input files. If we support correction, it will be important to be able to identify from metadata which files it should or should not be applied to. We will also set that field in output files to indicate that the file has been corrected.