ANTsX / ANTs

Advanced Normalization Tools (ANTs)
Apache License 2.0
1.18k stars 381 forks source link

antsMultivariateTemplateConstruction2.sh with inadequate cardiac dataset #1119

Closed valeryozenne closed 3 years ago

valeryozenne commented 3 years ago

Dear ANTs experts

I'm looking for advise for using antsMultivariateTemplateConstruction2.sh with inadequate datasets. (Please continue reading :-) )

I wish to create an anatomical template on a large cohort of three ex-vivo cardiac samples at 0.150 mm. I focus on the ventricle (middle and lower part of the images). My expectation are lower that you could get in neuroimaging.

My pre-processing steps use : intensity truncation to remove few outliers (0.01%), N4 filtering, padding to avoid truncation during alignement, pre-alignement of the data using rigid transformation, depadding. I resampled the data to lower resolution (1.0mm, 0.6mm, 0.3mm), for testing to save time .

I have three questions: 1) How should I manage the resolution of my dataset in the input parameter of antsMultivariateTemplateConstruction2.sh . Template construction is almost acceptable at 0.6 mm but quality decrease at 0.3mm and 0.15 mm. (See images below). Script is available at this link : https://filesender.renater.fr/?s=download&token=e1ba11f2-0383-4018-a1c5-8c9650b1eeab I use a two steps process but I'm not sure it is really necessary for the 3 samples.

My dataset is inedaquate for different reasons :

2) Is there a metric/parameter) more appropriate in case of large deformation ? 3) Is there a metric (CC, MI, MSQ, DEMONS) more appropriate in case of bad intensity conservation?

Thanks a lot in advance Valéry

ntustison commented 3 years ago

How should I manage the resolution of my dataset in the input parameter of antsMultivariateTemplateConstruction2.sh .

I'm not quite sure what you mean. If you get good results at a specific resolution, you have been able to resample your data, so why not simply resample all data to the resolution which works best?

Is there a metric/parameter) more appropriate in case of large deformation ?

CC is the go-to metric and would seem to be what you'd want to use here. More relevant to large deformation would be to increase the number of levels and scale factors (see -f and -q parameters.)

Is there a metric (CC, MI, MSQ, DEMONS) more appropriate in case of bad intensity conservation?

CC is the go-to metric and would seem to be what you'd want to use here.

valeryozenne commented 3 years ago

Thanks for the answers. I add precision for the first question, I have DTI data at 0.3 mm and T2*-weighted images at 0.15 mm. I wish to do the following step.

The tissue signature in the ventricle I'm looking is relatively small, therefore having a template at 0.3 mm or 0.150 mm would be better than at 0.6 mm. Should I increase the number of levels if I increase the resolution to get more an accurate template ? What change in my command would you advise ? Thanks in advance. Valéry

ntustison commented 3 years ago

Should I increase the number of levels if I increase the resolution to get more an accurate template ?

Probably. You should test it and see.

What change in my command would you advise ?

Just add another element for each additional level you want to include in both the -f and -q options.

valeryozenne commented 3 years ago

Some updates, I dig into the forum and find this recent post about yucatan_minipig_template that's help me a lot.

The following modifications had an impact on the result:

1) A multi-level approach from 1.0mm to 0.6 to 0.3 to 0.15mm: the initial guess of the template is taken from the previous template at lower resolution and resampled at the current resolution. 2) The following script for setting the parameter at each level of resolution was quite usefull https://github.com/CoBrALab/minc-toolkit-extras/blob/master/ants_generate_iterations.py.

The template is still building at 0.150um but the resulting volume is sharper.

Capture d’écran de 2020-12-09 18-49-08

The issue can be closed, I move to my next issue. Thanks Valéry

gdevenyi commented 3 years ago

Another win for ants_generate_iterations.py :+1:

cookpa commented 3 years ago

Very nice! @gdevenyi I looked at the script and it seems to generate an antsRegistration call, how do you apply this to the template context?

gdevenyi commented 3 years ago

Yes, I do use it to generate antsRegistration options to drive https://github.com/CoBrALab/minc-toolkit-extras/blob/master/antsRegistration_affine_SyN.sh my generic registration script.

However, --output modelbuild outputs a image space pyramid set of options for the antsMultivariateTemplateConstruction2.sh

I think the other set of tricks mentioned is this sequence of modelbuilding: https://github.com/gdevenyi/yucatan_minipig_template/blob/master/modelbuild/modelbuild.sh which does an initialization, rigid, then affine, then nlin model.

I've been meaning to cleanup another script I made, which wraps antsMultivariateTemplateConstruction2.sh in a set of scales that is akin to the volgenmodel concept that was how the original MNI models were generated, it's a further generalized of the minipig model generation. One day, when chimps are done.