nipreps / fmriprep

fMRIPrep is a robust and easy-to-use pipeline for preprocessing of diverse fMRI data. The transparent workflow dispenses of manual intervention, thereby ensuring the reproducibility of the results.
https://fmriprep.org
Apache License 2.0
638 stars 294 forks source link

BOLD Summary Report node is included in the ``--anat-only`` workflow #3349

Open oesteban opened 2 months ago

oesteban commented 2 months ago

What happened?

It seems that the workflow tries to execute the BOLD summary in --anat-only mode.

This is generally okay, but in my case, I have a datalad dataset where the bold data has not been downloaded yet and therefore, this node fails.

What command did you use?

fmriprep /data/datasets/hcph/ /data/derivatives/hcph-fmriprep participant --participant-label 001 --bids-database-dir /data/datasets/hcph/.bids-index/ --nprocs 8 --omp-nthreads 12 -w work -vv --skip-bids-validation --anat-only --bids-filter-file anat-filters.json 2> errors-anatonly.txt > log-anatonly.txt

What version of fMRIPrep are you running?

master

How are you running fMRIPrep?

Local installation ("bare-metal")

Is your data BIDS valid?

Yes

Are you reusing any previously computed results?

No

Please copy and paste any relevant log output.

240822-12:47:25,980 nipype.workflow ERROR:
         Node summary failed to run on host hos70297.
240822-12:47:25,991 nipype.workflow ERROR:
         Saving crash info to /data/derivatives/hcph-fmriprep/sub-001/log/20240822-124208_5483f5a8-f287-4bb8-8b23-ef751ac483b3/crash-20240822-124725-oesteban-summary-669e3d14-97b8-467e-9b12-2998f1508fb7.txt
Traceback (most recent call last):
  File "/home/oesteban/.miniconda3/envs/fmriprep/lib/python3.11/site-packages/nipype/pipeline/plugins/multiproc.py", line 344, in _send_procs_to_workers
    self.procs[jobid].run(updatehash=updatehash)
  File "/home/oesteban/.miniconda3/envs/fmriprep/lib/python3.11/site-packages/nipype/pipeline/engine/nodes.py", line 497, in run
    self._get_hashval()
  File "/home/oesteban/.miniconda3/envs/fmriprep/lib/python3.11/site-packages/nipype/pipeline/engine/nodes.py", line 548, in _get_hashval
    self._get_inputs()
  File "/home/oesteban/.miniconda3/envs/fmriprep/lib/python3.11/site-packages/nipype/pipeline/engine/nodes.py", line 619, in _get_inputs
    self.set_input(key, deepcopy(output_value))
  File "/home/oesteban/.miniconda3/envs/fmriprep/lib/python3.11/site-packages/nipype/pipeline/engine/nodes.py", line 312, in set_input
    setattr(self.inputs, parameter, deepcopy(val))
  File "/home/oesteban/.miniconda3/envs/fmriprep/lib/python3.11/site-packages/nipype/interfaces/base/traits_extension.py", line 424, in validate
    value = super(MultiObject, self).validate(objekt, name, newvalue)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/oesteban/.miniconda3/envs/fmriprep/lib/python3.11/site-packages/traits/trait_types.py", line 2699, in validate
    return TraitListObject(self, object, name, value)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/oesteban/.miniconda3/envs/fmriprep/lib/python3.11/site-packages/traits/trait_list_object.py", line 582, in __init__
    super().__init__(
  File "/home/oesteban/.miniconda3/envs/fmriprep/lib/python3.11/site-packages/traits/trait_list_object.py", line 213, in __init__
    super().__init__(self.item_validator(item) for item in iterable)
  File "/home/oesteban/.miniconda3/envs/fmriprep/lib/python3.11/site-packages/traits/trait_list_object.py", line 213, in <genexpr>
    super().__init__(self.item_validator(item) for item in iterable)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/oesteban/.miniconda3/envs/fmriprep/lib/python3.11/site-packages/traits/trait_list_object.py", line 865, in _item_validator
    return trait_validator(object, self.name, value)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/oesteban/.miniconda3/envs/fmriprep/lib/python3.11/site-packages/traits/trait_handlers.py", line 873, in validate
    return self.slow_validate(object, name, value)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/oesteban/.miniconda3/envs/fmriprep/lib/python3.11/site-packages/traits/trait_handlers.py", line 881, in slow_validate
    self.error(object, name, value)
  File "/home/oesteban/.miniconda3/envs/fmriprep/lib/python3.11/site-packages/traits/base_trait_handler.py", line 74, in error
    raise TraitError(
traits.trait_errors.TraitError: Each element of the 'bold' trait of a SubjectSummaryInputSpec instance must be a pathlike object or string representing an existing file or a list of items which are a pathlike object or string representing an existing file, but a value o
f ['/data/datasets/hcph/sub-001/ses-pilot20103060/func/sub-001_ses-pilot20103060_task-rest_dir-LR_echo-1_part-mag_bold.nii.gz', '/data/datasets/hcph/sub-001/ses-pilot20103060/func/sub-001_ses-pilot20103060_task-rest_dir-LR_echo-2_part-mag_bold.nii.gz', '/data/datasets/h
cph/sub-001/ses-pilot20103060/func/sub-001_ses-pilot20103060_task-rest_dir-LR_echo-3_part-mag_bold.nii.gz'] <class 'list'> was specified.

Error setting node input:
Node: summary
input: bold
results_file: /home/oesteban/tmp/hcph-fmriprep/work/fmriprep_24_1_wf/sub_001_wf/bidssrc/result_bidssrc.pklz
value: [['/data/datasets/hcph/sub-001/ses-001/func/sub-001_ses-001_task-bht_dir-LR_echo-1_part-mag_bold.nii.gz', '/data/datasets/hcph/sub-001/ses-001/func/sub-001_ses-001_task-bht_dir-LR_echo-2_part-mag_bold.nii.gz', '/data/datasets/hcph/sub-001/ses-001/func/sub-001_ses
-001_task-bht_dir-LR_echo-3_part-mag_bold.nii.gz', '/data/datasets/hcph/sub-001/ses-001/func/sub-001_ses-001_task-bht_dir-LR_echo-4_part-mag_bold.nii.gz'], ['/data/datasets/hcph/sub-001/ses-001/func/sub-001_ses-001_task-qct_dir-LR_echo-1_part-mag_bold.nii.gz', '/data/da
tasets/hcph/sub-001/ses-001/func/sub-001_ses-001_task-qct_dir-LR_echo-2_part-mag_bold.nii.gz', '/data/datasets/hcph/sub-001/ses-001/func/sub-001_ses-001_task-qct_dir-LR_echo-3_part-mag_bold.nii.gz', '/data/datasets/hcph/sub-001/ses-001/func/sub-001_ses-001_task-qct_dir-
LR_echo-4_part-mag_bold.nii.gz'], ...
...
...

When creating this crashfile, the results file corresponding
to the node could not be found.

Additional information / screenshots

Datalad without fetched files. Can submit full log output.