Summary of what happened:
Hi NeuroStars Community,
I’m running XCP-D on a single subject with fMRIprep output, but the command soon fails due to atlas errors. I would love your help to get to the bottom of this!
Command used (and if a helper script was used, a link to the helper script or the command generated):
singularity run --cleanenv \
--bind /home/roey/cluster_shared/CFG/data/,\
/home/roey/cluster_shared/CFG/data/fmri/,\
/home/roey/cluster_shared/ \
"/home/roey/cluster_shared/singularity_images/xcp_d-0.11.1.simg" \
/home/roey/cluster_shared/CFG/data/fmri/derivatives \
/home/roey/cluster_shared/CFG/data/fmri/derivatives/xcp_d_0_11_1_acompcor_withtedana_ortho_gsr \
participant \
-w /home/roey/cluster_shared/CFG/data/xcpd_work \
--mode linc \
--participant_label "sub-103" \
--nuisance-regressors "/home/roey/cluster_shared/CFG/code/Automated_Pipeline/functional_pipeline/acompcor_tedana_gsr_xcpd_config.yaml" \
--fs-license-file "/home/roey/cluster_shared/freesurfer/license.txt" \
--datasets tedana="/home/roey/cluster_shared/CFG/data/fmri/derivatives/custom_confounds_for_xcpd_ortho" \
--bids-filter-file "/home/roey/cluster_shared/CFG/code/Automated_Pipeline/functional_pipeline/xcpd_bids_filter.json"
Version:
0.11.1
Environment (Docker, Singularity / Apptainer, custom installation):
Singularity.
Data formatted according to a validatable standard? Please provide the output of the validator:
No validator.
Relevant log outputs (up to 20 lines):
Process Process-2:
Traceback (most recent call last):
File "/usr/local/miniconda/lib/python3.10/multiprocessing/process.py", line 314, in _bootstrap
self.run()
File "/usr/local/miniconda/lib/python3.10/multiprocessing/process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "/usr/local/miniconda/lib/python3.10/site-packages/xcp_d/cli/workflow.py", line 94, in build_workflow
retval['workflow'] = init_xcpd_wf()
File "/usr/local/miniconda/lib/python3.10/site-packages/xcp_d/workflows/base.py", line 81, in init_xcpd_wf
single_subject_wf = init_single_subject_wf(subject_id, anat_session, func_sessions)
File "/usr/local/miniconda/lib/python3.10/site-packages/xcp_d/workflows/base.py", line 379, in init_single_subject_wf
load_atlases_wf = init_load_atlases_wf()
File "/usr/local/miniconda/lib/python3.10/site-packages/xcp_d/workflows/parcellation.py", line 58, in init_load_atlases_wf
atlases = collect_atlases(
File "/usr/local/miniconda/lib/python3.10/site-packages/xcp_d/utils/atlas.py", line 126, in collect_atlases
if layout.get_dataset_description().get('DatasetType') != 'atlas':
File "/usr/local/miniconda/lib/python3.10/site-packages/bids/layout/layout.py", line 997, in get_dataset_description
return layouts[0].get_file('dataset_description.json').get_dict()
AttributeError: 'NoneType' object has no attribute 'get_dict'
Screenshots / relevant information:
This multi-band multi-echo data was processed with fMRIprep version 25.1.4, including tedana.
I also tried running XCP-D with an explicit setting of the atlases:
--atlases "/usr/local/miniconda/lib/python3.10/site-packages/xcp_d/data/atlases"
but got the same error.
Finally, I opened the singularity image in a shell and verified that the atlases path exists and includes the appropriate dataset_desciption.json file.