利用conda布署生物信息分析环境

很高兴再次见到生信技能树的粉丝们,我是技能树VIP小编青山屋主,目前在中国农科院工作,部分朋友可能在知乎上面看到过我,同时我也在我们的技能树公众号发布过几个教程:

我为什么要写博客-青山屋主

以及转录组系列~~~(顺便预告一下,明天有个转录组全流程实战分享哦)

下面我给大家分享部署生物信息学数据分析环境的一些心得。

问题

早在今年9月份,我就开始了系统的转录组分析操作,中间遇到硬件性能不足的问题,折腾了两个星期多没弄好,最后还是花钱升级了一次内存才解决。

从那件事上我吸取了个教训,能花钱解决的学习问题,最好毫不犹豫的花钱解决。

所以接着我就花钱配了一台高配的台式机,计划当做个人服务器用。但是随后又遇到了一个问题:各种生信分析软件的安装太费时间!配置常用的软件的时候,常常遇到各种各样奇怪的问题。有时是Linux系统问题,有时是软件版本问题,有时又是软件兼容问题。各种包,各种库,各种版本!更可恶的是R程序升级太快,各种R包的安装又常常出现各种问题。已经成功安装的R包,换一台电脑再安装就会跑出各种意想不到的问题。真是要命!

于是从10开始到现在我又开始研究如何又好又快的将一个成熟的生物信息分析环境建立起来,现在稍稍有点收获,整理在这里与大家一起分享。

首屈一指选docker

解决以上问题最好的方法,莫过于使用docker了。

Docker的一个鲜明的特点是提供一个即时可用的镜像(使用上类似于虚拟系统,但是实际上与虚拟机玩去不一样),开发者把生物信息的各种软件、R包等部署到镜像中, 使用者可以直接下载该镜像进行使用,省去了个人安装软件,配置环境的种种烦恼。

比如我感兴趣的是RNAseq分析,正好Nature Commnication 上发了一篇关于RNAseq数据分析中各种软件以及分析流程的测评文章,提出了RNAseq最佳分析流程"RNACocktail",且提供了docker image,利用这个image就能轻松建立RNAseq的分析环境。 下面介绍具体的建立方法:

  1. #系统ubuntu16.04 LTS

  2. #安装docker

  3. sudo apt-get install docker.io

  4. #查看是否安装成功

  5. sudo docker info

  6. #如果输入以上命令后能显示docker的信息说明安装成功

  7. #运行hello-word进行测试

  8. sudo docker run hello-world

  9. #该命令实际上是运行hello-world这个image,但是这时我们还没有这image,docker会自动检测,并下载hello-world这个测试image,并在容器中运行

  10. #下载RNAcocktail的镜像

  11. docker pull marghoob/rnacocktail

下载这个镜像需要较长时间,而且我下了三次全部没下载成功,所以后面的具体使用方法就没有啦········ (主要是因为国内的长城比较强大!)

其次可以用conda

docker虽好,但是安装和使用docker需要管理员的权限,所以使用服务器的小伙伴们就没办法用了。而且docker image也常常遇到pull不下来的情况。

那咋办呢?

有办法,用conda!

conda的基本使用可以参考我的知乎专栏学习·持续输出 中的介绍。我们这里重点介绍conda的高阶用法。

使用conda快速建立他人的环境

conda可以建立不同的环境,每种环境单独存在,互不干扰。同一系统下可以建立许多不同的环境,并且可以把该环境的配置导出为yml文件,其他人根据你的yml文件就可以快速构建一个同样的环境。

首先我们熟悉一下conda中环境的建立和删除

  1. #建立一个新环境

  2. conda create -n myenv     #参数-n代表设置环境名称,myenv是具体的环境名,可以替换成自己想要的名称

  3. #建立一个新环境,同时指定该坏境中python的版本

  4. conda create -n myenv python=2.7

  5. #还可以建立环境的同时安装软件

  6. conda create -n myenv

  7. conda create -n myenv Scipy=0.15.0

  8. #环境建立成功后,会提示环境的激活和关闭的方法

  9. source activate myenv

  10. source deactivate myenv

  11. #查看已有的环境

  12. conda info --envs

  13. #删除某个环境

  14. conda remove -n myenv --all

  15. # 或者更加粗暴

  16. rm -rf ~/miniconda3/envs/myenv/     #该路径是要删除的环境所在的路径

熟悉了conda 中环境的相关命令后,我们再看用yml文件快速配置conda环境

  1. #首先,导出一个已经建立好的环境的yml文件

  2. conda env export -n biostar -f biostar.yml  #该命令会在当前路径下生成一个yml文件。该文件包含conda环境的name,channels和dependencies三部分信息。

  3. #根据yml文件建立新环境

  4. conda env create -f myenv.yml

  5. #安装完成后,可以激活该环境,查看该环境中的软件

  6. source activate myenv

  7. conda list

除了通过本地yml文件快速建立环境外,还可以根据conda cloud上的yml文件直接在本地建立环境。不过这需要注册和登录anaconda账户,相关功能可通过conda env --help以及conda env create --help查看使用方法。

