我正在与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