Resting State Analysis

Hi AFNI experts,

I wanted your opinion on resting state analysis. I am looking for the most updated/accepted practice of analyzing resting state data. I have looked at both 11 and 5c on afni proc py. Is 11 perhaps a better way to analyze resting state data now than 5c?

Thanks,

Emily

Hi Emily,

There are many opinions about how to process
resting state data. But if you have physiological
recordings, then it would be good to incorporate
them.

The main difference between examples 5c and 11
is that 5c uses bandpassing, while 11 uses tissue
based regression. Either way is reasonable and
defensible. I personally do not like band passing,
but that is up to you.

Here is some of my more formal whining about
the cost of band passing:

One aspect of band passing that may be commonly ignored is its cost in
terms of degrees of freedom (DoF). Projecting out frequencies can be
viewed in terms of a linear regression with sines and cosines at the
relevant frequencies to project out. So the question becomes, how many
DoF remain?

Consider 3 examples, each having 1000 s of data, but at varying
TRs of 2 s (500 time points), 1 s (1000 time points) and 0.1 s
(10000 time points). Focusing only on the low-pass side, assume
the common pass band of 0.1 Hz, or one cycle every 10 s.

At TR=2s, 40% of the DoF remain, because the Nyquist frequency
is 0.25, and 0.1/0.25 = 0.4. So out of 500 time points, 200 remain
and 300 are lost. At TR=1s, only 20% of the DoF remain, as 0.1/0.5
= 0.2. So out of 1000 time points, 200 remain and 800 are lost. And
at TR=0.1s, only 2% of the DoF remain, as 0.1/5 = 0.02. So out of
10000 time points, 200 remain and 9800 are lost.

This demonstrates that when band passing below 0.1, the effective
TR becomes 5 s, leaving only 200 time points for 1000 s of data,
regardless of the scanning TR. At a very fast TR such as 0.1 s, the
cost is staggering. Even at TR=2 s, using 200 regressors to model
one aspect of noise in a 500 time point model is very expensive.
That band passing can be done in a separate step using a Fourier
Transform does not change the cost, it just makes it harder to see.

</bandpass rant>

Hi Rick,

Thank you for the very helpful reply. So I am attempting to do resting state example #11 in afni proc py. I am not as well versed in Freesurfer so bare with me. I am having some trouble finding the freesurfer file names listed in the afni example. I am using the latest Freesurfer and it did say it ran without error at the terminal.

So, for the FT_Surf_Vol.nii, is the anat that is aligned to Freesurfer masks. I am assuming in my case that this would be the ${subject}.fs file that it made, in the same directory where the original spgr file was. Now for the, aparc.a2009s+aseg_rank.nii file. I do not have one that has an “_rank”. Is it okay to use the un ranked version?

Thanks,

Emily

Hi Rick,

Okay the ${subject}.fs is a directory. That directory contains a mri folder with the aseg files. I assume I should be using the aseg files coming from the ${subject}.fs and not the fsaverage folder, then mri?

Sorry for all the questions and confusion. Still no _rank file though. I assume the T1.mgz is the input anat file we would need from freesurfer?

Emily

Hi Emily,

Please see “FREESURFER NOTE” in the help. It states exactly
how those datasets were created (for Example 11). Note that
the _rank datasets are not actually needed for the analysis.
They are just there for visualization.

  • rick

Hi Rick,

Thank you! I understand how to make the FS_vent, and FS_white based on the Freesurfer note.

I guess the final confusion lies in the input Freesurfer anatomy. You have it labeled as " FT_SurfVol.nii" Is this equivalent to the “T1.mgz” file that is created by Freesurfer?

Also, Freesurfer creates an “fsaverage” folder and a "${subject}.fs folder. Both contain an mri folder with all the aseg files and a T1.mgz file. Does it matter whether I take from fsaverage or ${subject}.fs?

Given that the “_rank” file is not used in the analysis, should I remove that step entirely?

Thanks for getting me going!

Emily

Did you run @SUMA_Make_Spec_FS on the FreeSurfer
result? That creates a SUMA directory with the appropriate
datasets. So for subject FT I ran:

recon-all -all -subject FT -i FT.nii
@SUMA_Make_Spec_FS -sid FT -NIFTI

where the Make_Spec command is from the FT directory.

After that, the only difference should be in the subject ID.

Do you have the SUMA directory? Did you use -NIFTI?

  • rick

Hi Rick,

Thank you so much. I have used @SUMA_Make_Spec_FS and made the ventricle and white matter masks.

I have finished writing the number 11 afni script. One issue that I am running into is the following error: ** ERROR: erode label ‘/Volumes/HaleDepo/AGS/Freesurfer_SPGR_1/AGS.fs/mri/SUMA/AGS_vent’ not in followers list
** ERROR: erode label ‘/Volumes/HaleDepo/AGS/Freesurfer_SPGR_1/AGS.fs/mri/SUMA/AGS_WM’ not in followers list

Do we need to make labels ahead of time with @MakeLabelTable? Or a different program? Also it shows a warning that ** warning: have duplicate anat follower: aparc.a2009s+aseg_rank.ni? I am assuming this is okay, given that it is called twice?

Thank you for your time and expertise!

Emily

That “ERROR: erode label” error suggests that you
gave a dataset with the -anat_follower_erode option,
rather than a follower label. Would you provide an
updated afni_proc.py command? Or if it would make
you more comfortable, mail it to me.

The duplicate anat follower is presumably because
you are resampling one at the anat resolution and
one at the EPI’s (as is done in the example). So it
is okay. Note again that the rank dataset is not
needed for the analysis.

  • rick