Error in aroma confounds node

Summary of what happened:

Dear all, I encountered a problem that some of my subject didn’t finish the node fmriprep_wf.single_subject_152_wf.func_preproc_task_rest_wf.aroma_confounds. I checked the html file and the error was “Number of columns in datasets do not match”.

Does anyone know the reason to this error? Thank you!

Xiaoying

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

#!/bin/bash
singularity run \
--cleanenv \
/home/hujian/HJ/soft/fmriprep.simg \

-w /home/hujian/sunxiaoying \
--nprocs 48 --omp-nthreads 1 \
--use-aroma \
--cifti-output 91k \
--output-space fsaverage5 \
--fs-license /home/hujian/HJ/soft/freesurfer/license.txt \
/home/hujian/sunxiaoying/addFour_SCZ/FOUR_FEP_BIDS \
/home/hujian/sunxiaoying/addFour_SCZ/FOUR_FEP_BIDS_pre \
participant

Version:

20.2.0

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

Singularity

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

PASTE VALIDATOR OUTPUT HERE

Relevant log outputs (up to 20 lines):

Preformatted textPreformatted textTraceback (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 419, in run
    runtime = self._run_interface(runtime)
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/interfaces/utility/wrappers.py", line 142, in _run_interface
    out = function_handle(**args)
  File "", line 6, in _to_join
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/interfaces/base/core.py", line 419, in run
    runtime = self._run_interface(runtime)
  File "/usr/local/miniconda/lib/python3.7/site-packages/niworkflows/interfaces/utils.py", line 785, in _run_interface
    raise ValueError("Number of columns in datasets do not match")
**ValueError: Number of columns in datasets do not match**

Screenshots / relevant information:


Hi @Xiaoying,

Is this error subject specific, or happening for all of your data? Does the error persist on the latest LTS branch release, 20.2.8?

Best,
Steven

Hi Steven,

Thank you so much for your reply. This error happened for all my subjects in one group, I didn’t check the latest version because the fmriprep is on our lab’s server and I don’t have the authority to update it. But I think the version won’t be the reason because only this group of people encountered the error, other groups of data worked fine.
The log file recorded:

Node inputs:

function_str = def _to_join(in_file, join_file):
    """Join two tsv files if the join_file is not ``None``."""
    from niworkflows.interfaces.utils import JoinTSVColumns
    if join_file is None:
        return in_file
    res = JoinTSVColumns(in_file=in_file, join_file=join_file).run()
    return res.outputs.out_file

in_file = /home/hujian/sunxiaoying/fmriprep_wf/single_subject_168_wf/func_preproc_task_rest_wf/bold_confounds_wf/spike_regressors/confounds_expansion_desc-motion_outliers.tsv
join_file = /home/hujian/sunxiaoying/fmriprep_wf/single_subject_168_wf/func_preproc_task_rest_wf/ica_aroma_wf/ica_aroma_confound_extraction/AROMAAggrCompAROMAConfounds.tsv

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 419, in run
    runtime = self._run_interface(runtime)
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/interfaces/utility/wrappers.py", line 142, in _run_interface
    out = function_handle(**args)
  File "<string>", line 6, in _to_join
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/interfaces/base/core.py", line 419, in run
    runtime = self._run_interface(runtime)
  File "/usr/local/miniconda/lib/python3.7/site-packages/niworkflows/interfaces/utils.py", line 785, in _run_interface
    raise ValueError("Number of columns in datasets do not match")
ValueError: Number of columns in datasets do not match

I guessed maybe there’s something wrong with the data, so I checked the BIDS data but they seemed normal. BTW I’m confused about what does the “Number of columns” mean :sob:? Thanks for your help again!

Best,
Xiaoying