通过txt文件建立新环境

以上介绍的是通过yml文件快速建立conda环境。如果操作系统相同,且不关心channles信息,也可以通过conda导出一个包含软件链接的txt文件来复刻别人的分析环境。

注意:这种方法只能用在同一平台操作系统甚至同一版本的操作系统(比如32位和64位的)

  1. #在当前路径下输出当前环境的软件信息

  2. conda list --explicit > spec-file.txt

该文件的主要内容如下:

  1. # This file may be used to create an environment using:

  2. # $ conda create --name <env> --file <this file>

  3. # platform: osx-64

  4. @EXPLICIT

  5. https://repo.continuum.io/pkgs/free/osx-64/mkl-11.3.3-0.tar.bz2

  6. https://repo.continuum.io/pkgs/free/osx-64/numpy-1.11.1-py35_0.tar.bz2

  7. https://repo.continuum.io/pkgs/free/osx-64/openssl-1.0.2h-1.tar.bz2

  8. https://repo.continuum.io/pkgs/free/osx-64/pip-8.1.2-py35_0.tar.bz2

  9. https://repo.continuum.io/pkgs/free/osx-64/python-3.5.2-0.tar.bz2

  10. https://repo.continuum.io/pkgs/free/osx-64/readline-6.2-2.tar.bz2

  11. https://repo.continuum.io/pkgs/free/osx-64/setuptools-25.1.6-py35_0.tar.bz2

  12. https://repo.continuum.io/pkgs/free/osx-64/sqlite-3.13.0-0.tar.bz2

  13. https://repo.continuum.io/pkgs/free/osx-64/tk-8.5.18-0.tar.bz2

  14. https://repo.continuum.io/pkgs/free/osx-64/wheel-0.29.0-py35_0.tar.bz2

  15. https://repo.continuum.io/pkgs/free/osx-64/xz-5.2.2-0.tar.bz2

  16. https://repo.continuum.io/pkgs/free/osx-64/zlib-1.2.8-3.tar.bz2

  1. #在当前环境中安装txt文件中的软件

  2. conda install --name myenv --file spec-file.txt

注意:用这种方法时由于conda没有输出depencies信息,所以一定要保证所输出的软件信息是当前处于激活状态的环境中的,且必须用在同一平台,同一版本的系统上。

通过以上介绍可以发现,用conda快速建立环境不需管理员权限,删除和新建都很方便,但是前提是必须要有一个已经存在的yml或者txt文件。这些文件可以从anaconda cloud上去找,虽然会费点劲,但是不费点劲怎么提升你的技能呢?

用conda安装R包

以上介绍的都是用conda安装软件,而后期生物信息分析时,大量用到的是各种R包。R包的安装也是一个麻烦事,R本身更新较快,各种R包间的依赖关系又非常复杂。同一个R包在不同的操作系统上安装时也会遇到各种不同的问题。

conda不仅能统筹协调各种生物信息软件的安装,也可以协调各种R包的安装。

入门使用方式可以参考官方介绍Using R with conda 我这里重点介绍一下用conda安装bioconductor包。

比如通过啊conda安装DESeq2这个包

  1. conda search bioconductor-deseq2

返回结果会提供各个channles中的可用的这个包的各种版本号以及对应的R的版本号

  1. bioconductor-deseq2          

  2. 1.8.2                  r3.2.2_0  bioconda        

  3. 1.10.0                 r3.2.2_0  bioconda        

  4. 1.10.0                 r3.2.2_1  bioconda        

  5. 1.10.1                 r3.2.2_0  bioconda        

  6. 1.12.4                 r3.3.1_1  bioconda        

  7. 1.12.4                 r3.3.1_2  bioconda        

  8. 1.12.4                 r3.3.1_3  bioconda        

  9. 1.12.4                 r3.3.1_4  bioconda        

  10. 1.12.4                 r3.3.1_5  bioconda        

  11. 1.14.1                 r3.3.1_0  bioconda        

  12. 1.14.1                 r3.3.2_0  bioconda        

  13. *  1.16.1                 r3.3.2_0  bioconda        

  14. 1.16.1                 r3.4.1_0  bioconda        

  15. 1.16.1                 r3.4.1_2  bioconda        

  16. 1.16.1                 r3.4.1_3  bioconda        

  17. 1.18.0                 r3.4.1_0  bioconda        

  18. 1.18.1                 r3.4.1_0  bioconda        

你可以根据你的R的版本选择安装对应版本的DESeq2,或者直接输入

  1. conda install bioconductor-deseq2

conda会自动安装最新版本的deseq2以及对应版本的R,以及各种依赖的其他R包。

参考资料与感谢

  1. conda user guide

  2. hoptop大神的RNACocktail安装笔记

  3. hoptop大神的生信软件安装神器

(0)

