Summary of what happened:
I’m trying to use XCP_D directly on fMRIPrep outputs for a series of tasks. I ran the resting-state separately to enforce a minimum time (–min-time) after censoring, and I want to run the task data as pseudo-resting state. Though the tasks are shorter, they’re still around 5min. My resting-state goes through the pipeline without trouble, but when I change nothing else except the task being ran, I run into the following issue for all four atlases I am running (see below).
I’m not sure why it’s trying to switch from MNI152NLin2009cAsym to MNI152NLin6Asym (the documentation seems to indicate that the former should be fine). And I’m even more confused why this error seems to be task specific. I’ve tried version 0.7.5 (the oldest one I had) up through 10.0.1 with similar results (after adjusting the command accordingly).
My goal is to create correlation matrices for all of my scans. It’s worth noting that in all cases, XCP_D says it completed successfully, but in the non-rest tasks there are no parcellation files or anything downstream of them (including pearson correlation files) created.
Command used (and if a helper script was used, a link to the helper script or the command generated):
docker run --rm -it \
--user $(id -u):$(id -g) \
-v $FMRI_DIR:/fmriprep:ro \
-v $WORK_DIR:/work:rw \
-v $OUT_DIR:/out:rw \
-v /media/User/Elements/Imaging/code:/code:ro \
-v $FS_DIR:/freesurfer:ro \
-v /usr/local/freesurfer:/license:ro \
pennlinc/xcp_d:latest \
/fmriprep /out participant \
--fs-license-file /license/license.txt \
--bids-filter-file /code/bids_filter_task.json \
--work-dir /work \
--mode linc \
--fd-thresh 0.6 \
--min-coverage 0 \
--min-time 30 \
--smoothing 6 \
--write-graph \
--debug all \
--n_cpus 8 \
--mem-gb 15 \
--input-type fmriprep \
--atlases Tian Glasser 4S356Parcels Gordon \
--clean-workdir \
--file-format nifti \
--participant-label 1072 \
-vvv
Version:
10.0.1
Environment (Docker, Singularity / Apptainer, custom installation):
Docker (docker pull pennlinc/xcp_d:latest
)
Data formatted according to a validatable standard? Please provide the output of the validator:
BIDS, but I don’t have SliceTiming defintions or events.tsv files. All other validator passes.
Relevant log outputs (up to 20 lines):
Subnode 3 failed
Error: Traceback (most recent call last):
File "/usr/local/miniconda/lib/python3.10/site-packages/nipype/interfaces/base/core.py", line 397, in run
runtime = self._run_interface(runtime)
File "/usr/local/miniconda/lib/python3.10/site-packages/xcp_d/interfaces/bids.py", line 284, in _run_interface
raise ValueError(
ValueError: Existing '4S356Parcels' atlas affine (/out/atlases/atlas-4S356Parcels/atlas-4S356Parcels_space-MNI152NLin2009cAsym_dseg.nii.gz) is different from the input file affine (/work/xcp_d_0_10_wf/sub_1072_wf/load_atlases_wf/warp_atlases_to_bold_space/mapflow/_warp_atlases_to_bold_space3/atlas-4S356Parcels_space-MNI152NLin6Asym_res-01_dseg_trans.nii.gz).
...
Traceback:
Traceback (most recent call last):
File "/usr/local/miniconda/lib/python3.10/site-packages/nipype/interfaces/base/core.py", line 397, in run
runtime = self._run_interface(runtime)
File "/usr/local/miniconda/lib/python3.10/site-packages/xcp_d/interfaces/bids.py", line 284, in _run_interface
raise ValueError(
ValueError: Existing '4S356Parcels' atlas affine (/out/atlases/atlas-4S356Parcels/atlas-4S356Parcels_space-MNI152NLin2009cAsym_dseg.nii.gz) is different from the input file affine (/work/xcp_d_0_10_wf/sub_1072_wf/load_atlases_wf/warp_atlases_to_bold_space/mapflow/_warp_atlases_to_bold_space3/atlas-4S356Parcels_space-MNI152NLin6Asym_res-01_dseg_trans.nii.gz).
Screenshots / relevant information:
What I’ve tried
- Updating to the latest version.
- Running a single participant with each (reasonable) argument removed.
- Confirming the command works for task-rest but not other tasks.
- Searching for similar issues - I see this error message coming up in February but it wasn’t specific like mine is and I could not find a solution or workaround for it.
Computer information
- Linux (Ubuntu 22.04)