有很多的生信軟件都可以通過conda安裝,省去了很多的安裝、修bug的煩惱。經常是安裝到崩潰的軟件,conda一行命令就搞定了。前兩天有個胖友問我gatk 3.8的版本在哪里下,下載好了之后怎么安裝,我果斷打開了https://anaconda.org/search ,告訴他安裝conda吧,只要一行命令
conda install gatk
就行了。
然后他很可愛的問我conda怎么裝。。果斷就把這篇教程丟給他了. 寫都寫了, 那順便就把教程發(fā)出來以饗讀者。
conda簡介
Conda 是一個幾乎支持所有編程語言的開源的軟件包管理系統(tǒng)和環(huán)境管理系統(tǒng),用于安裝多個版本的軟件包及其依賴關系,并在它們之間輕松切換。適用于 Linux,OS X 和Windows,
conda、miniconda和anaconda的關系
[圖片上傳失敗...(image-ca1b3c-1660281353100)]
conda是內核主體, 在conda的基礎上, miniconda還包含了python和一些基礎模塊。anaconda則是在miniconda的基礎上又增加了150個模塊和一個用戶界面. 大家按需安裝即可~ 如果是在linux的命令行里使用conda的話, 推薦使用miniconda。
下載網址
miniconda官網:https://conda.io/miniconda.html
conda清華鏡像地址: https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
conda北外鏡像地址: https://mirrors4.bfsu.edu.cn/help/anaconda/
選擇適合自己的版本,用wget命令下載。
wget -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
wget -c https://mirrors.bfsu.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
# 這個版本是適合于linux的,要看清楚噢。第一個是清華鏡像的下載地址, 第二個是北外的下載地址. 隨便挑其中之一就好
# mac用戶請用:
curl -O https://mirrors.bfsu.edu.cn/anaconda/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
mac用戶選擇帶有圖形化界面的anaconda版本也可。
傳送門:https://www.anaconda.com/products/individual
往下翻,選擇64-Bit Graphical Installer
這里選擇的是latest-Linux
版本,所以下載的程序會隨著python的版本更新而更新(現(xiàn)在下載的版本默認的python版本已經是3.9了)
安裝七步走:
- 運行 bash Miniconda3-latest-Linux-x86_64.sh
- 查看軟件license
- 同意license
- 選擇安裝位置
- 同意conda初始化
- 重新加載~/.bashrc文件或者重新開shell窗口
- 設置是否要默認啟動base環(huán)境(可選)
1. 運行conda安裝腳本
# 直接調用bash即可, 不需要對其進行修改權限等操作
bash Miniconda3-latest-Linux-x86_64.sh
此處直接回車即可.
2. 查看conda的license
在這一步里, conda會用more打開一個conda的license(服務條款), 這個相當于我們安裝軟件的時候需要勾選“同意服務協(xié)議和隱私政策”, 可以直接按q鍵
跳過或者用空格一頁一頁往下翻讀.
3. 同意licnese
conda會問你是否接受這個服務條款. 跟很多的軟件一樣, 不同意就使用不了~所以輸入yes就好. (此處我嘗試過只輸入y, 是會報錯的. 所以就乖乖的輸入yes吧~)
4.選擇安裝位置
在這一步里需要設置miniconda的安裝位置.
特別是當你的服務器之前有安裝過軟件的話,conda會污染你原來的環(huán)境,把你原來設置好的東西進行更改。具體的慘痛教訓請參見:
Anaconda is a snake.
只要養(yǎng)成好的使用習慣,靈活使用conda create 命令將不同的軟件安裝到自己單獨的虛擬環(huán)境中就可以了。把conda這條蟒蛇關進一個一個的籠子里,才能更好的為我們的科研服務~
2020-06-14 update: 從下面不加入環(huán)境變量這一步開始,其實是非必須的(也就是正常的加入環(huán)境變量即可)。之前所謂的會污染環(huán)境等等問題可能都是將大量的軟件直接安裝在conda的base環(huán)境中引起的,
添加頻道
這個道理跟家里的電視機是一樣一樣的,安裝conda就相當于買了一臺電視機,但是有電視了不意味著你就能看節(jié)目了,你要手動添加頻道才能看你想看的電視節(jié)目。
添加頻道的示例:
如果你的服務器在海外, 可以嘗試添加官方頻道:
注意: 此處僅為例子, 先不要急著添加這兩個哦~, 建議添加下面的conda國內鏡像地址:
conda config --add channels bioconda
conda config --add channels conda-forge
官方的話這兩個channel應該就夠了的。
2020-06-14 update:但是其實現(xiàn)在用國內的鏡像比較多,官方的頻道相較而言速度較慢。但也不是絕對的,有小伙伴跟我說他使用官方的頻道也很流暢,所以見仁見智啦。另外,不建議加入大量的相同的頻道,如添加了官方的bioconda之后又添加清華的bioconda鏡像,沒有必要,而且會拖慢速度。
順便安利一個我hoptop學長的教程:如何搭建一個本地的conda鏡像(包含bioconda)供各位愛折騰的高端玩家。
2019-06-17 update: 清華恢復了conda 的鏡像了!詳情請看下面:
Anaconda 鏡像即將恢復
借花獻佛給大家復習一遍如何添加清華的鏡像channels: 來源 → 生信媛: 喜大普奔: Anaconda的清華鏡像又可以用了
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
2020-06-14 update: 為了分擔清華源鏡像的壓力,最近北京外國語大學也開啟了鏡像站點,同樣是由清華TUNA團隊維護的,如果有小伙伴遇到清華源速度很慢的情況的話,可以考慮換成北外的鏡像。
新聞傳送門:https://mirrors.tuna.tsinghua.edu.cn/news/bfsu-mirror/
鏡像傳送門:https://mirrors.bfsu.edu.cn/help/anaconda/
2020-08-05 update: 為了方便大家(當然主要是自己偷懶用), 把北外的鏈接也給寫出來, 這樣就可以直接復制粘貼了~當然兩者取其一就可以了, 不用重復添加.
另外, 我查看了中科大的鏡像https://mirrors.ustc.edu.cn/anaconda, 點擊這個地址會直接跳轉到清華tuna的鏡像站點. 所以目前看起來國內是只有清華和北外兩個鏡像站點可用了~如果有小伙伴知道還有別的鏡像可以用的話歡迎在下面留言或者私信我鴨!
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/main/
下面這個我沒用過, 但是看起來像是R的頻道, 可以添加一下試試看.
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/r/
如果你需要其他的更多的頻道,請訪問這個地址??: https://mirrors.bfsu.edu.cn/help/anaconda/ 里面有詳細的指導噠
2021-04-27 update: 更新了提供conda鏡像的大學的列表
目前國內提供conda鏡像的大學
清華大學: https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
北京外國語大學: https://mirrors.bfsu.edu.cn/help/anaconda/
南京郵電大學: https://mirrors.njupt.edu.cn/
南京大學: http://mirrors.nju.edu.cn/
重慶郵電大學: http://mirror.cqupt.edu.cn/
上海交通大學: https://mirror.sjtu.edu.cn/
哈爾濱工業(yè)大學: http://mirrors.hit.edu.cn/#/home
如果清華的或者北外的
顯示安裝的頻道
conda config --set show_channel_urls yes
查看已經添加的channels
conda config --get channels
已添加的channel在哪里查看
vim ~/.condarc
利用conda安裝生物信息軟件
安裝命令:
conda install gatk
搜索需要的安裝包:
提供一個網址,用于事先查找想安裝的軟件存不存在
conda available packages
2020-06-14 update: 鏈接已掛,請選擇用下面的conda search命令或者開頭提供的更新的網址
當然, 也可以用這個命令進行搜索(會稍微慢一點)
conda search gatk
安裝完成后,可以用“which 軟件名”來查看該軟件安裝的位置:
which gatk
如需要安裝特定的版本:
conda install 軟件名=版本號
conda install gatk=3.7
這時conda會先卸載已安裝版本,然后重新安裝指定版本。
查看已安裝軟件:
conda list
更新指定軟件:
conda update gatk
卸載指定軟件:
conda remove gatk
退出conda環(huán)境
退出也很簡單,之前我們是. ./activate 或者 (. ~/miniconda3/bin/activate)
現(xiàn)在退出只要:
. ./deactivate
# 或者用
conda deactivate
就退出當前的環(huán)境了
創(chuàng)建軟件的軟鏈接(非必須步驟)
跟著命令一路敲到這里的小旁友們估計發(fā)現(xiàn)了,現(xiàn)在退出conda環(huán)境之后之前安裝的軟件全都GG了,敲命令沒法執(zhí)行了!
怎么辦呢!其實只要把安裝好的軟件軟連接到一個處在環(huán)境變量里的位置就可以使用了。三步走:
- 第一步,創(chuàng)建一個文件夾
我一般的習慣是在/home
目錄下創(chuàng)建一個.soft
文件夾 - 第二步,將這個文件夾添加到環(huán)境變量中
export PATH="~/.soft:$PATH"
- 第三步,軟鏈接
ln -s ~/miniconda3/bin/gatk ~/.soft
這樣就可以運行啦~如果還是不行建議試試初始化一下bashrc:. ./bashrc
創(chuàng)建conda環(huán)境(常用步驟,強烈推薦)
之前創(chuàng)建的時候顯示的是(base)這是conda的基本環(huán)境,有些軟件依賴的是python2的版本,當你還是使用你的base的時候你的base里的python會被自動降級,有可能會引發(fā)別的軟件的報錯,所以,可以給一些特別的軟件一些特別的關照,比如創(chuàng)建一個單獨的環(huán)境。
在conda環(huán)境下,輸入conda env list
(或者輸入conda info --envs
也是一樣滴)查看當前存在的環(huán)境:
conda env list
# 這是我相當常用的一條命令了,建議記一記
目前只有一個base
conda create -n python2 python=2
# -n: 設置新的環(huán)境的名字
# python=2 指定新環(huán)境的python的版本,非必須參數(shù)
# 這里也可以用一個-y參數(shù),可以直接跳過安裝的確認過程。
conda會創(chuàng)建一個新的python2的環(huán)境,并且會很溫馨的提示你只要輸入conda activate python2就可以啟動這個環(huán)境了
退出環(huán)境
如上面的截圖提到的,只要
conda deactivate
2019-6-28 update: 如何刪除和重命名一個已存在的環(huán)境
刪除環(huán)境
刪除也很容易的
conda remove -n myenv --all
就可以退出當前環(huán)境。
掌握了創(chuàng)建和刪除我們就可以實現(xiàn)重命名的操作了
重命名環(huán)境
實際上conda并沒有提供這樣的功能,但是可以曲線救國,原理是先克隆一個原來的環(huán)境,命名成想要的名字,再把原來的環(huán)境刪掉即可
參考自:conda 創(chuàng)建/刪除/重命名 環(huán)境
接下來演示把一個原來叫做py2的環(huán)境重新命名成python2:
conda create -n python2 --clone py2
conda remove -n py2 --all
騷操作:allias簡化啟動(非必須步驟)
linux提供了一個給大家偷懶的命令叫alias,只要在你的
.bashrc
里設置一下就好了,我添加了一條叫做condaup
的命令,這樣就可以免去每次敲. ~/miniconda/bin/dactivate
的麻煩,一步搞定~技術宅改變世界!報錯信息集錦
2020-08-06 update: 我最近用conda總是發(fā)生一些奇怪的問題, 所以想把報錯的信息及解決方式給收集整理一下.
報錯1: 網絡錯誤
Collecting package metadata (current_repodata.json): failed
CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://conda.anaconda.org/genomedk/linux-64/current_repodata.json>
Elapsed: -
An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.
u'https://conda.anaconda.org/genomedk/linux-64'
一般這種問題就只要重新運行一下上一條命令就可以了. 有的時候網絡不穩(wěn)定而已.
報錯2: 其他的錯誤等我找到解決方法再更新上來~
參考及感謝
-
感謝青山屋主在知乎的專欄文章~
我為什么能知道這么多呢?因為我看了我洲更學長hoptop的課啊!推薦給你們!
https://ke.qq.com/course/310838
2020-07-08 update: 洲更學長的課程免費在b站放送啦!~快來白嫖!~
https://www.bilibili.com/video/BV1JJ411p7fXconda的cheatsheet。conda官方提供的小抄了解一下~
https://conda.io/docs/user-guide/cheatsheet.html
ps:簡書終于提供markdown編輯器的同步滾動了!開心!