Sorry for the long post!
The 4 question below boil into
What is the best way manage MNI coordinates and afni_restproc.py output? (just one line change in the tsch script?!)
[and bonus question] Is tlrc's use in AFNI historically motivated? Why TT over MNI?
Thanks!
Will
We're running afni_restproc to emulate the Power Neuroimage 2012 pipeline. We already ran some 300 subjects through restpreproc (in TT_N27). Ultimately we want to use MNI ROI masks and report findings in MNI space. As far as I can tell via -help or the python source, there is no switch/argument to change the default TT_N27 space.
Our work-arounds include
(a) warping ROI masks into TT_N27 and save worring about reporint finding when we have some,
adwarp -resam NN -apar $AFNIPATH/TT_N27+tlrc -dpar masks/bb264Mask_MNI+tlrc -prefix masks/bb264Mask_N27 -force
3dresample masks/bb264Mask_N27+tlrc
3dresample -master $subjexample -inset masks/bb264Mask_N27+tlrc -prefix masks/bb264Mask_N27_3x3x3
This is the current solution, but it I imagine it will be difficult or inaccurate when we report back MNI coordinates.
a1) How do others convert between TT and MNI when reporting coordinates?
(b) warping the final clean output of restproc.py into MNI,
3dWarp -overwrite -tta2mni -quintic -prefix pm.cleanEPI_MNI pm.cleanEPI+tlrc
# maybe resample for comparison
#3dresample -master $(dirname $(which afni))/*MNI_avg152T2*HEAD -inset pm.cleanEPI_MNI+tlrc. -prefix pm.cleanEPI_MNI_grid
This adds another round of interpolation. [see picture below]
b2) How well does tta2mni work? Is it just an affine transform, or is the warp piecewise or nonlinear (yale)?
Eyeballing says the interpolation results in a different image
(c) modifying the tsch script generated by restproc.py to use MNI as the only space (in addition to original) and rerunning
# change tsch script from TT_N27 to MNI_avg152T1+tlrc
@auto_tlrc -base MNI_avg152T1+tlrc -input T1+orig
This is likely what we will do, but it requires rerunning a little more than a weekend of computation time and is less maintainable ( sed on afni_restproc output's script could break in future afni releases?).
c3) Is MNI_avg152T1 the best reference brain to use?
c4) Are there other parts of the generated script that will need to be changed? (If it were this straight forward, wouldn't there be a user facing option in restpreproc.py?)
We use afni_restproc.py like:
afni_restproc.py \
-despike off \
-aseg $aseg \
-anat $t1 \
-epi ${t2%%.HEAD} \
-script $runtype.tcsh \
-dest $runtype \
-prefix pm \
-tlrc \
-dvarscensor \
-episize 3 \
-dreg \
-smoothfirst \
-smoothrad 6 \
-smoothtogether \
-bandpass \
-includebrain \
-polort 0 \
-globalwm \
-censorleft 1 \
-censorright 2 \
-fdlimit 0.5 \
-dvarslimit 5 \
-modenorm 2>&1 | tee ${runtype}_$sid.log ;;
top is mni via 3dwarp -tta2mni
bottom is mni via @auto_tlrc