使用cd-hit对核酸序列或氨基酸序列聚类

目录

        • cd-hit简要原理
        • cd-hit的参数
        • 叮!


cd-hit简要原理

cd-hit是一款用于蛋白质序列或者核酸序列聚类的工具,由 Dr. Weizhong Li开发。其主要目的是在一堆较相似的序列找出几条代表序列,这几条代表序列就能分别代表这堆序列中的一个小类。

cd-hit算法的核心在于首先找出较长的序列作为代表序列,之后将剩下的序列与这些代表序列比对。某条序列与某代表序列比对达到自行设置的相似性阈值后则直接归为此代表序列一类,默认情况下某序列第一次找到符合条件的代表序列后就不再进行后续与其它代表序列的比对。

从其设计原理来看此工具也具有一些缺点,因为其首先找到长的代表序列,剩下的序列只与这些代表序列比对,而剩下的序列之间不用互相比对,某一类序列之间也没有互相比对,但剩下的序列间相似性差距可能也很大,这样就可能导致结果不够可靠。但是也正是因为这样比对的方式,不用所有序列间进行两两比对,使得这个工具运行速度很快。因此实际应用时要根据需要选择使不使用此工具。

cd-hit的参数

cd-hit一般在命令行下操作,只需要一行代码即可,十分方便,其有很多参数可以帮助改变聚类方式及聚类的相似性阈值等。我仅列了几个个人认为比较重要的参数,当然有需要的时候可以自己敲出cd-hit -h查看帮助文档哈!

   -i	input filename in fasta format, required
   # 输入文件,必需。为fasta格式。基本格式为一行以'>'开头的注释行和单独的一列序列行反复重复。
   
   -o	output filename, required
   # 输出文件名,必需。
   
   -c	sequence identity threshold, default 0.9
 	# 相似性阈值,默认为0.9,c必须和字长一起调整,字长最长为5,最短为2,c最小为0.4,需要越少的类就
 	选择越小的c值

   -M	memory limit (in MB) for the program, default 800; 0 for unlimitted;
   # 程序占用的内存
   
   -T	number of threads, default 1; with 0, all CPUs will be used
   # 线程
   
   -n	word_length, default 5, see user's guide for choosing it
   # 字长,字长代表在比对时两个序列比对上的相邻的几个碱基或者氨基酸,字长越长那么相似性越高。默认为5
   最少为2,此时相似性阈值最低,可以设置为0.4
   
   -l	length of throw_away_sequences, default 10
   # 需要丢弃掉不管的序列,blast有时候会生成很短的序列,这个选项很适合用。
 	
   -s	length difference cutoff, default 0.0
 	if set to 0.9, the shorter sequences need to be
 	at least 90% length of the representative of the cluster
 	# 即短序列若要和代表序列匹配需要达到的长度,默认为0
 	
   -S	length difference cutoff in amino acid, default 999999
 	if set to 60, the length difference between the shorter sequences
 	and the representative of the cluster can not be bigger than 60
 	# 同s,但是是以数字表示不能超过的个数

   -g	1 or 0, default 0
 	by cd-hit's default algorithm, a sequence is clustered to the first 
 	cluster that meet the threshold (fast cluster). If set to 1, the program
 	will cluster it into the most similar cluster that meet the threshold
 	(accurate but slow mode)
 	but either 1 or 0 won't change the representatives of final clusters
 	# 此选项即是否选择是否将序列划入匹配到的第一个代表序列,若设置为1,那么还需要和其它代表序列进行
 	比较获取更为接近的类,因此分类效果会更好。但相应的会延长时间。默认为0

叮!

cd-hit本身只能比对到相似性为40%的哦,如果有更低的相似性要求的话,还是有解决办法的,那就是使用PSI-CD-HIT,这个需要使用到另外一个脚本,到作者的github上下载代码就行啦,有两个文件是需要下载的,即psi-cd-hit.pl和psi-cd-hit-local.pl。网站在https://github.com/weizhongli/cdhit。我也帮大家整理了一份,在这里。详细使用方式信息参考github上的用户引导吧,其实和cd-hit差不多。→ link

关于字长的一张图:
使用cd-hit对核酸序列或氨基酸序列聚类_第1张图片
图中a、b、c、d分别代表5、4、3、2的字长。读开发者的user guide,其中写到了要确定两个链是否达到某相似性阈值,那么针对某字长的出现次数是有要求的,即高于某个值后则代表两条链有相似性,当然其实字长设置后还是会有比字长更长的相邻核酸或氨基酸能匹配上。

参考:http://www.docin.com/p-268272221.html
参考:“CD-HIT: accelerated for clustering the next generation sequencing data”, Limin Fu, Beifang Niu, Zhengwei Zhu, Sitao Wu & Weizhong Li. Bioinformatics, (2012) 28:3150-3152

你可能感兴趣的:(生信新手分享,jie,经验分享)