Skip to content

Commit 8def391

Browse files
committed
Test
1 parent 054e9bb commit 8def391

File tree

1 file changed

+24
-10
lines changed

1 file changed

+24
-10
lines changed

nipype/interfaces/ants/registration.py

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -242,9 +242,9 @@ class RegistrationInputSpec(ANTSCommandInputSpec):
242242
restore_state = File(argstr='--restore-state %s', exists=True,
243243
desc='Filename for restoring the internal restorable state of the registration')
244244

245-
initial_moving_transform = File(argstr='%s', exists=True, desc='',
245+
initial_moving_transform = InputMultiPath(argstr='%s', exists=True, desc='',
246246
xor=['initial_moving_transform_com'])
247-
invert_initial_moving_transform = traits.Bool(requires=["initial_moving_transform"],
247+
invert_initial_moving_transform= InputMultiPath(traits.Bool(), requires=["initial_moving_transform"],
248248
desc='', xor=['initial_moving_transform_com'])
249249

250250
initial_moving_transform_com = traits.Enum(0, 1, 2, argstr='%s',
@@ -865,6 +865,23 @@ def _format_winsorize_image_intensities(self):
865865
return '--winsorize-image-intensities [ %s, %s ]' % (self.inputs.winsorize_lower_quantile,
866866
self.inputs.winsorize_upper_quantile)
867867

868+
def _get_initial_transform_filenames(self):
869+
retval = ['--initial-moving-transform']
870+
#retval = []
871+
for ii in range(len(self.inputs.initial_moving_transform)):
872+
if isdefined(self.inputs.invert_initial_moving_transform):
873+
if len(self.inputs.initial_moving_transform) == len(self.inputs.invert_initial_moving_transform):
874+
invert_code = 1 if self.inputs.invert_initial_moving_transform[
875+
ii] else 0
876+
retval.append("[ %s, %d ]" %
877+
(self.inputs.initial_moving_transform[ii], invert_code))
878+
else:
879+
raise Exception(("ERROR: The useInverse list must have the same number "
880+
"of entries as the transformsFileName list."))
881+
else:
882+
retval.append("--initial-moving-transform [%s, 0] " % self.inputs.initial_moving_transform[ii])
883+
return " ".join(retval)
884+
868885
def _format_arg(self, opt, spec, val):
869886
if opt == 'fixed_image_mask':
870887
if isdefined(self.inputs.moving_image_mask):
@@ -875,10 +892,7 @@ def _format_arg(self, opt, spec, val):
875892
elif opt == 'transforms':
876893
return self._format_registration()
877894
elif opt == 'initial_moving_transform':
878-
do_invert_transform = self.inputs.invert_initial_moving_transform \
879-
if isdefined(self.inputs.invert_initial_moving_transform) else 0 # Just do the default behavior
880-
return '--initial-moving-transform [ %s, %d ]' % (self.inputs.initial_moving_transform,
881-
do_invert_transform)
895+
return self._get_initial_transform_filenames()
882896
elif opt == 'initial_moving_transform_com':
883897
do_center_of_mass_init = self.inputs.initial_moving_transform_com \
884898
if isdefined(self.inputs.initial_moving_transform_com) else 0 # Just do the default behavior
@@ -959,10 +973,10 @@ def _list_outputs(self):
959973
if not self.inputs.collapse_output_transforms:
960974
transform_count = 0
961975
if isdefined(self.inputs.initial_moving_transform):
962-
outputs['forward_transforms'].append(self.inputs.initial_moving_transform)
963-
outputs['forward_invert_flags'].append(invert_initial_moving_transform)
964-
outputs['reverse_transforms'].insert(0, self.inputs.initial_moving_transform)
965-
outputs['reverse_invert_flags'].insert(0, not invert_initial_moving_transform) # Prepend
976+
outputs['forward_transforms'] += self.inputs.initial_moving_transform
977+
outputs['forward_invert_flags'] += invert_initial_moving_transform
978+
outputs['reverse_transforms'] = self.inputs.initial_moving_transform + outputs['reverse_transforms']
979+
outputs['reverse_invert_flags'] = [not e for e in self.inputs.invert_initial_moving_transform] + outputs['reverse_invert_flags'] # Prepend
966980
transform_count += 1
967981
elif isdefined(self.inputs.initial_moving_transform_com):
968982
forward_filename, forward_inversemode = self._output_filenames(

0 commit comments

Comments
 (0)