Parameters SnakeMake中的链式参数

Parameters SnakeMake中的链式参数,parameters,chaining,snakemake,Parameters,Chaining,Snakemake,这似乎适用于蛇形链参数。这样做可以吗,还是会在并行环境中引起问题,应该改用PersistentDict吗 rule a: params: a = "Param A", b="Param B" ... rule b: params: rules.a.params.b 我反对这种做法,因为它会导致 例如,现在“规则b”必须始终伴随“规则a” 我这样说是不必要的,因为另一个选项是在中声明外部变量,并让两个param指令都接受它作为参数 config

这似乎适用于蛇形链参数。这样做可以吗,还是会在并行环境中引起问题,应该改用PersistentDict吗

rule a:
    params:
            a = "Param A", b="Param B"
    ...


rule b:
    params: rules.a.params.b

我反对这种做法,因为它会导致

例如,现在“规则b”必须始终伴随“规则a”

我这样说是不必要的,因为另一个选项是在中声明外部变量,并让两个param指令都接受它作为参数

config.yaml~

蛇形锉刀~

这在我的管道中是至关重要的,因为我需要对管道的大部分使用相同的通配符约束正则表达式,但我不想最终将所有规则耦合在一起


同样适用于对齐器上的质量阈值。有时,为了进行比较,您会在不同的对齐器中使用类似的阈值。

我建议不要使用这种方法,因为它会导致

例如,现在“规则b”必须始终伴随“规则a”

我这样说是不必要的,因为另一个选项是在中声明外部变量,并让两个param指令都接受它作为参数

config.yaml~

蛇形锉刀~

这在我的管道中是至关重要的,因为我需要对管道的大部分使用相同的通配符约束正则表达式,但我不想最终将所有规则耦合在一起

同样适用于对齐器上的质量阈值。有时,为了进行比较,您会在不同的对齐器中使用类似的阈值

a: Param A
b: Param B
configfile: "config.yaml"

rule a:
    ...
    params:
        importantRuleAVar = config["a"]
    ....


rule b:
    ...
    params:
        importantRuleBVar = config["a"]
    ...