【发布时间】:2018-04-05 20:09:31
【问题描述】:
我在这里扯头发,希望有人可以帮助我。
运行snakemake 4.8.0
我有一个 snakemake 管道,我使用两个 conda envs 和 --use-conda 运行它,它在作为独立管道运行时运行良好。
但是,当我在我们的集群上运行时,我得到了错误:
“'conda' 命令在 $PATH 中不可用。”
现在。 Anaconda 安装在我们的集群上,但我们需要在节点上激活它:
module load anaconda
另外,模块被定义为一个函数,所以我首先有一些东西。因此,在我的蛇文件的顶部,我有:
shell.prefix("source $HOME/.bashrc; source /etc/profile; module load anaconda; )
这并不能解决问题。
我什至在我的.bashrc 中输入了module load anaconda,但这仍然不起作用。仅在集群执行时,我收到关于 conda 未找到的错误。
对我的.bashrc 的其他更改被snakemake 拾取并被拾取,所以我不知道为什么 conda 会出现问题。
我什至创建了一个 conda 环境,将 snakemake 和 conda 加载到该环境中,在提交脚本和 Snakefile 中激活环境:
shell.prefix("source $HOME/.bashrc; source /etc/profile; module load anaconda; source activate MAGpy-3.5; ")
它仍然说“$PATH 中没有'conda' 命令。”
真的把我的头发扯掉了。
顺便说一句,我使用qsub -S /bin/bash 提交,也使用shell.executable("/bin/bash"),但在.snakemake 中创建的临时shell 脚本由/bin/sh 运行 - 这是预期的吗?
请帮帮我!
【问题讨论】:
-
对不起,上面的错误信息来自一个旧版本的snakemake,我在4.8.0得到的是“subprocess.CalledProcessError: Command 'which conda' returned non-zero exit status 1”跨度>
-
snakemake 命令是否在您
qsub的脚本中运行?该错误似乎来自创建(而不是激活)conda 环境的进程,而这又似乎是由snakemake 本身运行的,而不是由snakemake 产生的作业。 -
是的,这个工作很好,因为在那个工作中我“模块加载 anaconda”,然后“源激活 env”,然后运行 snakemake。该作业完美地在 Snakefile 中创建了两个 conda env(我正在使用 --use-conda),但随后我的初始作业提交的作业因 subprocess.CalledProcessError: Command 'which conda' returned non-zero exit status 1 问题而失败,这意味着它是找不到 conda 的辅助作业,而主要作业可以
-
你能在 ~/.profile 或 ~/.bashrc 中加入一些东西来验证它实际上被调用了吗? 'touch ~/bash_brickwall.txt'之类的东西
标签: conda snakemake environment-modules