Snakemake 中的多行规则顺序

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

我有3条规则,它们的名字有点长。当使用

ruleorder
时,该行超出了我想要的 80 个字符限制。是否有可能将
ruleorder
分成多行,其行为与我将其全部写在一行中完全一样? 示例:

ruleorder: long_rule_1 > long_rule_2 > long_rule_3

我想将其重新格式化为这样的:

ruleorder: ( long_rule_1 > long_rule_2 > long_rule_3 )


python python-3.x snakemake directed-acyclic-graphs
3个回答
4
投票
\

作为续行:

# Snakefile
rule all:
    input: '1.txt'

for k in list("abcde"):
    rule:
        name: k
        output: '1.txt'

ruleorder: a > b > c > \
        d > e



3
投票

ruleorder: long_rule_1 > long_rule_2 ruleorder: long_rule_2 > long_rule_3

这适用于您的简单情况,但并不完全等同于将所有三个规则放在一行的规则顺序。 Snakemake 创建一个规则顺序列表,并一一应用它们。严格来说,应用一个规则顺序三个规则和两个规则顺序每个两个规则是有区别的。通过这种方式,您甚至可以引入在一行中不可能实现的循环,因此我希望尽可能使用单个规则顺序。


1
投票

ruleorder: long_rule_1 > long_rule_2 > long_rule_3

其他答案也很好,但这是我正在使用的

© www.soinside.com 2019 - 2024. All rights reserved.