Regressing Phsyiological Noise From fMRI Rest

Hi all,

I am cleaning old rest data that the lab has not gotten around to using (preferably via Python). For each scan, I have raw timeseries from both a respiration belt and a pulse-ox, already trimmed and resampled to the TR frequency.

My question is, what are the next steps to use this data to clean the rest data? Is it as simple as fitting a linear model predicting each voxel’s timeseries from the noise timeseries, then saving out the residuals? Knowing fMRI, this feels too straightforward.

If you have those respiratory and pulse-ox data, your best bet may be to run RETROICOR (you can do that in AFNI AFNI program: 3dretroicor). Otherwise, you can regress out aCompCor components. If you haven’t already, you may want to preprocess the raw scans with fMRIPrep first to do minimal preprocessing before regressing the noise out. fMRIPrep will also give you the acompcor components to use if you do go down that route.

1 Like

RetroTS.py is the program we usually recommend for this nowadays in AFNI.

https://afni.nimh.nih.gov/pub/dist/doc/program_help/RetroTS.py.html

1 Like

Hi Both,

Thank you so much for this guidance (and apologies for the delay; I took some time off)!

To clarify the process, you are suggesting to 1) use retroTS.py to resample the physio timeseries and produce the {mask/resp}.1d outputs, then 2) use the outputs in a call to 3dretroicor to regress out the physio noise from the functional scan. Is this correct?

I see that 3dretroicor can be called via nipype here. Is there something similar available for RetroTS.py?

Also, @Steven, the data is preprocessed with fMRIPrep, and we have aCompCor components available.

Thank you again!

1 Like

Sorry for late reply! I have not used 3dretroicor so I do not know about the need of resampling, but your plan of attack sounds reasonable. I do not know of a retroTS option for nipype.

Best,
Steven

1 Like

Hi both, thank you very much for this help!

I’ve been pursuing this but unfortunately ran into a new issue using 3dretroicor. It seems like a header issue. I’ve posted the issue here; if you or your labmates have any insight, I’d greatly appreciate it!

Sincerely,
Henry