I’m running some task and resting state data through fmri prep. Its pretty standard 3T multiband fmri with a resolution of 2mm^3, with 1mm^3 anatomicals. I’m curious if anyone has opinions on when gradUnwarp is useful (GradUnwarp - Free Surfer Wiki), either for the functional or anatomical data. My understanding is the distortions it corrects are small, making changes about the size of .1 or .2mm. It seems like it may only be useful to try for this level of accuracy in certain circumstances - for example, looking at pre- to post- changes in cortical thickness, or possibly when working with very high resolution 7T functional data. But for running the vanilla fmriprep pipeline on data with standard resolution, is it even worth introducing an extra interpolation step of running gradUnwarp prior to fmriprep?
Thank you for starting for this very interesting discussion. I have no real answer to this question but I can share a few personal observations and thoughts on this point.
As you say, depending on which scanner you got your data from, there may be more or less distorsions, depending on the gradient system that is used and also depending on how far from the isocenter the subjects were lying. In our case, on a 3T Siemens Prisma Scanner, we see very little distorsions when we compare images with or without gradient non linearity correction. We really notice it in the neck and sometime on the lower part of the cerebellum if the subject has a big head.
For preprocessing, in the HCP pipelines for example, the gradient non linearity correction is one of many transformations that is applied in on step. In that case it does not add any interpolation to the process. This is not possible with fmriprep (as far as I know) and as you say, this would apply an additional interpolation step to your data.
You speak of applying gradunwarp before fmriprep but I wonder if one could not apply it after? I read a similar discussion for diffusion MRI and it seems like in that case, the best option was to apply it after the initial preprocessing steps. Also you may want to think about the interaction of subjection motion with the non linearity of the gradient as it is discussed in the same paper about diffusion MRI:
Rudrapatna, U.; Parker, G. D.; Roberts, J.; Jones, D. K. A Comparative Study of Gradient Nonlinearity Correction Strategies for Processing Diffusion Data Obtained with Ultra‐strong Gradient MRI Scanners. Magn. Reson. Med. 2021, 85(2), 1104–1113. https://doi.org/10.1002/mrm.28464.
One last comment: from my personal observation on Siemens systems, if you have to apply your non linearity correction right at the start, I would rather use the Siemens routine to do so as I noticed that there was much less smoothing from interpolation visible in the data after that routine compared with when you calculate the correction with gradUnwarp and apply it with ‘applywarp’ from FSL using spline interpolation.