Snakemake:由于错误的通配符扩展而导致“缺少输入文件”

时间:2019-07-30 13:08:46

标签: snakemake

我是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

有什么办法解决此错误吗?

1 个答案:

答案 0 :(得分:6)

我认为您需要使用ins.f或类似的内容:

expand("out/{f}.txt", f= ins.f)

原因在FAQ

中有解释
  

[glob_wildcards返回]包含值列表的命名元组   每个通配符。