Python 仅在输出中使用Snakemake通配符

Python 仅在输出中使用Snakemake通配符,python,pipeline,snakemake,Python,Pipeline,Snakemake,我有一个脚本,它接收一个大的输入文件,然后使用一个不可预测的算法将其分解为从1到n的多个块 然后,下面的脚本将迭代地处理每个块 我如何创建一个snakemake规则,该规则本质上声明输出文件将从1到n存在,并且以下脚本应该为1到n个输入文件中的每个文件运行一次 谢谢 您是否尝试过设置通配符?例如,如果对文件1到22迭代规则,可以在snakemake文件的顶部设置通配符: num=range(1,23) 然后在snakemake文件名中使用该通配符,或者在{wildcard.num}中引用它,因

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

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

我如何创建一个snakemake规则,该规则本质上声明输出文件将从1到n存在,并且以下脚本应该为1到n个输入文件中的每个文件运行一次


谢谢

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

num=range(1,23)

然后在snakemake文件名中使用该通配符,或者在{wildcard.num}

中引用它,因为有
动态
。它可以这样使用:

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'
你考虑过这个选择吗?