Skip to content

Commit

Permalink
ENH: Set ANTS Registraiton parameters based on experimental results
Browse files Browse the repository at this point in the history
These values for registration parameters should make the
registration process proceed faster with very nominal
change to the result values.
  • Loading branch information
hjmjohnson committed Jan 9, 2013
1 parent 7414c49 commit b8f5d4d
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 23 deletions.
30 changes: 16 additions & 14 deletions AutoWorkup/BAWantsRegistrationBuildTemplate.py
Original file line number Diff line number Diff line change
Expand Up @@ -198,22 +198,24 @@ def BAWantsRegistrationTemplateBuildSingleIterationWF(iterationPhasePrefix=''):
BeginANTS.inputs.dimension = 3
""" This is the recommended set of parameters from the ANTS developers """
BeginANTS.inputs.output_transform_prefix = str(iterationPhasePrefix) + '_tfm'
BeginANTS.inputs.transforms = ["Rigid", "Affine", "SyN"]
BeginANTS.inputs.transform_parameters = [[0.1], [0.1], [0.15, 3.0, 0.0]]
BeginANTS.inputs.metric = ['Mattes', 'Mattes', 'CC']
BeginANTS.inputs.sampling_strategy = ['Regular', 'Regular', None]
BeginANTS.inputs.sampling_percentage = [0.1, 0.1, 1.0]
BeginANTS.inputs.metric_weight = [1.0, 1.0, 1.0]
BeginANTS.inputs.radius_or_number_of_bins = [32, 32, 4]
BeginANTS.inputs.number_of_iterations = [[2000, 2000, 2000], [1000, 1000, 1000], [10000, 500, 500, 200]]
BeginANTS.inputs.convergence_threshold = [5e-7, 5e-7, 5e-7]
BeginANTS.inputs.convergence_window_size = [15, 15, 15]
BeginANTS.inputs.use_histogram_matching = [True, True, True]
BeginANTS.inputs.shrink_factors = [[4, 2, 1], [4, 2, 1], [6, 4, 2, 1]]
BeginANTS.inputs.smoothing_sigmas = [[4, 2, 0], [4, 2, 0], [6, 4, 2, 0]]
BeginANTS.inputs.use_estimate_learning_rate_once = [False, False, False]
BeginANTS.inputs.transforms = ["Rigid", "Similarity", "Affine", "SyN"]
BeginANTS.inputs.transform_parameters = [[0.1], [0.1], [0.1], [0.15, 3.0, 0.0]]
BeginANTS.inputs.metric = ['Mattes', 'Mattes', 'Mattes', 'CC']
BeginANTS.inputs.sampling_strategy = ['Regular', 'Regular', 'Regular', None]
BeginANTS.inputs.sampling_percentage = [1.0, 1.0, 1.0, 1.0]
BeginANTS.inputs.metric_weight = [1.0, 1.0, 1.0, 1.0]
BeginANTS.inputs.radius_or_number_of_bins = [32, 32, 32, 4]
BeginANTS.inputs.convergence_threshold = [5e-7, 5e-7, 5e-7, 5e-7]
BeginANTS.inputs.convergence_window_size = [25, 25, 25, 25]
BeginANTS.inputs.use_histogram_matching = [True, True, True, True]
BeginANTS.inputs.number_of_iterations = [[2000, 2000], [2000, 2000], [1000, 1000, 100], [10000, 500, 500, 200]]
BeginANTS.inputs.smoothing_sigmas = [[4, 2], [5, 2], [4, 2, 1], [5, 4, 2, 0]]
BeginANTS.inputs.shrink_factors = [[4, 2], [5, 2], [4, 2, 1], [5, 4, 2, 1]]
BeginANTS.inputs.use_estimate_learning_rate_once = [False, False, False, False]
BeginANTS.inputs.write_composite_transform = True
BeginANTS.inputs.collapse_output_transforms = True
BeginANTS.inputs.winsorize_lower_quantile = 0.025
BeginANTS.inputs.winsorize_upper_quantile = 0.975
BeginANTS.inputs.output_warped_image = 'atlas2subject.nii.gz'
BeginANTS.inputs.output_inverse_warped_image = 'subject2atlas.nii.gz'

