場景+6個高頻參數(shù),新手5分鐘跑通)
CD-HIT序列聚類工具3個實戰(zhàn)場景6個高頻參數(shù)新手5分鐘跑通【免費(fèi)下載鏈接】cdhitAutomatically exported from code.google.com/p/cdhit項目地址: https://gitcode.com/gh_mirrors/cd/cdhit你是否遇到過這種場景手里有幾十萬條蛋白質(zhì)序列想做去冗余但兩兩比對跑了一整天還只算到一半CD-HIT 正是為這種序列太多、算力不夠的痛點(diǎn)而生。它通過啟發(fā)式策略快速完成序列聚類將海量序列壓縮為非冗余集合讓你的分析流程不再被計算瓶頸卡住。 序列聚類到底在幫你解決什么問題想象你收集了一萬張名片其中張三可能留了三個不同號碼李四換了兩次公司。你要做的不是逐張比對而是先按人歸堆再在堆里挑最完整的那張留下。序列聚類就是這件事的分子生物學(xué)版本。你的數(shù)據(jù)庫里可能有上千條序列來自同一個蛋白家族只是變異了少數(shù)幾個氨基酸。CD-HIT 去冗余的核心價值在于用遠(yuǎn)小于兩兩比對的計算量找到夠像的序列組每組只留一條代表。說白了它把 O(N2) 的暴力比對降到了接近 O(N log N)百萬級序列從跑一天變成跑幾分鐘。你不需要理解內(nèi)部 k-mer 篩選和窗口比對的全部細(xì)節(jié)只需知道輸入一堆序列輸出一堆最精簡但不丟信息的簇剩下的交給下游分析。?? 五分鐘上手從下載到第一次跑通CD-HIT安裝教程三步完成編譯整個過程不需要安裝任何第三方依賴GCC 和 Make 就夠。第一步把源碼拉下來git clone https://gitcode.com/gh_mirrors/cd/cdhit第二步進(jìn)入目錄編譯主程序cd cdhit make第三步用你手頭任意一個 FASTA 文件試跑./cd-hit -i your_seq.fasta -o test_clstr -c 0.9 -n 5系統(tǒng)要求最低配置操作系統(tǒng)Linux / UnixmacOS 可用 Homebrew 裝 g內(nèi)存4 GB序列超 100 萬條建議 16 GB處理器雙核即可多核加-T可線性加速編譯器GCC 4.8 或兼容 g如何確認(rèn)裝好了運(yùn)行./cd-hit -h如果打印出參數(shù)幫助列表能看到-i、-o、-c等選項說明編譯成功可以直接用了。 只記這 6 個參數(shù)就夠CD-HIT 完整參數(shù)有幾十個但你日常 90% 的場景只用到下面這幾個。記住它們其他的遇到再查手冊。參數(shù)人話解釋推薦取值什么時候會用到-i輸入文件路徑必填每次都用-o輸出文件前綴必填每次都用-c相似度閾值0~1蛋白 0.9 / 核酸 0.95控制多像才算同族-nk-mer 長度蛋白 5 / 核酸 10決定篩選靈敏度一般不改-T線程數(shù)等于 CPU 核數(shù)多核機(jī)器加速-M內(nèi)存上限MB8000~32000大文件防 OOM核酸 vs 蛋白的小差異處理蛋白質(zhì)時默認(rèn)-n 5處理 EST 或基因組片段時改用cdhit-est默認(rèn)-n 10。閾值-c的舒適區(qū)也不同蛋白常用 0.9核酸常用 0.95 起步。其他參數(shù)如-s最短序列占比、-aL比對段占長序列比例屬于微調(diào)項初學(xué)時保持默認(rèn)即可。 三個典型去冗余任務(wù)跟著命令做一遍場景 A蛋白質(zhì)序列聚類——給數(shù)據(jù)庫去冗余假設(shè)你拿到 20 萬條 UniProt 序列想構(gòu)建一個非冗余參考集用于后續(xù) BLAST 比對或功能注釋。./cd-hit -i uniprot.fasta -o sprot_nr -c 0.9 -n 5 -T 8 -M 16000 -d 0跑完后sprot_nr.clstr文件記錄了每條序列歸入哪個簇、簇代表是誰。用clstr_rep.pl提取代表序列即可得到精簡庫。20 萬條在 8 核機(jī)器上大約 2~4 分鐘完成-d 0保證輸出里保留完整的原始序列標(biāo)識符。場景 B轉(zhuǎn)錄組異構(gòu)體聚類RNA-seq 組裝出的轉(zhuǎn)錄本里同一基因常有多個剪接變體長度和 exon 結(jié)構(gòu)略有差異。用cdhit-est做核酸級聚類閾值要比蛋白高一些./cdhit-est -i transcripts.fasta -o est_clstr -c 0.95 -n 10 -T 4 -M 8000 -aS 0.9-aS 0.9意味著短序列至少要覆蓋長序列的 90% 才判定為匹配。結(jié)果里每個簇就是一個轉(zhuǎn)錄本家族簇大小直接反映該基因的異構(gòu)體豐富度——大簇往往對應(yīng)高表達(dá)基因的多變體。場景 C宏基因組OTU聚類——16S rRNA 分析Miseq 平臺的 16S 雙端 reads 需要先拼接、去嵌合體再用 CD-HIT 與參考庫比對來劃分 OTU。項目里提供了現(xiàn)成 Perl 腳本省去了手動拼接步驟perl usecases/Miseq-16S/cd-hit-otu-miseq-PE.pl -i sample_PE.fa -r ref_16s.fasta -o otu -c 0.97輸出是一張 OTU 表每行一個 OTU列出參考序列命中數(shù)和樣本 reads 分配。閾值 0.97 是 16S 分種的經(jīng)典切點(diǎn)對應(yīng)約 3% 序列差異。 數(shù)據(jù)量大、內(nèi)存吃緊試試這些調(diào)優(yōu)思路內(nèi)存總是不夠用本質(zhì)是 CD-HIT 需要把序列哈希表整塊放進(jìn)內(nèi)存。一招加-M限制上限 加-l過濾掉過短序列如-l 30短序列既占內(nèi)存又信息量低提前砍掉最劃算。序列超過 500 萬條別硬塞一次。分階段聚類先用低閾值-c 0.85粗聚一輪壓縮規(guī)模再用高閾值-c 0.95細(xì)聚。或者把文件切成幾塊塊內(nèi)聚完再用cd-hit-2d做跨塊比對適合沒有單臺大內(nèi)存機(jī)器的情況。速度上不去先檢查你是不是跑在默認(rèn)單線程。加-T到實際核數(shù)通常能線性加速。如果核數(shù)已經(jīng)拉滿還是慢適當(dāng)增大-n蛋白從 5 改到 6可以顯著減少候選對數(shù)量代價是靈敏度略降對去冗余場景影響很小。磁盤空間緊張聚類過程會生成臨時哈希文件確保工作目錄有 2~3 倍輸入文件大小的空閑空間別把臨時文件寫到系統(tǒng)盤。 踩坑速查三個高頻問題的快速修復(fù)| | 內(nèi)容 | |--|------| |癥狀| 程序直接退出日志報 memory allocation failed 或被系統(tǒng) OOM Killer 殺掉 | |原因|-M設(shè)得比實際可用內(nèi)存還大或輸入序列量遠(yuǎn)超預(yù)期 | |修復(fù)| 把-M降到物理內(nèi)存的 70%16 GB 機(jī)器設(shè)-M 12000同時加-l 30過濾短序列 || | 內(nèi)容 | |--|------| |癥狀| 簇數(shù)量異常——要么幾乎全是單條序列沒聚到一起要么少數(shù)巨簇吞了所有序列 | |原因|-c閾值不合適或-aL/-aS的覆蓋長度要求太嚴(yán)/太松 | |修復(fù)| 蛋白先試 0.9、核酸試 0.95簇太散就降閾值到 0.85巨簇過多就加-aL 0.8要求比對段占長序列 80% 以上 || | 內(nèi)容 | |--|------| |癥狀| 百萬級序列跑了幾小時還沒完CPU 利用率卻只有 20% | |原因| 單線程模式或-n太小導(dǎo)致候選對數(shù)量爆炸 | |修復(fù)| 加-T 8或?qū)嶋H核數(shù)蛋白場景把-n從 5 調(diào)到 6預(yù)處理時去掉低復(fù)雜度序列 | 延伸工具與進(jìn)一步閱讀clstr_rep.pl從.clstr文件提取每個簇的代表序列 →perl clstr_rep.pl result.clstr reps.fastaclstr_size_stat.pl統(tǒng)計簇大小分布快速判斷聚類是否合理 →perl clstr_size_stat.pl result.clstr stats.txtclstr2tree.pl把聚類層次關(guān)系轉(zhuǎn)成 Newick 樹格式 →perl clstr2tree.pl result.clstr tree.nwkcd-hit-2d兩個數(shù)據(jù)庫間的序列比對適合增量更新場景 →./cd-hit-2d -i new.fasta -d existing.clstr -c 0.9官方文檔與案例用戶手冊 PDF宏基因組 16S 案例說明更新日志?? 寫在最后CD-HIT 做的事情很樸素把長得像的序列歸為一堆每堆只留一個代表。但它樸素得可靠——從 UniProt 級別的蛋白去冗余到 Miseq 16S 的 OTU 劃分底層邏輯沒變過只是參數(shù)微調(diào)。如果你是做蛋白質(zhì)組學(xué)數(shù)據(jù)庫構(gòu)建、轉(zhuǎn)錄組異構(gòu)體分析或者宏基因組 OTU 聚類的研究生或生信工程師CD-HIT 值得放進(jìn)你的工具箱而且大概率會成為你跑得最頻繁的那幾個命令之一。引用Li W, Godzik A. CD-HIT: a fast program for clustering and comparing large sets of protein or nucleotide sequences. Bioinformatics. 2006; 22(16):1759-1760.【免費(fèi)下載鏈接】cdhitAutomatically exported from code.google.com/p/cdhit項目地址: https://gitcode.com/gh_mirrors/cd/cdhit創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考