Nuisance regression in AFNI's 3dRSFC

Hi experts who use AFNI,

I am attempting to use 3dRSFC to obtain ALFF, fALFF measures and I would like to conduct bandpass filtering, nuisance regression (of motion parameters, compcor, etc) all in one step, consistent with what 3dTproject does and what has been proposed by Lindquist 2019 ( I was wondering if I can feed in a .1D nuisance regressor file into 3dRSFC (I am looking at the -ort option, but not sure if this is nuisance regression…). Alternatively, if nuisance regression in 3dRSFC isn’t available, is there a way I can obtain ALFF, fALFF measures from 3dTproject?

Thank you so much!

Hi @fmriguy,

You’re looking at the right option. -ort is exactly what you think it’s for: orthogonalizing your data to whatever nuisance regressors are located in the file you provide. With respect to the Lindquist et al., 2019 paper it’s worth noting that 3dRSFC does not work like 3dTproject; however, it still follows the authors’ recommendations for “best practices!”

To explain a bit, 3dTproject follows the authors’ first recommendation:

The first approach would be to…use a joint approach that simultaneously performs the different preprocessing steps within an omnibus framework.

Indeed, the authors explicitly highlight 3dTproject in the article as an example of this approach. While 3dRSFC does not generate this single omnibus framework, it does follow their second recommendation:

The second approach is to formulate the design matrices used in each preprocessing step in such a manner that when applied sequentially they are constrained to project onto orthogonal subspaces.

In 3dRSFC the bandpassing / detrending which is applied to the functional time series data is also applied to the nuisance regressors before those are removed from the time series, and so on and so forth for all the preprocessing steps, to ensure you’re not reintroducing artifacts into your data.

Tl;dr: you’re good to use 3dRSFC! If you want to use both programs you can do that, too, as in:

3dTproject -input dirty_data.nii.gz -prefix cleaned_data.nii.gz -ort nuisance.1D
3dRSFC -input cleaned_data.nii.gz -prefix rsfc -band 0 99999 -nodetrend

Note the extra flags you need to pass to 3dRSFC in this case to turn off the automatic detrending and bandpass filtering—because of that it might be more parsimonious to just make a single call to 3dRSFC.

Hope that helps!


@rmarkello, thank you for the detailed response, really appreciate it! This gives me confidence to use 3dRSFC with the -ort option.
I have an additional question regarding the comment you made near the end regarding using 3dRSFC from the output of 3dTproject. I assume that if I bandpass the data in 3dTproject first, the frequency-based metrics I obtain from 3dRSFC (such as fALFF) would be incorrect because the input data would not have the full frequency range. So I need to be careful about the input characteristics of the data, am I right about that?

You’re totally right, yes: the calculation of fALFF would be incorrect if you did the two-step procedure since 3dRSFC would be unable to obtain the full frequency range. That said, the other metrics should still be okay!

If you’re set on using fALFF in your analyses then doing all the data processing with 3dRSFC is probably the best bet.