生物信息學(xué)的日常就是利用五花八門的工具和各種各樣的數(shù)據(jù)打交道焦辅,很多時候需要在命令行安裝軟件或者包。我相信每一個生信人都碰到過安裝軟件或包時無法解決依賴的囧況洪鸭,安裝軟件或者包奇颠,聽起來是一件很簡單的一件事,實際情況卻不是如此襟士。比如說編譯時碰到系統(tǒng)lib不存在或版本太低盗飒,安裝一個python/R包卻需要升級當前的python/R,而這又會導(dǎo)致之前安裝好的包不能使用。今天給大家介紹一下跨平臺包管理神器Anaconda陋桂,學(xué)習(xí)一下它在Linux下的正確使用姿勢逆趣。
Anaconda是什么?
官方介紹“The World's Most Popular Python/R Data Science Platform”嗜历。簡單來說宣渗,Anaconda是包管理器和環(huán)境管理器。
安裝 Anaconda
在清華大學(xué) TUNA 鏡像源(https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/)選擇對應(yīng)的操作系統(tǒng)與所需的Python版本下載Anaconda安裝包梨州。比如我下載了Anaconda3-2019.10-Linux-x86_64.sh這個安裝包痕囱,那么安裝命令如下
bash Anaconda3-2019.10-Linux-x86_64.sh
后面會有一些選項停頓,直接回車確認暴匠。
1. 包管理**
安裝包
假如我要安裝scipy這個科學(xué)計算包咐蝇,那么可以輸入如下命令
conda install scipy
conda會自動搜索并解決包依賴項,你只需要按回車即可巷查。有時候我們想安裝某個指定版本的包有序,那么就需要先知道conda里面存在哪些版本的包,可以輸入如下命令就行搜索
conda search scipy
搜索結(jié)果還挺多的岛请,部分結(jié)果如下
如果我想安裝0.19.1這個版本的scipy旭寿,那么輸入如下命令
conda install scipy=0.19.1
最后一列信息為channel,這個channe是很重要的一個信息崇败,有時候一些包找不到盅称,很大原因是當前的channe里面還沒有肩祥,但是其他channel實際上有。怎樣添加channel呢缩膝?稍安勿躁混狠,后面添加鏡像部分會提到。
刪除包
有安裝就有卸載疾层,卸載包命令如下
conda remove scipy
更新包
conda update scipy
2. 管理環(huán)境
環(huán)境非常有用将饺,它能讓你為某個項目單獨建立一個運行時,而不會與現(xiàn)有的環(huán)境產(chǎn)生沖突痛黎。此外予弧,當你需要將項目遷移到其他機器的時候,可以將整個環(huán)境遷移過去湖饱,徹底解決移植的難題掖蛤。
建立環(huán)境
先看如下命令
conda create -n env_name package_names
上面的命令中,env_name 是設(shè)置環(huán)境的名稱(-n 是指該命令后面的env_name是你要創(chuàng)建環(huán)境的名稱)井厌,package_names 是你要安裝在創(chuàng)建環(huán)境中的包名稱蚓庭。例如創(chuàng)建環(huán)境名稱為py3,并安裝最新版本的Python3仅仆,那么在終端中輸入
conda create -n py3 python=3
列出環(huán)境
conda env list
你會看到環(huán)境的列表彪置,而且你當前所在環(huán)境的旁邊會有一個星號。
刪除環(huán)境
如果你不再使用某個環(huán)境蝇恶,可以使用如下命令刪除指定的環(huán)境
conda env remove -n env_name
進入環(huán)境
source activate env_name
在環(huán)境中安裝包的命令與前面一樣:conda install package_name拳魁。不過,這次你安裝的包僅在你進入此環(huán)境后才可用撮弧。其他環(huán)境是不知道這個包的存在的潘懊。
離開環(huán)境
source deactivate
共享環(huán)境
共享環(huán)境非常有用,它能讓其他人安裝你的代碼中使用的所有包贿衍,并確保這些包的版本正確授舟。比如你開發(fā)了一個數(shù)據(jù)分析系統(tǒng),你要提交給項目部署系統(tǒng)的王二狗來部署你的項目贸辈,但是王二狗并不知道你當時開發(fā)時使用的是哪個python版本释树,以及使用了哪些包和包的版本。這怎么辦呢擎淤?你可以在你的環(huán)境中終端中使用如下命令將你當前的環(huán)境保存到文件中奢啥。
conda env export > environment.yaml
導(dǎo)出的環(huán)境文件,在其他電腦中如何使用呢嘴拢?使用如下命令加載剛剛導(dǎo)出的環(huán)境
conda env create -f environment.yaml
3. 設(shè)置國內(nèi)鏡像
如果需要安裝很多packages桩盲,你會發(fā)現(xiàn)conda下載的速度經(jīng)常很慢,因為Anaconda.org的服務(wù)器在國外席吴。所幸的是赌结,清華TUNA鏡像源(https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/)有Anaconda倉庫的鏡像捞蛋,如下圖所示:
將紅框中的代碼復(fù)制保存到 ~/.condarc 文件。這個文件記錄著我們對conda的配置柬姚。保存之后可以用如下命令檢查一下
conda config --show
可以看到已經(jīng)成功加入了幾個不同channels的鏡像地址拟杉。
專注生物學(xué)領(lǐng)域的bioconda的channel也包含在里面了。假設(shè)需要安裝DESeq2這個包量承,這是一個發(fā)布在bioconductor的R包搬设。默認的channel里面是沒有的⊙绾希可以使用如下命令進行安裝
conda install -c bioconda bioconductor-deseq
上述命令中的“-c bioconda”就是告訴conda焕梅,要去bioconda這個channel這個源去檢索DESeq2這個包迹鹅。
4. 加分篇
重命名環(huán)境
conda create --name newname --clone oldname #克隆環(huán)境
回滾
conda list --revisions
歡迎關(guān)注公眾號:"生物信息學(xué)"