Skip to content

Commit 74a7994

Browse files
committed
fix: address multimodal and unimodal inputs
1 parent 46bee3b commit 74a7994

File tree

1 file changed

+15
-9
lines changed

1 file changed

+15
-9
lines changed

nipype/interfaces/ants/registration.py

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,10 @@
77
>>> os.chdir(datadir)
88
"""
99

10-
from ..base import (TraitedSpec, File, traits)
10+
from ..base import (TraitedSpec, File, traits, InputMultiPath)
1111
from .base import ANTSCommand, ANTSCommandInputSpec
1212
import os
13-
from nipype.interfaces.base import InputMultiPath
14-
from nipype.interfaces.traits_extension import isdefined
13+
from ..traits_extension import isdefined
1514
import numpy as np
1615

1716

@@ -458,15 +457,22 @@ class Registration(ANTSCommand):
458457
459458
>>> # Test multiple metrics per stage
460459
>>> reg5 = copy.deepcopy(reg)
461-
>>> reg5.inputs.fixed_image = [ 'fixed1.nii', 'fixed2.nii' ]
462-
>>> reg5.inputs.moving_image = [ 'moving1.nii', 'moving2.nii' ]
460+
>>> reg5.inputs.fixed_image = 'fixed1.nii'
461+
>>> reg5.inputs.moving_image = 'moving1.nii'
463462
>>> reg5.inputs.metric = ['Mattes', ['Mattes', 'CC']]
464463
>>> reg5.inputs.metric_weight = [1, [.5,.5]]
465-
>>> reg5.inputs.radius_or_number_of_bins = [32, [32,4] ]
464+
>>> reg5.inputs.radius_or_number_of_bins = [32, [32, 4] ]
466465
>>> reg5.inputs.sampling_strategy = ['Random', None] # use default strategy in second stage
467466
>>> reg5.inputs.sampling_percentage = [0.05, [0.05, 0.10]]
468467
>>> reg5.cmdline
469-
'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] --initialize-transforms-per-stage 0 --interpolation Linear --output [ output_, output_warped_image.nii.gz ] --restore-state trans.mat --save-state trans.mat --transform Affine[ 2.0 ] --metric Mattes[ fixed1.nii, moving1.nii, 1, 32, Random, 0.05 ] --convergence [ 1500x200, 1e-08, 20 ] --smoothing-sigmas 1.0x0.0vox --shrink-factors 2x1 --use-estimate-learning-rate-once 1 --use-histogram-matching 1 --transform SyN[ 0.25, 3.0, 0.0 ] --metric Mattes[ fixed1.nii, moving1.nii, 0.5, 32, None, 0.05 ] --metric CC[ fixed2.nii, moving2.nii, 0.5, 4, None, 0.1 ] --convergence [ 100x50x30, 1e-09, 20 ] --smoothing-sigmas 2.0x1.0x0.0vox --shrink-factors 3x2x1 --use-estimate-learning-rate-once 1 --use-histogram-matching 1 --winsorize-image-intensities [ 0.0, 1.0 ] --write-composite-transform 1'
468+
'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] --initialize-transforms-per-stage 0 --interpolation Linear --output [ output_, output_warped_image.nii.gz ] --restore-state trans.mat --save-state trans.mat --transform Affine[ 2.0 ] --metric Mattes[ fixed1.nii, moving1.nii, 1, 32, Random, 0.05 ] --convergence [ 1500x200, 1e-08, 20 ] --smoothing-sigmas 1.0x0.0vox --shrink-factors 2x1 --use-estimate-learning-rate-once 1 --use-histogram-matching 1 --transform SyN[ 0.25, 3.0, 0.0 ] --metric Mattes[ fixed1.nii, moving1.nii, 0.5, 32, None, 0.05 ] --metric CC[ fixed1.nii, moving1.nii, 0.5, 4, None, 0.1 ] --convergence [ 100x50x30, 1e-09, 20 ] --smoothing-sigmas 2.0x1.0x0.0vox --shrink-factors 3x2x1 --use-estimate-learning-rate-once 1 --use-histogram-matching 1 --winsorize-image-intensities [ 0.0, 1.0 ] --write-composite-transform 1'
469+
470+
>>> # Test multiple metrics per stage
471+
>>> reg6 = copy.deepcopy(reg5)
472+
>>> reg6.inputs.fixed_image = ['fixed1.nii', 'fixed2.nii']
473+
>>> reg6.inputs.moving_image = ['moving1.nii', 'moving2.nii']
474+
>>> reg6.cmdline
475+
'antsRegistration --collapse-output-transforms 0 --dimensionality 3 --initial-moving-transform [ trans.mat, 1 ] --initialize-transforms-per-stage 0 --interpolation Linear --output [ output_, output_warped_image.nii.gz ] --restore-state trans.mat --save-state trans.mat --transform Affine[ 2.0 ] --metric Mattes[ fixed1.nii, moving1.nii, 1, 32, Random, 0.05 ] --convergence [ 1500x200, 1e-08, 20 ] --smoothing-sigmas 1.0x0.0vox --shrink-factors 2x1 --use-estimate-learning-rate-once 1 --use-histogram-matching 1 --transform SyN[ 0.25, 3.0, 0.0 ] --metric Mattes[ fixed1.nii, moving1.nii, 0.5, 32, None, 0.05 ] --metric CC[ fixed2.nii, moving2.nii, 0.5, 4, None, 0.1 ] --convergence [ 100x50x30, 1e-09, 20 ] --smoothing-sigmas 2.0x1.0x0.0vox --shrink-factors 3x2x1 --use-estimate-learning-rate-once 1 --use-histogram-matching 1 --write-composite-transform 1'
470476
"""
471477
DEF_SAMPLING_STRATEGY = 'None'
472478
"""The default sampling strategy argument."""
@@ -520,12 +526,12 @@ def _formatMetric(self, index):
520526
specs = list()
521527
for i in indexes:
522528
temp = dict([(k, v[i]) for k, v in items])
523-
if i > len( self.inputs.fixed_image ):
529+
if len(self.inputs.fixed_image) == 1:
524530
temp["fixed_image"] = self.inputs.fixed_image[0]
525531
else:
526532
temp["fixed_image"] = self.inputs.fixed_image[i]
527533

528-
if i > len( self.inputs.moving_image ):
534+
if len(self.inputs.moving_image) == 1:
529535
temp["moving_image"] = self.inputs.moving_image[0]
530536
else:
531537
temp["moving_image"] = self.inputs.moving_image[i]

0 commit comments

Comments
 (0)