SqueezeMeta是一個全自動的宏基因組數(shù)據(jù)處理流程,涵蓋了組裝、分箱、物種注釋、功能注釋以及各個樣品具有的物種和功能豐度信息還有后續(xù)可視化等等。以往這些你都需要單獨(dú)寫腳本計(jì)算,每一步都很耗神費(fèi)時......
SqueezeMeta簡介
SqueezeMeta是用于宏基因組學(xué)/宏轉(zhuǎn)錄組學(xué)的全自動流程,涵蓋了分析的所有步驟。 SqueezeMeta包含多元基因組支持,允許相關(guān)元基因組的共同組裝以及通過分箱程序提取單個基因組。 因此,SqueezeMeta具有幾個獨(dú)特的特征:
- 帶有把reads map到bin的共組裝程序,用于估計(jì)每個元基因組中的基因豐度
- 通過合并單個元基因組,將大量的元基因組共同組裝
包括分箱和分箱質(zhì)量檢查,用于檢索單個基因組 - 結(jié)果存儲在數(shù)據(jù)庫中,可在其中輕松導(dǎo)出和共享結(jié)果,并可使用Web界面在任何位置對其進(jìn)行檢查
- 內(nèi)部檢查組裝和裝箱步驟可了解重疊群和箱體的一致性,從而可以發(fā)現(xiàn)潛在的嵌合體。
- 通過把cDNA的reads比對到參考元基因組來提供轉(zhuǎn)錄組支持
SqueezeMeta可以在三種不同的模式下運(yùn)行:
順序模式:所有樣品均被單獨(dú)處理并進(jìn)行順序分析。
組合模式:合并所有樣本的讀數(shù)并執(zhí)行單個組合。然后將單個樣品的讀數(shù)映射到協(xié)同裝配,以獲得每個樣品中的基因豐度。分箱方法允許獲得基因組箱。
合并模式:如果有很多大樣本可用,則由于內(nèi)存需求,組裝可能會崩潰。此模式允許使用Benjamin Tully所使用的一種程序來組合無限數(shù)量的樣品,該程序用于分析TARA Oceans數(shù)據(jù)。簡而言之,樣品是單獨(dú)組裝的,并且所產(chǎn)生的重疊群將被合并為一個共同的組裝。然后,以聯(lián)合裝配模式進(jìn)行分析。不建議這樣做(如果可能,請使用組合模式),因?yàn)楫a(chǎn)生嵌合重疊群的可能性更高。但是,當(dāng)無法進(jìn)行標(biāo)準(zhǔn)組裝時,這是一個可行的選擇。
Seqmerge模式:與合并模式相比,它用于處理更多樣本。 seqmerge不是按單個步驟合并所有單個組裝集(耗費(fèi)計(jì)算資源),而是按順序工作。首先,與合并模式一樣,它單獨(dú)組裝所有樣本。但隨后它將合并兩個最相似的組裝集。使用Donovan Parks出色的CompareM軟件,將以氨基酸一致性進(jìn)行組裝集的一致性計(jì)算。第一次合并后,它將再次評估相似性并合并,并以這種方式進(jìn)行,直到所有元基因組都合并到一個。因此,對于n個元基因組,將需要n-1個合并步驟。
###下面是步驟總結(jié)

