【问题标题】:Snakemake: 'Missing input files' due to wrong wildcard expansionSnakemake:由于通配符扩展错误导致“缺少输入文件”
【发布时间】:2019-07-30 13:08:46
【问题描述】:

我是 Snakemake 的新手,我想编写一个非常简单的 Snakefile,其规则将每个输入文件分别处理到一个输出文件,但不知何故我的通配符没有正确解释。

我在 Ubuntu 18.04 中设置了一个最小的、可重现的示例环境,其中包含输入文件“test/test1.txt”、“test/test2.txt”和一个 Snakefile。 (snakemake 版本 5.5.4)

蛇文件:

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

任何想法如何解决这个错误?

【问题讨论】:

    标签: snakemake


    【解决方案1】:

    我认为你需要使用ins.f 或类似的东西:

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

    原因在FAQ中有解释

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

    【讨论】:

    • 非常感谢!确实是ins.f来解决问题。
    • 你也可以做 'ins, = glob_wildcards("test/{f}.txt")' (注意逗号)。 snakemake 文档显示了这种方法。
    猜你喜欢
    • 2022-06-21
    • 2022-08-18
    • 1970-01-01
    • 1970-01-01
    • 2013-10-02
    • 2018-03-04
    • 2013-11-08
    • 2018-05-10
    • 2020-04-03
    相关资源
    最近更新 更多