vinisalazar / metaphor

Metaphor: a general-purpose workflow for assembly and binning of metagenomes
https://metaphor-workflow.readthedocs.io/
Other
35 stars 3 forks source link

Error in rule megahit #57

Closed viksiem closed 10 months ago

viksiem commented 10 months ago

Hi, I installed mamba, runned metaphor with test data ($metaphor test) and I got this error:

[...]

Finished job 8.
29 of 93 steps (31%) done
Select jobs to execute...
[Fri Sep  1 10:55:14 2023]
Finished job 43.
30 of 93 steps (32%) done

[Fri Sep  1 10:55:14 2023]
rule megahit:
    input: output/qc/merged/RL2_S002__insert_270_short_R1.fq.gz, output/qc/merged/RL2_S002__insert_270_short_R2.fq.gz
    output: output/assembly/megahit/RL2_S002__insert_270_short/RL2_S002__insert_270_short.contigs.fa
    log: output/logs/assembly/megahit/RL2_S002__insert_270_short.log
    jobid: 34
    benchmark: output/benchmarks/assembly/megahit/RL2_S002__insert_270_short.txt
    reason: Missing output files: output/assembly/megahit/RL2_S002__insert_270_short/RL2_S002__insert_270_short.contigs.fa; Input files updated by another job: output/qc/merged/RL2_S002__insert_270_short_R2.fq.gz, output/qc/merged/RL2_S002__insert_270_short_R1.fq.gz
    wildcards: group=RL2_S002__insert_270_short
    threads: 3
    resources: tmpdir=/tmp, mem_mb=8190, mem_mib=7811

        # MegaHit has no --force flag, so we must remove the created directory prior to running
        rm -rf output/assembly/megahit/RL2_S002__insert_270_short

        megahit -1 output/qc/merged/RL2_S002__insert_270_short_R1.fq.gz -2 output/qc/merged/RL2_S002__insert_270_short_R2.fq.gz                       -o output/assembly/megahit/RL2_S002__insert_270_short                       --presets meta-large                                   --out-prefix RL2_S002__insert_270_short                              --min-contig-len 200                    -t 3                                                --k-list 21,29,39,59,79,99,119,141 &> output/logs/assembly/megahit/RL2_S002__insert_270_short.log

        rm -rf output/assembly/megahit/RL2_S002__insert_270_short/intermediate_contigs  # to avoid this, disable the 'remove_intermediate_contigs' setting in the config file.

Activating conda environment: ../../../../home/vik/mambaforge-pypy3/envs/metaphor/lib/python3.11/site-packages/metaphor/config/conda/7868fcaf389234f097974a635baf2aa8_
[Fri Sep  1 10:55:14 2023]
Error in rule megahit:
    jobid: 34
    input: output/qc/merged/RL2_S002__insert_270_short_R1.fq.gz, output/qc/merged/RL2_S002__insert_270_short_R2.fq.gz
    output: output/assembly/megahit/RL2_S002__insert_270_short/RL2_S002__insert_270_short.contigs.fa
    log: output/logs/assembly/megahit/RL2_S002__insert_270_short.log (check log file(s) for error details)
    conda-env: /home/vik/mambaforge-pypy3/envs/metaphor/lib/python3.11/site-packages/metaphor/config/conda/7868fcaf389234f097974a635baf2aa8_
    shell:

        # MegaHit has no --force flag, so we must remove the created directory prior to running
        rm -rf output/assembly/megahit/RL2_S002__insert_270_short

        megahit -1 output/qc/merged/RL2_S002__insert_270_short_R1.fq.gz -2 output/qc/merged/RL2_S002__insert_270_short_R2.fq.gz                       -o output/assembly/megahit/RL2_S002__insert_270_short                       --presets meta-large                                   --out-prefix RL2_S002__insert_270_short                              --min-contig-len 200                    -t 3                                                --k-list 21,29,39,59,79,99,119,141 &> output/logs/assembly/megahit/RL2_S002__insert_270_short.log

        rm -rf output/assembly/megahit/RL2_S002__insert_270_short/intermediate_contigs  # to avoid this, disable the 'remove_intermediate_contigs' setting in the config file.

        (one of the commands exited with non-zero exit code; note that snakemake uses bash strict mode!)

