簡體   English   中英

Snakemake 多個配置文件?

[英]Snakemake multiple Config Files?

關於 snakemake 和使用多個配置文件的快速問題。

我正在為基因組預處理創建一個相當大的管道,其想法是它是用戶友好的,並且在用戶能力方面占最低公分母。

因此,不允許用戶在主配置文件中定義某些工具使用的線程。 我想實現snakemake的“workflow.cores * percent”功能,即; 我可以為每個工具指定總內核的百分比(在命令行中使用 --cores # 定義)。

這使事情變得簡單,並且不會將用戶與主配置文件中的所有選項混淆。 但我仍然希望允許用戶根據需要微調線程數。 這個想法是我有一個沒有線程號的主配置文件,還有一個帶有線程號的第二個配置文件。

如果用戶決定他們想使用自己決定的線程數,他們將簡單地(在主配置中)提供一個肯定的鍵,類似於:manualThreadChoice: "yes"

並且在 Snakefile 中有一個簡單的 if 語句,如果手動線程選擇是肯定的,則相應地為相應的規則提供線程數,否則只使用自動定義的線程百分比。

根據關於biostars的這個問題: 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,我相信它是具有這種多個配置文件功能的版本。

您可以在Snakefile的頂部指定多個config文件,如下所示:

configfile: "path/to/config1.yaml"
configfile: "path/to/config2.yaml" 

然后 Snakemake 將所有配置文件合並到 1 個配置字典中,該字典可通過全局變量config訪問

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM