# '''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 <subjID>

unpacksdcmdir src <> -targ <> -scanonly file
unpacksdcmdir src <> -targ <subjdir> -fsfast -run <#> bold bshort f -run  (for all 6 runs)
unpacksdcmdir src <> -targ <subjdir> -run <#> 3danat cor blah (for the structural)

### Structural Processing

nmrenv
setenv SUBJECTS_DIR /space/tango/3/users/recon_modygp/cherif
recon-all subjid <subjid> autorecon1 autorecon2
#perform manual edits
recon-all subjid <subjid> -autorecon3

### Functional Analysis Stream

cd /space/tango/5/users/cherif/reasoning/
ln s /space/tango/3/users/recon_modygp/cherif/<subjID> <subjID>

cd fMRI_analysis/subjects/<subjID>
cat > fMRI_analysis/subjects/<subjID>/subjectname
<subjID>
<ctrl+d>

cp <subjid>_run<#>_par.txt bold/<correspondingrun#>/<subjid>_par.par
cp <subjid>_par.par reason_par.par

• Pre-processing

cd ../
preproc-sess s <subjid> smout <smfmc#> -fwhm <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 <subjid>
tkregister-sess s <subjid>

• 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 <subjid> -analysis reasoning-analysis

• Define Contrasts

OMNIBUS:
mkcontrast-sess analysis <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 <subjid> contrast <contrastname>
or
stxgrinder-sess analysis reasoning-analysis s <subjid> -all

• Viewing results with sliceview

sliceview-sess analysis <analysis> -slice <#> -contrast <contrastname> -map <mapname> -s <subjid>

• Viewing results on anatomical

paint-sess analysis <analysis> -s <subjid> c <contrastname> -map <mapname>

surf-sess s <subjid> a <analysis> -c <contrastname> -map <mapname>

tkmedit-sess analysis <analysis> -s <subjid> contrast <contrastname> -map <mapname>

### 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 <subjid>/bold/reasoning-analysis/
cp run-FSFAST.csh <subjid>/bold/reasoning-analysis/
cp vol2surf_FSFAST <subjid>/bold/reasoning-analysis/
cp snapshots* <subjid>/bold/reasoning-analysis/

cd <subjid>/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_smooth 2 val
set fthresh \$env(fthresh)
set fmid \$env(fmid)
set offset 0.4
set fslope \$env(fslope)
set curv lh.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<fthresh>_clust<minarea>_<subjid>
cd rgb_th<fthresh>_clust<minarea>_<subjid>
mkdir pos
mkdir neg #will contain images with truncphaseflag for all subtractions
mv *<clust>-pos* pos/
mv *<clust>-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<fthresh>-clust<minarea>.w h.w * h-th<fthresh>-clust<minarea>.w*
./gf toni-v-fix perc-v-fix verb-v-fix toni-v-perc toni-v-verb perc-v-verb <subjid>_th<fthresh>_clust<minarea>.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<fthresh>-clust<minarea>-pos.w h.w * h-th<fthresh>-clust<minarea>-pos.w*
./gf toni-v-fix perc-v-fix verb-v-fix toni-v-perc toni-v-verb perc-v-verb <subjid>_th<fthresh>_clust<minarea>-pos.html

cd ../neg
foreach image (*.rgb)
convert \$image \$image.png
end
rename .rgb.png .png *.rgb.png
rename h-th<fthresh>-clust<minarea>-neg.w h.w * h-th<fthresh>-clust<minarea>-neg.w*
./gf toni-v-fix perc-v-fix verb-v-fix toni-v-perc toni-v-verb perc-v-verb <subjid>_th<fthresh>_clust<minarea>-neg.html

## GROUP stats

Func2sph-sess analysis reasoning-analysis projfrac .3 s <subjid>
**I UNDERSTAND A PROJECTION FRACTION OF 0.3 IS STANDARD, WOULD YOU EVER CHANGE IT?

Func2tal-sess res 4 analysis reasoning-analysis s <subjid>
**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 <subjid>
**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 <subjid1> -s <subjid2>

Isxavg-fe-sess analysis reasoning-analysis group m14-68-86 space tal spacedir tal s <subjid1> -s <subjid2>

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 <subject i used for paint-sess above, mody014> lh inflated -overlay <group>/bold/<analysis>/<spacedir>-ffx/<contrast>/sig-0-mody014-lh.w

UseCase1 (last edited 2008-04-29 11:46:12 by localhost)