Multi-echo preprocessing in AFNI - volreg step

AFNI version info (afni -ver):

Hi experts,
@ptaylor @tsalo

In the afni_proc examples, for multi-echo preprocessing with normalization to standard template, the order of blocks is always somethign like this:

-blocks tshift align tlrc volreg mask combine blur scale regress

the volreg (nonlinear registraton) step seems to combe before combine. Is this the recommended order of steps - shall we do nonlinear registration before combining the echoes? My idea was that any nonlinear registration might change the association between the different echoes, and therefore the echoes should be combined first before doing normalization.

If one does intend to do volreg after combine, I am not sure how it would be possible, since one would still need to the linear alignment (motion correction) before doing the combine - i.e., is there a way to do only the motion correction, then combine, then do nonlinear registration steps?

Appreciate your input on this.

Best,
Avi

Hi Avi,

I'm not sure that the NL aspect would be impactful here. While the rigid-body motion alignment with 3dvolreg varies across time, the other transformations are constant across echoes and (usually) time. So for each voxel in the registered output, the value comes from a fixed coordinate of the input, which then gets a weighted average of the voxel centers around that coordinate. That coordinate (and weighting) will be constant across echoes, regardless of whether the transformation is rigid-body, affine or NL.

It isn't clear to me how NL registration would affect the echo association more than any other registration, at least assuming that there is enough motion to take one off the original grid.

-rick

1 Like

This has been a general concern, but there is no right answer here. The worry about non-linear transforms is, if there is a different magnitude intensity gradient across echoes (i.e. from the surface near the receiver coils to the center of the brain) a non-linear spatial interpolation function might distort the relationship between the echoes. The flip side is, if you are doing one spatial interpolation before multi-echo denoising and one after, you're adding unncessary spatial smoothness to your data and possibly other problems. (See note at: About multi-echo fMRI — tedana 25.1.0 documentation).

On balance, I recommend one spatial transform, as currently implemented in your block order above.

Dan

1 Like

Thank you for the input. If one only does linear transform before tedana (i.e., align to an epi reference volume), then combine (tedana), followed by nonlinear registration steps, would that be the safer option?

Unless you look at your data and are seeing non-trivial changes in the expected relationships between the echoes I'd apply a single transform with linear and non-linear steps before running tedana. An example of a problem is that the raw signal magnitudes should drop from the shortest to the longest echo. That is before alignment, the raw magnitudes of three echoes might be 6000, 3000, and 1000. If after nonlinear alignment, there are more voxels where the gap is raw values or are much closer or the values are flipped, that would be a sign of concern.

@handwerkerd I don't see this. Of course the drop in magnitudes across the echoes should be preserved, but it is not clear of what relevance NL registration is.

NL registration is perhaps a bit separate from the interpolation method chosen. NL registration simply means the spatial mapping of source to destination coordinates is not affine. It is about choosing which coordinates to map to the destination coordinates. It is not clear how the way the coordinates are chosen would matter (as usual, assuming motion takes us off the original grid anyway).

The interpolation method is a separate consideration. And if there is a particular interpolation that does not seem reasonable, e.g. if its spatial extent is too large, whether polynomial or sinc, say, that would apply in either case, whether the registration is affine or NL.

Is your concern for the source to dest coordinate choosing method, or the interpolation function? Is it just about high-order interpolation (I'm not sure exactly what that implies)? Or is it really about the extents, reaching beyond first neighbor voxels, for example, like sinc would do?

Thanks,

-rick

I think the potential issue is more linear vs nonlinear interpolation rather than linear vs nonlinear registration. Nonlinear registration is likely more aggressive nonlinear interpolation, but that's a secondary issue. I've been thinking how to best quantify a potential problem and I have an idea. In tedana, we save the mean T2* and S0 plots and root-mean-square error (RMSE) of the fit across time. In the output report it's Outputs of tedana — tedana 25.1.0 documentation and Outputs of tedana — tedana 25.1.0 documentation with corresponding data files. For a head-to-head comparision of linear vs nonlinear, I'd expect the meanT2* and S0 maps to look very similar (except for some smoothing differences). I'd also expect the RMSE to look similar. If nonlinear interpolation/registration is causing a problem, I'd expect to see larger RMSE, particularly in the center of the brain.

Dan

Some testing sounds great. But this seems to come down to the kernel size for the interpolation, whether one goes outside the box of 8 first neighbors, as sinc or fourier presumably do.

In AP, I have been explicitly recommending wsinc5 interpolation in the case of tedana (via -volreg_warp_final_interp). But that is specifically for tedana, it has nothing to do with whether one uses NL registration. If the larger interpolation kernel is expected to be problematic, I will take wsinc5 out of the examples and suggest not to use it. Maybe that will wait on some testing.

Thanks,

-rick