1. 程式人生 > >28、cd-hit去除冗余序列

28、cd-hit去除冗余序列

log 單個 結果 格式 pre 選擇 rep 比較 form

轉載:http://blog.sina.com.cn/s/blog_670445240101nidy.html

網址:http://cd-hit.org ;http://www.bioinformatics.org/cd-hit/ ;

下載:http://www.bioinformatics.org/cd-hit/

CD-HIT 去冗余,也可以叫做相似序列的聚類。

簡介:CD-HIT stands for Cluster Database at High Identity with Tolerance. The program (cd-hit) takes a fasta format sequence database as input and produces a set of ‘non-redundant‘ (nr) representative sequences as output. In addition cd-hit outputs a cluster file, documenting the sequence ‘groupies‘ for each nr sequence representative.

輸入的文件是fasta格式的序列文件,通過序列比對聚類(Cluster)的方法去除冗除、相似的序列,最後輸出一個非冗除(non-redundant,nr)的 *.fa 序列文件。 另外,還有一個序列比對的結果* .fa.clstr

基本思路是首先對所有序列按照其長度進行排序,然後從最長的序列開始,形成第一個序列類,然後依次對序列進行處理,如果新的序列與已有的序列類的代表序列的相似性在cutoff以上則把該序列加到該序列類中,否則形成新的序列類。之所以快主要是兩個方面的原因:一個是使用了word過濾方法,即如果兩條序列之間的相似性在80%(假設序列長度為100),那麽它們至少有60個相同的長度為2的word,至少有40個相同的長度為3的word,至少有20個相同的長度為4的word。基於這個原則,在處理新的序列的時候,如果新的序列與已有序列的相同word的長度不能滿足這些要求則不需要進行比對了,這極大的降低了時間消耗;另外一個速度快的原因是使用了index table,可以很快的計算序列之間相同word的數目。

#當序列相似性在80%時,有20個位點是有差異的,極端的情況就是這20個位點對應的長度為2的字符串都不一樣,因此是40個不一樣,當有更多的不一樣時,兩條序列的相似性不可能在80%;同理,如果這20個位點對應的長度為4的字符串都不一樣,則有80個不一樣。

cd-hit現在已經形成了一個軟件包,可以對單個數據集進行去冗余,包括DNA/RNA序列和蛋白序列,也可以對兩個數據集進行比較。它的使用也很簡單,下載軟件包後解壓縮,進入該文件夾,"make"就可以了。其使用也簡單,如下:

./cd-hit -i inputfile -o outputfile -c threshold -n wordLength

盡管很好用也很快,但是也需要註意其缺點:

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的匹配。

28、cd-hit去除冗余序列