分享

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

 生物_医药_科研 2018-12-07

Conda包管理系统

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

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

Conda安装和配置

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

bash Miniconda2-latest-Linux-x86_64.sh

安装完成之后,记得把安装路径下的bin文件夹加入到环境变量中。环境变量的解释和使用见 http://blog./2017/06/bash1/

Conda基本使用

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

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

以搜索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 # 安装软件包conda install numpy=1.7.2 # 安装特定版本的软件包conda remove # 移除软件包

安装R

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

获取帮助信息

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

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

Conda的channel

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

conda config --add channels r # Optional, lowest priorityconda config --add channels defaultsconda config --add channels conda-forgeconda config --add channels bioconda conda config --add channels https://nanomirrors.tuna./anaconda/cloud/bioconda/conda # 清华通道, 最高优先级conda config --set show_channel_urls yes
# 显示已有的通道conda config --get channels

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

channels:  - https://nanomirrors.tuna./anaconda/cloud/bioconda/conda  - bioconda  - r  - defaults  - conda-forge

创建不同的软件运行环境

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

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


  • 安装ete3

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

# 新建一个环境,命名为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

# 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./bokeh ggplot# 最后退出新环境source deactivate r
  • 创建比对工具环境 (bioconda中的例子,https://bioconda./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环境简化运行

为了方便不同环境里面程序的运行,我写了一个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 <-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


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

关注宏基因组,再专业一点


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多