fMRIprep: TraitError

Dear All,

I’ve tried running fMRIprep but run into a trait error right at the start. I’m not sure what that means. I have checked and all the data is in valid BIDS format and I am using the latest fMRIprep release (1.0.9).

The command I used was:
fmriprep /data/group/edu/faces/bids_root/ /data/group/edu/faces/derivatives/ participant -w /data/group/edu/faces/work/ --participant_label sub-01 -t faces --output-space {T1w} --write-graph --stop-on-first-crash

The error message:
180411-17:09:26,764 workflow IMPORTANT:

    Running fMRIPREP version 1.0.9:
      * BIDS dataset path: /data/group/edu/faces/bids_root.
      * Participant list: ['01'].
      * Run identifier: 20180411-170926_2d465c5c-b0d5-4ab2-b637-c1451b3d6ddb.
    
/cns_zfs/system/u1604/fmriprep/1.0.9/lib/python3.6/site-packages/grabbit/core.py:410: UserWarning: No valid root directory found for domain 'derivatives'. Falling back on the Layout's root directory. If this isn't the intended behavior, make sure the config file for this domain includes a 'root' key.
  "'root' key." % config['name'])
180411-17:09:28,677 workflow IMPORTANT:
	 Creating bold processing workflow for "/data/group/edu/faces/bids_root/sub-01/func/sub-01_task-faces_bold.nii.gz" (0.02 GB / 180 TRs). Memory resampled/largemem=0.07/0.10 GB.
180411-17:09:29,216 workflow IMPORTANT:
	 Slice-timing correction will be included.
180411-17:09:29,244 workflow WARNING:
	 SDC: no fieldmaps found or they were ignored (/data/group/edu/faces/bids_root/sub-01/func/sub-01_task-faces_bold.nii.gz).
180411-17:09:48,552 workflow WARNING:
	 Error while checking node hash, forcing re-run. Although this error may not prevent the workflow from running, it could indicate a major problem. Please report a new issue at https://github.com/nipy/nipype/issues adding the following information:

	Node: fmriprep_wf.single_subject_01_wf.summary
	Interface: fmriprep.interfaces.reports.SubjectSummary
	Traceback:
Traceback (most recent call last):

  File "/cns_zfs/system/u1604/fmriprep/1.0.9/lib/python3.6/site-packages/niworkflows/nipype/pipeline/plugins/base.py", line 341, in _local_hash_check
    cached, updated = self.procs[jobid].is_cached()

  File "/cns_zfs/system/u1604/fmriprep/1.0.9/lib/python3.6/site-packages/niworkflows/nipype/pipeline/engine/nodes.py", line 310, in is_cached
    hashed_inputs, hashvalue = self._get_hashval()

  File "/cns_zfs/system/u1604/fmriprep/1.0.9/lib/python3.6/site-packages/niworkflows/nipype/pipeline/engine/nodes.py", line 504, in _get_hashval
    self._get_inputs()

  File "/cns_zfs/system/u1604/fmriprep/1.0.9/lib/python3.6/site-packages/niworkflows/nipype/pipeline/engine/nodes.py", line 547, in _get_inputs
    self.set_input(key, deepcopy(output_value))

  File "/cns_zfs/system/u1604/fmriprep/1.0.9/lib/python3.6/site-packages/niworkflows/nipype/pipeline/engine/nodes.py", line 292, in set_input
    setattr(self.inputs, parameter, deepcopy(val))

  File "/cns_zfs/system/u1604/fmriprep/1.0.9/lib/python3.6/site-packages/traits/trait_types.py", line 2338, in validate
    self.error( object, name, value )

  File "/cns_zfs/system/u1604/fmriprep/1.0.9/lib/python3.6/site-packages/traits/trait_handlers.py", line 172, in error
    value )

