2017-07-28 60 views
0

這看起來可以在SnakeMake中鏈接參數。這是可以做的,還是會在並行環境中引起問題,並且應該使用PersistentDict來代替?SnakeMake中的鏈接參數

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


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

回答

2

我會建議對這一做法,因爲它導致needlessly coupled system

如現在「規則B」必須始終堅持「治一」

我說不必要,因爲另一個選擇是陪同在YAML (or JSON) file中聲明外部變量,並且兩個param指令都接受它作爲參數。

config.yaml〜Personal Example

a: Param A 
b: Param B 

Snakefile〜Personal Example with just a single rule

configfile: "config.yaml" 

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


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

這是我的管道至關重要的,因爲我需要爲我的管道大部分相同wildcard_constraint正則表達式,但我沒有」不想把所有的規則結合在一起。

同樣適用於對齊器上的質量閾值。有時候,您會在不同的對齊方式中使用類似的閾值進行比較。