背景
bioconda 是一个管理生物信息软件的一个工具软件,可以将 bioconda 当成生物信息软件的AppStore。它基于 Anaconda 可以进行生物软件的搜索,下载,安装,升级,删除等操作。通过一条命令即可完成绝大部分生物软件的安装。目前已经是最好的生物软件管理工具之一,目前支持超过 7000 多款生物软件的安装。
官方网址:http://bioconda.github.io/
目前已经有超过 7000 多款生物都几件可以通过 bioconda 直接安装。
https://anaconda.org/bioconda/repo
为什么要选择使用 bioconda,因为其很好的解决了生物软件安装过程中的各种问题,主要包括以下几点:
1、自动解决了软件依赖问题,实现一条命令可以安装很多软件;
2、bioconda 可以很方便进行软件升级;
3、无需管理员权限也可以安装很多软件;
4、可以同时管理软件的多个版本
5、所有软件安装在同一目录下,方便进行管理和迁移。
一、bioconda 软件安装
要想使用 bioconda 来安装生物软件,首先要安装 bioconda。bioconda 来自于 Anaconda 软件,本质上只是 Anaconda 一个单独的生物软件源。经常看到 Anaconda,Miniconda 以及bioconda,三者之间有什么关系呢?
Anaconda:集合了常用 Python 包的数据科学平台 (full)
Miniconda:精简版 Anaconda (Lite)
bioconda:专门用来管理生物软件 (定制版)
Anaconda 和 Miniconda 是软件,bioconda 只是一个特定的软件源。三者的管理工具都是conda 命令。
下图形象的展示了三者的关系
要想使用 bioconda,需要三个步骤,下载软件,安装软件,添加软件源。
1、下载安装:
代码语言:javascript复制wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
2、安装
代码语言:javascript复制sh Miniconda3-latest-Linux-x86_64.sh
source ~/.bashrc
3、添加软件源:
目前 bioconda 提供是两个软件源,分别是 biconda 和 conda-forge,默认的 defaults 是用来管理 python 相关的包。bioconda 是官方维护的软件源,conda-forge 通道是社区维护的,包含很多不在默认通道里面的通用型软件。安装完成之后需要将这两个软件源都添加进来。
代码语言:javascript复制conda config --add channels bioconda
conda config --add channels conda-forge
以上步骤的效果是在每个用户的家目录下创建一个.condarc 文件,并将这些软件源写入该文件。
代码语言:javascript复制$ cat ~/.condarc
channels:
- conda-forge
- bioconda
- defaults
4、添加国内镜像
目前国内清华大学以及北京外国语大学等也提供 biocodna 的镜像,可以将这些镜像添加进来,替换官方镜像。但目前 bioconda 官方镜像速度还可以,且国内镜像如果有多人访问时会造成拥堵,反而更慢了,具体使用看个人需求。
代码语言:javascript复制添加清华大学镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
二、利用 bioconda 管理生物软件
安装并且配置完 bioconda 之后,就可以使用 bioconda 来管理生物软件了。可以经行搜索(search),安装(install),升级(update),卸载(remove)等操作。下面给出 bioconda一些常用功能。
bioconda 常用选项参数
info | 显示某个软件信息 |
---|---|
help | 给出帮助信息 |
list | 查看所有安装的软件 |
search | 查找安装的软件 |
create | 创建一个新的 conda 环境 |
install | 安装需要的软件 |
update | 对软件进行升级 |
upgrade | 与 update 相同 |
remove | 卸载已经安装的软件 |
uninstall | 与 remove 相同 |
config | 配置软件源 |
---|---|
clean | 移除没用的软件安装包和缓冲 |
package | 低配版软件工具,还在实验中 |
---|
安装并添加软件源之后就可以使用 bioconda 进行软件安装了。首先根据软件名进行搜索,如果可以搜索到,就可以使用 install 进行安装了。
不过由于 bioconda 目录结构过大,每个软件又有不同的版本,因此搜索速度较慢,最好直接知道软件名,或者通过网页端进行搜索。
网页端搜索 bwa 软件结果
下面是 bioconda 管理软件的一些常用命令
代码语言:javascript复制查看已安装软件
conda list
搜索软件
conda search bwa
安装软件
conda install -y bwa=0.7.17
升级软件
conda update bwa
移除软件
conda remove bwa
三、mamba
相比于 conda,mamba 是用 c 重写了 conda 的部分功能,运行效率显著提高,可以进行并行的下载,使用 rpm 包管理工具中的 libsolv,可以更快的解决环境依赖问题。
mamba 的使用也比较简单,首先使用 conda 安装 mamba,后面所有用到 conda 的地方,都可以使用 mamba 替换即可。
代码语言:javascript复制conda install -c conda-forge -y mamba
mamba install -y bwa
mamba install -y satools
mamba install -y bcftools
为 mamba 设置别名
alias 'conda= mamba'
四、使用 bioconda 安装常用软件
代码语言:javascript复制mamba install -y bwa
mamba install -y samtools
mamba install -y bcftools
mamba install -y blast
mamba install -y blat
mamba install -y mummer
mamba install -y mafft
mamba install -y muscle
mamba install -y lastz
mamba install -y sratools
mamba install -y seqkit
mamba install -y seqtk
mamba install -y bedtools
mamba install -y bedops
mamba install -y gfatools
mamba install -y circos
mamba install -y entrez-direct
mamba install -y emboss
安装数据质控软件
mamba install -y fastqc multiqc
mamba install -y trimmomatic
mamba install -y fastp
mamba create -n nanoplot -y nanoplot
安装基因组拼接相关工具
mamba install -y velvet
mamba install -y flye
mamba install -y miniasm
mamba install -y canu
mamba install -y megahit
mamba install -y spades
mamba install -y quast
mamba install -y racon
mamba install -y miniasm
mamba install -y nanopolish
安装基因功能分析软件
mamba install -y prodigal
mamba install -y glimmer
mamba install -y augustus
mamba install -y trf
五、利用 conda 管理 R 包
现在 R 包的功能越来越强大,已经不单纯是几个 R 自定义函数就能构成一个包了。很多 R包会集成很多 C 或者 python 的代码,所以需要额外编译,就又回到开源软件的死结:各种环境问题以及依赖问题,使用 bioconda 可以很好的管理 R 包。
R 的包一般都是以“r-”前缀,比如 R 语言本身为 r-base,如果 R 包来自于 bioconductor,则命令为 “bioconductor-”前缀。知道这些特点,就可以使用 bioconda 来管理 R 包了。
代码语言:javascript复制安装 R 语言
mamba install -c conda-forge -y r-base=4.0.0
搜索默认 R
$ which R
~/miniconda3/bin/R
3、安装 R 包
mamba install -y r-tidyverse
搜索 deseq2 包
$ conda search deseq2
Loading channels: done
No match found for: deseq2. Search: *deseq2*
Name Version Build Channel
bioconductor-deseq2 1.8.2 r3.2.2_0 bioconda
bioconductor-deseq2 1.10.0 r3.2.2_0 bioconda
bioconductor-deseq2 1.10.0 r3.2.2_1 bioconda
bioconductor-deseq2 1.10.1 r3.2.2_0 bioconda
安装 deseq2 包
$ mamba install -y bioconductor-deseq2
六、升级 bioconda 全部软件
定期需要升级 bioconda 软件,如果想一次性升级全部软件,可以使用下面命令。
代码语言:javascript复制更新基础 conda
mamba update -n base -c defaults conda
更新全部包
mamba update -y --all
七、常见问题
conda 在使用过程中会遇到很多问题。
7.1 搜索不到
代码语言:javascript复制ackagesNotFoundError: The following packages are not available from current
channels:
原因:
可能是没有配置 bioconda 或者 conda-forge 软件源或者写错了。或者软件名字有问题,或者库里面不存在该软件。
解决方法:
查看软件配置文件,尝试添加通配符扩大搜索范围。
7.2 搜索速度慢
conda 搜索或者安装初期一直在转圈,一直处于 solving environment 中。
原因:
这是因为 bioconda 中包含的软件越来越多,而且软件的不同版本都保留了下来,软件的索引文件越来越大,安装一个新软件时搜索满足环境中所有软件依赖的软件的搜索空间也会越来越大,导致 solving environment 越来越慢。
解决方法:
跳过搜索步奏,直接安装。
通过网页端搜索,然后直接安装;
安装时直接指定版本;
提高网络速度;
设置通道优先级高于软件版本优先级。
代码语言:javascript复制conda config --set channel_priority strict
利用 mamba 替代 conda。
7.3 安装中断
安装过程中出现 core dump error/Segment fault 等错误。
原因:
出现这个错误原因很多,可能是硬件资源不够,也可能是软件版本冲突。
解决方法:
如果安装中断可以重新运行安装命令。也可以选择清空缓存
代码语言:javascript复制 https://github.com/conda/conda/issues/7815
conda clean -a
7.4 版本冲突
代码语言:javascript复制Encountered problems while solving:
- package blast-2.7.1-boost1.64_1 requires boost 1.64*, but none of the providers
can be installed
由于软件依赖与现有环境中的配置相冲突,导致软件无法安装成功。
解决方法:使用虚拟环境安装。
7.5 权限问题
代码语言:javascript复制The environment is inconsistent, please check the package plan carefully
The following packages are causing the inconsistency:
conda 目前并不能像 R 软件一样,为允许每个用户创建私有的库,如果使用系统管理员安装的 bioconda,那么普通用户不能使用 conda 继续安装软件,只能使用软件。
解决方法:
自己安装 biocodna 到个人目录下。
7.6 使用管理员安装的软件
如果自己安装了 biocodna,同时要使用管理员安装的 bioconda 安装的软件,这个时候,可以使用软件的全路径。
代码语言:javascript复制使用软件全路径
/ifs1/Software/miniconda3/bin/bwa