XCP_D ValueError: More than one surface found

Summary of what happened:

Hi Experts,

On my universities HPC with a singularity container, I’m trying to run resting state functional connectivity analysis on the output of fmriprep that are BIDS validated.

XCP-D selects the appropriate participant’s T1w and Bold images. Then, despite finding the desired participant’s surface file (sub-1001_hemi-L_pial.surf.gii), it also retrieves all other participants surface files, and returns the below error.

I tried including a --bids-filter-file (below) to process only mni space and ignore surface files, but I get the same error.

{
“bold”: {
“task”: [“rest”],
“space”: [“MNI152NLin2009cAsym”]
}
}

Command used (and if a helper script was used, a link to the helper script or the command generated):

singularity run \
                -B $HOME:/home/xcp \
                --home /home/xcp \
                --cleanenv \
        /work/cglab/containers/xcp_d-0.7.0.sif /work/cglab/projects/DORRY/BIDS/RS/derivatives /work/cglab/projects/DORRY/BIDS/RS/derivatives_xcpd/ \
        participant \
        --participant-label 1001 \
        -w /work/cglab/projects/DORRY/work/xcpd \
        --input-type fmriprep \
        --motion-filter-type notch \
        --band-stop-min 15 \
        --band-stop-max 25 \
        --nuisance-regressors 36P \
        --despike \
        --smoothing 4 \
        --exact-time 30 \
        --nthreads 16 \
        --fs-license-file /work/cglab/containers/.licenses/freesurfer/license.txt \
        --bids-filter-file /work/cglab/projects/DORRY/BIDS/filters/xcpd_bids_filter_dorry_W1_rs.json

Version:

xcp_d = 0.7.0
fmriprep = 23.2.1

Environment (Docker, Singularity / Apptainer, custom installation):

Singularity Container

Data formatted according to a validatable standard? Please provide the output of the validator: Yes

PASTE VALIDATOR OUTPUT HERE

Relevant log outputs (up to 20 lines):

240415-12:14:16,230 nipype.utils IMPORTANT:
	 Collected data:
anat_brainmask: /work/cglab/projects/DORRY/BIDS/RS/derivatives/sub-1001/anat/sub-1001_desc-brain_mask.nii.gz
anat_dseg: /work/cglab/projects/DORRY/BIDS/RS/derivatives/sub-1001/anat/sub-1001_dseg.nii.gz
anat_to_template_xfm: /work/cglab/projects/DORRY/BIDS/RS/derivatives/sub-1001/anat/sub-1001_from-T1w_to-MNI152NLin2009cAsym_mode-image_xfm.h5
bold:
- /work/cglab/projects/DORRY/BIDS/RS/derivatives/sub-1001/func/sub-1001_task-rest_space-MNI152NLin2009cAsym_desc-preproc_bold.nii.gz
t1w: /work/cglab/projects/DORRY/BIDS/RS/derivatives/sub-1001/anat/sub-1001_desc-preproc_T1w.nii.gz
t2w: null
template_to_anat_xfm: /work/cglab/projects/DORRY/BIDS/RS/derivatives/sub-1001/anat/sub-1001_from-MNI152NLin2009cAsym_to-T1w_mode-image_xfm.h5

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/run.py", line 1056, in build_workflow
    retval["workflow"] = init_xcpd_wf(
  File "/usr/local/miniconda/lib/python3.10/site-packages/xcp_d/workflows/base.py", line 207, in init_xcpd_wf
    single_subj_wf = init_subject_wf(
  File "/usr/local/miniconda/lib/python3.10/site-packages/xcp_d/workflows/base.py", line 394, in init_subject_wf
    mesh_available, standard_space_mesh, mesh_files = collect_mesh_data(
  File "/usr/local/miniconda/lib/python3.10/site-packages/xcp_d/utils/bids.py", line 461, in collect_mesh_data
    raise ValueError(
ValueError: More than one surface found.
Surfaces found:
	/work/cglab/projects/DORRY/BIDS/RS/derivatives/sub-1001/anat/sub-1001_hemi-L_pial.surf.gii
	/work/cglab/projects/DORRY/BIDS/RS/derivatives/sub-1002/anat/sub-1002_hemi-L_pial.surf.gii
	/work/cglab/projects/DORRY/BIDS/RS/derivatives/sub-1006/anat/sub-1006_hemi-L_pial.surf.gii
...
	/work/cglab/projects/DORRY/BIDS/RS/derivatives/sub-1155/anat/sub-1155_hemi-L_pial.surf.gii
Query: {'datatype': 'anat', 'hemi': 'L', 'desc': None, 'suffix': 'pial', 'extension': '.surf.gii', 'space': None}

Screenshots / relevant information:


Can you try XCP-D version 0.7.1rc6? The problem should be fixed in that version.

Thank you for your quick reply. I will try that version.

Using XCP-D version 0.7.1rc6 fixed the issue. Thanks!