首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建多个配置文件?

创建多个配置文件?
EN

Stack Overflow用户
提问于 2020-07-02 20:14:36
回答 1查看 522关注 0票数 1

关于snakemake和使用多个配置文件的快速问题。

我正在为基因组preProcessing创建一个相当大的管道,其想法是它是用户友好的,并且在用户能力方面是最小的公分母。

因此,不允许用户在主配置文件中定义某些工具使用的线程。我想实现snakemake的"workflow.cores * percentage“功能,也就是说,我可以为每个工具指定总内核的百分比(在命令行中使用--cores #定义)。

这使事情变得简单,并且不会使用户与主配置文件中的所有选项混淆。但我仍然希望允许用户微调线程的数量,如果他们愿意的话。我的想法是,我有一个没有线程号的主配置文件,以及一个有线程号的第二个配置文件。

如果用户决定要使用他们自己确定的线程数,他们只需(在主配置中)在关键字中提供一个肯定的,类似于: manualThreadChoice:"yes“

并且在Snakefile中有一个简单的if语句,如果manualThreadChoice是肯定的,则相应地将线程数提供给相应的规则,否则只使用自动定义的线程百分比。

根据这个关于生物恒星的问题:https://github.com/yanailab/celseq2/issues/33

现在可以定义多个配置文件。

请参阅注释:

“感谢您报告这个问题。这是因为snakemake更新了他们现在支持多个配置文件的API。根据他们的日志,配置文件被更改为配置文件。请参阅: snakemake/snakemake@23624ee#diff-88e96378bf2405c8a8f8ac971519039e.”

所以不用调用配置文件

代码语言:javascript
复制
configfile: "path/to/config.yaml"

我们可以使用:

代码语言:javascript
复制
configfiles: 

我的问题是,我们是否提供两个单独的路径作为文件列表的一部分:

代码语言:javascript
复制
configfiles: ["path/to/config1.yaml", "path/to/config2.yaml"]

然后我们如何从不同的配置中访问密钥。由于使用单个配置文件,我们将使用:

代码语言:javascript
复制
config['key']

我尝试使用索引来访问不同的配置文件:

代码语言:javascript
复制
config[0]['key']

但这不管用。

我使用的是Snakemake 5.7.0,我相信它是一个具有多个配置文件功能的版本。

EN

回答 1

Stack Overflow用户

发布于 2021-10-25 12:53:28

您可以只在Snakefile的顶部指定多个config文件,如下所示:

代码语言:javascript
复制
configfile: "path/to/config1.yaml"
configfile: "path/to/config2.yaml" 

然后,Snakemake将所有配置文件合并到一个可通过全局变量config访问的配置字典中

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62696099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档