Time Series Data in MNI Space: Difference between revisions
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
		
	
No edit summary  | 
				No edit summary  | 
				||
| Line 13: | Line 13: | ||
This will generate a *.wav.txt file in the current working directory with t=timepoints rows and s=43 columns (1 per segment).  | This will generate a *.wav.txt file in the current working directory with t=timepoints rows and s=43 columns (1 per segment).  | ||
The following is a script which will automate this process.   | |||
'''getmnitimecourses.sh'''  | '''getmnitimecourses.sh'''  | ||
Revision as of 11:54, 1 June 2019
Thanks to Cary for sorting this out. It appears that the process for obtaining mean time series from the mni305 volumes generated by preproc-sess is very similar to that for time series in surface space
After the data have been  detrended, mri_segstats can be called on the detrended volume to extract the average waveform within each of the labeled segments. The next challenge would be to determine the identities of each segment so that you know which waveforms correspond to which subcortical or cortical region.
#Assume ${sub} contains the subject ID
#Assume ${r} contains the run number
#Assume ${FILEPAT} contains the name of the detrended volume: 
FILEPAT=fmcpr.siemens.sm7.mni305.2mm.mgh
mri_segstats --seg /usr/local/freesurfer/5.3.0/subjects/fsaverage/mri.2mm/aseg.mgz --i ${sub}/bold/${r}/${FILEPAT} \
--ctab /usr/local/freesurfer/5.3.0/FreeSurferColorLUT.txt \
--sum ${sub}/bold/${r}/sum_subcort.txt \
--avgwf ${sub}_${r}.${FILEPAT}.wav.txt
This will generate a *.wav.txt file in the current working directory with t=timepoints rows and s=43 columns (1 per segment).
The following is a script which will automate this process.
getmnitimecourses.sh
#!/bin/bash
USAGE="Usage: getmnitimecourses.sh 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., fmcpr.sm6.self.?h.nii.gz would use fmcpr.sm6.self as the filepattern
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
			if [ -n "${r}" ]; then
			mri_segstats \
        		--seg /usr/local/freesurfer/5.3.0/subjects/fsaverage/mri.2mm/aseg.mgz \
        		--i ${source_dir}/${r}/${filepat} \
        		--sum ${sub}_${hemi}_${annot}_${r}.${filepat}.sum.txt \
			--ctab /usr/local/freesurfer/5.3.0/FreeSurferColorLUT.txt \
       			--avgwf ${sub}_${hemi}_${annot}_${r}.${filepat}.wav.txt
			fi
		done
	done
    fi
done