2017-12-01 6 views
0

クラスタコンフィグレーションファイルのメモリとリソースのデフォルト設定を定義し、必要に応じてルール固有の方法でオーバーライドできますか?ルールのresourcesフィールドは、クラスタ構成ファイルに直接結びついていますか?それとも、読みやすさのためにフィールドparamsのための空想的な方法ですか?Snakemake - ルール固有の方法でLSF(bsub)クラスタコンフィグをオーバーライド

以下の例では、rule aにデフォルトクラスタ設定を使用しますが、rule bにカスタム変更(memory=40000およびrusage=15000)を使用するにはどうすればよいですか?

cluster.json:

{ 
    "__default__": 
    { 
     "memory": 20000, 
     "resources": "\"rusage[mem=8000] span[hosts=1]\"", 
     "output": "logs/cluster/{rule}.{wildcards}.out", 
     "error": "logs/cluster/{rule}.{wildcards}.err" 
    }, 
} 

Snakefile:私はunderst

snakemake --cluster-config cluster.json 
      --cluster "bsub -M {cluster.memory} -R {cluster.resources} -o logs.txt" 
      -j 50 

:実行のための

rule all: 
    'a_out.txt', 'b_out.txt' 

rule a: 
    input: 
     'a.txt' 
    output: 
     'a_out.txt' 
    shell: 
     'touch {output}' 

rule b: 
    input: 
     'b.txt' 
    output: 
     'b_out.txt' 
    shell: 
     'touch {output}' 

コマンドクラスタ構成ファイルにルール固有のリソース要件を定義することは可能ですが、可能であればSnakefileで直接定義することをお勧めします。

これ以外にも、これを実装するより良い方法がある場合は、教えてください。

+0

このポストはI posの直後に見つかりましたここに - https://stackoverflow.com/q/45111823/3998252。私はこの質問がいくつかの詳細を例として示しているので私の投稿を削除していません。 – JeeYem

答えて

0

あなたが直接あなたのルールのそれぞれにresourcesを追加することができます。

rule all: 
    'a_out.txt' , 'b_out.txt' 

rule a: 
    input: 
     'a.txt' 
    output: 
     'a_out.txt' 
    resources: 
     mem_mb=40000 
    shell: 
     'touch {output}' 
rule b: 
    input: 
     'b.txt' 
    output: 
     'b_out.txt' 
    resources: 
     mem_mb=20000 
    shell: 
     'touch {output}' 

とコマンドラインがsnakefileを上書きしないように、その後、あなたは、あなたの.jsonからresourcesパラメータを削除する必要があります

new.cluster.json:

{ 
    "__default__": 
    { 
     "output": "logs/cluster/{rule}.{wildcards}.out", 
     "error": "logs/cluster/{rule}.{wildcards}.err" 
    }, 
} 
+0

私は、クラスタ構成ファイルにデフォルトのリソース制約を設定し、必要に応じてルール固有の方法でSnakefileに変更することを望んでいました。ここでのアイデアは、リソースをほとんど変更する必要がないということです。それで、あなたがここで説明したことを実行することについて、私は最近熟考してきました。私は冗長性を減らすために前者を好むだろうが、すべてのルールについては同じファイルに保存されていると主張することもできる。 – JeeYem

関連する問題