此處我只寫一下自己使用的流程及遇到的坑,幫助后來的小伙伴快速掌握這個軟件的使用流程。
想了解更多的童鞋請點(diǎn)擊原文章鏈接
安裝: 這里我選擇簡單無腦版—conda
conda create -n SqueezeMeta -c bioconda -c fpusan squeezemeta
conda activate SqueezeMeta
數(shù)據(jù)庫下載,耗費(fèi)了一個多星期才搞好o_O.
- 2020年3月中旬,download_databases.pl和make_databases.pl我都試了,剛開始是速度巨慢,后來是連不上服務(wù)器。盡管我嘗試在本地用一些辦法讓它連上了國外的服務(wù)器下載再傳到hpc上,但是下到半截又?jǐn)嗔?..... 我特喵的~
- 聯(lián)系作者說可能是疫情影響了它們工作人員,他們服務(wù)器出了問題,沒法及時解決。但是作者人很nice,積極幫我解決:
1.下載下面三個文件
https://saco.csic.es/index.php/s/RKQNjYYHWGn6Z3W
https://saco.csic.es/index.php/s/s8S9xosiLKMeMJT
https://saco.csic.es/index.php/s/kLtH4gFJNJTX4ed
2. SqueezeMetaDB.tar.gz文件稍大,記得檢查完整
它的md5sum值:2d02374c7053a625bb7fc47aa85b839d.
把classifier.tar.gz 復(fù)制(注意是復(fù)制)到 SqueezeMeta/lib 文件夾 (我這里是 ~/miniconda2/envs/SqueezeMeta/SqueezeMeta/lib/)不要解壓classifier.tar.gz.
解壓 "SqueezeMetaDB.tar.gz" 和 "test.tar.gz" 到你想放置數(shù)據(jù)庫的地方,暫且稱作/path/to/SQMdata/
3. 現(xiàn)在應(yīng)該有 /path/to/SQMdata/db 和 /path/to/SQMdata/test.
/path/to/SQMdata/db 文件夾有很多文件,其中包括 nr.dmnd.
4. 運(yùn)行configure_nodb.pl /path/to/SQMdata/db.
會報(bào)error 500錯誤,沒有影響
最后測試一下是否配置成功:test_install.pl 所有都OK就是好了
5. 最后注意一下, 解壓 classifier.tar.gz 為 classifier ,然后把它放到安裝的庫中(我這里是~/miniconda2/envs/SqueezeMeta/SqueezeMeta/lib/)
因?yàn)檫\(yùn)行完 configure_nodb.pl, ~/miniconda2/envs/SqueezeMeta/SqueezeMeta/lib/classifier 被刪了,然后你再跑后面的會報(bào)錯,提示找不到相關(guān)腳本,其實(shí)就是含有腳本的文件夾被刪了
下面就是一些常規(guī)計(jì)算流程,有些小坑我已經(jīng)寫出來了
首先你需要準(zhǔn)備一個sample文件,告訴系統(tǒng)你的原始數(shù)據(jù)在哪里。
第一列是你最終要使用的樣品名稱,第二列是真正的樣品名稱,第三列pair1和pair2表示正和反向測序的序列

