@@ -574,6 +574,7 @@ def _list_outputs(self):
574
574
'brainvols.csv' )
575
575
return outputs
576
576
577
+
577
578
class JointFusionInputSpec (ANTSCommandInputSpec ):
578
579
dimension = traits .Enum (3 , 2 , 4 , argstr = '%d' , position = 0 , usedefault = True , mandatory = True ,
579
580
desc = 'image dimension (2, 3, or 4)' )
@@ -588,21 +589,23 @@ class JointFusionInputSpec(ANTSCommandInputSpec):
588
589
patch_radius = traits .ListInt (minlen = 3 , maxlen = 3 , argstr = '-rp %s' , desc = 'Patch radius for similarity measures, scalar or vector. Default: 2x2x2' )
589
590
search_radius = traits .ListInt (minlen = 3 , maxlen = 3 , argstr = '-rs %s' , desc = 'Local search radius. Default: 3x3x3' )
590
591
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")
598
600
atlas_group_id = traits .ListInt (argstr = '-gp %d...' , desc = 'Assign a group ID for each atlas' )
599
601
atlas_group_weights = traits .ListInt (argstr = '-gpw %d...' , desc = 'Assign the voting weights to each atlas group' )
600
602
601
603
602
604
class JointFusionOutputSpec (TraitedSpec ):
603
605
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
606
609
607
610
class JointFusion (ANTSCommand ):
608
611
"""
@@ -616,22 +619,24 @@ class JointFusion(ANTSCommand):
616
619
>>> at.inputs.method = 'Joint[0.1,2]'
617
620
>>> at.inputs.output_label_image ='fusion_labelimage_output.nii'
618
621
>>> at.inputs.warped_intensity_images = ['im1.nii',
619
- ... 'im2.nii']
622
+ ... 'im2.nii',
623
+ ... 'im3.nii']
620
624
>>> at.inputs.warped_label_images = ['segmentation0.nii.gz',
625
+ ... 'segmentation1.nii.gz',
621
626
... 'segmentation1.nii.gz']
622
627
>>> at.inputs.target_image = 'T1.nii'
623
628
>>> at.inputs.patch_radius = [3,2,1]
624
629
>>> at.inputs.search_radius = [1,2,3]
625
630
>>> 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'
627
632
628
633
Alternately, you can specify the voting method and parameters more 'Pythonically':
629
634
630
635
>>> at.inputs.method = 'Joint'
631
636
>>> at.inputs.alpha = 0.5
632
637
>>> at.inputs.beta = 1
633
638
>>> 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'
635
640
"""
636
641
input_spec = JointFusionInputSpec
637
642
output_spec = JointFusionOutputSpec
0 commit comments