CD-HIT
cd-hit 是用于蛋白質(zhì)序列或核酸序列聚類的工具熊锭,根據(jù)序列的相似度對序列進行聚類以去除冗余的序列弧轧,一般用于構建非冗余的數(shù)據(jù)集用于后續(xù)的實驗分析。
通常來說球涛,根據(jù)序列相似度對序列進行聚類劣针,首先想到的可能是通過計算兩兩序列之間的相似度對序列進行聚類,這樣需要進行all by all的比較亿扁,相對來說比較費時捺典,而 cd-hit 軟件可以避開all by all比較的問題,大大縮短了運行時間从祝。
cd-hit 是一種貪婪的增量聚類方法襟己,首先對輸入的序列根據(jù)序列的長短進行排序,并從最長到最短的順序處理它們牍陌。將最長的序列自動的分為第一類并作為第一類的代表序列擎浴,然后將剩下的序列與在其之前發(fā)現(xiàn)的代表性序列進行比較,根據(jù)序列相似性將其歸為其中的一類或成為新的一個聚類的代表序列毒涧,如此遍歷所有序列完成聚類過程贮预。 在默認方式中,序列僅和每一個聚類中的代表性序列(為這類中的最長序列)進行比較而不和這個類中的其他序列進行比對。 在準確模式下仿吞,序列會和每個聚類中的所有序列進行比較然后決定是成為新的一類還是歸為其中的一類中滑频。
cd-hit下載和安裝
下載網(wǎng)址
https://github.com/weizhongli/cdhit/releases
wget https://github.com/weizhongli/cdhit/releases/download/V4.6.8/cd-hit-v4.6.8-2017-1208-source.tar.gz ## 下載cd-hit
tar -zxvf cd-hit-v4.6.8-2017-1208-source.tar.gz ## 解壓
cd cd-hit-v4.6.8-2017-1208
make ## 編譯
cd cd-hit-auxtools
make ## 編譯
## 如果編譯失敗,可以下載二進制版本唤冈,解壓就可以使用不用編譯
wget https://github.com/weizhongli/cdhit/releases/download/V4.6.7/cd-hit-v4.6.7-2017-0501-Linux-binary.tar.gz ## 解壓即用峡迷,不用編譯`
cd-hit的使用
* cd-hit Cluster peptide sequences
* cd-hit-est Cluster nucleotide sequences
* cd-hit-2d Compare 2 peptide databases
* cd-hit-est-2d Compare 2 nucleotide databases
* psi-cd-hit Cluster proteins at <40% cutoff
* cd-hit-lap Identify overlapping reads
* cd-hit-dup Identify duplicates from single or paired Illumina reads
* cd-hit-454 Identify duplicates from 454 reads
* cd-hit-otu Cluster rRNA tags
* cd-hit-para Cluster sequences in parallel on a computer cluster
* h-cd-hit Hierarchical clustering
cd-hit 的基本用法
cd-hit -i db -o db90 -c 0.9 -n 5 -M 16000 –d 0 -T 8
參數(shù)說明
-i 輸入文件,fasta格式的序列
-o 輸出文件路徑和名字
-c 相似性(clustering threshold)你虹,0.9表示相似性大于等于90%的為一類
-n 兩兩序列進行序列比對時選擇的 word size
-d 0表示使用 fasta 標題中第一個空格前的字段作為序列名字
-M 16000绘搞,16GB RAM
-T 使用的線程數(shù)
輸入文件
Cd-hit的輸入文件僅有一個fasta格式文件 ,一般來說cd-hit是將幾個樣品的基因或蛋白序列進行聚類傅物,所以需要將這些樣品的序列匯總到一起作為輸入文件夯辖,可在linux系統(tǒng)下通過cat命令實現(xiàn):
cat a.fasta b.fasta c.fasta > all.fasta
其中a.fasta,b.fasta董饰,c.fasta為fasta格式的三個樣品基因或蛋白序列楼雹,all.fasta為匯總后的序列,在分析中作為cd-hit的輸入序列尖阔。值得注意的是,在三個樣品序列中不能有序列名相同的序列榨咐,否則會出現(xiàn)錯誤介却。因此,一般在分析時會在各樣品序列名前添加樣品名块茁,這樣即可避免重復齿坷。序列名是fasta文件中以“>”開頭的行空格之前的內(nèi)容,
輸出文件介紹
Cd-hit有兩個輸出文件:一個是只含有所有代表序列(即去冗余后的序列)的fasta文件数焊,其格式參看圖2-1永淌;另一個是以.clstr結尾的聚類信息文件,其格式如圖4-1佩耳。
Choose of word size:
-n 5 for thresholds 0.7 ~ 1.0
-n 4 for thresholds 0.6 ~ 0.7
-n 3 for thresholds 0.5 ~ 0.6
-n 2 for thresholds 0.4 ~ 0.5
cd-hit-est的基本用法
cd-hit-est -i est_human -o est_human95 -c 0.95 -n 10 -d 0 -M 16000 - T 8
cd-hit-est 的基本用法基本和 cd-hit 相同遂蛀,只是 cd-hit-est 是用于核酸序列聚類,其中 word size 范圍有點差異
-n 10, 11 for thresholds 0.95 ~ 1.0
-n 8,9 for thresholds 0.90 ~ 0.95
-n 7 for thresholds 0.88 ~ 0.9
-n 6 for thresholds 0.85 ~ 0.88
-n 5 for thresholds 0.80 ~ 0.85
-n 4 for thresholds 0.75 ~ 0.8
快主要是兩個方面的原因:一個是使用了word過濾方法干厚,即如果兩條序列之間的相似性在80%(假設序列長度為100)李滴,那么它們至少有60個相同的長度為2的word,至少有40個相同的長度為3的word蛮瞄,至少有20個相同的長度為4的word所坯。基于這個原則挂捅,在處理新的序列的時候芹助,如果新的序列與已有序列的相同word的長度不能滿足這些要求則不需要進行比對了,這極大的降低了時間消耗;另外一個速度快的原因是使用了index table状土,可以很快的計算序列之間相同word的數(shù)目无蜂。
缺點
1 它不能保證同一個序列類中的序列的相似性都在threshold之上,因為每次比對都是用新序列與序列類的代表序列進行声诸,這就有可能使得序列類中除了代表序列外其他序列之間的相似性在threshold之下酱讶。比如A是代表序列,B與A的相似性大于0.95彼乌,C與A的相似性也大于0.95泻肯,但是這并不能保證B與C的相似性也大于0.95.
2 它不能保證一個序列類的病毒與另外一個序列類中的病毒的相似性也在threshold之上,原因還是在于用代表序列代表了整個序列類灶挟。
3 基于word filter的方法使得使用每個長度的word能夠處理的冗余性水平有限,如使用長度為2的word只能夠得到相似性在50%以上的序列毒租,長度為3的word只能夠得到相似性在66.7%以上的序列類稚铣,類似的,長度為5的word只能夠得到相似性在80%以上的序列墅垮。在實際應用的時候需要注意選擇的word長度與threshold的匹配惕医。