gpt4 book ai didi

conda - 在 Nextflow 中执行 Singularity 容器时激活 conda 环境

转载 作者:行者123 更新时间:2023-12-04 13:18:55 55 4
gpt4 key购买 nike

我正在使用 Singularity 容器从 Nextflow 工作流管理系统运行命令。我在 Singularity 中有一个 conda 环境,当我进入容器时可以激活它

singularity pull shub://brucemoran/Singularity:pcgr.centos7
singularity shell brucemoran-Singularity-pcgr.centos7.img
#<inside container>
source activate pcgr

当 Nextflow 执行时,我已经定义为 source activate pcgr我认为应该激活 conda env。但我得到了一个 unbound variable HOST警告。我认为这与非激活和后续使用变量有关,如果 env 被激活(?),应该定义这些变量。

我希望容器在执行时激活 env (pcgr)。我试过
%run
source activate pcgr


%post
source activate pcgr

但这对我不起作用
singularity exec pcgr.img which pcgr.py
which: no pcgr.py in ...

我看不出这是如何完成的,但假设这很容易,而且我在很大程度上忽略了一些东西!

帮助表示赞赏。

最佳答案

奇点中的 shell 在特殊环境中运行,因此标准 conda 对 .bashrc 的修改不工作。相反,您需要修改 $SINGULARITY_ENVIRONMENT多变的。您的 Singularity 定义文件中的这些内容应该可以工作:

# set to whatever your conda path is, I usually install to /opt
echo ". /opt/conda/etc/profile.d/conda.sh" >> $SINGULARITY_ENVIRONMENT
echo "conda activate pcgr" >> $SINGULARITY_ENVIRONMENT
这样 conda 环境将自动激活。如果您更喜欢在您的步骤中手动激活它,您可以省略第二行并在您的 %run 中执行此操作。脚步。
编辑:改为使用 .而不是 source/bin/sh 兼容,在下面的评论中提到

关于conda - 在 Nextflow 中执行 Singularity 容器时激活 conda 环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56446195/

55 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com