gpt4 book ai didi

snakemake - 如何访问 `shell` 部分内的 Snakemake 配置变量?

转载 作者:行者123 更新时间:2023-12-04 12:44:12 27 4
gpt4 key购买 nike

在snakemake 中,我想从config 访问 key 。从内部shell:指示。我可以用 {input.foo} , {output.bar} , 和 {params.baz} ,但是 {config.quux}不支持。有没有办法实现这一目标?

rule do_something:
input: "source.txt"
output: "target.txt"
params:
# access config[] here. parameter tracking is a side effect
tmpdir = config['tmpdir']
shell:
# using {config.tmpdir} or {config['tmpdir']} here breaks the build
"./scripts/do.sh --tmpdir {params.tmpdir} {input} > {output}; "

我可以将我想要的配置部分分配给 params 下的一个键,然后使用 {param.x}替换,但这有不需要的副作用(例如,参数保存在蛇形元数据中(即 .snakemake/params_tracking)。使用 run: 而不是 shell: 将是另一种解决方法,但直接从 {config.tmpdir} 访问 shell块,将是最可取的。

最佳答案

"./scripts/do.sh --tmpdir {config[tmpdir]} {input} > {output}; "
应该在这里工作。

它在文档中说明:
http://snakemake.readthedocs.io/en/stable/snakefiles/configuration.html#standard-configuration

“为了将配置占位符添加到 shell 命令中,Python 字符串格式化语法要求您省略键名周围的引号,如下所示:”

shell:
"mycommand {config[foo]} ..."

关于snakemake - 如何访问 `shell` 部分内的 Snakemake 配置变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49140578/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com