关于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.”
所以不用调用配置文件
configfile: "path/to/config.yaml"我们可以使用:
configfiles: 我的问题是,我们是否提供两个单独的路径作为文件列表的一部分:
configfiles: ["path/to/config1.yaml", "path/to/config2.yaml"]然后我们如何从不同的配置中访问密钥。由于使用单个配置文件,我们将使用:
config['key']我尝试使用索引来访问不同的配置文件:
config[0]['key']但这不管用。
我使用的是Snakemake 5.7.0,我相信它是一个具有多个配置文件功能的版本。
发布于 2021-10-25 12:53:28
您可以只在Snakefile的顶部指定多个config文件,如下所示:
configfile: "path/to/config1.yaml"
configfile: "path/to/config2.yaml" 然后,Snakemake将所有配置文件合并到一个可通过全局变量config访问的配置字典中
https://stackoverflow.com/questions/62696099
复制相似问题