Snakemake:通配符列表中的通配符的随机顺序

Zuu*_*uup 0 python wildcard snakemake

我在函数中索引我的snakemake通配符时遇到问题.由于某种原因,变量在"通配符"列表中的存储顺序各不相同.我使用该函数为我的一个规则生成输入文件的路径,并且随着正确值的位置发生变化,规则每次查询只会成功一次.如何在"通配符"列表中控制或修复通配符的位置?我添加了我的Snakefile的相关内容.

谢谢你,zuup

#!/usr/bin/env python3
import glob
import re

R_BIN = "Rscript"

pop = "lineA lineB".split()
group = "test control".split()
chrom = "X Y".split()

def getInput(Wildcards):
    pop = str(Wildcards[0])
    group = str(Wildcards[1])
    chrom = str(Wildcards[2])
    path = "Resources/bed/" + pop + "_" + group + r"_rep[1-5]/" + pop + "_" + group + r"_rep[1-5]_chr" + chrom + ".bed"
    return(glob.glob(path))

rule BED2BS:
    input:
        getInput
    output:
        wd + "Resources/bs/{pop}_{group}/{group}_chr{chrom}.RDS"
    shell:
        R_BIN + " Scripts/Script1.R {input} {output}"
Run Code Online (Sandbox Code Playgroud)

Joh*_*ter 6

Snakemake不保留来自的通配符顺序(请注意,不同的输出和输入文件可以在不同的顺序中使用相同的通配符.因此,没有规范的顺序可以从文件模式中出现的通配符派生).但是,您可以按名称寻址通配符值,例如:

wildcards.group
Run Code Online (Sandbox Code Playgroud)

请考虑通过Snakemake教程.