Skip to content

Commit a8461ff

Browse files
committed
Removed unnecessary copyfiles and added output_image option.
1 parent 8d34ba0 commit a8461ff

File tree

1 file changed

+20
-16
lines changed

1 file changed

+20
-16
lines changed

nipype/interfaces/ants/resampling.py

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -103,12 +103,14 @@ def _list_outputs(self):
103103
class WarpImageMultiTransformInputSpec(ANTSCommandInputSpec):
104104
dimension = traits.Enum(3, 2, argstr='%d', usedefault=True,
105105
desc='image dimension (2 or 3)', position=1)
106-
input_image = File(argstr='%s', mandatory=True, copyfile=True,
106+
input_image = File(argstr='%s', mandatory=True,
107107
desc=('image to apply transformation to (generally a '
108-
'coregistered functional)') )
109-
out_postfix = traits.Str('_wimt', argstr='%s', usedefault=True,
110-
desc=('Postfix that is prepended to all output '
111-
'files (default = _wimt)'))
108+
'coregistered functional)'), position=2)
109+
output_image = File(genfile=True, usedefault=True, hash_files=False, argstr='%s',
110+
desc=('name of the output warped image'), position = 3, xor=['out_postfix'])
111+
out_postfix = File("_wimt", usedefault=True, hash_files=False,
112+
desc=('Postfix that is prepended to all output '
113+
'files (default = _wimt)'), xor=['output_image'])
112114
reference_image = File(argstr='-R %s', xor=['tightest_box'],
113115
desc='reference image space that you wish to warp INTO')
114116
tightest_box = traits.Bool(argstr='--tightest-bounding-box',
@@ -123,9 +125,9 @@ class WarpImageMultiTransformInputSpec(ANTSCommandInputSpec):
123125
desc='Use nearest neighbor interpolation')
124126
use_bspline = traits.Bool(argstr='--use-Bspline',
125127
desc='Use 3rd order B-Spline interpolation')
126-
transformation_series = InputMultiPath(File(exists=True, copyfile=False), argstr='%s',
128+
transformation_series = InputMultiPath(File(exists=True), argstr='%s',
127129
desc='transformation file(s) to be applied',
128-
mandatory=True, copyfile=False)
130+
mandatory=True)
129131
invert_affine = traits.List(traits.Int,
130132
desc=('List of Affine transformations to invert. '
131133
'E.g.: [1,4,5] inverts the 1st, 4th, and 5th Affines '
@@ -161,16 +163,19 @@ class WarpImageMultiTransform(ANTSCommand):
161163
_cmd = 'WarpImageMultiTransform'
162164
input_spec = WarpImageMultiTransformInputSpec
163165
output_spec = WarpImageMultiTransformOutputSpec
166+
167+
def _gen_filename(self, name):
168+
if name == 'out_file':
169+
_, name, ext = split_filename(os.path.abspath(self.inputs.input_image))
170+
return ''.join((name, self.inputs.out_postfix, ext))
171+
return None
164172

165173
def _format_arg(self, opt, spec, val):
166-
if opt == 'out_postfix':
167-
_, name, ext = split_filename(os.path.abspath(self.inputs.input_image))
168-
return name + val + ext
169174
if opt == 'transformation_series':
170175
series = []
171176
affine_counter = 0
172177
for transformation in val:
173-
if 'Affine' in transformation and \
178+
if transformation.lower().endswith("txt") and \
174179
isdefined(self.inputs.invert_affine):
175180
affine_counter += 1
176181
if affine_counter in self.inputs.invert_affine:
@@ -181,11 +186,10 @@ def _format_arg(self, opt, spec, val):
181186

182187
def _list_outputs(self):
183188
outputs = self._outputs().get()
184-
_, name, ext = split_filename(os.path.abspath(self.inputs.input_image))
185-
outputs['output_image'] = os.path.join(os.getcwd(),
186-
''.join((name,
187-
self.inputs.out_postfix,
188-
ext)))
189+
if isdefined(self.inputs.output_image):
190+
outputs['output_image'] = os.path.abspath(self.inputs.output_image)
191+
else:
192+
outputs['output_image'] = os.path.abspath(self._gen_filename('output_image'))
189193
return outputs
190194

191195

0 commit comments

Comments
 (0)