Summary of what happened:
I tried setting up the xcp_d pipeline following on successfull fmriprep preprocessing of two acquistions of the same EPI sequence (one rest ~227 volumes, one task ~700 volumes). Everythings runs smoothly for the task data mostly also for the resting state. But it always crashes when trying to calculate the alff values.
Command used (and if a helper script was used, a link to the helper script or the command generated):
docker run --rm -it \
-v /mnt/BON_data/BON002/Study/derivatives/fmriprep:/fmriprep:ro \
-v /mnt/big_data/tmp:/work:rw \
-v /mnt/BON_data/BON002/Study/derivatives/xcp_d:/out:rw \
-v /mnt/big_data/freesurfer_subjects/BON002:/freesurfer:ro \
pennlinc/xcp_d:latest /fmriprep /out participant
--participant_label 000071 \
--despike \
--fs-license-file /freesurfer/license.txt
Version:
0.7.5
Environment (Docker, Singularity / Apptainer, custom installation):
Docker
Data formatted according to a validatable standard? Please provide the output of the validator:
It is in BIDS standard using fmriprep output
Relevant log outputs (up to 20 lines):
Node: xcp_d_0_7_wf.sub_000075_wf.nifti_postprocess_1_wf.alff_wf.alff_compt
Working directory: /tmp/working_dir/xcp_d_0_7_wf/sub_000075_wf/nifti_postprocess_1_wf/alff_wf/alff_compt
Node inputs:
TR = 2.66
high_pass = 0.01
in_file = <undefined>
low_pass = 0.08
mask = <undefined>
temporal_mask = <undefined>
Traceback (most recent call last):
File "/usr/local/miniconda/lib/python3.10/site-packages/nipype/pipeline/plugins/multiproc.py", line 67, in run_node
result["result"] = node.run(updatehash=updatehash)
File "/usr/local/miniconda/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 527, in run
result = self._run_interface(execute=True)
File "/usr/local/miniconda/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 645, in _run_interface
return self._run_command(execute)
File "/usr/local/miniconda/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 771, in _run_command
raise NodeExecutionError(msg)
nipype.pipeline.engine.nodes.NodeExecutionError: Exception raised while executing Node alff_compt.
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/restingstate.py", line 148, in _run_interface
alff_mat = compute_alff(
File "/usr/local/miniconda/lib/python3.10/site-packages/xcp_d/utils/restingstate.py", line 166, in compute_alff
assert sample_mask.size == time_arr.size, f"{sample_mask.size} != {time_arr.size}"
AssertionError: 226 != 227
Screenshots / relevant information:
I’m using docker on Linux and no additional processing after fmriprep. Since for me alff values are not a high priority I would also be happy to just turn this output off, since everything else seems to run fine.