Snakemake:“无法从输出文件确定输入文件中的通配符”

时间:2019-03-22 13:36:49

标签: snakemake

我使用Snakemake执行一些规则,但是我遇到了一个问题:

rule filt_SJ_out:
input: 
    "pass1/{sample}SJ.out.tab"

output:
    "pass1/SJ.db"

shell:''' 
gawk '$6==1 || ($6==0 && $7>2)' {input} >> {output};


'''

在这里,我只想将一些文件合并到一个普通文件中,但是通过在google上搜索,我发现输入中使用的通配符也必须在输出中使用。

但是我找不到解决此问题的解决方案..

先谢谢了

1 个答案:

答案 0 :(得分:1)

如果在运行脚本之前知道sample的值,则可以执行以下操作:

SAMPLES = [... define the possible values of `sample` ...]

rule filt_SJ_out:
    input: 
        expand("pass1/{sample}SJ.out.tab", sample=SAMPLES)
    output:
        "pass1/SJ.db"
    shell:
        """ 
        gawk '$6==1 || ($6==0 && $7>2)' {input} >> {output};
        """

input步骤中,这将生成文件列表,每种文件的格式为pass1/<XYZ>SJ.out.tab