10

Snakemake を使用していますが、現在のルールの nameにアクセスする方法が見つかりません。

たとえば、次のようなアクセス方法はありますか。

rule job1:
    input: check_inputs(rules.current.name)
    output: ...

check_inputsこれは、関数が各ルールでほぼ同じである場合に非常に役立ちます。

確かに、私はこれを作成しましたが、動作します:

rule job1:
    input: check_inputs("job1")
    output: ...

ただし、ルールの名前を毎回書き込む/ハードコーディングすることを避けるために、現在のルールの名前を取得するためのより「スネークメーカーの方法」が存在するかどうか疑問に思っていました。

どんな種類の助けや提案も高く評価されます。

--- EDIT1 ---
ルール名は、 andステートメントが snakemake によって解析される{rules.myrule.name}場合にのみ、経由でアクセスできます。そのため/定義ではの使用はできません。inputoutput{rules.myrule.name}inputoutput

{rules.current}アイデアは、たとえば現在のルールの名前にすばやくアクセスできるようにすることです。これ{rules.myrule.name}は、繰り返しもあるからです。

4

2 に答える 2