Intro
This is a description on how to use SPM and/or AFNI for high-resolution SS-SI-VASO data evaluations.
Here it is explained what to do with the raw fMTR data from the scanner to obtain CBV and BOLD signal time courses .
Sequence
Every other image has a different contrast.

SPM (AFNI and FSL work too):
- spline interpolation
- weighting of interesting areas
- correct individual contrasts separately
- manual check for “usual suspects”:
- task-correlated motion
- different motion in BOLD and VASO
- amount of translation:
- disregard dataset, when > voxel size
- dropout rate approx. 30%
dominant in phase encoding direction.

always check that the motion parameters are the same in BOLD and VASO.

Code:
https://github.com/layerfMRI/repository/tree/master/motion
start_moco_*.sh:
- gets rid of non-steady state first time points
- grabs the SPM moco script: *batch2run.m
- runs the SPM moco script in Matlab
- plots motion traces. ALWAYS LOOK AT THEM
afni_VASO_eval.sh:
- combines the SPM output and calculared separate BOLD and VASO time courese
- It also caclulated MEAN, TSNR, T1-stability images:
#!/bin/bash
echo "It starts now: I expect two files Not_Nulled_Basis_a.nii and Nulled_Basis_b.nii that are motion corrected with SPM"
NumVol=`3dinfo -nv Nulled_Basis_b.nii`
3dcalc -a Nulled_Basis_b.nii'[3..$]' -b Not_Nulled_Basis_a.nii'[3..'`expr $NumVol - 1`']' -expr 'a+b' -prefix combined.nii -overwrite
3dTstat -cvarinv -prefix T1_weighted.nii -overwrite combined.nii
rm combined.nii
3dcalc -a Nulled_Basis_b.nii'[1..$(2)]' -expr 'a' -prefix Nulled.nii -overwrite
3dcalc -a Not_Nulled_Basis_a.nii'[2..$(2)]' -expr 'a' -prefix BOLD.nii -overwrite
3drefit -space ORIG -view orig -TR 3 BOLD.nii
3drefit -space ORIG -view orig -TR 3 Nulled.nii
3dTstat -mean -prefix mean_nulled.nii Nulled.nii -overwrite
3dTstat -mean -prefix mean_notnulled.nii BOLD.nii -overwrite
# Then calculate the mean, stdev, & cvarinv (detrended mean/stdev) for BOLD & Nulled volumes
# I was mainly doing this as a check to make sure motion correction worked reasonably.
# A TSNR calculation should probably be done after non-linear drift removal.
# Calculate VASO!
# The first vaso volume is first nulled volume divided by the 2nd BOLD volume
3dcalc -prefix tmp.VASO_vol1.nii \
-a BOLD.nii'[1]' \
-b Nulled.nii'[0]' \
-expr 'b/a' -overwrite
# Calculate all VASO volumes after the first one
# -a goes from the 2nd BOLD volume to the 2nd-to-last BOLD volume
# -b goes from the 3rd BOLD volume to the last BOLD volume
# -c goes from the 2nd Nulled volume to the last Nulled volume
NumVol=`3dinfo -nv BOLD.nii`
3dcalc -prefix tmp.VASO_othervols.nii \
-a BOLD.nii'[0..'`expr $NumVol - 2`']' \
-b BOLD.nii'[1..$]' \
-c Nulled.nii'[1..$]' \
-expr 'c*2/(a+b)' -overwrite
# concatinate the first VASO volume with the rest of the sequence
3dTcat -overwrite -prefix VASO.nii tmp.VASO_vol1.nii tmp.VASO_othervols.nii
# Remove the temporary seprate files for the first VASO volume and the rest of the VASO volumes
rm tmp.VASO_vol1*.nii tmp.VASO_othervols*.nii
# BOLD and VASO now have 3s or 312s TRs
# Use 3drefit to make this change in the file headers
#echo ' remove last time point in BOLD'
#NumVol=`3dinfo -nv BOLD.nii`
#echo "NumVol of BOLD is '$Numvol' "
#3dcalc -prefix BOLD.nii \
# -a BOLD.nii'[1..'`expr $NumVol - 1`']' \
# -expr 'a' -overwrite
3dTstat -overwrite -mean -prefix BOLD.Mean.nii \
BOLD.nii'[1..$]'
3dTstat -overwrite -cvarinv -prefix BOLD.tSNR.nii \
BOLD.nii'[1..$]'
3dTstat -overwrite -mean -prefix VASO.Mean.nii \
VASO.nii'[1..$]'
3dTstat -overwrite -cvarinv -prefix VASO.tSNR.nii \
VASO.nii'[1..$]'
Example Data
Accronis access: Sync & Share >> Example_data >> example_from_Neuron_paper >> tapping_with_touch
Other ways of doing it
There are multiple different versions of this:
- from Renzo: Using SPM and NeuroDebian <- recommended and explained here.
- important files for SPM motion correction are: start_moco_VASO*.sh, and *mocobatch*.sh
- important files for BOLS correction are: antiBold on Neurodebian or afni_VASO_eval_SPM.sh
Alternative software versions
- in AFNI: thanks to Dan for first implementation in VALSALVA (it is blurrier than SPM): https://github.com/layerfMRI/repository/blob/master/afni_VASO_eval.sh
- from Renzo and Christopher Steel as Jupiter notebook (VERSION!!!) : https://github.com/layerfMRI/repository/tree/master/Jupiter_Notebook
- from Renzo for Aneurin Kennerley: and Matlab: https://github.com/layerfMRI/repository/tree/master/Matlab_VASO_eval_4Aneurin