Skip to content

Commit 355965d

Browse files
committed
fix: add _out_bias_file as a member, following @effigies' suggestion
1 parent 7d8fdfe commit 355965d

File tree

1 file changed

+12
-13
lines changed

1 file changed

+12
-13
lines changed

nipype/interfaces/ants/segmentation.py

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -386,9 +386,13 @@ class N4BiasFieldCorrection(ANTSCommand):
386386
input_spec = N4BiasFieldCorrectionInputSpec
387387
output_spec = N4BiasFieldCorrectionOutputSpec
388388

389+
def __init__(self, *args, **kwargs):
390+
self._out_bias_file = None
391+
super(N4BiasFieldCorrection, self).__init__(*args, **kwargs)
392+
389393
def _format_arg(self, name, trait_spec, value):
390-
if name == 'output_image' and getattr(self, '_out_bias_file', None):
391-
newval = '[ %s, %s ]' % (value, getattr(self, '_out_bias_file'))
394+
if name == 'output_image' and self._out_bias_file:
395+
newval = '[ %s, %s ]' % (value, self._out_bias_file)
392396
return trait_spec.argstr % newval
393397

394398
if name == 'bspline_fitting_distance':
@@ -413,24 +417,19 @@ def _format_arg(self, name, trait_spec, value):
413417

414418
def _parse_inputs(self, skip=None):
415419
skip = (skip or []) + ['save_bias', 'bias_image']
420+
self._out_bias_file = None
416421
if self.inputs.save_bias or isdefined(self.inputs.bias_image):
417422
bias_image = self.inputs.bias_image
418423
if not isdefined(bias_image):
419424
bias_image = fname_presuffix(os.path.basename(self.inputs.input_image),
420425
suffix='_bias')
421-
setattr(self, '_out_bias_file', bias_image)
422-
else:
423-
try:
424-
delattr(self, '_out_bias_file')
425-
except AttributeError:
426-
pass
426+
self._out_bias_file = bias_image
427427
return super(N4BiasFieldCorrection, self)._parse_inputs(skip=skip)
428428

429429
def _list_outputs(self):
430430
outputs = super(N4BiasFieldCorrection, self)._list_outputs()
431-
bias_image = getattr(self, '_out_bias_file', None)
432-
if bias_image:
433-
outputs['bias_image'] = bias_image
431+
if self._out_bias_file:
432+
outputs['bias_image'] = self._out_bias_file
434433
return outputs
435434

436435
def _run_interface(self, runtime, correct_return_codes=(0, )):
@@ -439,8 +438,8 @@ def _run_interface(self, runtime, correct_return_codes=(0, )):
439438

440439
if self.inputs.copy_header and runtime.returncode in correct_return_codes:
441440
self._copy_header(self.inputs.output_image)
442-
if getattr(self, '_out_bias_file', None):
443-
self._copy_header(getattr(self, '_out_bias_file'))
441+
if self._out_bias_file:
442+
self._copy_header(self._out_bias_file)
444443

445444
return runtime
446445

0 commit comments

Comments
 (0)