nipype icon indicating copy to clipboard operation
nipype copied to clipboard

reconall node error

Open lamaresh opened this issue 3 years ago • 1 comments

I am trying to add a reconall node to my workflow but after some hours I get this error. I can use reconall command without error. My Nipype version is 1.8.3. Log file contains the whole error report

[Node] Finished "reconAll", elapsed time 18327.713234s.
INFO:nipype.workflow:[Node] Finished "reconAll", elapsed time 18327.713234s.
ERROR:concurrent.futures:exception calling callback for <Future at 0x15f076490 state=finished raised BrokenProcessPool>
concurrent.futures.process._RemoteTraceback: 
'''
Traceback (most recent call last):
  File "/usr/local/Cellar/[email protected]/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/concurrent/futures/process.py", line 387, in wait_result_broken_or_wakeup
    result_item = result_reader.recv()
  File "/usr/local/Cellar/[email protected]/3.9.13_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/multiprocessing/connection.py", line 256, in recv
    return _ForkingPickler.loads(buf.getbuffer())
  File "/usr/local/lib/python3.9/site-packages/traits/has_traits.py", line 1410, in __setstate__
    self.trait_set(trait_change_notify=trait_change_notify, **state)
  File "/usr/local/lib/python3.9/site-packages/traits/has_traits.py", line 1520, in trait_set
    setattr(self, name, value)
  File "/usr/local/lib/python3.9/site-packages/nipype/interfaces/base/traits_extension.py", line 425, in validate
    value = super(MultiObject, self).validate(objekt, name, newvalue)
  File "/usr/local/lib/python3.9/site-packages/traits/trait_types.py", line 2699, in validate
    return TraitListObject(self, object, name, value)
  File "/usr/local/lib/python3.9/site-packages/traits/trait_list_object.py", line 582, in __init__
    super().__init__(
  File "/usr/local/lib/python3.9/site-packages/traits/trait_list_object.py", line 213, in __init__
    super().__init__(self.item_validator(item) for item in iterable)
  File "/usr/local/lib/python3.9/site-packages/traits/trait_list_object.py", line 213, in <genexpr>
    super().__init__(self.item_validator(item) for item in iterable)
  File "/usr/local/lib/python3.9/site-packages/traits/trait_list_object.py", line 865, in _item_validator
    return trait_validator(object, self.name, value)
  File "/usr/local/lib/python3.9/site-packages/nipype/interfaces/base/traits_extension.py", line 330, in validate
    value = super(File, self).validate(objekt, name, value, return_pathlike=True)
  File "/usr/local/lib/python3.9/site-packages/nipype/interfaces/base/traits_extension.py", line 135, in validate
    self.error(objekt, name, str(value))
  File "/usr/local/lib/python3.9/site-packages/traits/base_trait_handler.py", line 74, in error
    raise TraitError(
traits.trait_errors.TraitError: Eac
[log.txt](https://github.com/nipy/nipype/files/9331764/log.txt)
h element of the 'pial' trait of a ReconAllOutputSpec instance must be a pathlike object or string representing an existing file, but a value of '/Users/annavaudano/Documents/provamau/pt/mine/freesurfer/reconAll/recon_all/surf/lh.pial' <class 'str'> was specified.
'''

lamaresh avatar Aug 13 '22 15:08 lamaresh

It's almost certainly a bad idea to run ReconAll without passing in a subject directory, as by default nipype will remove any unused outputs from a node. Therefore any outputs that you don't directly connect to another node will get removed, and then you'll fall afoul of #3493 when trying to load the outputs. That needs fixing, but I suspect that your fix is just not to run recon-all within the nipype working directory.

effigies avatar Sep 21 '22 15:09 effigies