afni proc 3dvolreg question

Hello,

I am trying to use afni_proc to apply 3dvolreg on two sets of fMRIs, fMRI1 and fMRI2, for the same subject. They are taken about 5 min apart. If I am understanding the code correctly, afni proc is using 3dbucket on the second to last volume of fMRI2 and set it as the volreg registration base and it was applied to both fMRI1 and fMRI2 for motion correction. I am wondering why it doesn’t use the second to last volume of fMRI1 as base for the fMRI1 images, and do what it did only to fMRI2. Does anyone know why that’s the case?

Thank you!

Hello,

If you prefer to register each run separately (most likely to the MIN_OUTLIER), and then align each run’s base together, consider options like those applied in Example 13 of the -help output:

     -volreg_align_to MIN_OUTLIER                            \
     -volreg_post_vr_allin yes                               \
     -volreg_pvra_base_index MIN_OUTLIER                     \

That is not necessarily preferable to what is being done in your processing though.

  • rick

Thanks, Rick.

From a best practice stand point, why is motion correction relative to the base of 1 run? Is it simply because of alignment issues? Along those lines, if we chose to use an alternative motion correction (e.g. SLOMOCO), is there an option that will align both runs? Does alignment of both runs occur automatically? Or is is this typically done through the volreg options?

This is not quite clear to me, nor am I well acquainted with SLOMOCO. But that software should be able to handle multiple runs. It would be a mistake to run a per-run alignment and then a separate across-run one (to say nothing of alignment with the anat and template), as each registration interpolation would add an extra blur to the result.

In the context of afni_proc.py, the within-run and and across runs registration steps (as well as the others) get combined into a single transformation to avoid the extra blur. One can align all EPI volumes to a single base (probably the MIN_OUTLIER), or align on a per-run basis and then across runs. Either way, the transformations (possibly many) are applied as a single concatenated warp.

How or whether this could be done in the context of SLOMOCO is not apparent.

  • rick