![](/img/trans.png)
[英]Why doesn't 'conda' or 'jupyter notebook' work when I use conda to change environments?
[英]Can I use multiple conda environments in the nextflow config?
我正在 Nextflow 中編寫一個管道,並希望使用多個不同的 conda(現有)環境來避免工具安裝中的不一致以及共享管道的特定模塊。 Nextflow 文檔 state,最佳實踐是在nextflow.config
環境 - 請參閱此處。 . 但是,聲明只是process.conda
並且似乎適用於所有進程而不是特定於進程。
我知道我可以在每個進程中指定一個現有的 conda 環境,但我正在努力遵守可移植性的最佳實踐。
由於我無法在網上找到有關此特定問題的任何文檔,因此我嘗試了配置文件中的以下聲明:
profiles {
conda {
process.conda = "something" // works but single env for all processes
fastqc.conda = "something" // where fastqc is the name of the process - FAILS
process.fastqc.conda = "something" // FAILS
}
}
我也試過:
profiles {
conda {
process {
withName: fastqc {
process.conda = "something"
}
}
}
}
這也失敗並出現錯誤: unknown config attribute withName
有趣的是,
process {
conda {
withName: fastqc {
process.conda = "something"
}
}
}
確實允許我為每個進程運行不同的 conda 環境,但不能通過-profile
選項打開和關閉(因為指定配置文件塊會破壞它)。
不確定是否存在“最佳實踐”,但我認為通常的方法是創建一個單獨的 Conda 配置文件,並使用withName
或withLabel
進程選擇器來指定使用conda指令的環境。 例如, conf/conda.config
的內容可能如下所示:
process {
withLabel: 'fastqc' {
conda = 'fastqc=0.11.8=1'
}
withName: 'cutadapt' {
conda = 'cutadapt=2.10=py37h516909a_0'
}
}
然后,在您的nextflow.config
中,包含一個“conda”配置文件以包含上述配置文件並啟用 Conda 環境。 請注意,后者現在在 Nextflow 的較新版本中是必需的:
includeConfig 'conf/base.config'
profiles {
'conda' {
includeConfig 'conf/conda.config'
conda.enabled = true
}
在上面的示例中, conf/base.config
將始終被應用,而不管配置文件如何,並且可能包含通常的cpus / memory / time指令和errorStrategy等。
我也找不到如何通過nextflow.config
執行此操作。
我使用的解決方法是繼續將conda
指令指令附加到每個process
,然后在nextflow.config
中添加它:
profiles {
conda {
conda.enabled = true
}
}
這樣您仍然可以在 CLI 上使用-profile
標志關閉 conda-usage。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.