Multi-contrast population_template

Hi MRtrix3 team,

I noticed that in the latest release of MRtrix3, multi-contrast group-wise registration is feasible. I tried to use T1w MRI and wm_fod at the same time, but it failed. I am curious whether the script is setup to perform the task?

Thank you.

This is not supported. Multi-contrast registration requires all contrasts to share the same voxel grid (i.e. voxel size, image dimension, and transform). The typical use case would be different parameter maps obtained from the same acquisition, e.g. CSF/GM/WM compartments obtained from DWI with multi-tissue CSD.

Technically, you could work around this limitation by regridding the FODs to the T1w voxel grid or vice versa with mrgrid. Keep in mind that multi-contrast registration requires that the contrasts of the same subject have to be already perfectly aligned (so no residual motion and distortions between T1W and FODs of the same subject).

Thanks, Ben.
Yes, my image pairs have been aligned. I previously re-sampled the T1w image into the B0 image space. I will try mrgrid instead.

Actually, I think the problem is more likely simply that mrregister only provides the least squares metric, which won’t be appropriate for T1 registration unless the data are known to be scaled equivalently. This is where @alenaullauus’s cross correlation metric would really help. I’m hoping we’ll be able to merge that work in the not too distant future!

1 Like

Indeed, I forgot about the T1w image having to be intensity normalised… But that goes for the ODFs as well… At least mrregister or population_template should be able to complete without errors if all contrasts share the same voxel grid. But like you say, unless the T1w data sets are scaled equivalently, the resulting registration will likely not be good…

Thanks for the replies. I have done intensity normalization for T1w MRIs. I did an experiment of making a T1w template alone with population_template, and it looks pretty decent.

For my last experiment, with flirt I resampled T1w MRI to B0 , which I assumed to have the same grid and transform as the FOD. Maybe I am wrong on this.

In the linear stage, I give all the weights to T1w MRI, and it was completed. In the nonlinear stage, I give the weight of 1,1 for T1w and ODFs, and I received the following error:

mrregister: [ERROR] -nl_lmax option is not valid with 3D images

Without drilling into the specific code, it looks to me that maybe structural MRI nonlinear registration uses different setup, and once ODFs is in the picture, the registration will use the setup for ODFs on both image pairs?


I have regridded the images. However, I am still getting the same error of:

mrregister: 3D input pair T1regrid/Sub1-T1nav.mif, linear_template11_c0.mif
mrregister: SH image input pair wmfod/Sub1-wmfod.mif, linear_template11_c1.mif
mrregister: performing FOD registration
mrregister: [ERROR] -nl_lmax option is not valid with 3D images

It appears that linear registration is finished but stuck on nonlinear. I am using the version 3.0.2. Any suggestions will be appreciated.


The command I used

population_template T1regrid template/T1_template.mif wmfod template/wmfod_template.mif -mask_dir maskgrid -voxel_size 1.3 -warp_dir nl_xfm -linear_transformations_dir lin_xfm

Hi @xiaobird,

That is a bug in mrregister. Until it’s fixed, you can change the order of the contrasts so that the first one is not 3D:

population_template wmfod template/wmfod_template.mif T1regrid template/T1_template.mif -mask_dir maskgrid -voxel_size 1.3 -warp_dir nl_xfm -linear_transformations_dir lin_xfm

Hi Max,

Thank you for the tip!