首页 > 生物信息学100个基础问题 —— 番外2: 用Anaconda快速搭建生物信息学分析平台

生物信息学100个基础问题 —— 番外2: 用Anaconda快速搭建生物信息学分析平台

互联网 2021-05-09 04:27:45
写在最前面的话

Hello 大家好!

我们的生物信息学100个基础问题到现在已经进行了20问。在第10问结束以后,我们发布了第1个番外:不学Linux做什么生信? 其中核心内容就是想告诉大家,如果各位想做生物信息学,尤其是高通量生物信息学,那么必须要学习并使用Linux环境。

那么在使用Linux过程中,除了一开始我们从图形界面到Linux命令行的一个使用习惯的转变以外,另一个学习曲线比较陡峭的就是在Linux环境下安装和调试各种生物信息学软件。其实对任何一段程序,如果想要其能够在我们的电脑/服务器上运行,那就需要经过编译,即将我们的代码,编译成可执行的程序文件。比如C++写的samtools软件,你想要在服务器上通过源码安装就只要要使用到 configure,make, make install 等步骤。这些过程还有可能涉及到一些C++用到的库文件,在编译之前还要配置到环境变量里。

对于初学生物信息学的各位老铁,更多的精力应该放在如何使用生物信息学软件而不是怎么去安装这些软件。那么有没有1个比较方便的方式安装我们所需要的软件呢,答案是:当然有!这就是我们今天介绍的主角Anaconda!Anaconda本质上是1个基于python的软件管理器 + 包管理器,如果大家理解上有困难,可以类比我们windows环境下的“软件管家”。

使用Anaconda的主要目的

Anaconda主要可以帮助我们解决下面的两个问题:

1. 快速并方便的安装各种程序包(包括R/Python),各种软件,并解决包依赖性的问题;

2. 可以在同一个服务器上配置不同的软件环境,各个环境互不干扰;

那么今天我们这篇番外,内容比较长,希望能够通过1篇文章让大家了解Anaconda,并开始真的能动手使用Anaconda来作为你的生物信息学软件管理器!Let's go !

主要目录1. Anaconda是什么?2. 如何下载Anaconda?3. 怎么安装Anaconda?4. 什么是Anaconda的源,怎么添加Anaconda源?5. Bioconda的简单介绍6. 使用Bioconda来安装我们常用的生物信息学软件- - - - - - - 第1次更新- - - - - - - - - 7. 学习创建conda子环境及相关操作1. Anaconda是什么?图1-1 Anaconda 官方网站 https://www.anaconda.com/

我们在认识1个新鲜软件/包/平台的时候,最先看到应该是它的官方文档,Anaconda的官方网址和主页截图如图1-1所示。

Anaconda最早是为了搭建Python的科学计算平台而构建的一个包管理工具,后来通过不断发展已经成为了目前应用最广泛,最好用的Python科学计算管理平台。简单来说,它最初设计的时候就是一个Python的包管理器,其中包含了众多Python常用包,尤其是与科学计算,机器学习,深度学习常用的包。因此,当你安上了Anaconda的时候,你就有了一个独立的版本的Python,并且已经安装好了常用的Python科学计算包。

2. 如何下载Anaconda图2-1 Anaconda的下载页面 https://www.anaconda.com/download

那么Anaconda这么好,我们怎么下载并安装呢?

首先访问Anaconda的官方下载页面 https://www.anaconda.com/download

就会出现图2-1的网页信息,因为我们以后主要是做生物信息学,因此我们以Linux版本的安装为例进行讲解;Mac与Linux版本的安装类似;Windows不是一个好的学习生信的平台,因此我们不做说明。

点击网页中的“Linux”按钮,就会出现下面的链接,其中包含了让你选择安装基于Python2.7版本的Anaconda还是基于Python3.6版本的Anaconda,如图2-2所示.

到底选择哪个版本的Anaconda其实并不重要,因为从功能上来说是等价的,基于Python2.7版本的Anaconda能做的事情,基于Python3.6版本的Anaconda也都能做;反之亦然。因此,就是看你平时用哪个版本写程序多一点,你就选择哪个版本好了。因为我平时的程序,脚本都是用Python2.7写,因此我们这里就以Python2.7版本为例。

同时,大家仔细看图2-2,其中包含了3个不同的下载链接,对应了不同的版本,最长用的或者说我们现在主流的服务器都应该选择第1个:64-Bit (x86) Installer (533 MB)

直接使用Linux里的wget就可以下载:

