小编gli*_*ihm的帖子

Snakemake中当前规则的名称

我正在与Snakemake合作,但找不到找到当前规则名称的方法

例如,有没有办法像这样进行访问:

rule job1:
    input: check_inputs(rules.current.name)
    output: ...
Run Code Online (Sandbox Code Playgroud)

check_inputs每个规则的功能大致相同时,这将非常有用。

当然,我做到了,它的工作原理是:

rule job1:
    input: check_inputs("job1")
    output: ...
Run Code Online (Sandbox Code Playgroud)

但是,我想知道是否存在一种更多的“ Snakemaker方式”来获取当前规则的名称,以避免每次都编写/硬编码该规则的名称。

任何帮助或建议将不胜感激。

--- EDIT1 ---只有当snakemake解析了and 语句时,才能
访问规则名称。因此在/ 定义中无法使用。{rules.myrule.name}inputoutput{rules.myrule.name}inputoutput

这样做的想法是例如快速访问当前规则的名称{rules.current},因为{rules.myrule.name}它也是重复的。

python python-3.x snakemake

6
推荐指数
1
解决办法
533
查看次数

Snakemake 中规则的重用

有没有办法在snakemake中重用规则,仅更改params

例如:

rule job1:
    ...
    params:
        reference = "path/to/ref1"
    ...

rule job2:
    input: rules.job1.output
    ...
    params:
        reference = "path/to/ref2"
Run Code Online (Sandbox Code Playgroud)

job1job2规则正在做同样的事情,但我需要连续调用它们并且reference必须修改参数。它为非常相似的任务生成大量代码。

我尝试为这一步制作一个子工作流程,并且主 Snakefile 更具可读性。然而,子工作流程代码仍然重复。

有什么想法或建议吗?我错过了什么?

编辑
更具体地说,job2 必须在 job1 之后执行,使用后者的输出。

python-3.x snakemake

5
推荐指数
1
解决办法
1892
查看次数

标签 统计

python-3.x ×2

snakemake ×2

python ×1