我正在使用Snakemake,我无法找到访问当前规则名称的方法。在
例如,有没有一种方法可以这样访问:
rule job1:
input: check_inputs(rules.current.name)
output: ...
当check_inputs
函数对每个规则或多或少都相同时,这将非常有用。在
当然,这是我做的,而且很管用:
^{pr2}$但是,我想知道是否存在一种更“蛇行”的方法来获取当前规则的名称,以避免每次写入/硬编码规则名称。在
如有任何帮助或建议,我们将不胜感激。在
编辑---
{{cd4}>只有当cd4}>被input
/output
定义中是不可能使用的。在
这样做的目的是快速访问当前规则的名称{rules.current}
,因为{rules.myrule.name}
也是重复的。在
我认为
rule.name
应该可以工作,但是看起来它只是rule
,但是它不能在所有上下文中使用:请参见https://bitbucket.org/snakemake/snakemake/issues/199/rule-name-cant-be-accessed-by-rule-in安德烈亚斯
(编辑:提出了一个解决办法)
在shell:/run:指令期间,
{rule}
可用于rulename。正如op所说,这在input/output:
中不起作用。然而,当前的模板是一个完整的工作在上面的例子中,引入变量
myrule
是不必要的,因为它只使用一次。但是,当您希望在各种snakemake指令中多次使用规则名称时,这就更有意义了。而且它也有助于规则模板化。在相关问题 更多 >
编程相关推荐