cd-hit记录解读

一:算法介绍:

翻译自:https://github.com/weizhongli/cdhit/wiki/1.-Algorithm#user-content-References
聚类序列数据库通常需要进行全对全比较;因此非常耗时。许多方法使用BLAST计算所有对所有相似性。对于这些方法来说,要对大数据库进行聚类非常困难。而CD-HIT可以使用基于短word的启发式算法避免许多成对的序列比对。
CD-HIT是一种贪婪的增量聚类方法。基本CD-HIT算法将输入序列从长到短排序,并按最长到最短的顺序连续处理它们。第一个序列自动分类为第一个聚类代表序列。然后,每个其余序列的查询序列与在其之前找到的代表序列进行比较,并根据其是否类似于现有代表序列之一而分类为冗余或代表序列。在默认方式(快速模式)下,查询被分组到第一个代表中而无需与其他代表进行比较。在精确模式下,查询将与所有代表进行比较,并被分组到最相似的一个。
基于这种贪婪的方法,我们建立了几个集成的启发式,使 CD-HIT 非常有效。
Index table
大多数序列对齐工具使用短词或 k-mer(k 是长度)来加速计算。例如,BLASTN 默认使用 11-mer,而 BLASTP 默认使用 3-mer。与大多数快速对齐方法中使用的哈希表相反,索引表为每个唯一的 k-mer 使用唯一的索引,因此索引表比哈希表快得多。在 CD-HIT 中,蛋白质的 k = 2 ~ 5,DNA 的 k = 8 ~ 12,因为所有的 k-mers 都可以在计算机内存中进行索引。
Short word filter
两个具有某种相似性的序列必须至少共享特定数量的相同的 k-mer。通过计算共同的 k-mer 可以确定两个序列之间的相似性是否低于截止值。过滤器会检查共同的 k-mer,并拒绝不必要的序列比对。
Short word statistics
它是短词过滤器高效运行的关键(Li,et al。 ,2002)。通过对实数比对的统计分析,我们识别了不同序列长度和同一性下的公共 k-mer 的分布,并将结果应用于短word过滤。
Banded alignment(比对校准)
短词过滤器不仅可以过滤掉不必要的对齐,而且在需要对齐时还可以为带状动态规划对齐识别一个窄带,这比常规动态规划要快得多。
Algorithm limitations
短word过滤器的一个局限性是它不能在某些聚类阈值以下使用:
word size 5 is for thresholds 0.7 ~ 1.0
word size 4 is for thresholds 0.6 ~ 0.7
word size 3 is for thresholds 0.5 ~ 0.6
word size 2 is for thresholds 0.4 ~ 0.5 (also see psi-cd-hit)
For DNAs:
Word size 10-11 is for thresholds 0.95 ~ 1.0
Word size 8,9 is for thresholds 0.90 ~ 0.95
Word size 7 is for thresholds 0.88 ~ 0.9
Word size 6 is for thresholds 0.85 ~ 0.88
Word size 5 is for thresholds 0.80 ~ 0.85
Word size 4 is for thresholds 0.75 ~ 0.8

由于算法的原因,cd-hit不适用于在<40%的相似度下对蛋白质进行聚类。cd-hit-est也不能将非常长的序列(例如基因组大小的序列)进行聚类。在这种情况下,请使用将在以下部分介绍的PSI-CD-HIT。

二:参数设置:


-i:fasta格式的输入序列文件,多个宏基因组的基因序列需要合并到一起
-o:输出文件的文件名
-c:序列相似度identity阈值,默认为0.9
-G:设置全局比对还是局部比对,默认为1也即全局比对,如果设置0也即局部比对,需要配和覆盖率参数使-A、-aL、AL、-aS、-AS、-U、-uL、-uS
-M:内存限制(MB),默认为800,设置0则无限制
-T:程序运行使用的核数,默认为1,设置为0则使用所有核
-n:word过滤时的word长度,默认为5,具体如下所示:
-n 5 for -c 0.7 ~ 1.0
-n 4 for -c 0.6 ~ 0.7
-n 3 for -c 0.5 ~ 0.6
-n 2 for -c 0.4 ~ 0.5
-l:分析序列的最短长度,低于此长度的序列被丢掉,默认为10
-t:对于冗余的容忍度,默认为2,也即去冗余后还可能会保留有2%的冗余
-d:聚类信息文件中各个聚类组中序列名的长度,默认为20,设为0则将取完整序列名
-s:序列长度差异阈值,默认为0,如果设置0.9较短序列应该达到代表序列长度的90%
-S:序列长度差异阈值,默认为999999,如果设置为60,较短序列与代表序列的长度差异不能超过69个氨基酸
-aL:控制代表序列比对覆盖率的参数,默认为0,若设为0.9则表示比对区间要占到较长序列的90%
-AL:控制代表序列比对覆盖率的参数,默认为99999999,如果设置为60,比对的序列中较长序列长度为400,那么比对长度应大于340
-aS:控制代表序列比对覆盖率的参数,默认为0,如果设置为0.9,那么比对区间应占到较短序列长度的90%
-AS:控制代表序列比对覆盖率的参数,默认为99999999,如果设置为60,比对的序列中较短序列长度为400,那么比对长度应大于340
-A:两条序列最小的比对覆盖率,默认为0
-uL:对较长序列最大不匹配的比例,默认为1.0,如果设置为0.1,不匹配区间不能超过较长序列的10%
-uS:对较短序列最大不匹配的比例,默认为1.0,如果设置为0.1,不匹配区间不能超过较短序列的10%
-U:最大的不匹配长度,默认为99999999
-p:默认为0,设置为1则在聚类文件中打印详细的比对情况
-g:是否开启精确模式,默认为0也即关闭。在默认算法中,一个序列会依次与代表序列进行比对直到满足相似度阈值,而设置为1则会与所有代表序列进行比对,选择最佳的相似度进行聚类
-sc:默认为0,也即根据代表序列长度对聚类簇进行排序,设置为1则根据聚类簇的大小(也即每个聚类簇的序列数目)进行排序
-sf:默认为0,也即根据代表序列长度对输出fasta序列,设置为1则根据聚类簇的大小(也即每个聚类簇的序列数目)对输出序列进行排序

一般设置95%的identity、90%的短序列coverage

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值