@@ -647,8 +647,9 @@ def _format_arg(self, opt, spec, val):
647647 if not self ._quantilesDone :
648648 return self ._formatWinsorizeImageIntensities ()
649649 return '' # Must return something for argstr!
650- elif opt == 'collapse_linear_transforms_to_fixed_image_header' :
651- return '' # Command no longer exist, so return empty string for backwards compatibility
650+ # This feature was removed from recent versions of antsRegistration due to corrupt outputs.
651+ #elif opt == 'collapse_linear_transforms_to_fixed_image_header':
652+ # return self._formatCollapseLinearTransformsToFixedImageHeader()
652653 return super (Registration , self )._format_arg (opt , spec , val )
653654
654655 def _outputFileNames (self , prefix , count , transform , inverse = False ):
@@ -684,91 +685,93 @@ def _list_outputs(self):
684685 if isdefined (self .inputs .invert_initial_moving_transform ):
685686 invert_initial_moving_transform = self .inputs .invert_initial_moving_transform
686687
687- if not self .inputs .collapse_output_transforms :
688- transformCount = 0
689- if isdefined (self .inputs .initial_moving_transform ):
690- outputs ['forward_transforms' ].append (
691- self .inputs .initial_moving_transform )
692- outputs ['forward_invert_flags' ].append (
693- invert_initial_moving_transform )
694- outputs ['reverse_transforms' ].insert (
695- 0 , self .inputs .initial_moving_transform )
696- outputs ['reverse_invert_flags' ].insert (
697- 0 , not invert_initial_moving_transform ) # Prepend
698- transformCount += 1
699- elif isdefined (self .inputs .initial_moving_transform_com ):
700- forwardFileName , forwardInverseMode = self ._outputFileNames (
701- self .inputs .output_transform_prefix ,
702- transformCount ,
703- 'Initial' )
704- reverseFileName , reverseInverseMode = self ._outputFileNames (
705- self .inputs .output_transform_prefix ,
706- transformCount ,
707- 'Initial' ,
708- True )
709- outputs ['forward_transforms' ].append (os .path .abspath (forwardFileName ))
710- outputs ['forward_invert_flags' ].append (False )
711- outputs ['reverse_transforms' ].insert (0 ,
712- os .path .abspath (reverseFileName ))
713- outputs ['reverse_invert_flags' ].insert (0 , True )
714- transformCount += 1
715-
716- for count in range (len (self .inputs .transforms )):
717- forwardFileName , forwardInverseMode = self ._outputFileNames (
718- self .inputs .output_transform_prefix , transformCount ,
719- self .inputs .transforms [count ])
720- reverseFileName , reverseInverseMode = self ._outputFileNames (
721- self .inputs .output_transform_prefix , transformCount ,
722- self .inputs .transforms [count ], True )
723- outputs ['forward_transforms' ].append (
724- os .path .abspath (forwardFileName ))
725- outputs ['forward_invert_flags' ].append (forwardInverseMode )
726- outputs ['reverse_transforms' ].insert (
727- 0 , os .path .abspath (reverseFileName ))
728- outputs [
729- 'reverse_invert_flags' ].insert (0 , reverseInverseMode )
730- transformCount += 1
731- elif not self .inputs .write_composite_transform :
732- transformCount = 0
733- isLinear = [any (self ._linear_transform_names == t )
734- for t in self .inputs .transforms ]
735- collapse_list = []
736-
737- if isdefined (self .inputs .initial_moving_transform ) or \
738- isdefined (self .inputs .initial_moving_transform_com ):
739- isLinear .insert (0 , True )
740-
741- # Only files returned by collapse_output_transforms
742- if any (isLinear ):
743- collapse_list .append ('GenericAffine' )
744- if not all (isLinear ):
745- collapse_list .append ('SyN' )
746-
747- for transform in collapse_list :
748- forwardFileName , forwardInverseMode = self ._outputFileNames (
749- self .inputs .output_transform_prefix ,
750- transformCount ,
751- transform ,
752- inverse = False )
753- reverseFileName , reverseInverseMode = self ._outputFileNames (
754- self .inputs .output_transform_prefix ,
755- transformCount ,
756- transform ,
757- inverse = True )
758- outputs ['forward_transforms' ].append (os .path .abspath (
759- forwardFileName ))
760- outputs ['forward_invert_flags' ].append (forwardInverseMode )
761- outputs ['reverse_transforms' ].append (
762- os .path .abspath (reverseFileName ))
763- outputs ['reverse_invert_flags' ].append (reverseInverseMode )
764- transformCount += 1
765688 if self .inputs .write_composite_transform :
766689 fileName = self .inputs .output_transform_prefix + 'Composite.h5'
767690 outputs ['composite_transform' ] = [os .path .abspath (fileName )]
768691 fileName = self .inputs .output_transform_prefix + \
769692 'InverseComposite.h5'
770693 outputs ['inverse_composite_transform' ] = [
771694 os .path .abspath (fileName )]
695+ else : # If composite transforms are written, then individuals are not written (as of 2014-10-26
696+ if not self .inputs .collapse_output_transforms :
697+ transformCount = 0
698+ if isdefined (self .inputs .initial_moving_transform ):
699+ outputs ['forward_transforms' ].append (
700+ self .inputs .initial_moving_transform )
701+ outputs ['forward_invert_flags' ].append (
702+ invert_initial_moving_transform )
703+ outputs ['reverse_transforms' ].insert (
704+ 0 , self .inputs .initial_moving_transform )
705+ outputs ['reverse_invert_flags' ].insert (
706+ 0 , not invert_initial_moving_transform ) # Prepend
707+ transformCount += 1
708+ elif isdefined (self .inputs .initial_moving_transform_com ):
709+ forwardFileName , forwardInverseMode = self ._outputFileNames (
710+ self .inputs .output_transform_prefix ,
711+ transformCount ,
712+ 'Initial' )
713+ reverseFileName , reverseInverseMode = self ._outputFileNames (
714+ self .inputs .output_transform_prefix ,
715+ transformCount ,
716+ 'Initial' ,
717+ True )
718+ outputs ['forward_transforms' ].append (os .path .abspath (forwardFileName ))
719+ outputs ['forward_invert_flags' ].append (False )
720+ outputs ['reverse_transforms' ].insert (0 ,
721+ os .path .abspath (reverseFileName ))
722+ outputs ['reverse_invert_flags' ].insert (0 , True )
723+ transformCount += 1
724+
725+ for count in range (len (self .inputs .transforms )):
726+ forwardFileName , forwardInverseMode = self ._outputFileNames (
727+ self .inputs .output_transform_prefix , transformCount ,
728+ self .inputs .transforms [count ])
729+ reverseFileName , reverseInverseMode = self ._outputFileNames (
730+ self .inputs .output_transform_prefix , transformCount ,
731+ self .inputs .transforms [count ], True )
732+ outputs ['forward_transforms' ].append (
733+ os .path .abspath (forwardFileName ))
734+ outputs ['forward_invert_flags' ].append (forwardInverseMode )
735+ outputs ['reverse_transforms' ].insert (
736+ 0 , os .path .abspath (reverseFileName ))
737+ outputs [
738+ 'reverse_invert_flags' ].insert (0 , reverseInverseMode )
739+ transformCount += 1
740+ else :
741+ transformCount = 0
742+ isLinear = [any (self ._linear_transform_names == t )
743+ for t in self .inputs .transforms ]
744+ collapse_list = []
745+
746+ if isdefined (self .inputs .initial_moving_transform ) or \
747+ isdefined (self .inputs .initial_moving_transform_com ):
748+ isLinear .insert (0 , True )
749+
750+ # Only files returned by collapse_output_transforms
751+ if any (isLinear ):
752+ collapse_list .append ('GenericAffine' )
753+ if not all (isLinear ):
754+ collapse_list .append ('SyN' )
755+
756+ for transform in collapse_list :
757+ forwardFileName , forwardInverseMode = self ._outputFileNames (
758+ self .inputs .output_transform_prefix ,
759+ transformCount ,
760+ transform ,
761+ inverse = False )
762+ reverseFileName , reverseInverseMode = self ._outputFileNames (
763+ self .inputs .output_transform_prefix ,
764+ transformCount ,
765+ transform ,
766+ inverse = True )
767+ outputs ['forward_transforms' ].append (os .path .abspath (
768+ forwardFileName ))
769+ outputs ['forward_invert_flags' ].append (forwardInverseMode )
770+ outputs ['reverse_transforms' ].append (
771+ os .path .abspath (reverseFileName ))
772+ outputs ['reverse_invert_flags' ].append (reverseInverseMode )
773+ transformCount += 1
774+
772775 out_filename = self ._get_outputfilenames (inverse = False )
773776 inv_out_filename = self ._get_outputfilenames (inverse = True )
774777 if out_filename :
0 commit comments