【发布时间】:2016-11-16 18:26:29
【问题描述】:
这是一个来自蛇形教程高级部分的简短示例:
rule bwa_map:
input:
"data/genome.fa",
lambda wildcards: config["samples"][wildcards.sample]
output:
"mapped_reads/{sample}.bam"
threads: 8
shell:
"bwa mem -t {threads} {input} | samtools view -Sb - > {output}"
现在假设我在几个月前编写了这条规则,但我不记得输出文件名了。 我的理解是我不能通过调用规则名称来运行snakemake,因为这会导致错误:
$ snakemake bwa_map
InputFunctionException in line 9 of Snakefile:
AttributeError: 'Wildcards' object has no attribute 'sample'
Wildcards:
$
首先,我不明白为什么 snakemake 不能使用 lambda 函数从配置文件中推断输入文件,因为很明显我指的是“示例”部分。
其次,有解决方法吗? 因为使用旧的 Makefile 非常容易,只需使用旧的 Makefile 并通过键入类似的内容来运行相同的 bwa_map 规则
$ make bwa_map INPUT=data/samples/A.fastq
提前感谢您的帮助。 拜诺主义者
【问题讨论】: