Skip to content

Commit 3403b0a

Browse files
committed
after Chris suggestions
1 parent b1ea744 commit 3403b0a

File tree

1 file changed

+26
-17
lines changed

1 file changed

+26
-17
lines changed

nipype/interfaces/ants/registration.py

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,7 @@
1515

1616
from ...utils.filemanip import filename_to_list
1717
from ..base import TraitedSpec, File, Str, traits, InputMultiPath, isdefined
18-
from .base import ANTSCommand, ANTSCommandInputSpec
19-
20-
try:
21-
LOCAL_DEFAULT_NUMBER_OF_THREADS = int(os.getenv("LOCAL_DEFAULT_NUMBER_OF_THREADS"))
22-
except TypeError:
23-
LOCAL_DEFAULT_NUMBER_OF_THREADS = 1
18+
from .base import ANTSCommand, ANTSCommandInputSpec, LOCAL_DEFAULT_NUMBER_OF_THREADS
2419

2520

2621
class ANTSInputSpec(ANTSCommandInputSpec):
@@ -1565,38 +1560,52 @@ class RegistrationSynQuick(ANTSCommand):
15651560
Examples
15661561
--------
15671562
1568-
>>> import copy, pprint
1569-
>>> from nipype.interfaces.ants import Registration
1563+
>>> from nipype.interfaces.ants import RegistrationSynQuick
15701564
>>> reg = RegistrationSynQuick()
15711565
>>> reg.inputs.fixed_image = 'fixed1.nii'
15721566
>>> reg.inputs.moving_image = 'moving1.nii'
15731567
>>> reg.inputs.num_threads = 2
15741568
>>> reg.cmdline
15751569
'antsRegistrationSynQuick.sh -d 3 -f fixed1.nii -m moving1.nii -n 2 -o transform -p d -t s'
15761570
>>> reg.run() # doctest: +SKIP
1571+
1572+
example for multiple images
1573+
1574+
>>> from nipype.interfaces.ants import RegistrationSynQuick
1575+
>>> reg = RegistrationSynQuick()
1576+
>>> reg.inputs.fixed_image = ['fixed1.nii', 'fixed2.nii']
1577+
>>> reg.inputs.moving_image = ['moving1.nii', 'moving2.nii']
1578+
>>> reg.inputs.num_threads = 2
1579+
>>> reg.cmdline
1580+
'antsRegistrationSynQuick.sh -d 3 -f fixed1.nii fixed2.nii -m moving1.nii moving2.nii -n 2 -o transform -p d -t s'
1581+
>>> reg.run() # doctest: +SKIP
15771582
"""
15781583

15791584

15801585
_cmd = 'antsRegistrationSynQuick.sh'
15811586
input_spec = RegistrationSynQuickInputSpec
15821587
output_spec = RegistrationSynQuickOutputSpec
15831588

1589+
def _num_threads_update(self):
1590+
"""
1591+
antsRegistrationSynQuick.sh ignores environment variables,
1592+
so override environment update frm ANTSCommand class
1593+
"""
1594+
pass
1595+
15841596
def _format_arg(self, name, spec, value):
15851597
if name == 'precision_type':
15861598
return spec.argstr % value[0]
15871599
return super(RegistrationSynQuick, self)._format_arg(name, spec, value)
15881600

15891601
def _list_outputs(self):
15901602
outputs = self.output_spec().get()
1591-
outputs['warped_image'] = os.path.abspath(self.inputs.output_prefix + 'Warped.nii.gz')
1592-
outputs['inverse_warped_image'] = os.path.abspath(
1593-
self.inputs.output_prefix + 'InverseWarped.nii.gz')
1594-
outputs['out_matrix'] = os.path.abspath(self.inputs.output_prefix + '0GenericAffine.mat')
1603+
out_base = os.path.abspath(self.inputs.output_prefix)
1604+
outputs['warped_image'] = out_base + 'Warped.nii.gz'
1605+
outputs['inverse_warped_image'] = out_base + 'InverseWarped.nii.gz'
1606+
outputs['out_matrix'] = out_base + '0GenericAffine.mat'
15951607

1596-
# todo in the case of linear transformation-only there won't be fields. is there a more elegant way to specify that?
15971608
if self.inputs.transform_type not in ('t', 'r', 'a'):
1598-
outputs['forward_warp_field'] = os.path.abspath(
1599-
self.inputs.output_prefix + '1Warp.nii.gz')
1600-
outputs['inverse_warp_field'] = os.path.abspath(
1601-
self.inputs.output_prefix + '1InverseWarp.nii.gz')
1609+
outputs['forward_warp_field'] = out_base + '1Warp.nii.gz'
1610+
outputs['inverse_warp_field'] = out_base + '1InverseWarp.nii.gz'
16021611
return outputs

0 commit comments

Comments
 (0)