-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathexample_script.sh
63 lines (48 loc) · 3.37 KB
/
example_script.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
movfiletype=hcp
gmfile=inputdir/mysubj_graymatter.nii.gz
wmfile=inputdir/mysubj_whitematter.nii.gz
csffile=inputdir/mysubj_csf.nii.gz
erosionvoxels=1
filtname="hpf"
filtarg="--lowfreq 0.008"
skipvols="5"
gsrarg="--gsr"
connarg="--connmeasure covariance --shrinkage 0"
roiname=fs86
roifile=fs86.nii.gz
for scan in scan1 scan2; do
scanfile=inputdir/mysubj_${scan}.nii.gz
movfile=inputdir/mysubj_${scan}_Movement_Regressors.txt
outputbase=outputdir/mysubj_${scan}
python fmri_outlier_detection.py --input ${scanfile} --mask ${scandir}/brainmask_fs.2.nii.gz --motionparam ${movfile} --motionparamtype ${movfiletype} --connstandard --output ${outputbase}_outliers.txt --outputparams ${outputbase}_outlier_parameters.mat
python fmri_save_confounds.py --input ${scanfile} --motionparam ${movfile} --motionparamtype ${movfiletype} --gmmask ${gmfile} --wmmask ${wmfile} --csfmask ${csffile} --erosionvoxels ${erosionvoxels} --outlierfile ${outputbase}_outliers.txt --skipvols ${skipvols} --output ${outputbase}_fmriclean_confounds.mat
python fmri_save_parcellated_timeseries.py --input ${scanfile} --roifile ${roifile} --outbase ${outputbase}_${roiname} --outputformat mat
python fmri_clean_parcellated_timeseries.py --input "${outputbase}_${roiname}_ts.mat" --confoundfile ${outputbase}_fmriclean_confounds.mat $filtarg $gsrarg --outbase ${outputbase}_fmriclean_${filtname} --skipvols ${skipvols} ${connarg} --outputformat mat --sequentialroi
done
# for concatenation
concatbase=outputdir/mysubj
inputlist="${concatbase}_scan1_${roiname}_ts.mat ${concatbase}_scan2_${roiname}_ts.mat"
confoundlist="${concatbase}_scan1_fmriclean_confounds.mat ${concatbase}_scan2_fmriclean_confounds.mat"
python fmri_clean_parcellated_timeseries.py --input ${inputlist} --confoundfile ${confoundlist} $filtarg $gsrarg --outbase ${concatbase}_concat_fmriclean_${filtname} --skipvols ${skipvols} --outputformat mat --sequentialroi --concat ${connarg}
# for alff and falff, assumes fmri_outlier_detection.py and fmri_save_confounds.py have been run
# Need to run this on a DENOISED time series, or at least DETRENDED
scanfile=inputdir/mysubj_scan1.nii.gz
outputbase=outputdir/mysubj_scan1
tr=0.8 #if left out, can be inferred from scanfile header
skipvols=5
alff_lowfreq="0.008"
alff_highfreq="0.09"
gsrarg=""
if [ "${gsrarg}" != "" ]; then
gsrname="_gsr" #if --gsr was used
fi
#output from before will be ${outputbase}_fmriclean${filtname}${gsrname}_tsclean.nii.gz
python fmri_clean_parcellated_timeseries.py --input ${scanfile} --confoundfile ${outputbase}_fmriclean_confounds.mat $filtarg $gsrarg --outbase ${outputbase}_fmriclean_${filtname} --skipvols ${skipvols} --connmeasure none --savets
python fmri_alff.py --input ${outputbase}_fmriclean_${filtname}${gsrname}_tsclean.nii.gz --confoundfile ${outputbase}_fmriclean_confounds.mat --outbase ${outputbase}_fmriclean_${filtname}${gsrname}_tsclean --lffrange ${alff_lowfreq} ${alff_highfreq} --totalfreqrange 0 inf
#final output will be:
#${outputbase}_fmriclean_${filtname}${gsrname}_tsclean_alff.nii.gz
#${outputbase}_fmriclean_${filtname}${gsrname}_tsclean_falff.nii.gz
#to parcellate the voxelwise falff:
roiname=fs86
roifile=fs86.nii.gz
python fmri_save_parcellated_timeseries.py --input ${outputbase}_fmriclean_${filtname}${gsrname}_tsclean_falff.nii.gz --roifile ${roifile} --outbase ${outputbase}_fmriclean_${filtname}${gsrname}_tsclean_falff_${roiname} --outputformat mat