Conda是一種通用包管理系統(tǒng),旨在構(gòu)建和管理任何語言的任何類型的軟件。通常與Anaconda (集成了更多軟件包,https://www.anaconda.com/download/#download)和Miniconda(只包含基本功能軟件包, https://conda.io/miniconda.html)一起分發(fā)。
最初接觸到Anaconda是用于Python包的安裝。Anaconda囊括了100多個(gè)常用的Python包,一鍵式安裝,解決Python包安裝的痛苦。但后來發(fā)現(xiàn),其還有更多的功能,尤其是其增加了bionconda (https://bioconda.github.io/index.html)頻道后,生物信息分析的1500多個(gè)軟件都可以一鍵安裝了,免去了編譯時(shí)間浪費(fèi)和解決庫文件安裝的問題。對于經(jīng)常編譯軟件的人,這一點(diǎn)還不夠有吸引力。最吸引我的是它的工作環(huán)境
概念,可以簡單的配置不同Python版本的環(huán)境、不同Python包的環(huán)境、不同R環(huán)境和R包的環(huán)境,對于生物信息軟件繁雜的應(yīng)用和頻繁的更新提供了很大的便利。
在上面給出的鏈接下載Anaconda或Conda對應(yīng)版本的分發(fā)包之后,安裝就是運(yùn)行下面的命令,根據(jù)提示一步步操作,主要是修改安裝路徑 (如果是根用戶,可以安裝到/anaconda下,其它任意目錄都可以,但路徑短還是有好處的;普通用戶安裝到自己有權(quán)限的目錄下)
bash Miniconda2-latest-Linux-x86_64.sh
安裝完成之后,記得把安裝路徑下的bin
文件夾加入到環(huán)境變量中。環(huán)境變量的解釋和使用見 http://blog.genesino.com/2017/06/bash1/
在Conda安裝配置好之后,就可以使用了。
conda list # 列出安裝的軟件包c(diǎn)onda 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 # 安裝軟件包c(diǎn)onda install numpy=1.7.2 # 安裝特定版本的軟件包c(diǎn)onda remove # 移除軟件包
安裝R
conda install -c r r-essentials # 安裝R,及80多個(gè)常用的數(shù)據(jù)分析包, 包括idplyr, shiny, ggplot2, tidyr, caret 和 nnet# 安裝單個(gè)包# conda install -c https://conda.binstar.org/bokeh ggplot
獲取幫助信息
conda -h # 查看conda可用的命令conda install -h #查看install子命令的幫助
只是這些命令就可以省去不少安裝的麻煩了,但是如果軟件沒搜索到呢?
Conda默認(rèn)的源訪問速度有些慢,可以增加國內(nèi)的源;另外還可以增加幾個(gè)源,以便于安裝更多的軟件,尤其是bioconda
安裝生信類工具。conda-forge
通道是Conda社區(qū)維護(hù)的包含很多不在默認(rèn)通道里面的通用型軟件。r
通道是向后兼容性通道,尤其是使用R3.3.1版本時(shí)會(huì)用到。后添加的通道優(yōu)先級更高,因此一般用下面列出的順序添加。
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.tsinghua.edu.cn/anaconda/cloud/bioconda/conda # 清華通道, 最高優(yōu)先級conda config --set show_channel_urls yes
# 顯示已有的通道conda config --get channels
conda通道的配置文件一般在~/.condarc
里面,內(nèi)容如下。全局控制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 - bioconda - r - defaults - conda-forge
這是Conda
最有特色的地方,可以通過創(chuàng)建不同的環(huán)境,同時(shí)運(yùn)行不同軟件的多個(gè)版本。
新創(chuàng)建的軟件環(huán)境的目錄為anaconda_path/envs/enrironment_name
,具體見下面的3個(gè)例子。
安裝ete3
使用官方的推薦命令安裝時(shí)出了問題,py3.5的包裝到了py2.7環(huán)境下。解決辦法,新建一個(gè)py2.7
的環(huán)境,然后安裝。ETE構(gòu)建、繪制進(jìn)化樹
# 新建一個(gè)環(huán)境,命名為phylo,指定其內(nèi)安裝的python版本為2.7conda create -n phylo python=2.7# 在phylo環(huán)境中安裝 ete3 # ete3存在于2個(gè)通道中,官方推薦使用自己的通道,但沒有成功# -n 指定安裝環(huán)境 -c 指定下載通道# conda install -n phylo -c etetoolkit ete3 ete3_external_apps# bioconda通道里面也有ete3, 下面的安裝未指定具體通道,將在前面設(shè)定的幾個(gè)通道里面按先后順序查找安裝conda install -n phylo ete3 ete3_external_apps# 默認(rèn)安裝到了anaconda_path下面的envs/phylo目錄下(在屏幕輸出也會(huì)有顯示)# 這個(gè)目錄下存在bin文件夾,一般使用全路徑就可以調(diào)用,如下# anaconda_path/envs/phylo/bin/ete3 -h # 但有時(shí)會(huì)因?yàn)橐蕾囮P(guān)系而失敗# 所以激活本次安裝環(huán)境是比較不容易出問題的使用方式source activate phylo# 在新環(huán)境里面執(zhí)行命令操作ete3 -h# 其它操作# 退出新環(huán)境source deactivate phylo
創(chuàng)建R環(huán)境 Reference1
# Create a new conda environment called r,并且在里面安裝anacondaconda create -n r anaconda# Switch to r environmentsource activate r# 在新環(huán)境里面安裝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# 最后退出新環(huán)境source deactivate r
創(chuàng)建比對工具環(huán)境 (bioconda中的例子,https://bioconda.github.io/index.html#set-up-channels)
# 環(huán)境名字為 aligners# 環(huán)境中安裝 bwa bowtie hisat starconda create -n aligners bwa bowtie hisat star# 如果還想繼續(xù)安裝,指定安裝環(huán)境;否則安裝到默認(rèn)環(huán)境conda install -n aligners hisat2# 啟動(dòng)新環(huán)境source activate alignersstar -hsource deactivate aligners
移除環(huán)境
如果環(huán)境不需要了,或出了錯(cuò),則可以移除。比如需要移除phylo
環(huán)境,執(zhí)行conda remove -n phylo --all
。
為了方便不同環(huán)境里面程序的運(yùn)行,我寫了一個(gè)shell腳本 (conda_env_run.sh
),具體運(yùn)行如下:
# -c: 表示實(shí)際需要運(yùn)行的命令# -e: 表示需要啟動(dòng)的軟件環(huán)境,也就是上面conda create建立的環(huán)境# -b:一般不需要指定,如果conda沒在環(huán)境變量中需要給出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
內(nèi)容如下
#!/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}-b>
https://samrelton.wordpress.com/2015/07/02/rconda/
什么,你嫌bioconda下載速度太慢?感謝生信媛洲更的安利。
https://www.anaconda.com/blog/developer-blog/anaconda-r-users-sparkr-and-rbokeh/
http://www.bioinfo-scrounger.com/archives/209
聯(lián)系客服