snakemake - 使用蛇形运行 metabat2 和 checkM
问题描述
嗨,我一直在尝试将 metabat2 和 checkm 放入我的管道中,以查看我的样本中有哪些细菌,但我一直遇到蛇形错误。我的蛇形代码是
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
有没有人可以帮助我使它工作?
解决方案
错误消息指出,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"
推荐阅读
- wordpress - Wordpress 站点的 URL 不起作用(错误:DNS_PROBE_FINISHED_NXDOMAIN)
- complexity-theory - 证明语言是语法的一部分,反之亦然
- css - CSS:在其他内联块元素内时,使图像在加载之前占用空间
- javascript - 这些编写函数的方法有何不同?
- php - 你如何在 Laravel 6 测试中模拟 Auth::id?
- sql - Oracle SQL,在select语句中获取长度更大的varchar2列
- python - matplotlib 轴的类型提示
- java - 如何使用组合和阶乘
- datetime - 有没有办法用当前时间戳插入 org-mode 模板?
- ios - 如何在页面视图控制器中获得垂直滑动