我是Snakemake的新手,我想编写一个非常简单的Snakefile,其规则将每个输入文件分别处理为一个输出文件,但是不知何故我的通配符无法正确解释。
我在Ubuntu 18.04中使用输入文件“ test / test1.txt”,“ test / test2.txt”和Snakefile设置了一个最小的,可复制的示例环境。 (snakemake版本5.5.4)
Snakefile:
ins = glob_wildcards("test/{f}.txt")
rule all:
input: expand("out/{f}.txt", f=ins)
rule test:
input: "test/{f}.txt"
output: "out/{f}.txt"
shell: "touch {output}"
此Snakefile在构建作业DAG时引发以下错误:
Missing input files for rule test:
test/['test1', 'test2'].txt
有什么办法解决此错误吗?
答案 0 :(得分:6)
我认为您需要使用ins.f
或类似的内容:
expand("out/{f}.txt", f= ins.f)
原因在FAQ
中有解释[glob_wildcards返回]包含值列表的命名元组 每个通配符。