大家早上好啊,以後每一天的推送都改到早上時間,美好的一天從學習開始吧!
前言
生物資訊學的日常就是利用五花八門的工具和各種各樣的資料打交道,很多時候需要在指令行安裝軟體或者包。我相信每一個生信人都碰到過安裝軟體或包時無法解決依賴的囧況,安裝軟體或者包,聽起來是一件很簡單的一件事,實際情況卻不是如此。比如說編譯時碰到系統lib不存在或版本太低,安裝一個python/R包卻需要更新目前的python/R,而這又會導緻之前安裝好的包不能使用。今天給大家介紹一下跨平台包管理神器Anaconda,學習一下它在Linux下的正确使用姿勢。
Anaconda是什麼?
官方介紹“The World's Most Popular Python/R Data Science Platform”。簡單來說,Anaconda是包管理器和環境管理器。
安裝 Anaconda
在清華大學 TUNA 鏡像源(https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/)選擇對應的作業系統與所需的Python版本下載下傳Anaconda安裝包。比如我下載下傳了Anaconda3-2019.10-Linux-x86_64.sh這個安裝包,那麼安裝指令如下
bash Anaconda3-2019.10-Linux-x86_64.sh
後面會有一些選項停頓,直接回車确認。
1
包管理
- 安裝包
假如我要安裝scipy這個科學計算包,那麼可以輸入如下指令
conda install scipy
conda會自動搜尋并解決包依賴項,你隻需要按回車即可。有時候我們想安裝某個指定版本的包,那麼就需要先知道conda裡面存在哪些版本的包,可以輸入如下指令就行搜尋
conda search scipy
搜尋結果還挺多的,部分結果如下
如果我想安裝0.19.1這個版本的scipy,那麼輸入如下指令
conda install scipy=0.19.1
最後一列資訊為channel,這個channe是很重要的一個資訊,有時候一些包找不到,很大原因是目前的channe裡面還沒有,但是其他channel實際上有。怎樣添加channel呢?稍安勿躁,後面添加鏡像部分會提到。
- 删除包
有安裝就有解除安裝,解除安裝包指令如下
conda remove scipy
- 更新包
conda update scipy
2
管理環境
環境非常有用,它能讓你為某個項目單獨建立一個運作時,而不會與現有的環境産生沖突。此外,當你需要将項目遷移到其他機器的時候,可以将整個環境遷移過去,徹底解決移植的難題。
- 建立環境
先看如下指令
conda create -n env_name package_names
上面的指令中,env_name 是設定環境的名稱(-n 是指該指令後面的env_name是你要建立環境的名稱),package_names 是你要安裝在建立環境中的包名稱。例如建立環境名稱為py3,并安裝最新版本的Python3,那麼在終端中輸入
conda create -n py3 python=3
- 列出環境
conda env list
你會看到環境的清單,而且你目前所在環境的旁邊會有一個星号。
- 删除環境
如果你不再使用某個環境,可以使用如下指令删除指定的環境
conda env remove -n env_name
- 進入環境
source activate env_name
在環境中安裝包的指令與前面一樣:conda install package_name。不過,這次你安裝的包僅在你進入此環境後才可用。其他環境是不知道這個包的存在的。
- 離開環境
source deactivate
- 共享環境
共享環境非常有用,它能讓其他人安裝你的代碼中使用的所有包,并確定這些包的版本正确。比如你開發了一個資料分析系統,你要送出給項目部署系統的王二狗來部署你的項目,但是王二狗并不知道你當時開發時使用的是哪個python版本,以及使用了哪些包和包的版本。這怎麼辦呢?你可以在你的環境中終端中使用如下指令将你目前的環境儲存到檔案中。
conda env export > environment.yaml
導出的環境檔案,在其他電腦中如何使用呢?使用如下指令加載剛剛導出的環境
conda env create -f environment.yaml
3
設定國内鏡像
如果需要安裝很多packages,你會發現conda下載下傳的速度經常很慢,因為Anaconda.org的伺服器在國外。所幸的是,清華TUNA鏡像源(https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/)有Anaconda倉庫的鏡像,如下圖所示:
将紅框中的代碼複制儲存到 ~/.condarc 檔案。這個檔案記錄着我們對conda的配置。儲存之後可以用如下指令檢查一下
conda config --show
可以看到已經成功加入了幾個不同channels的鏡像位址。
專注生物學領域的bioconda的channel也包含在裡面了。假設需要安裝DESeq2這個包,這是一個釋出在bioconductor的R包。預設的channel裡面是沒有的。可以使用如下指令進行安裝
conda install -c bioconda bioconductor-deseq
上述指令中的“-c bioconda”就是告訴conda,要去bioconda這個channel這個源去檢索DESeq2這個包。
4
加分篇
- 重命名環境
conda create --name newname --clone oldname #克隆環境conda remove --name oldname --all #徹底删除舊環境
- 復原
conda list --revisionsconda install --revision [revision number]
今天的分享就到這裡,有什麼問題留言吧。
掃碼關注最新動态
生物資訊學