Snakemake:您可以扩展两个因变量吗?

时间:2019-12-16 10:11:01

标签: snakemake

我正在寻找一组基因和标志物的关联。我有一个基因列表genes = ['gene1', 'gene2', ...]和一个字典,其中的键是基因名称,值是我想与该基因关联的标记的列表,即markers = {'gene1': ['marker1.1', 'marker1.2', ...], 'gene2': ['marker2.1', 'marker2.2', ...], ...}。我有一条规则,可以为给定的基因和标记输出文件gene/assoc/marker

是否可以同时在genes列表和markers字典上进行扩展,以使正在扩展的基因成为dict的关键?类似于以下内容:

markers = {
    'gene1': ['marker1.1', 'marker1.2', ...],
    'gene2': ['marker2.1', 'marker2.2', ...],
    ...
}
genes = markers.keys()

rule all:
    input:
        expand('{gene}/assoc/{marker}', gene=genes, marker=markers[current_gene])

1 个答案:

答案 0 :(得分:1)

您可以预先使用扩展:

gimme_files = []
for marker in markers:
    _gimme_per_marker = expand('{gene}/assoc/{marker}', gene=marker, marker=markers[marker])
    gimme_files.extend(_gimme_per_marker)

rule all:
    input:
        gimme_files