snakemake列表规则在集群和本地中执行

问题描述 投票:0回答:1

我知道有一种方法可以使用localrules声明需要在本地计算机上执行的规则:

localrules: all, foo

是否有类似的选项来声明需要在集群上执行的规则?也许是clusterrules选项?

我的管道中有一堆不需要在集群上执行的规则,虽然我可以用localrules列出所有规则,但只需输入一个或两个需要在集群上执行。

另一种选择是使用rule groups,它将在单个节点上执行组中的所有规则,而不是在群集中使用多个节点。

snakemake
1个回答
0
投票
我不认为这是不幸的。我检查了snakemake的源代码,破解此漏洞的一种方法是执行以下操作:

all_rules = [rule for rule in dir(rules) if not rule.startswith("__")] cluster_rules = ["my_cluster_rule1", "my_cluster_rule2"] workflow._localrules = set(rule for rule in all_rules if rule not in cluster_rules)

我还没有测试过,但是我认为这应该可行。这样,我们仅覆盖Snakemake从文档中解析的内容。这样做的问题在于,在不同版本的snakemake之间可能不稳定。
© www.soinside.com 2019 - 2024. All rights reserved.