相关推荐

  • conda与bioconda解决生信软件安装困扰

    简介 conda原本是为了解决Python模块安装的依赖问题,然而可能是无心栽柳柳成荫,conda目前已经超越了其最初目的而存在,可以解决大多数软件的安装和配置,包括各种本身与python毫无关系的包 ...

  • conda国内源

    清华源.中科大源大部分时间能用,但没事也会被封.最近发现的北外源挺好用.推荐使用: 北外镜像(推荐): conda config --add channels https://mirrors.bfsu ...

  • NGS数据分析实践:01. Conda环境配置及软件安装

    NGS数据分析实践:01. Conda环境配置及软件安装

  • 终极奥义! 生信软件安装神器~ conda 从入门到精通

    前言 生物信息学分析常常需要用到许多不同的软件,常见安装方式有三种: 源码安装,要求安装者对包有较充分的认识,适用于开发者或深入学习和挑战者: 预编译版本安装,一般安装者将其拷贝到目录下即可运行: 第 ...

  • 有安装R包的终极方法吗?

    说到R包的安装简直是个噩梦,为什么R包这么难装呢?我大胆分析一下,欢迎批评指正 生态混乱 R在统计圈的盛行决定了R包的开发人员基本上做统计的,这些开发者开发的包水平层次不齐.有时候一个简单的功能却要依 ...

  • 仅需一招,轻松搞定R包

    最近很多人问我的问题都是R包安装的问题.在之前R包只要更新到最新版本,且能够联网,就可以轻松安装.,但现在随着R的功能越来越多,越来越强大.R包也越来越难安装了.并且什么人都可以开发发布R包,很多垃圾 ...

  • 管理conda environments

    environments作为conda的核心组件,用于封装相互独立的软件环境.通过在不同的environment中安装packages,来实现不同软件的相互独立,通过在不同的environments之 ...

  • conda之packages管理

    conda的核心功能包括environments和packages的管理,在之前的文章中介绍了environments的管理技巧,本文来看下packages的管理方式. 根据常用的操作,可以分为以下5 ...

  • 关于Python虚拟环境搭建的解读

    大多数小伙伴在第一次接触Python的时候都会被它强大的包所吸引,想要写一个网站可以使用Django,想要做数学运算就想到了Numpy,想做数据分析可以用Pandas等等. 但是安装的包越多,Pyth ...

  • MPB:清华杨云锋组-利用GeoChip分析环境微生物功能基因群落结构

    为进一步提高<微生物组实验手册>稿件质量,本项目新增大众评审环节.文章在通过同行评审后,采用公众号推送方式分享全文,任何人均可在线提交修改意见.公众号格式显示略有问题,建议电脑端点击文末阅 ...

  • 分析生辰八字的方法和布署,通俗易懂

    一.八字分析 八字分析的关键看月通气不通气,岁君是决定命运贵贱的关键,岁君是君主,其他各位是万民.如月通不通气,皇帝有多大的恩惠,万民只能隔江相望,得不到帝王的好处.八字也一样,如果月不通气,年柱有官 ...

  • 利用Python实现财务分析/经营分析自动化

    之前写公司研究报告时,所有的数据都是通过翻看招股说明书/年报的PDF获取的,把数字从PDF里复制粘贴到EXCEL里再生成图表的过程非常繁琐,而且容易因为看错行/列摘错数据.使用Python可以实现提取 ...

  • 仪征市召开化肥减量增效技术培训暨工作布署会

    为实现化肥使用量零增长目标,促进现代绿色农业高质量发展.4月23日,仪征市农业农村局召开了以推广水稻"侧深施肥+氮肥控释"技术为主的化肥减量增效技术培训暨工作布署会,扬州市耕保站站 ...

  • 塘厦镇利用“管道机器人” 精准查处一家环境违法企业

    4月22日,塘厦镇生态环境专管员发现科苑城附近某入河口处水流呈乳白色,怀疑有企业偷排工业废水.塘厦生态环境分局接报后,立即派出执法人员联合专管员以及科苑城管厂干部进行排查,在溯源到科苑城工业园区后线索 ...

  • 八年级数2020学北师大版利用基本作图作三角形分析

    八年级数学北师大版利用基本作图作三角形分析   1.若,则下列结论不正确的是()A.    答案B    解析   2.等于(;)A    答案C    解析   3.一个数的平方等于它本身,这个数是 ...

  • 让Jenkins帮你自动布署Vue项目

    今天 作者: zhou_web https://segmentfault.com/a/1190000019212628  实现目标 本地push代码到GitHub,Webhook自动触发jenkins ...

  • 综述 | Curr. Opin. Cell Biol. :利用基于质谱的蛋白质组学分析细胞间信号转导

    编译:彭翰林,编辑:Tracy.江舜尧. 原创微文,欢迎转发转载. 导读 生理功能依赖于许多不同类型细胞的相互协调.蛋白质是细胞间的主要信号分子,然而它们在生理相关背景下的全面研究仍然具有一定挑战性. ...

  • 如何应用MECE原则?利用MECE来分类让分析更全面,思考更严谨

    如何应用MECE原则?利用MECE来分类让分析更全面,思考更严谨