diff --git a/nipype/interfaces/mrtrix3/reconst.py b/nipype/interfaces/mrtrix3/reconst.py index f1e9c604d2..4e2db8de3f 100644 --- a/nipype/interfaces/mrtrix3/reconst.py +++ b/nipype/interfaces/mrtrix3/reconst.py @@ -6,7 +6,7 @@ import os.path as op -from ..base import traits, TraitedSpec, File, Undefined +from ..base import traits, TraitedSpec, File, Undefined, InputMultiObject from .base import MRTrix3BaseInputSpec, MRTrix3Base @@ -115,10 +115,13 @@ class EstimateFODInputSpec(MRTrix3BaseInputSpec): sep=',', argstr='-shell %s', desc='specify one or more dw gradient shells') - max_sh = traits.Int( - 8, usedefault=True, - argstr='-lmax %d', - desc='maximum harmonic degree of response function') + max_sh = InputMultiObject( + traits.Int, + value=[8], + usedefault=True, + argstr='-lmax %s', + sep=',', + desc=('maximum harmonic degree of response function - single value for single-shell response, list for multi-shell response')) in_dirs = File( exists=True, argstr='-directions %s', diff --git a/nipype/interfaces/mrtrix3/tests/test_auto_EstimateFOD.py b/nipype/interfaces/mrtrix3/tests/test_auto_EstimateFOD.py index c64efa2ca4..9f991d51cc 100644 --- a/nipype/interfaces/mrtrix3/tests/test_auto_EstimateFOD.py +++ b/nipype/interfaces/mrtrix3/tests/test_auto_EstimateFOD.py @@ -41,8 +41,12 @@ def test_EstimateFOD_inputs(): grad_file=dict( argstr='-grad %s', extensions=None, + xor=['grad_fsl'], + ), + grad_fsl=dict( + argstr='-fslgrad %s %s', + xor=['grad_file'], ), - grad_fsl=dict(argstr='-fslgrad %s %s', ), in_bval=dict(extensions=None, ), in_bvec=dict( argstr='-fslgrad %s %s', @@ -63,7 +67,8 @@ def test_EstimateFOD_inputs(): extensions=None, ), max_sh=dict( - argstr='-lmax %d', + argstr='-lmax %s', + sep=',', usedefault=True, ), nthreads=dict(