traits.trait_errors.TraitError: The 'bold' trait of a SubjectSummaryInputSpec instance must be a list of items which are any value, but a value of '/data/group/edu/faces/bids_root/sub-01/func/sub-01_task-faces_bold.nii.gz' <class 'str'> was specified.
Error setting node input:
Node: summary
input: bold
results_file: /data/group/edu/faces/work/fmriprep_wf/single_subject_01_wf/bidssrc/result_bidssrc.pklz
value: /data/group/edu/faces/bids_root/sub-01/func/sub-01_task-faces_bold.nii.gz

Traceback (most recent call last):
  File "/cns_zfs/system/u1604/fmriprep/1.0.9/lib/python3.6/site-packages/niworkflows/nipype/pipeline/plugins/multiproc.py", line 339, in _send_procs_to_workers
    self.procs[jobid].run(updatehash=updatehash)
  File "/cns_zfs/system/u1604/fmriprep/1.0.9/lib/python3.6/site-packages/niworkflows/nipype/pipeline/engine/nodes.py", line 424, in run
    cached, updated = self.is_cached()
  File "/cns_zfs/system/u1604/fmriprep/1.0.9/lib/python3.6/site-packages/niworkflows/nipype/pipeline/engine/nodes.py", line 310, in is_cached
    hashed_inputs, hashvalue = self._get_hashval()
  File "/cns_zfs/system/u1604/fmriprep/1.0.9/lib/python3.6/site-packages/niworkflows/nipype/pipeline/engine/nodes.py", line 504, in _get_hashval
    self._get_inputs()
  File "/cns_zfs/system/u1604/fmriprep/1.0.9/lib/python3.6/site-packages/niworkflows/nipype/pipeline/engine/nodes.py", line 547, in _get_inputs
    self.set_input(key, deepcopy(output_value))
  File "/cns_zfs/system/u1604/fmriprep/1.0.9/lib/python3.6/site-packages/niworkflows/nipype/pipeline/engine/nodes.py", line 292, in set_input
    setattr(self.inputs, parameter, deepcopy(val))
  File "/cns_zfs/system/u1604/fmriprep/1.0.9/lib/python3.6/site-packages/traits/trait_types.py", line 2338, in validate
    self.error( object, name, value )
  File "/cns_zfs/system/u1604/fmriprep/1.0.9/lib/python3.6/site-packages/traits/trait_handlers.py", line 172, in error
    value )
traits.trait_errors.TraitError: The 'bold' trait of a SubjectSummaryInputSpec instance must be a list of items which are any value, but a value of '/data/group/edu/faces/bids_root/sub-01/func/sub-01_task-faces_bold.nii.gz' <class 'str'> was specified.
Error setting node input:
Node: summary
input: bold
results_file: /data/group/edu/faces/work/fmriprep_wf/single_subject_01_wf/bidssrc/result_bidssrc.pklz
value: /data/group/edu/faces/bids_root/sub-01/func/sub-01_task-faces_bold.nii.gz

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/software/system/fmriprep/1.0.9/bin/fmriprep", line 11, in <module>
    sys.exit(main())
  File "/cns_zfs/system/u1604/fmriprep/1.0.9/lib/python3.6/site-packages/fmriprep/cli/run.py", line 274, in main
    fmriprep_wf.run(**plugin_settings)
  File "/cns_zfs/system/u1604/fmriprep/1.0.9/lib/python3.6/site-packages/niworkflows/nipype/pipeline/engine/workflows.py", line 602, in run
    runner.run(execgraph, updatehash=updatehash, config=self.config)
  File "/cns_zfs/system/u1604/fmriprep/1.0.9/lib/python3.6/site-packages/niworkflows/nipype/pipeline/plugins/base.py", line 190, in run
    self._send_procs_to_workers(updatehash=updatehash, graph=graph)
  File "/cns_zfs/system/u1604/fmriprep/1.0.9/lib/python3.6/site-packages/niworkflows/nipype/pipeline/plugins/multiproc.py", line 347, in _send_procs_to_workers
    'traceback': traceback
  File "/cns_zfs/system/u1604/fmriprep/1.0.9/lib/python3.6/site-packages/niworkflows/nipype/pipeline/plugins/base.py", line 227, in _clean_queue
    raise RuntimeError("".join(result['traceback']))