Shutting down, this might take some time.
Exiting because a job execution failed. Look above for error message
Complete log: .snakemake/log/2023-09-01T104641.271954.snakemake.log
Metaphor did not finish with exit code 1. Please see the error message below.
An error occurred while running Metaphor. Please check the traceback below.
Traceback (most recent call last):
  File "/home/vik/mambaforge-pypy3/envs/metaphor/bin/metaphor", line 10, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/vik/mambaforge-pypy3/envs/metaphor/lib/python3.11/site-packages/metaphor/cli/cli.py", line 278, in main    args.func(args)
  File "/home/vik/mambaforge-pypy3/envs/metaphor/lib/python3.11/site-packages/metaphor/cli/test.py", line 182, in main
    retcode = run_cmd(cmd)
              ^^^^^^^^^^^^
  File "/home/vik/mambaforge-pypy3/envs/metaphor/lib/python3.11/site-packages/metaphor/utils.py", line 92, in run_cmd    retcode = check_call(cmd.split())
              ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/vik/mambaforge-pypy3/envs/metaphor/lib/python3.11/subprocess.py", line 413, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['snakemake', '--snakefile', '/home/vik/mambaforge-pypy3/envs/metaphor/lib/python3.11/site-packages/metaphor/workflow/Snakefile', '--configfile', '/home/vik/mambaforge-pypy3/envs/metaphor/lib/python3.11/site-packages/metaphor/config/test-config.yaml', '--cores', '3', '-p', '-r', '--use-conda', '--wrapper-prefix', 'https://github.com/snakemake/snakemake-wrappers/raw/', '--conda-prefix', '/home/vik/mambaforge-pypy3/envs/metaphor/lib/python3.11/site-packages/metaphor/config/conda', '--config', 'max_mb=8192']' returned non-zero exit status 1.

RL2_S002__insert_270_short.log :

2023-09-01 10:55:14 - MEGAHIT v1.2.9
2023-09-01 10:55:14 - Using megahit_core with POPCNT and BMI2 support
Traceback (most recent call last):
  File "/home/vik/mambaforge-pypy3/envs/metaphor/lib/python3.11/site-packages/metaphor/config/conda/7868fcaf389234f097974a635baf2aa8_/bin/megahit", line 1038, in <module>
    main()
  File "/home/vik/mambaforge-pypy3/envs/metaphor/lib/python3.11/site-packages/metaphor/config/conda/7868fcaf389234f097974a635baf2aa8_/bin/megahit", line 988, in main
    build_library()
  File "/home/vik/mambaforge-pypy3/envs/metaphor/lib/python3.11/site-packages/metaphor/config/conda/7868fcaf389234f097974a635baf2aa8_/bin/megahit", line 264, in checked_or_call
    func(*args, **kwargs)
  File "/home/vik/mambaforge-pypy3/envs/metaphor/lib/python3.11/site-packages/metaphor/config/conda/7868fcaf389234f097974a635baf2aa8_/bin/megahit", line 723, in build_library
    create_fifo('pe1', i, inpipe_cmd(opt.pe1[i]))
  File "/home/vik/mambaforge-pypy3/envs/metaphor/lib/python3.11/site-packages/metaphor/config/conda/7868fcaf389234f097974a635baf2aa8_/bin/megahit", line 710, in create_fifo
    os.mkfifo(fifo_path)
OSError: [Errno 95] Operation not supported

I set " remove_intermediate_contigs:" to false in .yaml file but I kept getting the same error.

What can be done? Do you have any suggestions? Congrats on metaphor, very usefull. I hope I can make it work :)

sys info: Ubuntu 22.04.1 LTS x86_64 - WSL2

vinisalazar commented 10 months ago

Hi @viksiem,

Thank you for your interest in Metaphor.

If you ran the test command with metaphor test, it should use the test configuration located in the Metaphor installation folder (you can see that with metaphor config show --test-config), so it shouldn't pick up on a local configuration file that has remove_intermediate_contigs as False. I recommend keeping the test config as it is, as modifying it may cause unexpected testing behaviour.

As for your error, OSError may be happen due to various reasons, but my suspicion would be of permission issues in the directory you are writing in. This issue shows similar problems: https://github.com/jtamames/SqueezeMeta/issues/308. Can you reproduce this error on a different machine?

Best, Vini

viksiem commented 10 months ago

Hi, Vini

This error really seems to be related to WSL2. I tested twice (with test data and my own data) with two different machines using WSL2 on both and got the same error. I finally run $ metaphor testwith a native linux machine and it worked fine.

Thanks!

vinisalazar commented 10 months ago

Hi @viksiem,

Good to know it worked, and thank you for clarifying. Metaphor only supports Linux and macOS.

Best, Vini