poldracklab / tacc-openneuro

0 stars 1 forks source link

MRIQC v23.0.0: "mriqc: error: One or more participant labels were not found in the BIDS directory: s8177." #59

Closed jbwexler closed 1 year ago

jbwexler commented 1 year ago

Lots of recent MRIQC runs have been failing with this error. Using an older version of mriqc seems to solve the problem.

usage: mriqc [-h] [--version] [-v] [--species {human,rat}] [--participant-label PARTICIPANT_LABEL [PARTICIPANT_LABEL ...]] [--session-id [SESSION_ID ...]] [--run-id [RUN_ID ...]] [--task-id [TASK_ID ...]] [-m [MODALITIES ...]] [--dsname DSNAME] [--bids-database-dir PATH] [--nprocs NPROCS] [--omp-nthreads OMP_NTHREADS] [--mem MEMORY_GB] [--testing] [-f] [--pdb] [-w WORK_DIR] [--verbose-reports] [--write-graph] [--dry-run] [--resource-monitor] [--use-plugin USE_PLUGIN] [--no-sub] [--email EMAIL] [--webapi-url WEBAPI_URL] [--webapi-port WEBAPI_PORT] [--upload-strict] [--notrack] [--ants-float] [--ants-settings ANTS_SETTINGS] [--ica] [--fft-spikes-detector] [--fd_thres FD_THRES] [--deoblique] [--despike] [--start-idx START_IDX] [--stop-idx STOP_IDX] bids_dir output_dir {participant,group} [{participant,group} ...] mriqc: error: One or more participant labels were not found in the BIDS directory: s8177.

I also started getting fmriprep errors w v 23.0.0 but I haven't tested older versions. I don't know if these are related.

Process Process-2: Traceback (most recent call last): File "/opt/conda/lib/python3.9/multiprocessing/process.py", line 315, in _bootstrap self.run() File "/opt/conda/lib/python3.9/multiprocessing/process.py", line 108, in run self._target(*self._args, **self._kwargs) File "/opt/conda/lib/python3.9/site-packages/fmriprep/cli/workflow.py", line 115, in build_workflow retval["workflow"] = init_fmriprep_wf() File "/opt/conda/lib/python3.9/site-packages/fmriprep/workflows/base.py", line 92, in init_fmriprep_wf single_subject_wf = init_single_subject_wf(subject_id) File "/opt/conda/lib/python3.9/site-packages/fmriprep/workflows/base.py", line 428, in init_single_subject_wf func_preproc_wf = init_func_preproc_wf(bold_file, has_fieldmap=has_fieldmap) File "/opt/conda/lib/python3.9/site-packages/fmriprep/workflows/bold/base.py", line 952, in init_func_preproc_wf bold_surf_wf = init_bold_surf_wf( File "/opt/conda/lib/python3.9/site-packages/fmriprep/workflows/bold/resampling.py", line 254, in init_bold_surf_wf metric_dilate.inputs.surf_file = [ File "/opt/conda/lib/python3.9/site-packages/nipype/interfaces/base/traits_extension.py", line 425, in validate value = super(MultiObject, self).validate(objekt, name, newvalue) File "/opt/conda/lib/python3.9/site-packages/traits/trait_types.py", line 2699, in validate return TraitListObject(self, object, name, value) File "/opt/conda/lib/python3.9/site-packages/traits/trait_list_object.py", line 582, in init super().init( File "/opt/conda/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 "/opt/conda/lib/python3.9/site-packages/traits/trait_list_object.py", line 213, in super().init(self.item_validator(item) for item in iterable) File "/opt/conda/lib/python3.9/site-packages/traits/trait_list_object.py", line 865, in _item_validator return trait_validator(object, self.name, value) File "/opt/conda/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 "/opt/conda/lib/python3.9/site-packages/nipype/interfaces/base/traits_extension.py", line 135, in validate self.error(objekt, name, str(value)) File "/opt/conda/lib/python3.9/site-packages/traits/base_trait_handler.py", line 74, in error raise TraitError( traits.trait_errors.TraitError: Each element of the 'surf_file' trait of a DynamicTraitedSpec instance must be a pathlike object or string representing an existing file, but a value of '[]' <class 'str'> was specified.

effigies commented 1 year ago

Note: ds004134/sub-s8177

oesteban commented 1 year ago

Heads-up: I have identified the problem in MRIQC. However, both the bold and the T1w of this subject keep failing for a different reason:

Traceback (most recent call last):
  File "/home/oesteban/.miniconda/bin/mriqc", line 8, in <module>
    sys.exit(main())
  File "/data/home/oesteban/workspace/mriqc/mriqc/cli/run.py", line 40, in main
    parse_args()
  File "/data/home/oesteban/workspace/mriqc/mriqc/cli/parser.py", line 456, in parse_args
    config.from_dict(vars(opts))
  File "/data/home/oesteban/workspace/mriqc/mriqc/config.py", line 587, in from_dict
    execution.load(settings)
  File "/data/home/oesteban/workspace/mriqc/mriqc/config.py", line 227, in load
    cls.init()
  File "/data/home/oesteban/workspace/mriqc/mriqc/config.py", line 464, in init
    cls._layout = BIDSLayout(
  File "/home/oesteban/.miniconda/lib/python3.9/site-packages/bids/layout/layout.py", line 154, in __init__
    indexer(self)
  File "/home/oesteban/.miniconda/lib/python3.9/site-packages/bids/layout/index.py", line 151, in __call__
    self._index_metadata()
  File "/home/oesteban/.miniconda/lib/python3.9/site-packages/bids/layout/index.py", line 467, in _index_metadata
    raise BIDSConflictingValuesError(
bids.exceptions.BIDSConflictingValuesError: Conflicting values found for entity 'datatype' in filename /data/datasets/ds004134/sub-s8177/ses-01/anat/sub-s8177_ses-01_T1w.nii.gz (value='anat') versus its JSON sidecar (value='UInt16LE'). Please reconcile this discrepancy.

Indeed, opening the JSON sidecar immediately reveals that a datatype metadata key is defined. We probably want the BIDS validator to check entities are not overridden by metadata

effigies commented 1 year ago

This is more a problem with pybids combining metadata sources into a single table. If there isn't a way to warn and drop on this instead of erroring, we should add that.

jbwexler commented 1 year ago

I haven't run into this in a while so I'm going to close this issue.