The latest on motion censoring using fMRIprep?

Hi, folks,

It’s been a while since I looked carefully at options within fMRIprep to do motion censoring. Back a few years ago, there wasn’t a good way I could find to do motion censoring in fMRIprep before any temporal filtering happened.

Is there a straightforward way to do that these days? XCP engine had a pretty good version of motion censoring implemented, but XCP engine works only on volumetric data with a single template. It’s not elegant as it could be, and I thought someone might have made a nice way to motion censor as a next step.

Any suggestions welcome. Maybe the ABCD pipeline is a good fit? (3. Pipeline - Collection 3165 - ABCD-BIDS Community Collection (ABCC))

some previous threads that are dancing around but not quite getting to my question: Motion outliers
Use fMRIprep to perform motion correction?

Hi @Kristina_Visscher,

fMRIPrep returns framewise displacement and standardized DVARS measurements that can be parsed to find outliers. fMRIPrep also does not return filtered data, but does return cosine regressors from Discreet Cosine Transformation filter that if included in a general linear model will high-pass your data at (1/128)Hz. So you can control the order in which censoring and filtering happens.

Perhaps the most straight forward thing to do would be to set the FD and DVAR thresholds in your fMRIPrep command, and then use include all the motion_outlier confounds in your GLM (if you want to do more advanced scrubbing, such as discarding any contiguous volume sequences fewer than 5 volumes, you may need to have a script to parse and edit the confounds file). I also recommend looking at Nilearn’s fMRIPrep interface module for loading denoising strategies.

XCP_D works on surface CIFTI data as well as volumetric. It also internally calls upon the Nilearn module I referenced above. (see the strategies available here)