Large Max Motion Displacement Between Runs

I am preprocessing a dataset where participants had a blood draw completed between scan 1 and scan 2. Participants stayed in the scanner during this time, however, for some participants this resulted in a motion between scans. When the scans are concatenated this produces max displacements ranging from 5-13mm.

Any recommendations on how to handle this data? Should these scans not be concatenated during preprocessing?


Hi Laura,
Hope all is good with you.
Large changes between runs could be problematic, but every case is different. We usually recommend 3dvolreg, of course, for data within “sessions”, but that can depend on how a session is defined. For 3dvolreg to work properly, you have to have exactly the same coordinate system between runs - no shift of origins and exactly the same grid (number and size of voxels in all three directions are the same across runs). Also sometimes reshimming happens with large changes and EPI data needs more than a rigid body alignment to correct for motion and achieve voxelwise correspondence across runs. 3dvolreg can take slightly larger motion with the -twopass option. Large motion between runs isn’t included in censoring, so that’s not a problem. You will probably want to use -regress_motion_per_run to better account for motion.

Check to see if the correction worked the usual way - assuming you have used to process your data, you should have a pbnn.volreg dataset. See if that is both aligned to the final anatomical dataset in the afni GUI, and check for motion there using the graph and image viewers. If 3dvolreg couldn’t handle the larger changes, you might have a few options.

  1. Per run base volume, affine align across runs. One is to use an intermediate base volume for each run. In, use the option “-volreg_post_vr_allin yes” to do this. With this option, 3dAllineate is used to compute an affine cross-run alignment. Also specify the run base sub-brick volume with “-volreg_pvra_base_index INDEX”.
  2. Affine motion correction. Another way is to use 3dAllineate to do the motion correction with an afifne transformation instead of 3dvolreg’s rigid body alignment. Use the option “-volreg_method 3dAllineate”. Motion regressors are more complicated and could include all 12 parameters.
  3. Treat as separate runs. Here affine alignment to the anatomical is separate for each run.

Thank you! Adding the volreg options to worked great!

Great! Which ones?