Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A Question About Registration Issues Due to Extensive Brain Structure Absence Caused by Developmental Problems #1753

Open
JinDJsuper opened this issue May 24, 2024 · 7 comments

Comments

@JinDJsuper
Copy link

Operating system and version

Ubuntu 20.04

CPU architecture

x86_64 (PC, Intel Mac, other Intel/AMD)

ANTs code version

ants-2.5.0

ANTs installation type

Compiled from source

Summary of the problem

Hi
I have some issues with image registration, particularly with the registration of samples showing wide-ranging brain developmental abnormalities, which is not going as ideally as I'd hoped.
I'm working on an analysis of animal‘s brain structure, and my preliminary work involved using some animal‘s MRI images with antsMultivariateTemplateConstruction2.sh to build individual templates for our project.
Here's the command I used in command1.

My T1 image has a voxel size of 0.50.50.5. I used antsRegistrationSyN.sh to register the T1 image of a case to an individual template, but the results were not satisfactory. So, I revisited the answers in the issue and subsequently modified the parameters in antsRegistration, changing --transform SyN[ 0.1,3,0 ] \ --metric CC[ "$subject_template", "$input",1,4 ] \ to --transform SyN[ 0.25,3,0 ] \ --metric CC[ "$subject_template", "$input",1,3 ] \ . This adjustment yielded reasonably good registration results.
Here is the specific command I used in command2.

The issues I'm facing are with the registration of partially missing brain tissue. The registration doesn't appropriately account for the missing parts; instead, residual tissues remain. Additionally, there are halo effects around the hippocampus and some deep nuclei, indicating significant changes in those areas. Is this the limit of what ANTs can achieve? Could adjusting certain parameters improve the registration outcome?

Thanks very much,

DJ

This is t1 image of case,left image is ${input_name}2sub_syn0.25_3_InverseWarped.nii.gz ,which is template inverse registration to case and right image is original case image
case1

This is another more extreme case.
case2

Commands to reproduce the problem.

command1:
antsMultivariateTemplateConstruction2.sh -d 3 -i 5 -k 1 -f 6x4x2x1 -s 4x2x1x0vox -q 50x100x70x20 -t SyN -m CC -c 0 -r 0 -z ./template_result/dog_Affine_template0.nii.gz -o ./template_result/dog_Deformable_dogbrain*_brain.nii.gz

command2:
antsRegistration --verbose 1 --dimensionality 3 --float 0
--collapse-output-transforms 1
--output [ "$reg_output_dir"/${input_name}2sub_syn0.25_3_,"$reg_output_dir"/${input_name}2sub_syn0.25_3_Warped.nii.gz, "$reg_output_dir"/${input_name}2sub_syn0.25_3_InverseWarped.nii.gz ]
--interpolation Linear
--use-histogram-matching 0
--winsorize-image-intensities [ 0.005,0.995 ]
--initial-moving-transform [ "$subject_template", "$input",1 ]
--transform Rigid[ 0.1 ]
--metric MI[ "$subject_template", "$input",1,32,Regular,0.25 ]
--convergence [ 1000x500x250x100,1e-6,10 ]
--shrink-factors 8x4x2x1
--smoothing-sigmas 3x2x1x0vox
--transform Affine[ 0.1 ]
--metric MI[ "$subject_template", "$input",1,32,Regular,0.25 ]
--convergence [ 1000x500x250x100,1e-6,10 ]
--shrink-factors 8x4x2x1
--smoothing-sigmas 3x2x1x0vox
--transform SyN[ 0.25,3,0 ]
--metric CC[ "$subject_template", "$input",1,3 ]
--convergence [ 100x70x50x20,1e-6,10 ]
--shrink-factors 8x4x2x1
--smoothing-sigmas 3x2x1x0vox

Output of the command with verbose output.

Data to reproduce the problem

case1.zip
case2.zip

@gdevenyi
Copy link
Contributor

gdevenyi commented May 24, 2024

This is going to be a tough problem.

