2017-07-28 10 views
0

これは、SnakeMakeで連鎖パラメータとして機能するように見えます。これはいいですか、それとも並列環境で問題を引き起こすのでしょうか?代わりにPersistentDictを使うべきですか?SnakeMakeの連鎖パラメータ

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


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

答えて

2

それはEgは今、「ルールb」は常に別のオプションは、にあるので、私は不言う

「ルール」を添付しなければならないneedlessly coupled system

、その結果として、私はそのアプローチに対して助言します外部変数を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正規表現を必要とするので、これは私のパイプラインで非常に重要です、まだ私はdidnの」すべてのルールをまとめて結びつけたい。

アライナーの品質スレッシュホールドなどにも適しています。時には、比較のために異なるアライナーで同様のしきい値を使用することがあります。