Snakemakeと協力しており、のにアクセスする方法が見つかりません。例えばSnakemakeの現在のルールの名前
は、このようなアクセス権を持っているが方法です:
rule job1:
input: check_inputs(rules.current.name)
output: ...
check_inputs
機能は、各ルールの多かれ少なかれ同じであるとき、これは非常に役に立ちます。確かに
は、私はこれを作ったし、それが動作します:
rule job1:
input: check_inputs("job1")
output: ...
をしかし、私は思っていたこと、現在のルールの名前を取得するために、より「Snakemakerの方法は、」ルールの名前をハードコーディング/書き込みを避けるために存在している場合毎回。
何か助けや提案をいただければ幸いです。
--- --- EDIT1
ルール名がinput
とoutput
ステートメントはsnakemakeによって解析されるのみ{rules.myrule.name}介してアクセス可能です。したがって、{rules.myrule.name}の使用はinput
/output
の定義では不可能です。
{rules.myrule.name}も繰り返しであるため、現在のルールの名前{rules.current}にすばやくアクセスできるようにすることです。
を参照してくださいあなたの答えをいただき、ありがとうございます。いいえ、動作していません。 rule.nameはsnakemakeによって入力と出力が解析されるときに定義されます。 Rulesオブジェクト(すべてのルールとその属性を含む)をチェックし、出力定義の後にのみ表示されます。しかし、リンクした問題をありがとう、私はこれのために新しいものを作成します。 1人の他の人がそれのためのトリックを見つけた場合を除いて。 – glihm