Expand Down
8 changes: 4 additions & 4 deletions AutoWorkup/WorkupT1T2.py
Original file line number Diff line number Diff line change
Expand Up @@ -693,15 +693,15 @@ def WorkupT1T2(subjectid, mountPrefix, ExperimentBaseDirectoryCache, ExperimentB
AtlasToSubjectantsRegistration[sessionid].inputs.transform_parameters = [[0.1], [0.15, 3.0, 0.0]]
AtlasToSubjectantsRegistration[sessionid].inputs.metric = ['Mattes', 'CC']
AtlasToSubjectantsRegistration[sessionid].inputs.sampling_strategy = ['Regular', None]
AtlasToSubjectantsRegistration[sessionid].inputs.sampling_percentage = [0.1, 1.0]
AtlasToSubjectantsRegistration[sessionid].inputs.sampling_percentage = [1.0, 1.0]
AtlasToSubjectantsRegistration[sessionid].inputs.metric_weight = [1.0, 1.0]
AtlasToSubjectantsRegistration[sessionid].inputs.radius_or_number_of_bins = [32, 4]
AtlasToSubjectantsRegistration[sessionid].inputs.number_of_iterations = [[1000, 1000, 1000], [10000, 500, 500, 200]]
AtlasToSubjectantsRegistration[sessionid].inputs.convergence_threshold = [5e-7, 5e-7]
AtlasToSubjectantsRegistration[sessionid].inputs.convergence_window_size = [15, 15]
AtlasToSubjectantsRegistration[sessionid].inputs.convergence_window_size = [25, 25]
AtlasToSubjectantsRegistration[sessionid].inputs.use_histogram_matching = [True, True]
AtlasToSubjectantsRegistration[sessionid].inputs.shrink_factors = [[4, 2, 1], [6, 4, 2, 1]]
AtlasToSubjectantsRegistration[sessionid].inputs.smoothing_sigmas = [[4, 2, 0], [6, 4, 2, 0]]
AtlasToSubjectantsRegistration[sessionid].inputs.shrink_factors = [[4, 2, 1], [5, 4, 2, 1]]
AtlasToSubjectantsRegistration[sessionid].inputs.smoothing_sigmas = [[4, 2, 0], [5, 4, 2, 0]]
AtlasToSubjectantsRegistration[sessionid].inputs.use_estimate_learning_rate_once = [False, False]
AtlasToSubjectantsRegistration[sessionid].inputs.write_composite_transform = True
AtlasToSubjectantsRegistration[sessionid].inputs.collapse_output_transforms = True
Expand Down
10 changes: 5 additions & 5 deletions BRAINSCommonLib/BRAINSFitSyN.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ simpleSynReg( typename FixedImageType::Pointer & infixedImage,

typename SyNRegistrationHelperType::Pointer regHelper = SyNRegistrationHelperType::New();
{
const float lowerQuantile = 0.0;
const float upperQuantile = 1.0;
const float lowerQuantile = 0.025;
const float upperQuantile = 0.975;
const bool doWinsorize(false);
regHelper->SetWinsorizeImageIntensities(doWinsorize, lowerQuantile, upperQuantile);
}
Expand Down Expand Up @@ -48,7 +48,7 @@ simpleSynReg( typename FixedImageType::Pointer & infixedImage,
}
{
std::vector<unsigned int> convergenceWindowSizeList;
const unsigned int convergenceWindowSize = 15;
const unsigned int convergenceWindowSize = 25;
convergenceWindowSizeList.push_back(convergenceWindowSize);
regHelper->SetConvergenceWindowSizes( convergenceWindowSizeList );
}
Expand All @@ -57,7 +57,7 @@ simpleSynReg( typename FixedImageType::Pointer & infixedImage,
// --shrink-factors 3x2x1
std::vector<std::vector<unsigned int> > shrinkFactorsList;
std::vector<unsigned int> factors(4);
factors[0] = 6;
factors[0] = 5;
factors[1] = 4;
factors[2] = 2;
factors[3] = 1;
Expand All @@ -68,7 +68,7 @@ simpleSynReg( typename FixedImageType::Pointer & infixedImage,
// --smoothing-sigmas 3x2x0
std::vector<std::vector<float> > smoothingSigmasList;
std::vector<float> sigmas(4);
sigmas[0] = 6;
sigmas[0] = 5;
sigmas[1] = 4;
sigmas[2] = 2;
sigmas[3] = 0;
Expand Down

0 comments on commit b8f5d4d

Please sign in to comment.