- #第一步的megahit組裝需要較多的內(nèi)存,在普通計(jì)算節(jié)點(diǎn)我試了兩次都報(bào)錯,最后還是把任務(wù)提交到胖節(jié)點(diǎn),一點(diǎn)問題沒有。我六個樣品,原始.gz文件~36GB,共組裝模式下最高消耗了大概50GRAM(普通節(jié)點(diǎn)是有這么多內(nèi)存的,可能是別人提交了任務(wù),不夠了)。同時第一步也是比較久的,32線程,三幾天的樣子
- #運(yùn)行
#BSUB -J squeezemeta_PZH
#BSUB -n 32
#BSUB -R span[hosts=1]
#BSUB -o squeezemeta_PZH.out
#BSUB -e squeezemeta_PZH.err
#BSUB -q smp
source activate SqueezeMeta
cd /public/home/jkyin/yjk/PZH_meta/squeezemeta/
SqueezeMeta.pl -m coassembly -p PZH -s sample.txt -f ../raw/ -t 32
#我之前不知道那個classfier文件夾被刪了,然后第二步就報(bào)錯了。把我們下載并解壓的classifer放到/public/home/jkyin/miniconda2/envs/SqueezeMeta/SqueezeMeta/lib/就好了
#這個軟件可以從上次斷掉的地方重啟,嗯,比較好
#需要注意的是,在提交腳本文件時,不能在conda外環(huán)境提交,會報(bào)錯說無法激活你所需的環(huán)境
#BSUB -J squeezemeta_PZH_restart1
#BSUB -n 32
#BSUB -R span[hosts=1]
#BSUB -o squeezemeta_PZH_restart1.out
#BSUB -e squeezemeta_PZH_restart1.err
#BSUB -q smp
source activate SqueezeMeta
cd /public/home/jkyin/yjk/PZH_meta/squeezemeta/
restart.pl PZH
- #第六步很慢,作者說是吃I/O的一步,換普通節(jié)點(diǎn)
- #同樣慢
- #聯(lián)系作者,他們又寫了一個支持多線程的新 06.lca.pl, 把 這個新的06.lca.pl替代舊的就行了(在/public/home/jkyin/miniconda2/envs/SqueezeMeta/SqueezeMeta/scripts)
- 換了新的腳本之后10,000,000的orf大概跑了兩天兩夜。之前老腳本處理了近十天才2,000,000??
- #再重啟任務(wù)
#BSUB -J squeezemeta_PZH_restart1
#BSUB -n 32
#BSUB -R span[hosts=1]
#BSUB -o squeezemeta_PZH_restart1.out
#BSUB -e squeezemeta_PZH_restart1.err
#BSUB -q normal
source activate SqueezeMeta
cd /public/home/jkyin/yjk/PZH_meta/squeezemeta/
restart.pl PZH
- #第十步又報(bào)錯:TERM_MEMLIMIT: job killed after reaching LSF memory usage limit.
- #我又把任務(wù)切到胖節(jié)點(diǎn)
#BSUB -J squeezemeta_PZH_restart1
#BSUB -n 32
#BSUB -R span[hosts=1]
#BSUB -o squeezemeta_PZH_restart1.out
#BSUB -e squeezemeta_PZH_restart1.err
#BSUB -q smp
source activate SqueezeMeta
cd /public/home/jkyin/yjk/PZH_meta/squeezemeta/
restart.pl PZH
- 終于,跑完了
- 除了上述方法,還可以單獨(dú)在每一步重新運(yùn)行。具體來講就是~/miniconda3/envs/SqueezeMeta/SqueezeMeta/scripts文件夾中的腳本都可以單獨(dú)運(yùn)行
- 像這樣
#先切到項(xiàng)目文件存在的目錄
(base) [jkyin@mn02 squeezemeta]$ pwd
/public/home/jkyin/yjk/PZH_meta/squeezemeta
(base) [jkyin@mn02 squeezemeta]$ ll
total 1
drwxr-xr-x 7 jkyin LFRuan 4096 Apr 23 10:27 PZH
-rw-r--r-- 1 jkyin LFRuan 529 Mar 9 16:37 sample.txt
#然后比如要運(yùn)行步驟4
(base) [jkyin@mn02 squeezemeta]$~/miniconda3/envs/SqueezeMeta/SqueezeMeta/scripts/04.rundiamond.pl PZH
- 重啟也可以指定步驟
restart.pl -step 4 /path/to/your/project
下游分析及可視化
選擇1:在R中分析
可以把項(xiàng)目文件夾中的SqueezeMeta_conf.pl、intermediate和results下載到本地分析
不然,在服務(wù)器上,你每次退出R的時候,花大半小時加載的項(xiàng)目文件對象就會消失。反正我還是覺得本地Rstudio順手
- 首先你要安裝SQMtools包
把~/miniconda3/envs/SqueezeMeta/lib/R/library/SQMtools這個文件夾下載到本地,不要搞錯了。
千萬不要搞成/miniconda3/envs/SqueezeMeta/SqueezeMeta/lib/SQMtools這個了,不然你死活都安裝不上的??
壓縮為.zip結(jié)尾的文件
本地安裝就可以了
下面可以去看作者給出的例子,很詳細(xì)
還可以利用anvio可視化,作者同樣給出了很好的例子
- 有問題,來這里提問,作者很nice