专栏名称: 生信媛
生信媛,从1人分享,到8人同行。坚持分享生信入门方法与课程,持续记录生信相关的分析pipeline, python和R在生物信息学中的利用。内容涵盖服务器使用、基因组转录组分析以及群体遗传。
目录
相关文章推荐
BioArt  ·  Nat ... ·  昨天  
生信宝典  ·  DNA语言模型,100张卡能做,1张卡也能做? ·  昨天  
华大集团BGI  ·  邀请函 | ... ·  昨天  
51好读  ›  专栏  ›  生信媛

生信软件安装神器

生信媛  · 公众号  · 生物  · 2017-10-06 21:14

正文

生信草堂

将会与更多的优秀微信公众号合作,把最优秀的微信推文呈现给大家,希望可以帮助读者更多的了解生信技术,培养和提高读者的生信分析能力!

号外,号外,号外

你想和生信分析大神做好朋友么?

你想认识更多爱好生信分析的小伙伴么?

你想让自己的生信分析走上快车道么?

那就赶快加入我们的生信交流微信群吧!

正确加入我们的模式是:

添加我们的微信bioinformatics88为好友

标注“加入生信草堂交流群

在群里请大家注明自己本名,单位,研究领域

便于小编管理



对于生信初学者而言,最困难的事情某过于安装各种生信软件,如果一切所有软件都能像`sudo apt-get intall` 或者是`sudo yum install`那样多好。本文就介绍了我目前认为最强的非root软件管理器-**conda**.
## 什么是conda


