微信公众号:http://mp.weixin.qq.com/s/A4_j8ZbyprMr1TT_wgisQQ

Conda包管理系统

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

最初接触到Anaconda是用于Python包的安装。Anaconda囊括了100多个常用的Python包,一键式安装,解决Python包安装的痛苦。但后来发现,其还有更多的功能,尤其是其增加了bionconda (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/

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-forge
numpy_groupies               0.9.6                    py27_0  conda-forge     0.9.6                    py35_0  conda-forge     0.9.6                    py36_0  conda-forge
numpy_sugar                  1.0.6                    py27_0  conda-forge     1.0.6                    py34_0  conda-forge
numpydoc                     0.6.0                    py27_0  conda-forge     0.6.0                    py34_0  conda-forge
xnumpy                       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默认的源访问速度有些慢,可以增加国内的源;另外还可以增加几个源,以便于安装更多的软件,尤其是bioconda安装生信类工具。conda-forge通道是Conda社区维护的包含很多不在默认通道里面的通用型软件。r通道是向后兼容性通道,尤其是使用R3.3.1版本时会用到。后加的通道优先级更高,因此一般用下面列出的顺序添加。

conda config --add channels conda-forge # Lowest priority
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels r # Optional
conda config --add channels defaults
conda config --add channels bioconda
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ # Anocanda清华镜像
conda config --add channels https://nanomirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/ # 清华通道, 最高优先级
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://nanomirrors.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.7
conda 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
# Create a new conda environment called r,并且在里面安装anaconda
conda create -n r anaconda# Switch to r environment
source activate r# 在新环境里面安装R Installs R
conda install -c r r# Install R kernel for IPython notebook
conda install -c r r-irkernel# Install ggplot
conda 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 star
conda create -n aligners bwa bowtie hisat star# 如果还想继续安装
conda install -n aligners hisat2# 启动新环境
source activate aligners
star -hsource deactivate aligners
  • 移除环境

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

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:" OPTION
docase $OPTION inh)echo "Help mesage"usageexit 1;;c)command_cmd=$OPTARG;;e)environment=$OPTARG;;b)conda_path=$OPTARG;;?)usageecho "Unknown parameters"exit 1;;esac
doneif [ -z ${environment} ]; thenecho 1>&2 "Please give command and environment."usageexit 1
fiif ! [ -z ${conda_path} ]; thenexport PATH=${conda_path}:${PATH}
fisource activate ${environment}
${command_cmd}
source deactivate ${environment}

Reference

  • https://samrelton.wordpress.com/2015/07/02/rconda/
  • 七夕刚过,bioconda中国镜像来临
  • 什么,你嫌bioconda下载速度太慢?
  • https://www.anaconda.com/blog/developer-blog/anaconda-r-users-sparkr-and-rbokeh/
  • http://www.bioinfo-scrounger.com/archives/209
  • 清华大学开源镜像站

生信宝典,换个角度学生信

  • Linux学习 - 又双叒叕一个软件安装方法

又双叒叕一个软件安装方法相关推荐

  1. Linux软件安装方法小结

    Linux软件安装方法小结(附:rpm详解) 在使用Linux系统的过程中,软件包的安装是避免不了的,在Linux下,软件安装程序的种类很多,安装方法也各式各样,(舒适性自然比不上windows :- ...

  2. CentOS7下的软件安装方法及策略详解

    CentOS7下的软件安装方法及策略详解 互联网   01-24 15:15:09   作者:佚名   我要评论 今天小编为大家带来的是CentOS7下的软件安装方法及策略详解:希望对大家安装Cent ...

  3. ubuntu中软件安装方法

    ubuntu一些基本软件安装方法 首先说明一下 ubuntu 的软件安装大概有几种方式: 1. deb 包的安装方式 deb 是 debian 系 Linux 的包管理方式, ubuntu 是属于 d ...

  4. madagascar 软件安装方法

    [引用]madagascar 软件安装方法(ubuntu下) (2013-07-17 04:49:22) 转载▼ 标签: 教育 分类:madagascar 本文转载自永远的垦荒者<madagas ...

  5. [ubuntn]常用软件安装方法

    [ubuntu16.04]常用软件安装方法 双屏显示(所有的安装都要更新系统) 查看当前的屏幕信息 xrandr 显示所有的屏幕信息如图 - 根据输出信息修改下面的指令hdmi-1就是你要显示主屏幕名 ...

  6. android安装软件,安卓手机软件怎么安装 安卓手机软件安装方法【详解】

    ~ 很多安卓手机用户都会将一些喜欢的APK软件下载到电脑上,再安装到自己的手机上.那么,问题就来了,APK软件怎么安装到安卓手机上呢?今天小编就为大家介绍几种安卓手机软件安卓的方法,希望大家喜欢!同时 ...

  7. Linux下的软件安装方法介绍

    本文目录 一.Linux下的软件安装方式 二.在线安装 三.使用dpkg从本地磁盘安装deb软件包 本文目录 一.Linux下的软件安装方式 通常Linux上的软件安装主要有三种方式: 在线安装 从磁 ...

  8. Linux下软件安装方法汇总

    Linux系统中,软件通常以源代码或者预编译包的形式提供. 软件源代码需要您亲自编译为二进制的机器代码才能够使用,安装比较耗时,不过您可以自行调节编译选项,决定您需要的功能或组件,或者针对您的硬件平台 ...

  9. linux下各种软件安装方法详解

    linux 软件安装的七种方法 一.rpm包安装方式步骤: 1.找到相应的软件包,比如soft.version.rpm,下载到本机某个目录: 2.打开一个终端,su -成root用户: 3.cd so ...

最新文章

  1. ev3dev:设置自动登录wifi
  2. python学习--第三天 粗略介绍人脸识别
  3. 移动端点击事件延迟300毫秒
  4. 高并发之服务降级和服务熔断____服务降级、熔断、限流的区别
  5. 计算机编程ebcdic码,EBCDIC 与 ASCII 编码相互转换
  6. JavaScript进阶之路——认识和使用Promise,重构你的Js代码
  7. UVM中factory机制的使用
  8. 英特尔开源技术中心招收虚拟化工程师若干(北京/上海)
  9. 极化码信道极化-构造-编码-译码(不断更新)
  10. VS2003版本Jsoncpp的配置和使用
  11. .NET框架设计(1)
  12. 哪个软件可以测试服装的衣服,测试男生穿什么衣服的软件:男生脸型测试软件...
  13. 石油大 2019年我能变强组队训练赛第四场 J Cunning Friends(三人博弈)
  14. 7款非常棒的flash游戏菜单启动界面
  15. WebAssembly 初探
  16. 接口分析--详细解读微博接口获取
  17. 穷人思维和富人思维的根本区别在于底层系统不一样
  18. 微信推文转发服务器,微信文章如何转载?(看好这4个方法,可转发任何内容)...
  19. APP测试就是手机测试吗?
  20. 协同过滤系统的评价标准

热门文章

  1. “中国好创意” CCF全国青年大数据创新大赛启动仪式 暨大数据大师论坛议程...
  2. 【计算机组成原理】指令系统
  3. 【Python】Could not find a version that satisfies the requirement cv2 (from versions: ) 的解决方案
  4. 全排列问题(洛谷P1706题题解,Java语言描述)
  5. NUXT内存泄漏引发问题
  6. 几段表单处理的JQuery代码
  7. 软件的可扩展性与框架的可交互性
  8. 股票开盘的最大成交额-----一道不错的贪心算法题目
  9. Delphi clientdataset的详细介绍
  10. 内存经销商穷困潦倒 七元午饭都赊账