Time Series Analysis: Difference between revisions

From CCN Wiki
Jump to navigation Jump to search
No edit summary
Line 40: Line 40:


This script may change over time (some of the file names are hard-coded in this example), but the gist is that it calls the mri_glmfit function and saves the residuals after the linear trend has been removed from the data. The detrended data is saved in each run directory as a new file called detrend.''something''.?h.mgh.
This script may change over time (some of the file names are hard-coded in this example), but the gist is that it calls the mri_glmfit function and saves the residuals after the linear trend has been removed from the data. The detrended data is saved in each run directory as a new file called detrend.''something''.?h.mgh.
== SPM ==
Steps for SPM data have not been implemented yet.

Revision as of 12:51, 3 May 2016

Inferences about functional connectivity can be made from analyses of time series data. The underlying assumption is that correlations between brain activity in different brain regions indexes connectivity between them. These correlations are calculated over vectors of activation values across a period of time.

When doing these analyses on MRI data, we must define the regions from which these time series will be drawn, and then extract the time series for each region that will be entered into the analysis. The time series vectors are saved into a flexibly interpretable file (e.g., plaintext) that can be read into some other software suitable for operating over sets of numbers (e.g., R, MATLAB, Excel).

FreeSurfer

The first precondition for these analyses in surface space is that the anatomical data must be processed in FreeSurfer, and a functional analysis must be run on the BOLD data.

The brain regions from which the time series are drawn can be defined any number of ways. One way of defining these regions has been to use anatomical region definitions. Because different anatomical regions vary greatly in size, we have been using the Lausanne 2008 parcellation scheme to divide the cortex into roughly 1000 regions of comparable size. The second precondition for this analysis is to define your regions of interest. Any definition method that has been documented is allowable, though at this point, instructions exist on this wiki for the Lausanne 2008 parcellation scheme.

Detrending

Over the course of a run, there can be a linear drift in the signal in different regions of the brain. There are many possible causes for this that have nothing to do with any interesting aspect of your data -- in other words, this linear drift is a nuisance artifact. This drift needs to be removed from the data because it can introduce spurious correlations between two unrelated time series. You can see this for yourself in a quick experiment you could whip up in Excel: take two vectors of 100 randomly generated numbers. They should be uncorrelated. Now add 1, 2, 3, ... , 99, 100 to the values in each vector. This simulates a linear trend in the data. You shouldn't be surprised to find that the two vectors are now highly correlated!

A script has been written called detrend.sh that removes the linear trend in your BOLD data:

detrend.sh

#!/bin/bash
subs=( "$@" );
hemis=( "lh" "rh" );
FUNCTIONALS_DIR=`pwd`
for sub in "${subs[@]}"; do
   source_dir=${FUNCTIONALS_DIR}/${sub}/bold		
   if [ ! -d ${source_dir} ]; then
       #The subject_id does not exist
       echo "${source_dir} does not exist!"
   else
	cd ${source_dir}	
	readarray -t runs < runs
	
	for r in "${runs[@]}"; do
		for hemi in "${hemis[@]}"; do
			cd ${source_dir}/${r}
			pwd
        		#subject_id does exist. Detrend
               	mri_glmfit --y ${source_dir}/${r}/fmcpr.sm0.self.${hemi}.nii.gz \
       		--glmdir ${source_dir}/${r}/${hemi}.detrend --qa --save-yhat --eres-save --surf ${sub} ${hemi}
			mv ${source_dir}/${r}/${hemi}.detrend/eres.mgh ${source_dir}/${r}/detrend.fmcpr.sm0.self.${hemi}.mgh
       	done
	done
   fi
done

This script may change over time (some of the file names are hard-coded in this example), but the gist is that it calls the mri_glmfit function and saves the residuals after the linear trend has been removed from the data. The detrended data is saved in each run directory as a new file called detrend.something.?h.mgh.

SPM

Steps for SPM data have not been implemented yet.