# 切换到用户的根目录cd ~# 使用wget下载anacondawget https://repo.continuum.io/archive/Anaconda2-5.1.0-Linux-x86_64.sh &

输入命令以后,就开始下载了,根据网速不同,可能会需要等待一定的时间,如图2-3所示。

图2-3 下载Anaconda

下载好以后,就可以看到目录中多了一个Anaconda2-5.1.0-Linux-x86_64.sh的文件,这个就是下载好的Anaconda安装包。

3. 怎么安装Anaconda?

安装其实很简单,就1行Linux命令即可:

# 安装Anacondabash ./Anaconda2-5.1.0-Linux-x86_64.sh

运行这条命令以后,就正式开始安装Anaconda,屏幕提示的内容主要是一些软件的发行说明与注意事项。一直按Enter键以后会让你输入是不是接受相关的协议,填写yes进行下一步,如图3-1所示。

图3-1 输入yes同意Anaconda的相关协议

随后就要根据提示选择安装的目录,默认的安装目录是/home/user name/anaconda2,当然我们可以自己设置安装目录。

我们这里设置的是/home/menghw/test_conda/anaconda2 (图3-2所示)

图 3-2 设置Anaconda的安装目录

随后就是一定时间的等待,就是滚屏幕,等待滚屏结束会出现提示,如图3-3所示,提示是否将你安装的Anaconda目录添加到$PATH环境变量中,默认是"no",但是我们这里需要输入"yes",因为只有将我们的Anaconda添加到$PATH环境变量中,以后在命令行中才能被调用。

图 3-3 将安装路径添加到$PATH环境变量中

如果万一在这里不小心选择了"no",没有添加到环境变量中,那就执行以下下面的命令,也可以实现相同的功能。

# 将我们安装的Anaconda添加到环境变量中echo "export PATH=/home/menghw/test_conda/anaconda2/bin:$PATH" >> .bashrc

在选择"yes"或者是执行了上面的命令之后,需要重新载入我们的配置文件,重新开启1个新的终端或者是运行下面的命令都可以重新载入Linux Bash的配置文件。

# 重新载入Linux Bash的配置文件source~/.bashrc# 在重新载入Linux Bash的配置文件以后,在命令行中输入conda

如果成功安装,会出现conda的help内容,如图3-4所示。

图3-4 conda命令的帮助内容

到这里,我们已经成功安装上了Anaconda,下面我们要开始好好用这个工具了!

4. 什么是Anaconda的源,怎么添加Anaconda源?

Anaconda只是1个包管理器,那么它是怎么知道自己从哪里去下载需要的包,以及相依赖的包呢?这个就是Anaconda源的概念。“源”可以认为是保存Anaconda包的一个站点,同时还保存了包的依赖关系。比如,我们需要安装A包,但是A又需要B包,B又需要C包;我们在conda中输入命令安装A包,conda就会根据配置的源地址去搜索A包的依赖关系,搜索成功以后,会解析依赖关系,最后conda会先安装C,然后安装B,最后安装A。

Anaconda默认的源都在国外,国内的小伙伴使用默认源安装软件或者包,经常会出现网络情况不稳定导致安装失败的情况。还好,清华大学镜像站维护了几个常用的conda源,我们只需把它们添加到我们的conda配置文件中,就可以从清华大学的源下载软件包,非常稳定而且迅速!添加的方式如下。

# 在能够运行conda的情况下添加源的方法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的配置信息,结果如图4-1所示conda info图4-1 conda配置信息的详细情况

图4-1是我个人的conda的配置情况,其中channel URLs后面的信息就是我们添加源的网址。

5. Bioconda的简单介绍

前面的4个部分,我们一起学习了Anaconda的安装与调试工作,但还没有涉及到生物信息学软件的安装。在这里我们将介绍一个非常好用的生物信息学相关软件的源——Bioconda

Bioconda是1个专门为生物信息学设计的Anaconda源,里面涵盖了生物信息学分析的所有常用软件,可以这么说,只要不太偏门都可以在这里找得到。一些非常难安装的软件都可以通过bioconda源一键安装。bioconda的官方主页如下图5-1所示(Bioconda-官方主页)

图5-1 bioconda源的官方主页 http://bioconda.github.io/

设置bioconda也很方便,因为清华镜像里面也有bioconda源的内容,因此我们直接设置清华bioconda源的链接。

# 添加清华源的bioconda链接conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/6. 使用conda来安装我们常用的生物信息学软件

在配置好bioconda的源以后,针对我们平时常用的生物信息学软件,我们都可以使用conda进行直接安装。常用的软件list如下:

# FASTQ测序结果质量控制: fastqc# trim序列:fastx toolkit# 去除adapter的软件:cutadapt# 比对软件:bwa bowtie bowtie2# RNA比对软件:tophat2 hisat2 star# SAM/BAM文件处理:samtools# BED文件处理:bedtools

以fastqc软件为例,安装只要1行命令:

conda install fastqc

然后就会出现需要安装的相关的依赖信息,选择"y"确认安装,如图6-1所示

图6-1 使用conda安装fastqc

fastqc还好,软件的名字比较简单,对于一些比较奇怪的名字的软件,比如fastx toolkit安装的时候到底应该输入什么名字呢?这个时候你需要到bioconda的官网上去查询!登陆bioconda的官网,并点击Available package就可以进入到图6-2的界面。

图6-2 bioconda的package索引页面

比如我们可以搜索fastx,然后结果如图6-3所示,得到bioconda里面确认的名称为:fastx_toolkit,而不是其他什么的名字。

那么我们安装的命令如下:

conda install fastx_toolkit

那么,到现在我们还有1个问题需要解决,比如我们需要安装某一个特定版本的samtools,我们先去bioconda的网站上去搜索结果有点意外,有非常多的samtools的版本,如图6-4所示

图 6-4 samtools在bioconda中有多个版本

那么当我们运行安装命令的时候,到底安装的是哪个版本呢?答案是——最新版!

如果我们想要指定特定的版本怎么办?只需要在安装命令后面写上你要安装软件的版本号即可!

# 安装0.1.19版本的samtools,只需要在软件名后面加“=”以及版本号即可conda install samtools=0.1.197. 学习创建conda子环境及相关操作

前面的6个部分,为大家比较详细地介绍conda的安装,调试,以及如何使用conda安装生物信息学常用的软件。那么在实际使用过程中,我们经常会遇到这样的问题:同时要做2个项目,项目A需要用python2.7,需要用samtools 0.1.19版本;项目B需要用python3.5,samtools的版本需要升级到1.14.0。

解决这样的问题,就需要用到conda里面非常强大的子环境(sub environment)功能!先给大概1个比较直观的印象,子环境功能就是在conda里面可以创造若干个互相不相关的环境,每个环境里面的软件版本可以完全不同,并且互不影响。

比如,我们之前安装的是python2.7版本的conda,但是我们现在有一些python3.X的程序需要调试,这个时候我们就可以创建1个环境,我们随便起个名叫 py3test好了。

7.1 创建环境

# 使用conda创建1个自环境并制定python版本为3.5conda create -n py3test python=3.5

之后就是提示需要安装的包等信息,如图7-1所示。

图7-1 创建环境需要下载的包信息

7.2 激活环境

在安装结束以后,怎么进入到我们的环境中呢?我们先来测试一下不进入py3test子环境之前python的位置以及版本,以及进入子环境以后python的位置及版本,在进入子环境以后,你会发现在你的终端最开头位置的括号内写着子环境的名字(图7-2所示)。

# 查看默认情况下的python位置which python# 查看python版本python -V# 激活进入py3test 子环境source activate py3test# 再次查看的python位置which python# 再次查看python版本python -V

在子环境里安装软件的方法,跟外部环境一样,没有任何区别,直接conda install就好!

同时,在子环境里安装的各种软件都不会影响外部环境,所以可以随便安~~ 随便搞~~

退出子环境,回到默认的环境的命令也很简单

# 退出子环境source deactivate图7-2 以Python为例测试conda子环境

所以,我们建议大家以后在做1个完整项目的时候,尽量保证1个项目跟着1个conda子环境,这样能够保证该项目在完成的时候,调用的所有包的版本号你都能够知晓,既可以方便自己排除版本带来的错误,又能够在别人接手你的项目或者是重复你的结果时保证reproducibility。

后记

希望大家都能够使用conda来管理自己的生物信息学软件库,快速地在服务器上搭建属于自己的生物信息学分析平台!

最后呢,还是希望大家多多支持我们的生物信息学知乎Live,每一期都很用心准备!购买其中任意1次生物信息学知乎Live都可以加入到我们的生物信息学交流群!

注意!加入生物信息学交流群的时候需要提交1个申请信息,申请信息的内容在知乎Live的最下面!

知乎 Live 链接-生物信息学-孟浩巍

免责声明:非本网注明原创的信息,皆为程序自动获取互联网,目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责;如此页面有侵犯到您的权益,请给站长发送邮件,并提供相关证明(版权证明、身份证正反面、侵权链接),站长将在收到邮件12小时内删除。