My suggestion is to

  1. Ensure you have good brain masks and skullstrip
  2. Try my registration scripts:
    https://github.com/CoBrALab/minc-toolkit-extras/blob/master/antsRegistration_affine_SyN.sh
    (dependecy) https://github.com/CoBrALab/minc-toolkit-extras/blob/master/ants_generate_iterations.py

Which are more "aggressive" in terms of large-scale deformations by travelling the image pyramid at larger scales and stepping down with smaller steps.

I have used these on a menagerie of animals already, would love to see how they do with dog brains!

@JinDJsuper
Copy link
Author

I really appreciate your suggestions and the methods you provided. I'm a bit of a beginner in this area, so I'm having trouble understanding the correct usage of your script and how to adjust the parameters properly. For example,
bash antsRegistration_affine_SyN.sh dogbrain_brain.nii.gz template.nii.gz test_ ,error is UTC [ failure] Required program ants_generate_iterations.py not found!
"This might be a very basic question, but I'm still learning.

@gdevenyi
Copy link
Contributor

You need to have a copy of the script, it needs to be chmod +x and it needs to be on the PATH.

I suggest you git clone the repo and then export PATH=/path/to/minc-toolkit-extras:$PATH

That will allow you to run the command without "bash" and fix the "can't find required command"

@JinDJsuper
Copy link
Author

thank you very much, i try this code,and maybe not some changs for my image. I think there might be some issues with the commands.This is my command:

bash /home/jindj/download/minc-toolkit-extras-master/antsRegistration_affine_SyN.sh --syn-metric CC[3] --syn-control 0.25,3,0 --syn-shrink-factors 8x4x2x1 --syn-smoothing-sigmas 3x2x1x0vox --syn-convergence 100x70x50x20 --linear-shrink-factors 6x4x2x1 --linear-smoothing-sigmas 4x2x1x0vox --linear-convergence 1000x500x250x100 dogbrain46_brain.nii.gz begle_Deformable_template0_rigid.nii.gzWarped.nii.gz testCC3_0.25_

antsApplyTransforms -3 -r dogbrain46_brain.nii.gz -i begle_Deformable_template0_rigid.nii.gzWarped.nii.gz -o regcc3_0.25.nii.gz -t [ testcc3_0.25_0GenericAffine.mat, 1 ] -t testcc3_0.25_1InverseWarp.nii.gz

case1

@gdevenyi
Copy link
Contributor

This is my command:

You are overrriding all the automatic features. Just use:
antsRegistration_affine_SyN.sh --syn-control 0.25,3,0 dogbrain46_brain.nii.gz begle_Deformable_template0_rigid.nii.gzWarped.nii.gz testCC3_0.25_

@JinDJsuper
Copy link
Author

hi:
thank you very much for your help

this is my command and its image is No.1 and No .2 is case image
bash /home/jindj/download/minc-toolkit-extras-master/antsRegistration_affine_SyN.sh --syn-control 0.25,3,0 dogbrain46_brain.nii.gz begle_Deformable_template0_rigid.nii.gzWarped.nii.gz testCC3_0.25_

its image is No. 3
bash /home/jindj/download/minc-toolkit-extras-master/antsRegistration_affine_SyN.sh --syn-control 0.25,2,0 dogbrain46_brain.nii.gz begle_Deformable_template0_rigid.nii.gzWarped.nii.gz testCC3_0.25_2_

No. 4 image is default command

i think that there are no more changes in these image ,so What should I do next ?

1716739007747

@gdevenyi
Copy link
Contributor

Hi,

First, I think you may be running into violating the fundamental assumptions of image registration, that the anatomy present in each image has a 1:1 correspondence, allowing for in-theory alignment.

But in general here, I think I would like to know a little more about the problem you're trying to solve, not the specific step, in particular I'm worried about https://xyproblem.info/

Can you give a full overview of what problem you're trying to solve, rather than this specific registration step?

I would also be interested in looking at the actual data you're using, I'm not a fan of a single slice-screenshot as any sort of representation of the data.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants