Skip to content

Commit 91da6e4

Browse files
committed
BUG: initial_moving_transform_com needs default
The initial_moving_transform_com needs to be defaulted to false in order to maintain backwards compatibility. When this is not default = False, it results in initial_moving_transform = <undefined> initial_moving_transform_com = <undefined> Error: Registration requires a value for input 'invert_initial_moving_transform' because one of initial_moving_transform is set. For a list of required inputs, see Registration.help() Adding try catch block to ensure that conversions occur properly, or use defalut behavior if boolean is undefined. File "/Shared/sinapse/sharedopt/20130601/RHEL6/DTIPrep/BRAINSTools-build/NIPYPE/nipype/interfaces/ants/registration.py", line 471, in _format_arg int(self.inputs.invert_initial_moving_transform)) TypeError: int() argument must be a string or a number, not '_Undefined'
1 parent 7b44101 commit 91da6e4

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

nipype/interfaces/ants/registration.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -205,8 +205,9 @@ class RegistrationInputSpec(ANTSCommandInputSpec):
205205
invert_initial_moving_transform = traits.Bool(
206206
default=False, requires=["initial_moving_transform"],
207207
desc='', xor=['initial_moving_transform_com'])
208+
208209
initial_moving_transform_com = traits.Bool(argstr='%s',
209-
xor=['initial_moving_transform'],
210+
default=False, xor=['initial_moving_transform'],
210211
desc="Use center of mass for moving transform")
211212
metric = traits.List(traits.Enum("CC", "MeanSquares", "Demons",
212213
"GC", "MI", "Mattes"), mandatory=True, desc='')
@@ -466,12 +467,20 @@ def _format_arg(self, opt, spec, val):
466467
elif opt == 'transforms':
467468
return self._formatRegistration()
468469
elif opt == 'initial_moving_transform':
470+
try:
471+
doInvertTransform = int(self.inputs.invert_initial_moving_transform)
472+
except:
473+
doInvertTransform = 0 ## Just do the default behavior
469474
return '--initial-moving-transform [ %s, %d ]' % (self.inputs.initial_moving_transform,
470-
int(self.inputs.invert_initial_moving_transform))
475+
doInvertTransform)
471476
elif opt == 'initial_moving_transform_com':
477+
try:
478+
doCenterOfMassInit = int(self.inputs.initial_moving_transform_com)
479+
except:
480+
doCenterOfMassInit = 0 ## Just do the default behavior
472481
return '--initial-moving-transform [ %s, %s, %d ]' % (self.inputs.fixed_image[0],
473482
self.inputs.moving_image[0],
474-
int(self.inputs.initial_moving_transform_com))
483+
doCenterOfMassInit)
475484
elif opt == 'interpolation':
476485
# TODO: handle multilabel, gaussian, and bspline options
477486
return '--interpolation %s' % self.inputs.interpolation

0 commit comments

Comments
 (0)