ICA-AROMA error - "path does not exist"

Hi,

I’m trying to run fmriprep with --ica-aroma flag, but I get an error “path ‘/root/src/fmriprep/work/fmriprep_wf/single_subject_01_wf/func_preproc_ses_4_task_rest_wf/ica_aroma_wf/ica_aroma/out/denoised_func_data_nonaggr.nii.gz’ does not exist”. I’ve only used an additional --longitudinal flag, but without the flag preprocessing also fails with the same error. Without --ica-aroma pipeline runs with no errors.

Is there any advice on how can I fix this?

Thank you!

Karolina

Crash log:

[Node] Error on "fmriprep_wf.single_subject_01_wf.func_preproc_ses_4_task_rest_wf.ica_aroma_wf.ica_aroma" (/root/src/fmriprep/work/fmriprep_wf/single_subject_01_wf/func_preproc_ses_4_task_rest_wf/ica_aroma_wf/ica_aroma)
Traceback (most recent call last):
  File "/usr/local/miniconda/bin/fmriprep", line 11, in <module>
    sys.exit(main())
  File "/usr/local/miniconda/lib/python3.6/site-packages/fmriprep/cli/run.py", line 314, in main
    fmriprep_wf.run(**plugin_settings)
  File "/usr/local/miniconda/lib/python3.6/site-packages/nipype/pipeline/engine/workflows.py", line 595, in run
    runner.run(execgraph, updatehash=updatehash, config=self.config)
  File "/usr/local/miniconda/lib/python3.6/site-packages/nipype/pipeline/plugins/base.py", line 162, in run
    self._clean_queue(jobid, graph, result=result))
  File "/usr/local/miniconda/lib/python3.6/site-packages/nipype/pipeline/plugins/base.py", line 224, in _clean_queue
    raise RuntimeError("".join(result['traceback']))
RuntimeError: Traceback (most recent call last):
  File "/usr/local/miniconda/lib/python3.6/site-packages/nipype/pipeline/plugins/multiproc.py", line 68, in run_node
    result['result'] = node.run(updatehash=updatehash)
  File "/usr/local/miniconda/lib/python3.6/site-packages/nipype/pipeline/engine/nodes.py", line 480, in run
    result = self._run_interface(execute=True)
  File "/usr/local/miniconda/lib/python3.6/site-packages/nipype/pipeline/engine/nodes.py", line 564, in _run_interface
    return self._run_command(execute)
  File "/usr/local/miniconda/lib/python3.6/site-packages/nipype/pipeline/engine/nodes.py", line 644, in _run_command
    result = self._interface.run(cwd=outdir)
  File "/usr/local/miniconda/lib/python3.6/site-packages/nipype/interfaces/base/core.py", line 522, in run
    runtime = self._post_run_hook(runtime)
  File "/usr/local/miniconda/lib/python3.6/site-packages/niworkflows/interfaces/segmentation.py", line 164, in _post_run_hook
    outputs = self.aggregate_outputs(runtime=runtime)
  File "/usr/local/miniconda/lib/python3.6/site-packages/nipype/interfaces/base/core.py", line 620, in aggregate_outputs
    raise error
  File "/usr/local/miniconda/lib/python3.6/site-packages/nipype/interfaces/base/core.py", line 613, in aggregate_outputs
    setattr(outputs, key, val)
  File "/usr/local/miniconda/lib/python3.6/site-packages/nipype/interfaces/base/traits_extension.py", line 112, in validate
    self.info_text, value))
traits.trait_errors.TraitError: The trait 'nonaggr_denoised_file' of an ICA_AROMAOutputSpecRPT instance is an existing file name, but the path  '/root/src/fmriprep/work/fmriprep_wf/single_subject_01_wf/func_preproc_ses_4_task_rest_wf/ica_aroma_wf/ica_aroma/out/denoised_func_data_nonaggr.nii.gz' does not exist.

Thanks for reporting, could I ask you a few more details?

  1. The exact fmriprep command you used.
  2. The version of fmriprep you are using.
  3. The execution environment you are using (singularity, docker, manual install).
  4. Did you run the fmriprep command first with --use-aroma, or did you do it without the flag first, and called the command again with --use-aroma specified? (could possibly be something going on with current outputs in the working directory)

Thank you for reply!

  1. I used command:
fmriprep-docker --fs-license-file /home/finc/Software/license.txt /home/finc/Downloads/LB_fmriprep/raw /home/finc/Downloads/LB_fmriprep/prep_aroma participant --longitudinal --use-aroma
  1. I have 1.1.1 version of fmriprep
  2. I used docker
  3. I run fmriprep without the --use-aroma flag for the first rime, and then I specified different output folder when running command with --use-aroma

This should not be happening. I’ve reopened https://github.com/poldracklab/fmriprep/issues/1090 to track it.

Hi @karofinc, if you check the issue I just created you’ll see that @effigies came up with a potential explanation to your issue.

Would it be possible for you to provide us with some data (T1w + functional run in BIDS) with which reliably replicate this issue?

Cheers,
Oscar

