fMRIprep issue: error ica-aroma and melodic

Hi all, I recently preprocessed a dataset using #fmriprep version 20.2.1 and the following command fmriprep_sub.py bids -m 50000 -a " --use-aroma --aroma-melodic-dimensionality 100 --output-spaces MNI152NLin6Asym:res-2". The dataset consists of several runs for the same subject, each run being of varying size. Unfortunately, I got an error when performing ICA AROMA or MELODIC at some runs. There are two types of errors, mostly when performing MELODIC and a few when performing ICA AROMA, as follows:

Node Name: fmriprep_wf.single_subject_01_wf.func_preproc_task_dream_run_6_wf.ica_aroma_wf.melodic

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/base/core.py", line 814, in _run_interface
    self.raise_exception(runtime)
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/interfaces/base/core.py", line 745, in raise_exception
    ).format(**runtime.dictcopy())
RuntimeError: Command:
melodic -i /data/marpere/41376598.dccn-l029.dccn.nl/fmriprep_wf/single_subject_05_wf/func_preproc_task_dream_run_12_wf/ica_aroma_wf/smooth/vol0000_xform-00000_merged_smooth.nii.gz -d 100 -m /data/marpere/41376598.dccn-l029.dccn.nl/fmriprep_wf/single_subject_05_wf/func_preproc_task_dream_run_12_wf/bold_std_trans_wf/_std_target_MNI152NLin6Asym.res2/mask_std_tfm/ref_bold_corrected_brain_mask_maths_trans.nii.gz --mmthresh=0.500000 --nobet -o /data/marpere/41376598.dccn-l029.dccn.nl/fmriprep_wf/single_subject_05_wf/func_preproc_task_dream_run_12_wf/ica_aroma_wf/melodic --Ostats --tr=3.000000
Standard output:

Standard error:
ERROR:: too many components selected 

Return code: 2

Node Name: fmriprep_wf.single_subject_05_wf.func_preproc_task_dream_run_13_wf.ica_aroma_wf.ica_aroma

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/base/core.py", line 814, in _run_interface
    self.raise_exception(runtime)
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/interfaces/base/core.py", line 745, in raise_exception
    ).format(**runtime.dictcopy())
RuntimeError: Command:
ICA_AROMA.py -tr 3.000 -np -den nonaggr -i /data/marpere/41376598.dccn-l029.dccn.nl/fmriprep_wf/single_subject_05_wf/func_preproc_task_dream_run_13_wf/ica_aroma_wf/smooth/vol0000_xform-00000_merged_smooth.nii.gz -m /data/marpere/41376598.dccn-l029.dccn.nl/fmriprep_wf/single_subject_05_wf/func_preproc_task_dream_run_13_wf/bold_std_trans_wf/_std_target_MNI152NLin6Asym.res2/mask_std_tfm/ref_bold_corrected_brain_mask_maths_trans.nii.gz -meldir /data/marpere/41376598.dccn-l029.dccn.nl/fmriprep_wf/single_subject_05_wf/func_preproc_task_dream_run_13_wf/ica_aroma_wf/melodic -mc /data/marpere/41376598.dccn-l029.dccn.nl/fmriprep_wf/single_subject_05_wf/func_preproc_task_dream_run_13_wf/bold_hmc_wf/normalize_motion/motion_params.txt -o /data/marpere/41376598.dccn-l029.dccn.nl/fmriprep_wf/single_subject_05_wf/func_preproc_task_dream_run_13_wf/ica_aroma_wf/ica_aroma/out
Standard output:
------------------------------- RUNNING ICA-AROMA ------------------------------- 
--------------- 'ICA-based Automatic Removal Of Motion Artifacts' --------------- 

Step 1) MELODIC
  - The existing/specified MELODIC directory will be used.
Standard error:
Traceback (most recent call last):
  File "/opt/ICA-AROMA/ICA_AROMA.py", line 204, in 
    aromafunc.runICA(fslDir, inFile, outDir, melDir, mask, dim, TR)
  File "/opt/ICA-AROMA/ICA_AROMA_functions.py", line 103, in runICA
    lenIC = int(float(subprocess.getoutput(cmd)))
ValueError: could not convert string to float: 'ERROR: Could not open file'
Return code: 1

Firstly, I rerun just a single failed run to check whether the issue could have been the number of runs per subject, yet the same error persists. I don’t believe it has anything to do with file restrictions since all files permissions are exactly the same and half of the dataset returns no error. It is not a problem regarding memory either as I used flags on our HCP to increase memory in both tests, and running only a single subject run returned the same type of error. I will try now an earlier version to see whether or not it will fix the problem. However, I am doubting that this will solve the problem. Does anyone have a hint on how to fix this? Thanks in advance!

Just to add, I ran the same commands over fmriprep version 20.0.6 and the same errors stated above occurred.

@jdkent and @ChrisGorgolewski any ideas on how I could fix this?

With “too many components selected”, I would guess “–aroma-melodic-dimensionality” should maybe be set lower. If you use “-100”, that will set it to <=100 instead of exactly 100. That said, I’m not very familiar with MELODIC. I think @markushs might know more here.

Thanks for replying @effigies! Indeed, I made a mistake with the number of components, so by changing it to “-100” it worked just fine! Surprisingly, I rerun all my subjects with the new settings and no MELODIC error appeared this time.

1 Like