クラスタコンフィグレーションファイルのメモリとリソースのデフォルト設定を定義し、必要に応じてルール固有の方法でオーバーライドできますか?ルールの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で直接定義することをお勧めします。
これ以外にも、これを実装するより良い方法がある場合は、教えてください。
このポストはI posの直後に見つかりましたここに - https://stackoverflow.com/q/45111823/3998252。私はこの質問がいくつかの詳細を例として示しているので私の投稿を削除していません。 – JeeYem