diff --git a/nipype/interfaces/freesurfer/tests/test_auto_SampleToSurface.py b/nipype/interfaces/freesurfer/tests/test_auto_SampleToSurface.py index fd6440f10f..e479518cf3 100644 --- a/nipype/interfaces/freesurfer/tests/test_auto_SampleToSurface.py +++ b/nipype/interfaces/freesurfer/tests/test_auto_SampleToSurface.py @@ -93,7 +93,7 @@ def test_SampleToSurface_inputs(): ), subject_id=dict(), subjects_dir=dict(), - surf_reg=dict(argstr='--surfreg', + surf_reg=dict(argstr='--surfreg %s', requires=['target_subject'], ), surface=dict(argstr='--surf %s', diff --git a/nipype/interfaces/freesurfer/utils.py b/nipype/interfaces/freesurfer/utils.py index a5568ebbcb..97ae831b26 100644 --- a/nipype/interfaces/freesurfer/utils.py +++ b/nipype/interfaces/freesurfer/utils.py @@ -139,8 +139,9 @@ class SampleToSurfaceInputSpec(FSTraitedSpec): subject_id = traits.String(desc="subject id") target_subject = traits.String(argstr="--trgsubject %s", desc="sample to surface of different subject than source") - surf_reg = traits.Bool(argstr="--surfreg", requires=["target_subject"], - desc="use surface registration to target subject") + surf_reg = traits.Either(traits.Bool, traits.Str(), + argstr="--surfreg %s", requires=["target_subject"], + desc="use surface registration to target subject") ico_order = traits.Int(argstr="--icoorder %d", requires=["target_subject"], desc="icosahedron order when target_subject is 'ico'") @@ -238,6 +239,10 @@ def _format_arg(self, name, spec, value): if value in implicit_filetypes: return "" + if name == 'surf_reg': + if value is True: + return spec.argstr % 'sphere.reg' + return super(SampleToSurface, self)._format_arg(name, spec, value) def _get_outfilename(self, opt="out_file"):