Linux上的神器Anaconda
有在Linux上安装软件或配置环境的经验,那么把Anaconda称之为神器就不会觉得过分!尤其对于初学者,有兴趣可以自行体会不使用conda安装软件。
1.Anaconda
1.1 Anaconda是什么
Anaconda是一个基于Python的开源的包、环境管理器,可以用于在同一个机器上安装不同版本的软件包及其依赖,并能够在不同的环境之间切换。
需要知道四个关键点:基于Python、软件管理、包管理和环境管理。
1.2 Anaconda的下载
访问Anaconda官网按照下图示例进行选择下载即可。(注意:Python3.0以下的版本最终会被淘汰,只是目前有些软件还没更新到3.0版本以上所以Python官方推出一个2.7过渡版本)
Anaconda官网由于服务器位于海外,所以下载速度在某些地方可能比较慢,为了提高下载速度可以使用国内的一些镜像网站来下载,如中科大镜像,清华镜像等。
两种方法均会下载一个.sh
结尾的文件,上传至服务器中即可进行安装。当然也可以直接在服务器中输入以下命令来下载Anaconda即可,文件夹中提供下载好的安装包Anaconda3-5.3.1-Linux-x86_64.sh
。
# 从官网下载Anaconda
wget https://repo.anaconda.com/archive/Anaconda3-2018.12-Linux-x86_64.sh
# 中科大镜像下载Anaconda(推荐)
wget http://mirrors.ustc.edu.cn/anaconda/archive/Anaconda3-5.3.1-Linux-x86_64.sh
Anaconda还有一个精简版本叫miniconda,由于版本只包含基本功能软件,本文并不推荐在服务器中安装此版本,避免以后还要额外安装其他常用所需包。有自己安排的大神可以忽略。
1.3 Anaconda的安装
在安装包所在的目录下输入下面指令即可开始安装。
bash ./Anaconda3-5.3.1-Linux-x86_64.sh
如下图Anaconda在安装时需要用户对是否接受版权许可、安装位置及是否添加至环境变量中进行选择。
- 是否接受版权许可填写 yes
- 安装位置可以默认(
/home/user name/anaconda3
),当然也可以自定义,根据自己习惯 - 由于会安装许多软件,需要耐心等待,尽量不要在安装软件期间回车查看是否死机,因为回车会成为下一步的指令,比如添加环境变量中,回车即选择默认选项,而默认是no
- 是否添加至环境变量中填写 yes,若不慎填写为 no,可以输入下面指令将Anaconda添加至环境变量中
# 将Anaconda添加到环境变量中,填写自己的安装位置
echo 'export PATH="/root/anaconda3/bin:$PATH"' >> ~/.bashrc
最后需要输入以下命令来重新载入配置文件(重要!)
# 重新载入Linux Bash的配置文件
source ~/.bashrc
输入conda
查看是否安装成功,出现conda的help文档表明安装成功。
1.4 设置源
Anaconda源默认在国外,这就是在国内使用Anaconda下载软件速度慢的原因,可以通过将源设置为国内镜像来提高下载速度。
# 官方源
conda config --add channels bioconda
conda config --add channels msys2
conda config --add channels menpo
conda config --add channels peterjc123
conda config --add channels conda-forge
conda config --add channels pytorch
conda config --add channels r
conda config --add channels defaults
conda config --set show_channel_urls yes
# 北外镜像
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/menpo/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/peterjc123/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/pytorch/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/r/
conda config --set show_channel_urls yes
# 清华镜像,已挂
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/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
# 中科大镜像,已挂
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
# 腾讯镜像,已挂
conda config --add channels https://mirrors.cloud.tencent.com/anaconda/pkgs/free/
conda config --add channels https://mirrors.cloud.tencent.com/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.cloud.tencent.com/anaconda/cloud/msys2/
conda config --add channels https://mirrors.cloud.tencent.com/anaconda/cloud/menpo/
conda config --add channels https://mirrors.cloud.tencent.com/anaconda/cloud/peterjc123/
conda config --add channels https://mirrors.cloud.tencent.com/anaconda/pkgs/main/
conda config --add channels https://mirrors.cloud.tencent.com/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.cloud.tencent.com/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes
#查看已经添加的channels
conda config --get channels
# 查看conda的配置信息
conda info
2.Bioconda
Bioconda是专门为生物信息学另辟的一个Anaconda源,包含生物信息学分析的的绝大部分软件,常用的软件基本全都包括。
2.1 软件安装
# 搜索软件
conda search <package name>
# 安装,默认最新版本软件
conda install <package name>
# 安装指定版本软件
conda install <package name> = <version number>
# 移除软件
conda remove <package name>
常用软件如下:
- FASTQ测序结果质量控制: fastqc
- trim序列:fastx_toolkit
- 去除adapter的软件:cutadapt
- 比对软件:bwa, bowtie, bowtie2
- RNA比对软件:tophat2, hisat2, star
- SAM/BAM文件处理:samtools
- BED文件处理:bedtools
注意:对于名字不熟悉的软件,在安装前需要去bioconda / packages查询确认名称后再进行安装。
2.2 其他指令
#更新conda
conda update conda
#更新软件
conda update <package name>
#查看已安装软件列表
conda list
#查看软件安装路径
which <package name>
3.Conda子环境
3.1 为什么需要子环境
实际中,由于每个人习惯不尽相同,有的可能用py2,有的可能用py3,使用的软件也有不同,想要重新复现一下分析结果,那就需要创建一个新的子环境,或者不同项目要求不同的软件,那么此时创建一个新的子环境同样是必要的。
子环境就相当于Windows系统中装的虚拟机,虚拟机中可以装Linux及不同版本的Windows来适应不同软件的安装需求,并且对原来系统不会造成任何影响。
3.2 子环境的相关指令
# 创建子环境,并制定python版本为2.7
conda create -n <sub environment name> python=2.7
# 激活子环境
source activate <sub environment name>
# 退出子环境
source deactivate
conda deactivate
# 查看子环境列表
conda info --envs
# 删除子环境
conda remove -n <sub environment name> --all
注意:
- 创建子环境系时,统会检查所需的软件和包并安装
- 子环境中的软件安装同外部环境,并且在子环境里安装的各种软件不影响外部环境
推荐一个项目对应一个conda子环境,这样能够清楚项目完成时所调用的包的版本号,一是方便后续排除因版本不对所带来的错误,二是方便别人接手或重复此项目。
参考资料:
1.生物信息学100个基础问题 —— 番外2: 用Anaconda快速搭建生物信息学分析平台
2.Bioconda软件安装
3.使用Bioconda管理Linux系统中的生物信息软件
4.生信软件的好帮手-bioconda
5.世上没有白走的路,每一步都算数