cd-hit 是用于蛋白质序列或核酸序列聚类的工具,根据序列的相似度对序列进行聚类以去除冗余的序列,一般用于构建非冗余的数据集用于后续的实验分析。
cd-hit聚类算法
通常来说,根据序列相似度对序列进行聚类,首先想到的可能是通过计算两两序列之间的相似度对序列进行聚类,这样需要进行all by all的比较,相对来说比较费时,而 cd-hit 软件可以避开all by all比较的问题,大大缩短了运行时间。
cd-hit 是一种贪婪的增量聚类方法,首先对输入的序列根据序列的长短进行排序,并从最长到最短的顺序处理它们。将最长的序列自动的分为第一类并作为第一类的代表序列,然后将剩下的序列与在其之前发现的代表性序列进行比较,根据序列相似性将其归为其中的一类或成为新的一个聚类的代表序列,如此遍历所有序列完成聚类过程。 在默认方式中,序列仅和每一个聚类中的代表性序列(为这类中的最长序列)进行比较而不和这个类中的其他序列进行比对。 在准确模式下,序列会和每个聚类中的所有序列进行比较然后决定是成为新的一类还是归为其中的一类中。
cd-hit下载和安装
下载网址
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 的基本用法
1
cd-hit -i db -o db90 -c 0.9 -n 5 -M 16000 –d 0 -T 8
参数说明
-i 输入文件,fasta格式的序列
-o 输出文件路径和名字
-c 相似性(clustering threshold),0.9表示相似性大于等于90%的为一类
-n 两两序列进行序列比对时选择的 word size
-d 0表示使用 fasta 标题中第一个空格前的字段作为序列名字
-M 16000,16GB RAM
-T 使用的线程数
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 只能完成在40%以上的序列相似性的聚类,假设要将阈值设置为30%的相似性则需要两次聚类并使用psi-cd-hit.pl 脚本才能完成
1
2
cd-hit -i nr -o nr60 -c 0.6 -n 4 -d 0 -M 16000 -T 16 # 先将阈值设置为60%
psi-cd-hit.pl -i nr60 -o nr30 -c 0.3 # 在用psi-cd-hit完成30%的相似性聚类
cd-hit-2d的基本用法
1
cd-hit-2d -i db1 -i2 db2 -o db2novel -c 0.9 -n 5 -d 0 -M 16000 -T 8
cd-hit-2d 用于比较两个数据库中的相似性序列,默认识别在 db2 中的序列和 db1 中的序列相似性高于某个阈值的序列,输入是两个 fasta 格式的文件,输出是 db2 中与 db1 不相似的蛋白质序列文件和列出 db1 和 db2 之间相似序列的文件,如果想要输出 db1 中和 db2 中不相似的序列,可以将输入文件 db1 和 db2 的前后位置进行交换。
cd-hit-est的基本用法
1
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
cd-hit-est-2d的基本用法
1
cd-hit-est-2d -i db1 -i2 db2 -o db2novel -c 0.95 -n 10 -d 0 -M 16000 - T 8
cd-hit-est-2d 的基本用法基本和 cd-hit-2d 相同,只是 cd-hit-est 是用于核酸序列聚类
参考文献
Limin Fu, Beifang Niu, Zhengwei Zhu, Sitao Wu and Weizhong Li, CD-HIT: accelerated for clustering the next generation sequencing data. Bioinformatics, (2012), 28 (23): 3150-3152.
本文作者: biolearn
本文链接: https://huifangliu.github.io/2018/08/22/使用cd-hit对蛋白质或核酸序列进行聚类/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!
# 序列聚类