Registration of single, two EPI images to anatomical


I’m trying to understand registration procedure and hence playing around with different extreme cases. I’ve stuck at registration of functional images to anatomy (EPI to FLASH) with different coverage. My anatomical coverage is 3 times bigger than functional and differs in voxel size. I was trying to perform DOF=2 (2D) registration but without success. Can you please give me some ideas to start with?


Here is a series of lectures on both general alignment considerations, and specific ones for standard MRI processing:

part of the AFNI Academy series.

Some of the main considerations:

  • how well do your datasets align/overlap to start with? The more they overlap, the better. You can check this in a GUI, say.
  • what is the relative tissue contrast/brightnesses of the two dsets? Knowing this will help you select a good cost function for this alignment-- the computer has to know what “matching” means, and the cost function is a rule for that. In AFNI, a good cost function when contrast is similar is “lpa” or “lpa+ZZ”; when they are very different (like EPI->T1w alignment), then “lpc” or “lpc+ZZ” is a good one to try. See Saad et al. (2009) for more about this (as well as the above video).
  • depending on the coverage, you might find the alignment easier to perform from dset A to B or from dset B to A; this is because the masking from one dset may be more useful for the alignment process.
  • indeed, knowing the DOF you want to allow the alignment is important. I am noooot sure how DOF=2 works (just translation in an x-y plane or something?) but you could use AFNI’s 3dAllineate for linear affine registration (default: 3 translation + 3 rotation + 3 scale + 3 shear DOFs) and specify subset(s) of allowed fit parameters and fix any of the remaining fit ones to restrict the fitting.


1 Like

Thanks for your detailed reply! With DOF 2D I tried to establish a rough alignment along z direction. I’ll try to play with 3dAllineate.
Thank again!

So far I aligned:

  1. EPI to anatomical T1 images (fsl.FLIRT). Result - EPI warped so to match T1. (EPI->T1)
  2. T1 to Atlas (ants.RegistrationSynQuick). Result - warped T1 to match Atlas, and ‘out_matrix’ from transformation. (T1->Atlas)

I expected that applying ‘out_matrix’ (T1->Atals) on warped EPI affine matrix I’ll get rough EPI->Atals affine transformation, but I was wrong.

So I started to search how to apply outcome from step 2 (T1->Atlas) and stuck with antsApplyTransforms, which I really don’t understand.

Are there any better/simplier options to do EPI->Atlas?

Thanks in advance!


I don’t have any suggestions for using these tools.

In AFNI, we would use 3dAllineate for EPI->anatomical. A notable point here is that choosing an appropriate cost function for EPI-to-T1w alignment really matters. In AFNI, we use lpc or lpc+ZZ, whose development and benefits are shown here:

For the anatomical-> template alignment, we would use 3dQwarp or, more likely, @SSwarper, which wraps around 3dQwarp to perform both skullstripping (SS) and nonlinear warping. 3dQwarp is described more here:

And as part of a typicaly FMRI processing flow, I would be using for convenience, to keep everything managed together.