Summary of what happened:
We are preprocessing old data set with old fMRIprep version 1.5.10 because we have another data sets processed with same version. So far I was able to preprocess 60+ subjects data without any issues. I am getting following error with one subject.
could not run node: fmriprep_wf.single_subject_50078_wf.func_preproc_ses_1_task_PSD_run_6_wf.bold_confounds_wf.tcompcor
Command used (and if a helper script was used, a link to the helper script or the command generated):
singularity run --cleanenv \
-B /mnt/fMRIprep_RDoCA \
/mnt/fMRIprep_sing/fmriprep-1.5.10.simg \
/mnt/fMRIprep_RDoCA/RDoCA_Spinecho \
/mnt/fMRIprep_RDoCA/RDoCA_Spinecho_50078_output \
--fs-license-file $PWD/license.txt \
--low-mem participant \
--participant-label sub-50078 \
--ignore slicetiming \
--output-spaces T1w MNI152NLin2009cAsym:res-2 MNI152NLin2009cAsym:res-native
Version:
fMRIprep 1.5.10
Environment (Docker, Singularity / Apptainer, custom installation):
Singularity
Data formatted according to a validatable standard? Please provide the output of the validator:
BIDS Validated no issues
Relevant log outputs (up to 20 lines):
Node inputs:
components_file = tcompcor.tsv
failure_mode = NaN
header_prefix = t_comp_cor_
high_pass_cutoff = 128.0
ignore_initial_volumes = 0
mask_files = <undefined>
mask_index = <undefined>
mask_names = <undefined>
merge_method = <undefined>
num_components = <undefined>
percentile_threshold = 0.05
pre_filter = cosine
realigned_file = <undefined>
regress_poly_degree = 1
repetition_time = 0.8
save_metadata = True
save_pre_filter = True
use_regress_poly = <undefined>
variance_threshold = 0.5
Traceback (most recent call last):
File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/plugins/multiproc.py", line 67, in run_node
result["result"] = node.run(updatehash=updatehash)
File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/engine/nodes.py", line 516, in run
result = self._run_interface(execute=True)
File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/engine/nodes.py", line 635, in _run_interface
return self._run_command(execute)
File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/engine/nodes.py", line 741, in _run_command
result = self._interface.run(cwd=outdir)
File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/interfaces/base/core.py", line 397, in run
runtime = self._run_interface(runtime)
File "/usr/local/miniconda/lib/python3.7/site-packages/niworkflows/interfaces/patches.py", line 46, in _run_interface
runtime = super(RobustTCompCor, self)._run_interface(runtime)
File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/algorithms/confounds.py", line 629, in _run_interface
mask_images = self._process_masks(mask_images, imgseries.dataobj)
File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/algorithms/confounds.py", line 845, in _process_masks
np.round(100.0 * (1.0 - self.inputs.percentile_threshold)).astype(int),
File "/usr/local/miniconda/lib/python3.7/site-packages/numpy/lib/function_base.py", line 3540, in percentile
a, q, axis, out, overwrite_input, interpolation, keepdims)
File "/usr/local/miniconda/lib/python3.7/site-packages/numpy/lib/function_base.py", line 3652, in _quantile_unchecked
interpolation=interpolation)
File "/usr/local/miniconda/lib/python3.7/site-packages/numpy/lib/function_base.py", line 3250, in _ureduce
r = func(a, **kwargs)
File "/usr/local/miniconda/lib/python3.7/site-packages/numpy/lib/function_base.py", line 3767, in _quantile_ureduce_func
x1 = take(ap, indices_below, axis=axis) * weights_below
File "/usr/local/miniconda/lib/python3.7/site-packages/numpy/core/fromnumeric.py", line 181, in take
return _wrapfunc(a, 'take', indices, axis=axis, out=out, mode=mode)
File "/usr/local/miniconda/lib/python3.7/site-packages/numpy/core/fromnumeric.py", line 51, in _wrapfunc
return getattr(obj, method)(*args, **kwds)
IndexError: cannot do a non-empty take from an empty axes.