使用 .yml 文件创建后无法找到 conda 环境

Unable to locate conda environment after creating it using .yml file

我正在尝试使用 .yml 文件创建(并激活和使用)Conda 环境(事实上,我正在按照此 GitHub 页面上的说明进行操作:https://github.com/RajLabMSSM/echolocatoR)。我在集群计算系统中工作 运行 Linux.

conda env create -f https://github.com/RajLabMSSM/echolocatoR/raw/master/inst/conda/echoR.yml

在 运行 上面的代码行之后,我正在尝试激活环境:

conda activate echoR

但是,这 returns 以下消息:

Could not find conda environment: echoR
You can list all discoverable environments with conda info --envs.

查看.conda/environments.txt中的环境列表时,确实没有列出echoR环境。

我希望就这里可能出现的问题提出一些建议。

可能的原因:内存不足

鉴于 HPC 上下文,求解器可能会尝试超出分配的内存并被终止。 Python-based Conda 求解器的资源效率不是很高,并且可能会在大型环境中挣扎。这个特定的环境非常大,因为它混合了 Python 和 R,并且它没有给出 R 和 Python 版本的确切规范 - 只有下限 - 这使得 SAT 搜索 space 巨大。

分析内存(

我尝试使用 GitHub 工作流来分析内存使用情况。使用Mamba,毫无问题地解决了;使用 Conda,作业被终止,因为 GitHub runner 运行 内存不足(最大 7GB)。细分为:

Tool Memory (MB) User Time (s)
Mamba 745 195.45
Conda > 6,434 > 453.34

解决方法

使用曼巴

作为 drop-in 已编译 编译的 Conda 的替代品,Mamba 的资源效率更高。此外,它在生物信息学社区中也受到欢迎(例如,它是 Snakemake 的默认前端)。

正如 GitHub 工作流程所展示的那样,Mamba-based 创建工作与 YAML 原样完美无缺。

请求更多内存

请求 SLURM/SGE 为您的交互式会话提供更多内存。 Conda 似乎需要超过 6.5 GB(也许试试 16GB?)。

创建更好的 YAML

要获得更快的求解速度,可以做的第一件事是为 Python 和 R 提供准确的版本。Mamba 解决方案解析为 python=3.9 r-base=4.0.

环境中还有一堆 development-level 完全不需要 end-users 的东西。但这更让开发人员烦恼。