= '''THIS IS A WORK IN PROGRESS AND LIKELY CONTAINS MISTAKES. PLEASE IGNORE FOR NOW''' = <
> == FS-FAST USE CASE 1: fMRI Workflow for Reasoning Study == === Experiment design === The experiment consists of 3 active conditions (+baseline), referred to as V, T and P.<
> The task consists in solving visually presented problems in each of these conditions. Subjects respond using a button box.<
> The paradigm is presented in 6 consecutive runs, each lasting 300s. In each run, two of the three conditions are shown to minimize subject confusion, and increase statistical power <
> '''''**WHAT ARE THE EFFECTS ON POWER OF SHOWING ONLY A SUBSET OF THE CONDITIONS IN EACH RUN??'''''. <
> The runs consist of <
> Run 1: T-P <
> Run 2: T-V <
> Run 3: P-V <
> Run 4: T-P <
> Run 5: T-V <
> Run 6: P-V <
> This alternation allows for similar scanner drift effects across the different pairings of the conditions (i.e. tentatively the same “amount” of drift occurs between runs 1 and 4 and 2 and 5, assuming drift is linear). Within each run, the plates are presented using a pseudo-randomized (order the same for all subjects, but only known to the experimenter) event-related paradigm. Each plate presentation is considered an event, which can last between 1 and 10s, as the plate disappears when the subject responds or times out after 10 seconds (at which point the paradigm goes on by itself). In-between plates, a fixation cross is shown with a random ISI ranging from 1500 to 3500ms in 250ms steps. Every 6 plates, the fixation cross is held for a longer time, in order to match the total run duration across subjects. <
> '''''**IS THIS NECESSARY? WHY? IS THERE A BETTER WAY TO GO ABOUT IT THAN MY 'catchup times'?'''''. <
> Thus, the 7th plate appears at t=75s, the 13th at t=150s and the 19th at t=225s. The total run time of 5minutes is therefore the same as if all plates timed out (10x24 + 2.5x24 = 300). <
> The PAR files look like this: <
> ||Init_time||condition_nb||duration||condition_name|| ||0 || 0 || 2.5178 || baseline || ||2.5178 || 2 || 2.3427 || perceptual || ||4.8605 || 0 || 3.2763 || baseline || ||8.1368 || 3 || 2.1638 || verbal || ||10.3006 || 0 || 2.5216 || baseline || ||12.8222 || 2 || 2.5746 || perceptual || ||15.3968 || 0 || 2.0273 || baseline || == Individual Analysis == === Unpacking === nmrenv <
> setenv SUBJECTS_DIR /space/tango/5/users/cherif/reasoning <
> findsession <
> unpacksdcmdir –src <> -targ <> -scanonly file <
> unpacksdcmdir –src <> -targ -fsfast -run <#> bold bshort f -run (for all 6 runs) <
> unpacksdcmdir –src <> -targ -run <#> 3danat cor blah (for the structural) <
> === Structural Processing === nmrenv<
> setenv SUBJECTS_DIR /space/tango/3/users/recon_modygp/cherif <
> recon-all –subjid –autorecon1 –autorecon2 <
> #perform manual edits <
> recon-all –subjid -autorecon3 <
> === Functional Analysis Stream === cd /space/tango/5/users/cherif/reasoning/ <
> ln –s /space/tango/3/users/recon_modygp/cherif/ <
> cd fMRI_analysis/subjects/ <
> cat > fMRI_analysis/subjects//subjectname <
> <
> <
> cp _run<#>_par.txt bold//_par.par <
> cp _par.par reason_par.par <
> __Pre-processing__ cd ../ <
> preproc-sess –s –smout -fwhm <
> '''''**DO YOU STILL WANT TO APPLY SMOOTHING HERE IF YOU'RE GONNA SMOOTH ON THE SURFACE? SHOULD THERE BE A QUANTITATIVE LINK BETWEEN THE TWO FWHM?''''' <
> __Registration to high res scan__ spmregister-sess –s <
> tkregister-sess –s <
> __Define the Analysis__ mkanalysis-sess.new -analysis reasoning-analysis –TR 2 –paradigm reason_par.par -designtype event-related –funcstem fmcsm5 –nconditions 3 -gammafit 2.25 1.25 –inorm –mcextreg <
> '''''**WHAT ARE THE EFFECTS OF CHANGING TAUMAX, TIMEWINDOW, POLYFIT? RULES OF THUMB? HOW TO USE TER?''''' <
> '''''IF YOU USE FIR ANALYSIS INSTEAD OF GAMMAFIT, THEN NEED TO CHOOSE TIMEWINDOW AND PRESTIM PARAMETERS. RULE OF THUMB IS TIMEWINDOW=16S+LONGEST EVENT+PRESTIM, AND PRESTIM=2TRS''''' <
> __Run the Analysis__ selxavg-sess –s -analysis reasoning-analysis<
> __Define Contrasts__ OMNIBUS: <
> mkcontrast-sess –analysis -contrast omnibus –a 1 –a 2 –a 3 -c 0 -nosumconds <
> More interesting contrasts: <
> mkcontrast-sess –analysis reasoning-analysis –contrast toni-v-fix –a 1 -c 0 <
> mkcontrast-sess –analysis reasoning-analysis –contrast perc-v-fix –a 2 -c 0 <
> mkcontrast-sess –analysis reasoning-analysis –contrast verb-v-fix –a 3 -c 0 <
> mkcontrast-sess –analysis reasoning-analysis –contrast toni-v-verb –a 1 –c 3 <
> mkcontrast-sess –analysis reasoning-analysis –contrast toni-v-perc –a 1 –c 2 <
> mkcontrast-sess –analysis reasoning-analysis –contrast perc-v-verb –a 2 -c 3 <
> __Compute stats (GLM)__ stxgrinder-sess –analysis reasoning-analysis - s –contrast <
> or <
> stxgrinder-sess –analysis reasoning-analysis –s -all <
> __Viewing results with sliceview__ <
> sliceview-sess –analysis -slice <#> -contrast -map -s <
> __Viewing results on anatomical__ <
> paint-sess –analysis -s –c -map <
> surf-sess –s –a -c -map <
> tkmedit-sess –analysis -s –contrast -map <
> === Making webpages of overlay contrasts for visualization === # The scripts used here are adapted from scripts written by Thomas Witzel. No support is provided for them, if you want to use them, you are on your own! <
> cp gf /bold/reasoning-analysis/ <
> cp run-FSFAST.csh /bold/reasoning-analysis/ <
> cp vol2surf_FSFAST /bold/reasoning-analysis/ <
> cp snapshots* /bold/reasoning-analysis/ <
> cd /bold/reasoning-analysis <
> ./vol2surf_FSFAST <
> this script paints the activation on the inflated surface for all conditions <
> # Contrast toni-v-fix <
> mri_vol2surf --src toni-v-fix/sig --src_type bfloat --srcreg ../register.dat --hemi lh --o ./toni-v-fix-lh.w --out_type paint <
> mri_vol2surf --src toni-v-fix/sig --src_type bfloat --srcreg ../register.dat --hemi rh --o ./toni-v-fix-rh.w --out_type paint <
> # Contrast perc-v-fix <
> mri_vol2surf --src perc-v-fix/sig --src_type bfloat --srcreg ../register.dat --hemi lh --o ./perc-v-fix-lh.w --out_type paint <
> mri_vol2surf --src perc-v-fix/sig --src_type bfloat --srcreg ../register.dat --hemi rh --o ./perc-v-fix-rh.w --out_type paint <
> # Contrast verb-v-fix <
> mri_vol2surf --src verb-v-fix/sig --src_type bfloat --srcreg ../register.dat --hemi lh --o ./verb-v-fix-lh.w --out_type paint <
> mri_vol2surf --src verb-v-fix/sig --src_type bfloat --srcreg ../register.dat --hemi rh --o ./verb-v-fix-rh.w --out_type paint <
> # Contrast toni-v-perc <
> mri_vol2surf --src toni-v-perc/sig --src_type bfloat --srcreg ../register.dat --hemi lh --o ./toni-v-perc-lh.w --out_type paint <
> mri_vol2surf --src toni-v-perc/sig --src_type bfloat --srcreg ../register.dat --hemi rh --o ./toni-v-perc-rh.w --out_type paint <
> # Contrast toni-v-verb <
> mri_vol2surf --src toni-v-verb/sig --src_type bfloat --srcreg ../register.dat --hemi lh --o ./toni-v-verb-lh.w --out_type paint <
> mri_vol2surf --src toni-v-verb/sig --src_type bfloat --srcreg ../register.dat --hemi rh --o ./toni-v-verb-rh.w --out_type paint <
> # Contrast perc-v-verb <
> mri_vol2surf --src perc-v-verb/sig --src_type bfloat --srcreg ../register.dat --hemi lh --o ./perc-v-verb-lh.w --out_type paint <
> mri_vol2surf --src perc-v-verb/sig --src_type bfloat --srcreg ../register.dat --hemi rh --o ./perc-v-verb-rh.w --out_type paint <
> mkdir rgb (this is where run-FSFAST.csh will write its outputs) <
> EDIT run-FSFAST.csh: change the threshold, cluster size, and subject name <
> This creates rgb files for all conditions, thresholded and clustered NOTE: do not let the screensaver come up!! <
> # Set threshold values for contrast categories <
> setenv fthresh 1.5 <
> setenv fmid 2.5 <
> setenv fslope 2.0 <
> # List contrast names in quotes <
> # Here subjectname is mody068 <
> foreach name ("toni-v-fix" "perc-v-fix" "verb-v-fix" "toni-v-perc" "toni-v-verb" "perc-v-verb") <
> setenv statsname ${name}-rh.w <
> mri_surfcluster --hemi rh --srcsubj mody068 --src ${name}-rh.w --minarea 30 --thmin 2.0** --o ./${name}-rh-th2.0-clust30.w <
> setenv statsname ${name}-rh-th2.0-clust30.w <
> tksurfer mody068 rh inflated -colscalebarflag 1 -scalebarflag 1 -invphaseflag 1 -tcl snapshots-rh.tcl <
> setenv statsname ${name}-lh.w <
> mri_surfcluster --hemi lh --srcsubj mody068 --src ${name}-lh.w --minarea 30 --thmin 2.0 --o ./${name}-lh-th2.0-clust30.w <
> setenv statsname ${name}-lh-th2.0-clust30.w <
> tksurfer mody068 lh inflated -colscalebarflag 1 -scalebarflag 1 -invphaseflag 1 -tcl snapshots-lh.tcl <
> end <
> #make copies of output files from mri_surfcluster with pos and neg extensions to use in snapshots <
> rename clust30.w clust30-pos.w *clust30.w <
> # Now to view positive stats only <
> foreach name ( "toni-v-fix" "perc-v-fix" "verb-v-fix" "toni-v-perc" "toni-v-verb" "perc-v-verb") <
> setenv statsname ${name}-rh-th2.0-clust30-pos.w <
> tksurfer mody068 rh inflated -colscalebarflag 1 -scalebarflag 1 -truncphaseflag 1 -tcl snapshots-rh.tcl <
> setenv statsname ${name}-lh-th2.0-clust30-pos.w <
> tksurfer mody068 lh inflated -colscalebarflag 1 -scalebarflag 1 -truncphaseflag 1 -tcl snapshots-lh.tcl <
> end <
> rename clust30-pos.w clust30-neg.w *clust30-pos.w <
> foreach name ( "toni-v-fix" "perc-v-fix" "verb-v-fix" "toni-v-perc" "toni-v-verb" "perc-v-verb")<
> setenv statsname ${name}-rh-th2.0-clust30-neg.w <
> tksurfer mody068 rh inflated -colscalebarflag 1 -scalebarflag 1 -truncphaseflag 1 -invphaseflag 1 -tcl snapshots-rh.tcl <
> setenv statsname ${name}-lh-th2.0-clust30-neg.w <
> tksurfer mody068 lh inflated -colscalebarflag 1 -scalebarflag 1 -truncphaseflag 1 -invphaseflag 1 -tcl snapshots-lh.tcl <
> end <
> run-FSFAST.csh calls snapshots-lh.tcl and snapshots-rh.tcl, which are equivalent snapshots-lh shown below <
> set val $env(statsname) <
> sclv_read_binary_values 0 <
> sclv_smooth 2 val <
> set fthresh $env(fthresh) <
> set fmid $env(fmid) <
> set offset 0.4 <
> set fslope $env(fslope) <
> set curv lh.curv <
> read_binary_curv <
> set curvflag 1 <
> open_window <
> sclv_set_current_field 0 <
> make_lateral_view <
> redraw <
> save_rgb <
> file copy -force rgb/tksurfer.rgb rgb/$val-lat.rgb <
> rotate_brain_y 90 <
> redraw <
> save_rgb <
> file copy -force rgb/tksurfer.rgb rgb/$val-post.rgb <
> rotate_brain_y 90 <
> redraw <
> save_rgb <
> file copy -force rgb/tksurfer.rgb rgb/$val-med.rgb <
> rotate_brain_y -90 <
> rotate_brain_x 90 <
> redraw <
> save_rgb <
> file copy -force rgb/tksurfer.rgb rgb/$val-inf.rgb <
> exit <
> mv *-clust* rgb/ <
> mv rgb rgb_th_clust_ <
> cd rgb_th_clust_ <
> mkdir pos <
> mkdir neg #will contain images with –truncphaseflag for all subtractions <
> mv *-pos* pos/ <
> mv *-neg* neg/ <
> cp ../gf . <
> cp gf pos <
> cp gf neg <
> foreach image (*.rgb) <
> convert $image $image.png <
> end <
> rm tksurfer.rgb* <
> rename .rgb.png .png *.rgb.png <
> rename h-th-clust.w h.w * h-th-clust.w* <
> ./gf toni-v-fix perc-v-fix verb-v-fix toni-v-perc toni-v-verb perc-v-verb _th_clust.html <
> #this creates a webpage showing maps for all conditions, using the .png images <
> #now for pos and neg maps: <
> cd pos <
> foreach image (*.rgb) <
> convert $image $image.png <
> end <
> rename .rgb.png .png *.rgb.png <
> rename h-th-clust-pos.w h.w * h-th-clust-pos.w* <
> ./gf toni-v-fix perc-v-fix verb-v-fix toni-v-perc toni-v-verb perc-v-verb _th_clust-pos.html <
> cd ../neg <
> foreach image (*.rgb) <
> convert $image $image.png <
> end <
> rename .rgb.png .png *.rgb.png <
> rename h-th-clust-neg.w h.w * h-th-clust-neg.w* <
> ./gf toni-v-fix perc-v-fix verb-v-fix toni-v-perc toni-v-verb perc-v-verb _th_clust-neg.html <
> == GROUP stats == Func2sph-sess –analysis reasoning-analysis –projfrac .3 –s <
> '''''**I UNDERSTAND A PROJECTION FRACTION OF 0.3 IS STANDARD, WOULD YOU EVER CHANGE IT?''''' <
> Func2tal-sess –res 4 –analysis reasoning-analysis –s <
> '''''**AGAIN, 4 SEEMS TO BE DEFAULT FOR THE RESOLUTION, IS THIS WHAT YOU ALWAYS WANT TO USE?''''' <
> Sphsmooth-sess –analysis reasoning-analysis –smoothsteps 20 –outsphdir sphsm01 –s <
> '''''**WHAT IS THE RULE OF THUMBS FOR –SMOOTHSTEPS? I SAW THE TIP ON THE WIKI THAT YOU WANT YOUR SMOOTHING TO BE THE SIZE OF YOUR ACTIVATION, BUT HOW IS THAT A PRACTICAL THING TO IMPLEMENT? <
> DO I STILL WANT TO SMOOTH IN PREPROC IF GONNA SMOOTH HERE? LINK BETWEEN THIS FWHM AND INDIVIDUAL ANALYSIS? <
>''''' Isxavg-fe-sess –analysis reasoning-analysis –group m14-68-86 –space sph –spacedir sphsm01 –s -s <
> Isxavg-fe-sess –analysis reasoning-analysis –group m14-68-86 –space tal –spacedir tal –s -s <
> Stxgrinder-sess –analysis reasoning-analysis –s m14-68-86 –space sph –spacedir sphsm01 –all <
> Stxgrinder-sess –analysis reasoning-analysis –s m14-68-86 –space tal –spacedir tal –all <
> Paint-sess –analysis reasoning-analysis –all –s m14-68-86 –subject mody014 –space sph –spacedir sphsm01 –isxavg fixed <
> '''''**IS –SUBJECT SPECIFYING WHICH ANATOMICAL TO RENDER THE GROUP AVERAGE ON? IF SO THEN AFTERWARDS WHEN YOU DISPLAY YOUR STATS ON A SURFACE, YOU WOULD HAVE TO ALWAYS USE THAT ONE, RIGHT? <
> IS FSAVERAGE WHAT YOU WOULD USE NOW INSTEAD?''''' <
> tksurfer lh inflated -overlay /bold//-ffx//sig-0-mody014-lh.w <
>