-
-
Notifications
You must be signed in to change notification settings - Fork 389
Description
Operating system and version
Ubuntu 22.04
CPU architecture
x86_64 (PC, Intel Mac, other Intel/AMD)
ANTs code version
2.2.0.dev133-gc7310
ANTs installation type
Downloaded Github release binaries
Summary of the problem
Hi,
I'm having a consistent problem when registering T1 images to MNI space.
The problem is related to a distortion in the inferior cerebellum, as can be seen in the following image.
I have tried antsRegistrationSyNQuick.sh, antsRegistration, and also antsRegistration_affine_SyN.sh
With and without the brain mask.
It doesn't happen only with this subject in specific, but with about 10% of our T1s. It is not scanner specific, and doesn't relate much with the quality of the sequence, some good quality present this problem and some bad images work just fine.
Here's the same subject before registration:
Any tips on how to overcome this problem?
Commands to reproduce the problem.
antsRegistration_affine_SyN.sh --fixed-mask model_t1w_mask.nii -o moving_resampled_to_mni.nii.gz subject_t1.nii mni_adni_t1w_tal_nlin_asym.nii moving_to_mni
Output of the command with verbose output.
Data to reproduce the problem
Unfortunately, the data can't be shared.
Activity
ntustison commentedon Feb 27, 2025
Without the data, I can't confirm but it looks like a well-known boundary effect and the MNI template is particularly susceptible because it cuts off really close to the inferior portion of the cerebellum. Following the linear transformation, the boundary of the deformable region is purposely clamped at the image boundaries to satisfy the SyN diffeomorphic constraints. One thing you can try is to pad the MNI template, run your registration, and then crop back to the original size as a post-processing step.
cookpa commentedon Feb 27, 2025
This is a common registration problem with two main causes
I use a script to reduce neck coverage, which uses
c3d
(available with ITK-SNAP).Then ImageMath can pad the images on all sides
ImageMath 3 padded.nii.gz PadImage t1w.nii.gz 20
This is often sufficient, but if problems persist you can also pad the template image. I do most of my registrations on brain-extracted images, which is a kind of implicit padding as it removes features at the edge of the images.
gdevenyi commentedon Feb 27, 2025
There is now an "extended neck" MNI ICBM model released in 2020 from the original team:
https://nist.mni.mcgill.ca/icbm-152-extended-nonlinear-atlases-2020/
guilhermepovala commentedon Feb 27, 2025
Thank you everyone for the fast replies. It worked pretty well after padding the template file. I didn't have to pad the moving file, only the fixed (which makes more sense to me, since there's little margin for error in the bottom part of the template).
I also like that the MNI ICBM has an extended neck template. We are using MNI-ADNI space (https://github.com/aces/mni-models_adni_nl), which is has bigger ventricles compared to the original MNI. Unfortunately they don't provide extended images. Does anyone know if they also provide this extended version? I couldn't find anywhere.
Is there a way to embed the Padding in the Warp.nii.gz file or I will always have to apply the transform and then un-pad the output?
cookpa commentedon Feb 27, 2025
We don't have a script that does padding, though maybe it would be useful to add.
Another risk with cropped templates is that the initial center of mass alignment in antsRegistration can be suboptimal. A tell for this would be to look at the affine only (apply the .mat, not the warp) transforms in your failed cases. If they look bad, that might be an issue as well.
gdevenyi commentedon Feb 27, 2025
Oh I use that, but I didn't know it was public. Cool.
I don't think one exists right now. They are are a different team at the MNI, they certainly have access to the methods and they probably could reconstruct an extended range one.
guilhermepovala commentedon Feb 27, 2025
Interesting @gdevenyi.
I will get in contact with them.
Would you be able to share how do you process the T1 images using the MNI-ADNI template?
I did try with the padding and it solve the problem of the cerebellum, but now many images are distorted overall.
So it basically solved one problem but created another one.
I will try to remove neck coverage like @cookpa mentioned. We just can't register only the extracted brain, but I will give it a try.
gdevenyi commentedon Feb 28, 2025
I use it as one of the potential priors for my preprocessing pipeline here:
https://github.com/coBrALab/iterativeN3
For the case for aged subjects.
I also use it as a starting target for https://github.com/CoBrALab/optimized_antsMultivariateTemplateConstruction for aged subjects.
Underneath, both use my
antsRegistration_affine_SyN.sh
andants_generate_iterations.py
scripts for registration from https://github.com/cobralab/minc-toolkit-extras/ (don't let the name fool you, just needs base python and ANTs). Just using these might solve your registration problems as well...guilhermepovala commentedon Feb 28, 2025
Great! I will take a look at your scripts and implement here.
I will let you know how it goes. Thank you very much for sharing.
Would you be able to share the priors with me?
gdevenyi commentedon Mar 4, 2025
@guilhermepovala run these commands against the (gunzip'd) files from the mni adni repo:
The model I was using corresponds to the asym model, but the sym models work fine too.