想要了解什么是conda,需要先要了解什么是[Anaconda](https://anaconda.org/)。


Anaconda是Python的科学发行版,它将各种科学计算工具整合到一个安装包之中,从而使得Python变得无比的强大,就像Linux本身也只是内核,通过整合不同的软件之后才会变得如何的实用。


![](http://oex750gzt.bkt.clouddn.com/17-9-30/10543168.jpg)


Anaconda为了避免Python原生`pip`安装软件会出现的问题,比如说Windows下安装科学计算必备的`numpy`和`pandas`时就非常的麻烦,于是它就自己编译了好一些安装包,仅仅使用`conda install`就能下载编译好的二进制包。


因此,conda最开始是Anaconda提供的Python包安装管理工具哦。

## 为什么用conda


**conda**最开始只是Anaconda用于管理Python包的工具,但由于它为了避免Python包安装时出现的依赖库不全的问题,相当于又安装了一个虚拟系统,于是乎它能够管理的软件越来越多,以清华源为例

- 官方频道:https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

- conda软件管理依赖环境解决频道:https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ 

- Windows专属频道: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/

- 生物信息软件频道: https://nanomirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/


基本上,大部分你能想到的软件都能用`conda`安装,如果这些软件还不能的话,还可以基础conda环境进行编译。当然,像docker,mysql这类系统级软件,无法使用conda管理。


因此,使用conda的第一个好处就是**安装方便**。


第二个优点叫做,**环境容易管理**。 当你担心Python2会和Python3冲突的时候,使用conda专门建立一个虚拟环境(下面教程会说),相当于重新开了一台电脑工作。再也不担心Python版本冲突了。而且当你想试用最新版本的工具的时候,完全可以新建一个环境,这样子就不用担心软件不好用无法返回原先版本了。


还有一个优点就是不需要root权限,当管理员没空搭理你,或者处于系统安全考虑不能安装某一个软件的时候,**conda**这类不需要root权限的软件包管理器就是你最好的选择。

PS: 你当然可以选择自己编译,然后解决不断出现的依赖包缺失问题。

## 如何安装conda


由于生信分析基本都在Linux系统下完成,所以下面仅以Linux为例(不区分Ubuntu和CentOS,仅区分32为和64位)。

第一步:下载miniconda3

```

wget https://nanomirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-$(uname -m).sh

```

**注**1:miniconda是anaconda的简化版,包括最核心的一些功能,如conda

**注**2:选择Miniconda2和Miniconda3任一都可,因为可以通过虚拟环境创建另一个版本Python环境。

第二步:安装miniconda3

```

bash Miniconda3-latest-Linux-x86_64.sh -b -p $HOME/miniconda3

-b: 自动安装模式

-p: 软件安装到何处

```

第三步:将miniconda3保存到环境路径并启用

```

echo "export PATH=PATH' >> ~/.bashrc

source ~/.bashrc

```


恭喜你,完成了conda安装。

## conda的基本操作


安装conda之后,我们需要学习一点最基本的conda使用方法,当然哪里不懂可以到[https://docs.anaconda.com/docs_oss/conda/get-started](https://docs.anaconda.com/docs_oss/conda/get-started) 找到解决方法。不过我相信,下面的已经够用了。


**基本配置**: 当安装完conda之后,最重要的一步就是添加清华源的镜像,提高下载速度. 配置环境需要用到`conda config`

```

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge

conda config --add channels https://nanomirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda

conda config --set show_channel_urls yes

```

还可以用`conda config --show`查看已有的配置哦


虚拟**环境管理**: 个人认为conda比较好用的就是它能够建立多个互不干扰的分析环境。

```

# 查看已有环境


conda info --envs

```

目前,我就只有一个默认环境,也就是root。

![](http://oex750gzt.bkt.clouddn.com/17-9-30/23914991.jpg)


我们之前安装的时候是Python3,这次我们建立一个Python2环境,并且安装比对软件bwa

```

conda create -n biostar python=2 bwa

```

![](http://oex750gzt.bkt.clouddn.com/17-9-30/26856937.jpg)

晚上用清华镜像,速度超级快

![](http://oex750gzt.bkt.clouddn.com/17-9-30/58822946.jpg)


安装完成之后,还告诉了我们如何**启动环境**

```

source activate biostar

# 列出当前的已经安装软件


conda list

```


**删除环境**: 如果一个环境你不想要了怎么办?有两种方法可以删除

```

conda remove -n biostar -all

# 或者更加粗暴


rm -rf ~/miniconda3/envs/biostar/

```


**安装或卸载**生信软件(先在https://bioconda.github.io/recipes.html#recipes 检索对应软件名)或可以用`conda search`检索生信工具或Python包

```

# 可以用search先进行检索


conda search sratools

```

![](http://oex750gzt.bkt.clouddn.com/17-9-30/41864682.jpg)

下一步,使用`conda install`安装。

```

# SRA处理工具叫做sra-tools


conda install sra-tools=2.8.0 -y

# numpy


conda install numpy -y

# 卸载


conda remove sra-tools -y

```

其中`-y`表示确认,而`sra-tools=版本号`则是下载对应的版本工具。有些时候为了重复别人的结果,我们需要安装对方所用的软件版本。

## conda进阶


综上,就是一般conda教程都会介绍的内容,下面则是一些稍微比较高级,但是比较高效率的技巧。

conda是一个非常好的软件环境管理工具,我们可以把当前数据分析的环境进行保存,如果别人说无法重复你的结果,你就把这个配置文件发过去,这样子就能保证**分析环境一致**。另外,你还可以将分析**环境打包**,实现每一次快速部署。

第一步:导出当前环境**conda env export**

```

conda env export -n biostar -f biostar.yml

```

这一步会在你当前的路径下生成一个YML文件,存放当前环境的所有情况,你可以用`cat biostar.yml`进行查看

![](http://oex750gzt.bkt.clouddn.com/17-9-30/1977942.jpg)


第二步: 导入环境**conda env create**

注:先让我们把`biostar`这个环境删掉`conda remove -n biostar --all`

```

conda env create -f=biostar.yml 

# -f: 环境配置

```

第三步:启动并检查

```

source activate biostar

conda list

```


最后附赠一个,我常用的生信软件合集,按照如下方法下载:

```

wget --no-check-certificate  https://raw.github.com/xuzhougeng/zgtoolkits/master/biosetup.yml

```

最后说几句:

 我个人认为安装Linux软件有如下三个境界,

- 会用sudo apt-get或conda安装软件

- 学会自己编译安装软件

- 学会什么时候自己编译,什么时候用软件管理器软件软件。

因此,Linux下软件安装还是非常学问呢。