RuntimeError: Traceback (most recent call last):
  File "/cns_zfs/system/u1604/fmriprep/1.0.9/lib/python3.6/site-packages/niworkflows/nipype/pipeline/plugins/multiproc.py", line 339, in _send_procs_to_workers
    self.procs[jobid].run(updatehash=updatehash)
  File "/cns_zfs/system/u1604/fmriprep/1.0.9/lib/python3.6/site-packages/niworkflows/nipype/pipeline/engine/nodes.py", line 424, in run
    cached, updated = self.is_cached()
  File "/cns_zfs/system/u1604/fmriprep/1.0.9/lib/python3.6/site-packages/niworkflows/nipype/pipeline/engine/nodes.py", line 310, in is_cached
    hashed_inputs, hashvalue = self._get_hashval()
  File "/cns_zfs/system/u1604/fmriprep/1.0.9/lib/python3.6/site-packages/niworkflows/nipype/pipeline/engine/nodes.py", line 504, in _get_hashval
    self._get_inputs()
  File "/cns_zfs/system/u1604/fmriprep/1.0.9/lib/python3.6/site-packages/niworkflows/nipype/pipeline/engine/nodes.py", line 547, in _get_inputs
    self.set_input(key, deepcopy(output_value))
  File "/cns_zfs/system/u1604/fmriprep/1.0.9/lib/python3.6/site-packages/niworkflows/nipype/pipeline/engine/nodes.py", line 292, in set_input
    setattr(self.inputs, parameter, deepcopy(val))
  File "/cns_zfs/system/u1604/fmriprep/1.0.9/lib/python3.6/site-packages/traits/trait_types.py", line 2338, in validate
    self.error( object, name, value )
  File "/cns_zfs/system/u1604/fmriprep/1.0.9/lib/python3.6/site-packages/traits/trait_handlers.py", line 172, in error
    value )
traits.trait_errors.TraitError: The 'bold' trait of a SubjectSummaryInputSpec instance must be a list of items which are any value, but a value of '/data/group/edu/faces/bids_root/sub-01/func/sub-01_task-faces_bold.nii.gz' <class 'str'> was specified.
Error setting node input:
Node: summary
input: bold
results_file: /data/group/edu/faces/work/fmriprep_wf/single_subject_01_wf/bidssrc/result_bidssrc.pklz
value: /data/group/edu/faces/bids_root/sub-01/func/sub-01_task-faces_bold.nii.gz

Does anyone know what is causing this? And what can I do to fix it?

Many thanks,
Jenni

Are you reusing a previous fMRIPrep run done under /data/group/edu/faces/work/?

No, both /data/group/edu/faces/work/ and /data/group/edu/faces/derivatives/ are new empty folders.
Is there maybe something wrong with the way I’ve labelled the images?

Many thanks,
Jenni

I don’t believe you’ve done anything wrong. It seems that we’re not correctly handling tasks with a single run anymore. We’re working on fixing this over at https://github.com/poldracklab/fmriprep/pull/1047, which should mostly involve making sure we don’t end up breaking other cases by fixing the behavior, here.

OK, I see. Thanks so much for looking into this!

Hi @jngx47f, we just got a new release ready fixing this issue.

The release will be automatically deployed right after all tests pass (you can check the progress here: https://circleci.com/workflow-run/e602add1-110f-40de-9ca2-c0af705b9e79) .

Cheers

Of course it had to hit a snag of the Circle platform. Hopefully this re-submission will go through: https://circleci.com/workflow-run/d636cba0-0c0b-46ad-8335-3668744b0ff9

Thank you so much for keeping me up to date. Looking forward to the new release!

BW,
Jenni

This problem was fixed in fMRIPrep 1.0.10. Thanks for reporting!