Hi @oesteban, I’ve just provided a link to raw data on https://github.com/poldracklab/fmriprep/issues/1090.

Thanks,
Karolina

1 Like

Hi all,
I am getting the same error.

[Node] Error on “fmriprep_wf.single_subject_06_wf.func_preproc_task_rest_run_1_wf.ica_aroma_wf.ica_aroma” (/home/akaiser/tmp-data/spin_try/tmp/fmriprep_wf/single_subject_06_wf/func_preproc_task_rest_run_1_wf/ica_aroma_wf/ica_aroma)
181117-10:35:39,363 workflow ERROR:
_ Node ica_aroma failed to run on host rng-flux-01._
181117-10:35:39,363 workflow ERROR:
_ Saving crash info to /home/akaiser/tmp-data/spin_try/output/fmriprep/sub-06/log/20181113-220734_93a4d6e9-7c53-43b6-a0a7-7c477c970e07/crash-20181117-103539-akaiser-ica_aroma-857510de-b6de-4982-a3c1-747841262f55.txt_
Traceback (most recent call last):
_ File “/usr/local/miniconda/lib/python3.6/site-packages/nipype/pipeline/plugins/multiproc.py”, line 68, in run_node_
_ result[‘result’] = node.run(updatehash=updatehash)_
_ File “/usr/local/miniconda/lib/python3.6/site-packages/nipype/pipeline/engine/nodes.py”, line 480, in run_
_ result = self.run_interface(execute=True)
_ File “/usr/local/miniconda/lib/python3.6/site-packages/nipype/pipeline/engine/nodes.py”, line 564, in run_interface
_ return self.run_command(execute)
_ File “/usr/local/miniconda/lib/python3.6/site-packages/nipype/pipeline/engine/nodes.py”, line 644, in run_command
_ result = self.interface.run(cwd=outdir)
_ File “/usr/local/miniconda/lib/python3.6/site-packages/nipype/interfaces/base/core.py”, line 522, in run_
_ runtime = self.post_run_hook(runtime)
_ File “/usr/local/miniconda/lib/python3.6/site-packages/niworkflows/interfaces/segmentation.py”, line 164, in post_run_hook
_ outputs = self.aggregate_outputs(runtime=runtime)_
_ File “/usr/local/miniconda/lib/python3.6/site-packages/nipype/interfaces/base/core.py”, line 620, in aggregate_outputs_
_ raise error_
_ File “/usr/local/miniconda/lib/python3.6/site-packages/nipype/interfaces/base/core.py”, line 613, in aggregate_outputs_
_ setattr(outputs, key, val)_
_ File “/usr/local/miniconda/lib/python3.6/site-packages/nipype/interfaces/base/traits_extension.py”, line 112, in validate_
_ self.info_text, value))_
traits.trait_errors.TraitError: The trait ‘nonaggr_denoised_file’ of an ICA_AROMAOutputSpecRPT instance is an existing file name, but the path ‘/home/akaiser/tmp-data/spin_try/tmp/fmriprep_wf/single_subject_06_wf/func_preproc_task_rest_run_1_wf/ica_aroma_wf/ica_aroma/out/denoised_func_data_nonaggr.nii.gz’ does not exist.

181117-10:35:41,361 workflow ERROR:
_ could not run node: fmriprep_wf.single_subject_06_wf.func_preproc_task_rest_run_1_wf.ica_aroma_wf.ica_aroma_

I am using fmriprep v1.1.1, running a singularity.
The surprising thing is, that 2 out of three functional runs of that participant are running, and 1 is throwing the aforementioned error.

Any tips?

Thanks a lot for your help and let me know if I can provide you with more information about my dataset or the server I am running fmriprep on.

Best, Antonia

Can you give us some more details about your settings? Are you using docker? Exact command line? Thanks!

Hi,

This is the command I am running:

singularity run /scratch/singularity_images/fmriprep.img /home/akaiser/tmp-data/spin/data/ /home/akaiser/tmp-data/spin/output/ participant --nthreads 4 --omp-nthreads 2 --output-grid-reference /home/akaiser/tmp-data/MNI152_T1_2mm_brain.nii.gz --use-aroma --fs-no-reconall --ignore slicetiming -w /home/akaiser/tmp-data/spin/tmp/

I am using a singularity. fmriprep v1.1.1.
Do you need any more details?
Thanks!

Hi @Toni, does the error still persist in the latest release (1.2.3)?

Hi effigies,

I have not tried that yet. Would it make sense that some scans run and some don’t with 1.1.1?
If you think so, I will ask my IT team to update the version and let you know if it fixed the problem.
Thanks for your reply!

Yes, AROMA is data dependent, and so it’s possible that for some datasets, either all or no MELODIC components can be identified as motion-related. Both of these have caused problems, and I believe at least one of them is now fixed…

One problem with working with bug reports from old versions is that it’s not clear when it’s a new issue just arising or a fixed issue that we don’t recognize. So I can’t be sure that upgrading will resolve your issue, but it will let us know whether we have, and make it easier to test any fixes we make.

Hi effigies,

You were completely right, updating the version fixed my problem - it just finished. Thank you very much for your help!

Best, Toni