Bioconda软件安装神器:多版本并存、环境复制、环境导出

Bioconda软件安装神器:多版本并存、环境复制、环境导出

2017年生信宝典发布了Linux学习 – 又双叒叕一个软件安装方法,现在根据使用经验做一些更新,主要是增加了Conda环境的复制、导入和导出功能。最开始是为了培训时,学员更方便搭建流程引入的,现在分享出来,方便更多人使用。

Conda包管理系统

Conda是一种通用包管理系统,旨在构建和管理任何语言的任何类型的软件。通常与Anaconda (集成了更多软件包,https://www.anaconda.com/download/#download)和Miniconda(只包含基本功能软件包, https://conda.io/miniconda.html)一起分发。

最初接触到Anaconda是用于python包的安装。Anaconda囊括了100多个常用的Python包,一键式安装,解决Python包安装的痛苦。但后来发现,其还有更多的功能,尤其是其增加了bioconda (https://bioconda.github.io/index.html)频道后,生物信息分析的1500多个软件都可以一键安装了,免去了编译时间浪费和解决库文件安装的问题。对于经常编译软件的人,这一点还不够有吸引力。最吸引我的是它的工作环境概念,可以简单的配置不同Python版本的环境、不同Python包的环境、不同R环境和R包的环境,对于生物信息软件繁杂的应用和频繁的更新提供了很大的便利。

Conda安装和配置

在上面给出的链接下载Anaconda或Conda对应版本的分发包之后,安装就是运行下面的命令,根据提示一步步操作,主要是修改安装路径 (如果是根用户,可以安装到/anaconda下,其它任意目录都可以,但路径短还是有好处的;普通用户安装到自己有权限的目录下)

Bash Miniconda2-latest-Linux-x86_64.sh

安装完成之后,记得把安装路径下的bin文件夹加入到环境变量中。环境变量的解释和使用见 http://blog.genesino.com/2017/06/bash1/和文章“PATH和path,傻傻分不清”

Conda基本使用

在Conda安装配置好之后,就可以使用了。

conda list # 列出安装的软件包conda search <package ambigious name> # 搜索需要安装的软件包,获取其完成名字

以搜索numpy为例:

conda search numpy # * 表示对于版本的包已安装

Fetching package metadata ...............numpy 1.7.2 py27_blas_openblas_201 conda-forge [blas_openblas] 1.7.2 py27_blas_openblas_202 conda-forge [blas_openblas] 1.12.0 py36_0 defaults 1.12.0 py36_nomkl_0 defaults [nomkl] * 1.12.1 py27_0 defaults 1.12.1 py27_nomkl_0 defaults [nomkl] 1.13.1 py36_0 defaults 1.13.1 py36_nomkl_0 defaults [nomkl]numpy-indexed 0.3.2 py27_0 conda-forge 1.0.47 py35_0 conda-forge 1.0.47 py36_0 conda-forgenumpy_groupies 0.9.6 py27_0 conda-forge 0.9.6 py35_0 conda-forge 0.9.6 py36_0 conda-forgenumpy_sugar 1.0.6 py27_0 conda-forge 1.0.6 py34_0 conda-forgenumpydoc 0.6.0 py27_0 conda-forge 0.6.0 py34_0 conda-forgexnumpy 0.0.1 py27_0 conda-forge

安装包

conda install <package name> # 安装软件包conda install numpy=1.7.2 # 安装特定版本的软件包conda remove <package name> # 移除软件包

安装R

# 具体见下面conda install -c r r-essentials # 安装R,及80多个常用的数据分析包, 包括idplyr, shiny, ggplot2, tidyr, caret 和 nnet# 安装单个包# conda install -c https://conda.binstar.org/bokeh ggplot

获取帮助信息

conda -h # 查看conda可用的命令conda install -h #查看install子命令的帮助

只是这些命令就可以省去不少安装的麻烦了,但是如果软件没搜索到呢?

Conda的channel

Conda默认的源访问速度有些慢,可以增加国内的源 (https://mirror.tuna.tsinghua.edu.cn/help/anaconda/);另外还可以增加几个源,以便于安装更多的软件,尤其是bioconda安装生信类工具。conda-forge通道是Conda社区维护的包含很多不在默认通道里面的通用型软件。r通道是向后兼容性通道,尤其是使用R3.3.1版本时会用到。后加的通道优先级更高,因此一般用下面列出的顺序添加。

conda config --add channels conda-forge # Lowest priorityconda config --add channels defaultsconda config --add channels biocondaconda 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/conda-forge/conda config --set show_channel_urls yes

# 显示已有的通道conda config --get channels

conda通道的配置文件一般在~/.condarc里面,内容如下。全局控制conda的安装在conda_path/.condarc,具体操作见https://conda.io/docs/user-guide/configuration/admin-multi-user-install.html。

channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/conda - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ # Anocanda清华镜像 - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/ - bioconda - defaults - r - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ - conda-forge

创建不同的软件运行环境

这是Conda最有特色的地方,可以通过创建不同的环境,同时运行不同软件的多个版本。

新创建的软件环境的目录为anaconda_path/envs/enrironment_name,具体见下面的3个例子。

  • 安装ete3

使用官方的推荐命令安装时出了问题,py3.5的包装到了py2.7环境下。解决办法,新建一个py2.7的环境,然后安装。

# 新建一个环境,命名为phylo,指定其内安装的python版本为2.7conda create -n phylo python=2.7# 在phylo环境中安装 ete3# ete3存在于2个通道中,官方推荐使用自己的通道,但没有成功# -n 指定安装环境 -c 指定下载通道# conda install -n phylo -c etetoolkit ete3 ete3_external_apps# bioconda通道里面也有ete3, 下面的安装未指定具体通道,将在前面设定的几个通道里面按先后顺序查找安装conda install -n phylo ete3 ete3_external_apps# 默认安装到了anaconda_path下面的envs/phylo目录下(在屏幕输出也会有显示)# 这个目录下存在bin文件夹,一般使用全路径就可以调用,如下# anaconda_path/envs/phylo/bin/ete3 -h # 但有时会因为依赖关系而失败# 所以激活本次安装环境是比较不容易出问题的使用方式source activate phylo# 在新环境里面执行命令操作ete3 -h# 其它操作# 退出新环境source deactivate phylo

  • 创建R环境 Reference1
  • (https://samrelton.wordpress.com/2015/07/02/rconda/)

# Create a new conda environment called r,并且在里面安装anacondaconda create -n r anaconda# Switch to r environmentsource activate r# 在新环境里面安装R Installs Rconda install -c r r# Install R kernel for IPython notebookconda install -c r r-irkernel# Install ggplotconda install -c https://conda.binstar.org/bokeh ggplot# 最后退出新环境source deactivate r

  • 创建比对工具环境 (bioconda中的例子,https://bioconda.github.io/index.html#set-up-channels)

# 环境名字为 aligners# 环境中安装 bwa bowtie hisat starconda create -n aligners bwa bowtie hisat star# 如果还想继续安装conda install -n aligners hisat2# 启动新环境source activate alignersstar -hsource deactivate aligners

  • 移除环境

如果环境不需要了,或出了错,则可以移除。比如需要移除phylo环境,执行conda remove -n phylo –all

  • 备份环境

有的时候会出现装一个新包,装着装着就把当前环境搞装崩了的情况,所以备份一个环境还是必要的,conda create -n python35copy –clone python35

  • 环境导出和导入

做培训时需要给参加培训的老师提供配置环境的脚本,之前都是提供一个Bash文件,更简单的方式是可以导出环境,自己配置时再导入就好了。

# 假设我们有一个环境叫 ehbio,可以导出为一个yml文件conda env export --file ehbio_env.yml --name ehbio# 然后换一台电脑,就可以完全重现这个环境了conda env create -f ehbio_env.yml

Conda配置R

在添加了不同的源之后,有些源更新快,有些更新慢,经常会碰到版本不一的问题。而且软件版本的优先级,低于源的优先级。保险期间,先做下搜索,获得合适的版本号,然后再选择安装。

conda search r-essentialsr-essentials 1.0 r3.2.1_0 r 1.0 r3.2.1_0a r 1.1 r3.2.1_0 r 1.1 r3.2.2_0 r 1.1 r3.2.1_0a r 1.1 r3.2.2_0a r 1.1 r3.2.2_1 r 1.1 r3.2.2_1a r 1.4 0 r 1.4.1 r3.3.1_0 r 1.4.2 0 r 1.4.2 r3.3.1_0 r 1.4.3 r3.3.1_0 r 1.5.0 0 r 1.5.1 0 r 1.5.2 r3.3.2_0 r 1.5.2 r3.4.1_0 r 1.6.0 r3.4.1_0 r 1.0 r3.2.1_0 defaults 1.0 r3.2.1_0a defaults 1.1 r3.2.1_0 defaults 1.1 r3.2.2_0 defaults 1.1 r3.2.1_0a defaults 1.1 r3.2.2_0a defaults 1.1 r3.2.2_1 defaults 1.1 r3.2.2_1a defaults 1.4 0 defaults 1.4.1 r3.3.1_0 defaults 1.4.2 0 defaults 1.4.2 r3.3.1_0 defaults 1.4.3 r3.3.1_0 defaults 1.5.0 0 defaults 1.5.1 0 defaults 1.5.2 r3.3.2_0 defaults 1.5.2 r3.4.1_0 defaults 1.6.0 r3.4.1_0 defaults 1.5.2 r3.3.2_0 conda-forge 1.5.2 r3.3.2_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge

从上面可以看到清华的源版本同步于conda-forge, 都比较老,还是指定r通道安装。

conda install -c r -n r r-essentials=1.6.0

R会安装于conda_path/envs/r/bin中,软链到位于环境变量的目录中即可正常使用。

Conda环境简化运行

为了方便不同环境里面程序的运行,我写了一个shell脚本 (conda_env_run.sh),具体运行如下:

# -c: 表示实际需要运行的命令# -e: 表示需要启动的软件环境,也就是上面conda create建立的环境# -b:一般不需要指定,如果conda没在环境变量中需要给出conda的安装路径conda_env_run.sh -c 'ete3 -h mod' -e phyloconda_env_run.sh -c 'bwa mem -h' -e aligner -b "/usr/local/anaconda2/bin"

conda_env_run.sh内容如下

#!/bin/bash#set -xusage(){cat <<EOF${txtcyn}***CREATED BY Chen Tong (chentong_biology@163.com)***Usage:$0 options${txtrst}${bldblu}Function${txtrst}:This is designed to run conda program in given environment. It will automatically activate the environment, run the program and deactivate the environment.Thress commands from conda, 'activate', 'conda', 'deactivate' must be in PATH or you should spcify <-b> parameter.${txtbld}OPTIONS${txtrst}: -c Full command to be run ${bldred}[NECESSARY]${txtrst} -e Environment name${bldred}[NECESSARY]${txtrst} -b Conda path${bldred}[NECESSARY]${txtrst}EOF}command_cmd=''environment=''conda_path=''while getopts "hc:e:b:" OPTIONdo case $OPTION in h) echo "Help mesage" usage exit 1 ;; c) command_cmd=$OPTARG ;; e) environment=$OPTARG ;; b) conda_path=$OPTARG ;; ?) usage echo "Unknown parameters" exit 1 ;; esacdoneif [ -z ${environment} ]; then echo 1>&2 "Please give command and environment." usage exit 1fiif ! [ -z ${conda_path} ]; then export PATH=${conda_path}:${PATH}fisource activate ${environment}${command_cmd}source deactivate ${environment}

Reference

  • https://samrelton.wordpress.com/2015/07/02/rconda/
  • https://www.anaconda.com/blog/developer-blog/anaconda-r-users-sparkr-and-rbokeh/
  • http://www.bioinfo-scrounger.com/archives/209
  • 清华大学开源镜像站

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年6月26日 上午10:04
下一篇 2022年6月26日 上午10:06

相关推荐

  • 国家科研项目有什么用

    国家科研项目有什么用 国家科研项目是国家为了发展科学技术而投入大量资金和人力资源的项目,其目的是推动科学技术的进步,促进经济发展和社会进步。那么,国家科研项目有什么用呢? 国家科研…

    科研百科 2025年4月26日
    1
  • 线路图来了!这些铁路新线经过你家乡(铁路沿线图)

    来源:中国铁路 铁路修到家门口 早日走上致富路 2021年一大批铁路建设项目 相继投入运营 许多老少边及原国家级贫困县 结束了不通火车的历史 ↓↓看看这些铁路新线修到哪里↓↓ 近年…

    2022年6月12日
    264
  • 大学科研项目申请周期

    大学科研项目申请周期 随着科技的不断进步,大学科研项目申请周期也在不断缩短。在过去,大学科研项目申请周期通常需要几个月甚至更长时间,但是现在已经有不少大学开始缩短申请周期,以便更好…

    科研百科 2025年4月5日
    1
  • 科研项目名称命名(科研项目名称怎么写)

    科技创新是企业发展的基石,中国黄金集团有限公司新一届领导班子成立以来,高度重视青年科技人才的培养,“揭榜挂帅”作为科技项目改革的创新举措,也成为莱州汇金矿业投资有限公司强化战略科技…

    科研百科 2022年5月9日
    804
  • 科研项目中软件费有哪些

    科研项目中软件费是指用于购买和维护科研项目中所使用的软件的费用。这些软件可以是计算机程序, 数据库, 网络设备等。软件费通常由项目团队或实验室管理,并按照一定的程序进行支付。 软件…

    科研百科 2025年5月5日
    1
  • 教育局科研项目管理办法

    教育局科研项目管理办法 为加强教育局科研项目的管理,提高科研项目的质量,根据《中华人民共和国教育法》、《科研项目管理规范》等相关法律法规,制定本项目管理办法。 第一条 目的 本项目…

    科研百科 2025年4月30日
    1
  • 有什么好的管理软件免费(有什么好的管理软件)

    有什么好的管理软件 随着企业规模的不断扩大,管理软件的重要性也越来越凸显。一个好的管理软件可以帮助企业更好地管理业务流程,提高工作效率,减少错误率。本文将介绍一些目前市面上比较流行…

    科研百科 2024年6月7日
    86
  • 一个完整的项目管理流程包括什么?(一个完整的项目管理流程包括什么)

    项目管理流程一般包括为五个部分: 项目的启动、项目的计划、项目的实施、项目检测与控制过程、项目的收尾。每个阶段都有一组不同的任务、目标和特定的截止日期。 ​一个项目遵循这样的流程实…

    2022年6月3日
    258
  • 风险管理的基本流程有哪些?(风险管理的基本流程有哪些)

    风险管理,是企业经营中至关重要的一项管理活动,是使用最小的成本来保证最大的安全的管理方法。下面,我们就来了解下,风险管理的基本流程有哪些? 识别风险 对企业面临的潜在风险进行合理判…

    科研百科 2022年5月22日
    298
  • 设变件需要OTS文件吗

    标题: 是否使用OTS文件取决于您的特定需求 正文: 在软件开发和工程中,OTS(Object-Oriented System)文件是一种常见的资源,可用于共享和分发可重用的代码和…

    科研百科 2024年10月19日
    0