我正在與Snakemake合作,我無法找到訪問當前規則的名稱的方法。Snakemake當前規則的名稱
舉例來說,有沒有辦法有一個這樣的訪問:
rule job1:
input: check_inputs(rules.current.name)
output: ...
這是非常有益的,當check_inputs
功能是每個規則或多或少相同。
可以肯定,我做了這一點,它的工作原理:
rule job1:
input: check_inputs("job1")
output: ...
不過,我想知道,如果一個更「Snakemaker方式」來獲得當前規則的名稱存在,以避免編寫/硬編碼規則的名字每一次。
任何形式的幫助或建議將不勝感激。
--- EDIT1 ---
規則名稱是通過{} rules.myrule.name只有當input
和output
語句由snakemake解析訪問。因此,在定義中使用{rules.myrule.name}不可能在input
/output
中使用。
想法是例如對當前規則的名稱{rules.current}進行快速訪問,因爲{rules.myrule.name}也是重複的。
謝謝您的回答。不,它不工作。當輸入和輸出被snakemake解析時,rule.name被定義。我已經檢查了規則對象(包含所有規則及其屬性),並且只在輸出定義之後纔出現。但是,感謝您關聯的問題,我將爲此創建一個新的問題。除非另一個人找到了這個技巧。 – glihm