Snakemake 带或的两个通配符之间的通配符\u约束

Snakemake 带或的两个通配符之间的通配符\u约束,snakemake,Snakemake,如果(id='FOO | | |(id='BAR'&&ver='2'),,我想约束基于两个通配符的规则运行。然而,我不太确定如何做到这一点(或者是否可能)。我尝试了下面的例子,但似乎不起作用 rule foo: input: "{id}{ver}.txt" output: "{id}{ver}.out" wildcard_constraints: id = "FOO" wildcard_constraints: id = "BAR",

如果
(id='FOO | | |(id='BAR'&&ver='2'),
,我想约束基于两个通配符的规则运行。然而,我不太确定如何做到这一点(或者是否可能)。我尝试了下面的例子,但似乎不起作用

rule foo:
    input: "{id}{ver}.txt"
    output: "{id}{ver}.out"
    wildcard_constraints:
       id = "FOO"
    wildcard_constraints:
       id = "BAR",
       ver = "2"

我不确定你目前的方法是否有效。为什么不简单地让snakemake为您制作所需的文件?e、 g:

rule all:
  input: expand('FOO{ver}.txt, ver=[somelist]), 'BAR2.txt'

rule foo:
  input: "{id}{ver}.txt"
  output: "{id}{ver}.out"
  shell: "some_command {input} > {output}  
这应该为您指定的所有foo{ver}.txt文件和bar2.txt文件调用规则foo