diff --git a/AutoWorkup/BAWantsRegistrationBuildTemplate.py b/AutoWorkup/BAWantsRegistrationBuildTemplate.py index 3d240688..0ec3eb0b 100644 --- a/AutoWorkup/BAWantsRegistrationBuildTemplate.py +++ b/AutoWorkup/BAWantsRegistrationBuildTemplate.py @@ -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' diff --git a/AutoWorkup/WorkupT1T2.py b/AutoWorkup/WorkupT1T2.py index 776ef9cf..91d954a2 100644 --- a/AutoWorkup/WorkupT1T2.py +++ b/AutoWorkup/WorkupT1T2.py @@ -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 diff --git a/BRAINSCommonLib/BRAINSFitSyN.h b/BRAINSCommonLib/BRAINSFitSyN.h index ea79b2e3..40045577 100644 --- a/BRAINSCommonLib/BRAINSFitSyN.h +++ b/BRAINSCommonLib/BRAINSFitSyN.h @@ -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); } @@ -48,7 +48,7 @@ simpleSynReg( typename FixedImageType::Pointer & infixedImage, } { std::vector convergenceWindowSizeList; - const unsigned int convergenceWindowSize = 15; + const unsigned int convergenceWindowSize = 25; convergenceWindowSizeList.push_back(convergenceWindowSize); regHelper->SetConvergenceWindowSizes( convergenceWindowSizeList ); } @@ -57,7 +57,7 @@ simpleSynReg( typename FixedImageType::Pointer & infixedImage, // --shrink-factors 3x2x1 std::vector > shrinkFactorsList; std::vector factors(4); - factors[0] = 6; + factors[0] = 5; factors[1] = 4; factors[2] = 2; factors[3] = 1; @@ -68,7 +68,7 @@ simpleSynReg( typename FixedImageType::Pointer & infixedImage, // --smoothing-sigmas 3x2x0 std::vector > smoothingSigmasList; std::vector sigmas(4); - sigmas[0] = 6; + sigmas[0] = 5; sigmas[1] = 4; sigmas[2] = 2; sigmas[3] = 0;