I am trying to do classification of rs-fMRI data, The problem is that I have several rs-fMRI data for each person and I have to choose one among them (supposing that they all passed pre-processing steps) but I don’t know how. I looked at the data that is left over by uber_subject.py, And I saw TSNR, When I checked the data carefully I saw that usually TSNR average, is correlated with TRs censored That means when the number of censoed TRs goes up usually average TSNR goes up too. So I guessed that lower TSNR would be better, so I chose the data with the least TSNR, But my results are very bad, so I went back and chose the ones with the highest TSNR, now my results are much more better. How is that possible? How can a subject that lost lots of its TRs have higher TSNR and works better when it comes to functional analysis?
TSNR is the temporal signal-to-noise ratio. And as signal
is good and noise is bad, it is desirable for this to be a
higher ratio. If you look closely at the @ss_review_basic
output (in out.ss_review.txt), you will probably an inverse
relationship between TSNR and average censored motion (which
is to say the average subject motion, ignoring any time
points that were censored).
So subject motion, that which is not censored, will bring
the TSNR down.
In any case, yes, having subjects with higher TSNR should
yield better results.
I want to perform the signal-noise-ratio. Could i use the 3dTstat with -tsnr on the perprocessed data (after normalized, motion corrected, detrend…)?
That would compute a TSNR result, but it might not be so desirable. That would not account for slow drifts, motion parameters in the data, etc. The drifts would make the biggest difference.
The way it is computed in afni_proc.py is to take the mean of the signal before the final linear re
gression divided by the stdev of the noise (the residual from the regression, after task, drifts, motion, etc. are removed).
Consider how it is done in AFNI_data6/FT_analysis/s12.proc.FT.align, for example. Search for TSNR.