@@ -574,6 +574,7 @@ def _list_outputs(self):
574574 'brainvols.csv' )
575575 return outputs
576576
577+
577578class JointFusionInputSpec (ANTSCommandInputSpec ):
578579 dimension = traits .Enum (3 , 2 , 4 , argstr = '%d' , position = 0 , usedefault = True , mandatory = True ,
579580 desc = 'image dimension (2, 3, or 4)' )
@@ -588,21 +589,23 @@ class JointFusionInputSpec(ANTSCommandInputSpec):
588589 patch_radius = traits .ListInt (minlen = 3 , maxlen = 3 , argstr = '-rp %s' , desc = 'Patch radius for similarity measures, scalar or vector. Default: 2x2x2' )
589590 search_radius = traits .ListInt (minlen = 3 , maxlen = 3 , argstr = '-rs %s' , desc = 'Local search radius. Default: 3x3x3' )
590591 exclusion_region = File (exists = True , argstr = '-x %s' , desc = 'Specify an exclusion region for the given label.' )
591- output_posteriors_name_template = traits .Str ('POSTERIOR_%02d.nii.gz' , argstr = '-p %s' ,
592- desc = "Save the posterior maps (probability that each voxel belongs to each " + \
593- "label) as images. The number of images saved equals the number of labels. " + \
594- "The filename pattern must be in C printf format, e.g. posterior%04d.nii.gz" )
595- output_voting_weights_name_template = traits .Str ('WEIGHTED_%04d.nii.gz' , argstr = '-w %s' , desc = "Save the voting weights as " + \
596- "images. The number of images saved equals the number of atlases. The " + \
597- "filename pattern must be in C printf format, e.g. weight%04d.nii.gz" )
592+ # TODO: These are almost never needed except for debugging
593+ # output_posteriors_name_template = traits.Str('POSTERIOR_%02d.nii.gz', argstr='-p %s',
594+ # desc="Save the posterior maps (probability that each voxel belongs to each " +\
595+ # "label) as images. The number of images saved equals the number of labels. " +\
596+ # "The filename pattern must be in C printf format, e.g. posterior%04d.nii.gz")
597+ # output_voting_weights_name_template = traits.Str('WEIGHTED_%04d.nii.gz', argstr='-w %s', desc="Save the voting weights as " +\
598+ # "images. The number of images saved equals the number of atlases. The " +\
599+ # "filename pattern must be in C printf format, e.g. weight%04d.nii.gz")
598600 atlas_group_id = traits .ListInt (argstr = '-gp %d...' , desc = 'Assign a group ID for each atlas' )
599601 atlas_group_weights = traits .ListInt (argstr = '-gpw %d...' , desc = 'Assign the voting weights to each atlas group' )
600602
601603
602604class JointFusionOutputSpec (TraitedSpec ):
603605 output_label_image = File (exists = True )
604- # TODO: optional outputs - output_posteriors, output_voting_weights
605-
606+ # TODO: These are almost never needed except for debugging,
607+ # so delay complicated implementation until a need arises
608+ # optional outputs - output_posteriors, output_voting_weights
606609
607610class JointFusion (ANTSCommand ):
608611 """
@@ -616,22 +619,24 @@ class JointFusion(ANTSCommand):
616619 >>> at.inputs.method = 'Joint[0.1,2]'
617620 >>> at.inputs.output_label_image ='fusion_labelimage_output.nii'
618621 >>> at.inputs.warped_intensity_images = ['im1.nii',
619- ... 'im2.nii']
622+ ... 'im2.nii',
623+ ... 'im3.nii']
620624 >>> at.inputs.warped_label_images = ['segmentation0.nii.gz',
625+ ... 'segmentation1.nii.gz',
621626 ... 'segmentation1.nii.gz']
622627 >>> at.inputs.target_image = 'T1.nii'
623628 >>> at.inputs.patch_radius = [3,2,1]
624629 >>> at.inputs.search_radius = [1,2,3]
625630 >>> at.cmdline
626- 'jointfusion 3 1 -m Joint[0.1,2] -rp 3x2x1 -rs 1x2x3 -tg T1.nii -g im1.nii -g im2.nii -l segmentation0.nii.gz -l segmentation1.nii.gz fusion_labelimage_output.nii'
631+ 'jointfusion 3 1 -m Joint[0.1,2] -rp 3x2x1 -rs 1x2x3 -tg T1.nii -g im1.nii -g im2.nii -g im3.nii - l segmentation0.nii.gz -l segmentation1 .nii.gz -l segmentation1.nii.gz fusion_labelimage_output.nii'
627632
628633 Alternately, you can specify the voting method and parameters more 'Pythonically':
629634
630635 >>> at.inputs.method = 'Joint'
631636 >>> at.inputs.alpha = 0.5
632637 >>> at.inputs.beta = 1
633638 >>> at.cmdline
634- 'jointfusion 3 1 -m Joint[0.5,1] -rp 3x2x1 -rs 1x2x3 -tg T1.nii -g im1.nii -g im2.nii -l segmentation0.nii.gz -l segmentation1.nii.gz fusion_labelimage_output.nii'
639+ 'jointfusion 3 1 -m Joint[0.5,1] -rp 3x2x1 -rs 1x2x3 -tg T1.nii -g im1.nii -g im2.nii -g im3.nii - l segmentation0.nii.gz -l segmentation1 .nii.gz -l segmentation1.nii.gz fusion_labelimage_output.nii'
635640 """
636641 input_spec = JointFusionInputSpec
637642 output_spec = JointFusionOutputSpec
0 commit comments