利用 bioconda 管理生物信息軟件
文章有參考以下兩個視頻,有需要可以瞅瞅喲!老師們各有千秋!
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈



1 了解 conda,anaconda,miniconda,bioconda

1.1 conda
conda是一個軟件模塊管理工具,也是一個可執(zhí)行命令,其核心功能是包管理與環(huán)境管理,可以用來管理Python, R, Ruby, Lua, Scala, Java, JavaScript, C/ C++, FORTRAN等語言的模塊。在python中使用比較多,有點類似于pip工具。
conda的用途:
????快速安裝、運行和升級包及其依賴項
????在計算機中便捷地創(chuàng)建、保存、加載和切換環(huán)境
1.2 anaconda
anaconda是一個開源的Python發(fā)行版本,包含了conda、Python等180多個科學(xué)包及其依賴項。
Anaconda具有如下特點:
????開源
????安裝過程簡單
????高性能使用Python和R語言
????免費的社區(qū)支持
其特點的實現(xiàn)主要基于Anaconda擁有的:
????conda包
????環(huán)境管理器
????1,000+開源庫
1.3 miniconda
通過以上對anaconda的介紹,我們了解到anaconda的數(shù)據(jù)包和安裝包都很大,但我們用不到那么多,那么,miniconda登場!前者安裝包較大,包含了較多默認安裝包,而miniconda屬于精簡版本,可按照自己需求進行安裝,推薦安裝miniconda。
1.4 bioconda
bioconda是一個管理生物信息軟件的工具軟件,它基于anaconda可以進行生物軟件的搜索、下載、安裝、升級、刪除等操作,可以將 bioconda 當成生物信息軟件的AppStore。
bioconda的使用首先需要安裝miniconda,在安裝好miniconda之后,添加相應(yīng)的生物信息軟件相關(guān)的channel之后,就是bioconda了。換言之,bioconda就是一種生物定制版本的conda。bioconda是目前已知最好的生物軟件管理工具之一,目前已經(jīng)支持超過 7000 多款生物軟件的安裝。
bioconda的優(yōu)點:
1. 自動安裝依賴,解決軟件依賴問題,實現(xiàn)生物軟件一鍵安裝,再也不用體會源代碼編譯之苦了;
2. 除了生信類軟件,R 語言、Python語言軟件包都可以進行安裝;
3. 方便進行管理和升級,軟件版本可選擇,同一個軟件可以選擇安裝任意的版本;
4. 使用普通用戶進行安裝,不需要管理員幫忙安裝依賴軟件;
5. 創(chuàng)建環(huán)境,例如需要使用Python 3,但默認是Python 2.7,可以創(chuàng)建一個Python 3環(huán)境;
6. 所有軟件安裝在同一目錄下,方便進行管理和遷移。
2 bioconda的安裝
2.1 miniconda的安裝

2.2 添加channel
剛才安裝的只是miniconda,conda默認的channel是用來管理python模塊的,必須添加bioconda這個channel才能下載和安裝生物軟件。
自用小tips:channel就是軟件包存在的位置(類似于其余語言的CPAN, CRAN, Bioconductor),conda install yyy?之所以能成功的前提,是軟件 yyy 已經(jīng)在某個channel里。
鏡像
eg. 清華鏡像channel:?https://mirrors.tuna.tsinghua.edu.cn/anaconda/
小tips:
1. 不要重復(fù)添加channel,冗余的channel會讓安裝軟件的過程變慢,且添加的先后順序是非常重要且有意義的,要正確設(shè)置優(yōu)先級(即,conda-forge是最高優(yōu)先級);

2. 添加鏡像要看服務(wù)器所在的位置,而不是使用者所在的位置。
3 利用bioconda管理軟件
3.1 哪些軟件可以用conda安裝
1. 網(wǎng)站查詢
????https://anaconda.org/
????https://bioconda.github.io/
2.?

3. 關(guān)鍵詞搜索
????搜索引擎直接輸入 xxx conda
3.2 軟件管理

小tips:
安裝時找不到這個包咋整?
1. 首先確認conda是否可以安裝所需軟件
2. 確認是不是粗心大意打錯名稱
3. 確認所需軟件在conda中的名稱
? ? eg. sratoolkit —— sra-tools

3.3 配置環(huán)境
3.3.1 why?
conda會改變原來設(shè)置好的環(huán)境
不同軟件的依賴會互相沖突
A軟件依賴Python 2.7,B軟件依賴Python 3.8
方便項目管理
基因組、轉(zhuǎn)錄組、Chip-seq ......
小tips:base環(huán)境里裝包的時候要了解這個包對原生環(huán)境會造成什么影響(如果它在所有小環(huán)境都可以用的話,或許可以考慮裝在base環(huán)境下,新手謹慎)。
3.3.2 創(chuàng)建獨立環(huán)境

3.4 conda常用命令小結(jié)
3.4.1 環(huán)境管理
3.4.2 軟件管理
4 conda大tips
4.1 mamba的使用
如果你曾遇到以下問題:
????conda下載軟件速度慢?
????一直耗費時間處理環(huán)境問題?
????環(huán)境問題處理失?。?/p>
那么,mamba絕對可以讓你的軟件安裝過程變得過分絲滑!

mamba并沒有完全重新把conda重新寫一遍,而是加速了其中的一些線速度的步驟。
????1. 對 conda install 進行改造,使其可以多線程并行下載
????2. 增加了一些新功能
4.1.1 mamba的安裝與使用
首先切換至base環(huán)境,確保在base環(huán)境下安裝mamba。
小tips:裝在base環(huán)境中的包在其他小環(huán)境中可以調(diào)用,無需在每個環(huán)境下都安裝一次。
除了啟動環(huán)境外( conda activate xxx),其他的conda命令都可以用mamba來代替,即直接將 conda替換為 mamba?即可。

4.1.2 使用mamba查看依賴關(guān)系
mamba可以很方便地查看安裝軟件之間的依賴關(guān)系。

4.2 版本控制和遷移
作用:
1. 發(fā)文章的時候提供版本號;
2. 更換服務(wù)器、分享的時候保持軟件版本不變。

4.3 將軟件安裝到指定位置
4.4 按照位置啟動小環(huán)境
4.5 為特定環(huán)境設(shè)置特殊頻道
參考資料
https://www.jianshu.com/p/0534043b4471
https://www.bilibili.com/video/BV1hA411W7aC?spm_id_from=333.999.0.0
https://www.bilibili.com/video/BV1Yy4y117SX?p=15
https://www.jianshu.com/p/62f155eb6ac5