Standardizing functional data using SSWarper

Hi!

I am trying to bring my functional files to standard space (MNI) using the output from SSWarper. My understanding was that I could use the anat_WARP.nii file to bring my functional into standard space, but the result does not look aligned when I visualize it. Looking at a prior script I used with auto_warp.py instead of SSwarper, I had an “anat.un.aff.Xat.1D” file that I do not get with SSwarper (the auto_warp.py version of the functional in standard space looks aligned). I have attached my script using auto_warp.py (the one using SSwarper is identical except that the cat_matvec line does not contain the anat.un.aff.Xat.1D).

Is there a way for me to obtain the anat.un.aff.Xat.1D file from SSwarper? Or is there an alternative to it? Should I even be using 3dNwarpApply to bring my functional files to standard space if using SSwarper?

for e2a: compute anat alignment transformation to EPI registration base

align_epi_anat.py -anat2epi -anat 001_mprage_ss+orig
-suffix _al_junk
-epi vr_base_min_outlier+orig -epi_base 0
-epi_strip 3dAutomask
-anat_has_skull no
-AddEdge
-volreg off -tshift off

foreach run ( $runs )
# register each volume to the base image
3dvolreg -verbose -zpad 4 -base vr_base_min_outlier+orig
-1Dfile dfile.r$run.1D -prefix rm.epi.volreg.r$run
-cubic
-1Dmatrix_save mat.r$run.vr.aff12.1D
pb01.$subj.r$run.tshift+orig

catenate volreg/epi2anat/tlrc xforms

cat_matvec -ONELINE                                                   \
           anat.un.aff.Xat.1D                                         \
           001_mprage_ss_al_junk_mat.aff12.1D -I                      \
           mat.r$run.vr.aff12.1D > mat.r$run.warp.aff12.1D

apply catenated xform: volreg/epi2anat/tlrc/NLtlrc

# then apply non-linear standard-space warp
3dNwarpApply -master 001_mprage_ss+tlrc -dxyz 3                       \
             -source pb01.$subj.r$run.tshift+orig                     \
             -nwarp "anat.un.aff.qw_WARP.nii mat.r$run.warp.aff12.1D" \
             -prefix rm.epi.nomask.r$run

end

Hi-

Have you looked into using @SSwarper with afni_proc.py for setting up your FMRI processing? The latter program will set up all the intermediate alignments for you; it will manage several less exciting details of processing, while allowing you to specify your processing stream in detail.

If nothing else, you can run @SSwarper + afni_proc.py to see how afni_proc.py sets up the inversions+concatenations of processing.

–pt

Thank you for your response!

I did as you said and found the file in the afni_proc.py resulting script.
For anyone else who might be in the same position, I used “anatQQ.s001.aff12.1D”, and my 3dNwarpApply looked like the following:

cat_matvec -ONELINE \
           anatQQ.s001.aff12.1D                                        \
           anatSS.s001_al_junk_mat.aff12.1D -I                      \
           mat.r$run.vr.aff12.1D > mat.r$run.warp.aff12.1D


3dNwarpApply -master anatQQ.s001+tlrc -dxyz 3                       \
             -source pb01.$subj.r$run.tshift+orig                     \
             -nwarp "anatQQ.s001_WARP.nii mat.r$run.warp.aff12.1D" \
             -prefix rm.epi.nomask.r$run

Thanks again for the help!