仅输出中的Snakemake通配符

时间:2018-05-17 11:08:50

标签: python pipeline snakemake

我有一个脚本,它接受一个大的输入文件,然后使用不可预测的算法将其分解为从1到n的多个块。

然后,下面的脚本将迭代地处理每个块。

如何创建一个snakemake规则,该规则基本上表明输出文件将从1到n存在,并且对于1到n个输入文件中的每一个,应该运行以下脚本。

谢谢!

2 个答案:

答案 0 :(得分:1)

dynamic keyword。可以这样使用:

rule all:
    input:
        dynamic('{id}.png')


rule draw:
    input:
        '{id}.txt'
    output:
        '{id}.png'
    shell:
        'cp {input} {output}'


rule cluster:
    input:
        'input.csv'
    output:
        dynamic('{id}.txt')
    shell:
        'touch 1.txt 2.txt'

答案 1 :(得分:0)

您是否尝试过设置通配符?例如,如果要在文件1到22上迭代规则,则可以在snakemake文件的顶部设置通配符:

num=range(1,23)

然后在您的snakemake文件名中使用该通配符或在{wildcard.num}中引用它