下面的部分代码工作正常,没有任何错误:
#fslorient forceneurological
fslorient = pe.Node(interface = fslorient.FslOrient(), name = 'fslorient')
fslorient.inputs.main_option = 'forceneurological'但是,当我使用相同的脚本( Node )添加第二个fslorient时,会引发一个属性错误:
#fslorient deleteorient
fslorient1 = pe.Node(interface = fslorient.FslOrient(), name = 'fslorient1')
fslorient1.inputs.main_option = 'deleteorient'属性错误:
Traceback (most recent call last):
File "bs_pipeline.py", line 139, in <module>
fslorient1 = pe.Node(interface = fslorient.FslOrient(), name = 'fslorient1')
AttributeError: 'Node' object has no attribute 'FslOrient'下面的代码名为fslorient.py
from nipype.interfaces.fsl.base import FSLCommand, FSLCommandInputSpec
from nipype.interfaces.base import TraitedSpec, File, traits
import os
class FslOrientInputSpec(FSLCommandInputSpec):
main_option = traits.Str(desc='main option', argstr='-%s', position=0, mandatory=True)
code = traits.Int(argstr='%d', desc='code for setsformcode', position=1)
in_file = File(exists=True, desc='input file', argstr='%s', position=2, mandatory=True)
class FslOrientOutputSpec(TraitedSpec):
out_file = File(desc = "out file", exists = True)
class FslOrient(FSLCommand):
_cmd = 'fslorient'
input_spec = FslOrientInputSpec
output_spec = FslOrientOutputSpec
def _list_outputs(self):
outputs = self.output_spec().get()
outputs['out_file'] = os.path.abspath(self.inputs.in_file)
return outputs我找不到问题。
编辑:我也使用其他包装和遇到同样的错误!
发布于 2014-07-11 11:52:18
您正在重写fslorient命名空间。尝试:
#fslorient forceneurological
fslorient1 = pe.Node(interface = fslorient.FslOrient(), name = 'fslorient1')
fslorient1.inputs.main_option = 'forceneurological'
#fslorient deleteorient
fslorient2 = pe.Node(interface = fslorient.FslOrient(), name = 'fslorient2')
fslorient2.inputs.main_option = 'deleteorient'https://stackoverflow.com/questions/24693252
复制相似问题