Time Series Data in Surface Space
We can calculate mean time course vectors calculated across all voxels within regions defined in a FreeSurfer annotation (.annot) file. Though any annotation file can be used for this purpose, we have been working at the scale of the 1000 region Lausanne parcellation. A script exists, gettimecourses.sh
, that will handle this:
gettimecourses.sh
#!/bin/bash USAGE="Usage: gettimecourses.sh annot filepattern sub1 ... subN" if [ "$#" == "0" ]; then echo "$USAGE" exit 1 fi #first two parameters are is the annot files and filepatterns for the \ #.nii.gz time series to be detrended, up to the hemisphere indicator #e.g., detrend.fmcpr.sm6.self.?h.nii.gz would use detrend.fmcpr.sm6.self as the filepattern annot="$1" shift filepat="$1" shift #subjects subs=( "$@" ); #hemispheres hemis=( lh rh ) for sub in "${subs[@]}"; do source_dir=${SUBJECTS_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 hemi in "${hemis[@]}"; do for r in "${runs[@]}"; do mri_segstats \ --annot ${sub} ${hemi} ${annot} \ --i ${source_dir}/${r}/${filepat}.${hemi}.mgh \ --sum ${sub}_${hemi}_${seg}_${r}.${filepat}.sum.txt \ --avgwf ${sub}_${hemi}_${seg}_${r}.${filepat}.wav.txt done done fi done
A precondition of this script is that the data have been detrended following the procedure for detrending FreeSurfer data. The script is run in a terminal by specifying the name of an annot file that can be found in the $SUBJECT_ID/label/ directory, a file pattern (typically, one that has been detrended), followed by a list of subject IDs:
gettimecourses.sh lausanne detrend.fmcpr.sm6.self FS_T1_501
This creates a series of output files ${sub}_?h_lausanne_${run}.detrend.wav.txt