Snakemake:使用通配符

问题描述 投票:1回答:1

我找不到这个可能很简单的问题的解决方案:

我有这个蛇文件,它首先产生以下文件:

  • data / sample1_P1.txt

  • data / sample1_P2.txt

  • data / sample2_P1.txt

  • data / sample2_P2.txt

在下一步中,它只是将文件连接到一个文件concatenated/concatenated.txt

这是最小的,可复制的示例:

pairs = {"P1" : "P1", "P2" : "P2"}

samples = {
    "sample1": "sample1",
    "sample2": "sample2"
}

rule all:
    input: "concatenated/concatenated.txt"

rule get_txt_files:
    output:
        "data/{sample}_{pair}.txt"
    shell:
        """
        echo 1 > {output}
        """

rule concatenate:
  input:
    expand("data/{sample}_{pair}.txt", sample=samples, \
        pair=pairs)
  output:
    "concatenated/concatenated.txt"
  shell:
    "cat {input} > {output};"

我的问题很简单:如何修改规则concatenate,以便将具有相同样本名称的文件连接起来?

所需的输出将是:

  • concatenated / sample1.txt

  • concatenated / sample2.txt

任何帮助将不胜感激。

python bioinformatics snakemake
1个回答
1
投票
rule concatenate:
  input:
    expand("data/{{sample}}_{pair}.txt", pair=pairs)
  output:
    "concatenated/{sample}.txt"
  shell:
    "cat {input} > {output};"
© www.soinside.com 2019 - 2024. All rights reserved.