您好,我一直在尝试将metabat2和checkm放在我的管道中,看看我的样本中有哪些细菌,但我一直在运行snakema的错误。我的snakemake代码是
rule all:
input:
[f"nanoplot_out/" for sample in samples],
[f"zipped/zipped.gz" for sample in samples],
[f"filtered/nanofilt_out.gz" for sample in samples],
[f"unzipped/read.fastq" for sample in samples],
[f"assembled/" for sample in samples],
[f"nanopolish/assembly.fasta" for sample in samples],
[f"medaka_consensus/" for sample in samples],
[f"input/consensus.fasta" for sample in samples],
[f"output_antismash/" for sample in samples],
[f"metabat2/bin" for sample in samples],
[f"metabat2/CheckM.txt" for sample in samples]
rule metabat2:
input:
"medaka_consensus/consensus.fasta"
output:
directory("metabat2/")
conda:
"envs/metabat2.yaml"
shell:
"metabat2 -i {input} -o {output} -v"
rule checkM:
input:
"metabat2/"
output:
"metabat2/CheckM.txt"
conda:
"envs/metabat2.yaml"
shell:
"checkm lineage_wf -f {output} -t 30 -x fa {input}"
我的错误消息是MissingInputException in line 4 of /home/ec2-user/snakemake_JHB-2-14-20_uncor_polish_anti5_meta/Snakefile: Missing input files for rule all: metabat2/bin
有没有人能帮我把它修好?
发布于 2020-02-20 00:32:17
错误消息指出,snakemake找不到任何可以创建文件(或目录?) metabat2/bin
的规则。假设它是由规则metabat2
创建的,您将需要将其添加为output
的一部分。
rule metabat2:
input:
"medaka_consensus/consensus.fasta"
output:
a = metabat2/bin
b = directory("metabat2/")
conda:
"envs/metabat2.yaml"
shell:
"metabat2 -i {input} -o {output.b} -v"
https://stackoverflow.com/questions/60310853
复制