CD-HIT

文章目录

  • CD-HIT
    • ref
    • 介绍
    • 算法原理
      • 索引表
      • Short word filter
      • 短词统计
      • Banded alignment
      • 算法限制
    • PSI-CD-HIT
    • 在线服务器
    • 离线安装
    • 工具使用方式
      • CD-HIT-EST
        • 参数
        • 示例
      • CD-HIT-EST-2D
  • Gclust
  • CD-HIT-EST实验

CD-HIT

CD-HIT is a very widely used program for clustering and comparing protein or nucleotide sequences.

主要用于基因序列根据阈值去重

ref

官方:

CD-HIT 官网

github CD-HIT

cdhit-web-server

github-wiki-cdhit

最完善的介绍,包含算法、安装、用户指导、web服务器、使用案例、CD_HIT_OTU_MiSeq

资料:

CD-HIT的使用

介绍

github-wiki-cdhit

Currently, CD-HIT package has many programs: cd-hit, cd-hit-2d, cd-hit-est, cd-hit-est-2d, cd-hit-para, cd-hit-2d-para, psi-cd-hit, cd-hit-454, cd-hit-dup, cd-hit-lap, cd-hit-otu, etc. There are also many utility scripts, written in Perl, to help run and analyze CD-HIT jobs. Briefly:

  * 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 Web server	Cluster user-uploaded data 
  * cd-hit-para         Cluster sequences in parallel on a computer cluster	
  * scripts             Parse results and so on
  * h-cd-hit            Hierarchical clustering 		

算法原理

github-wiki-cdhit:里面有7篇论文说了这个

CD-HIT的使用:中文原理

采用贪婪增量聚类方法[a greedy incremental clustering approach];

将基因序列从长到短排序;

第一条最长的那条序列自动归为一类,作为第一簇具有代表性的序列;

剩余的每条序列和找到的代表性序列做比较,根据它是否与现有代表序列之一相似来分类为冗余或代表;

  • 快速模式下(默认)

    序列只和每个簇里的第一条代表序列(最长的)做比较

  • 准确模式下

    序列会和每个聚类中的所有序列进行比较然后决定是成为新的一类(簇)还是归为其中的一类中

  • 参数是-g

索引表

对kmer使用维一的索引表,就是每个kmer都有一个维一的索引,加快运算。

In CD-HIT, we use k=2~5 for proteins and k=8~12 for DNAs, because the all the k-mers can be indexed in computer memory.

Short word filter

短词过滤器

具有一定同一性的两个序列一定共享一定数量的同一的k-mers;

通过统计共有的kmers,两个序列的同一性会在某一截断值(cutoff)之下;

这个过滤器检查这些共同的k-mers和拒绝不必要的比对(alignments)

短词统计

短词过滤器高效的重点所在。

通过对真实比对(alignments)的统计分析,确定了常见k-mer在不同序列长度和同一性下的分布,并将结果应用于短词过滤。

Banded alignment

短词过滤器不仅过滤掉了不必要的比对,当需要比对时,它还识别了带状动态规划比对的窄带,这比常规的动态规划要快得多。

算法限制

主要是两点:

  • 阈值,不能低于40%
  • 序列长度

A limitation of short word filter is that it can not be used below certain clustering thresholds. For proteins:

  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:

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

Because of the algorithm, cd-hit may not be used for clustering proteins at <40% identity. Cd-hit-est cannot cluster very long sequences either (e.g. genome sized sequences). In such cases, please use PSI-CD-HIT, which will be introduced in following sections.

cd-hit 只能完成在40%以上的序列相似性的聚类,假设要将阈值设置为30%的相似性则需要两次聚类并使用psi-cd-hit.pl 脚本才能完成

PSI-CD-HIT

github 包含install和usage

蛋白质支持**截断值(-c)低于40%**的情况

psi-cd-hit完成小于40%的蛋白质相似性聚类

Hierarchical clustering中使用:

通过 CD-HIT 的多步迭代运行,您可以在邻接方法中执行聚类,从而生成层次结构。 第三步使用 psi-cd-hit,详见 psi-cd-hit 部分。

这种方式比一步聚类更快。 它也可以更准确。

一步聚类存在问题。 两个非常相似的序列 A 和 B 可以聚集成不同的簇。 例如,设聚类阈值为 60%,IAB(AB 的同一性)=95%,IAC ≥ 60%,但 IBC < 60%。 如果 C 首先被选为集群代表,那么 A 将在集群“C”中,但“B”不会,导致几乎相同的 AB 位于不同的集群中。 层次聚类将减少这个问题。

PSI-CD-HIT 以非常低的阈值聚集蛋白质,它还通过 blastp、blastn 和 metablast 聚集长 DNA 序列。 PSI-cd-hit 是一个 Perl 脚本,它运行类似于 CD-HIT 的增量算法,但使用 BLAST 来计算相似度。Below are the procedures of PSI-CD-HIT:

Sort sequences by decreasing length
First one is the first representative
Using 1st one blast all remaining sequences, pick up its neighbors that meet the clustering threshold
Repeat until done

在线服务器

  • cd-hit
  • cd-hit**-est**
  • **h-**cd-hit
  • **h-**cd-hit-est
  • cd-hit**-2d**
  • cd-hit-est**-2d**

cd-hit:处理蛋白质(肽 peptide),将满足相似性阈值(通常是序列同一性)的蛋白质聚集在一起。

  • input:fasta格式的蛋白质数据集
  • return:生成一个代表序列的 fasta 文件和一个簇列表的文本文件

cd-hit-est:同上,但处理的是核苷酸,且不能用于非常长的序列,如全基因组。

h-...:多个...运行。首先以高同一性(如 90%)聚集,非冗余序列进一步以低同一性(如 60%)聚集。第三个集群可以以较低的身份执行。多步运行比单步运行更高效、更准确。

...-2d:比较两个数据集。它识别 db2 中在某个阈值处与 db1 相似的序列。同样,cd-hit-est-2d不适用于非常长的序列。

  • input:fasta格式的两个数据集
  • return:db2 中与 db1 不相似的蛋白质的 fasta 文件和列出 db1 和 db2 之间相似序列的文本文件

离线安装

github install

支持conda install

conda install -c bioconda cd-hit

工具使用方式

github userGuide

CD-HIT-EST

github_CD-HIT-EST

bilibili 演示视频

输入冗余序列的fasta文件,输出非冗余的fasta文件

参数

-i 输入文件,fasta格式的序列

-o 输出文件路径和名字

-c 相似性(clustering threshold)。default 0.9,0.9表示相似性大于等于90%的为一类

-n 两两序列进行序列比对时选择的 word_length,default=5

-d 0表示使用 fasta 标题中第一个空格前的字段作为序列名字,default=20

-M 程序内存限制(M)。default 800; 0 for unlimitted;

-T 使用的线程数。default 1; with 0, all CPUs will be used

-g 1 or 0, default 0。通过 cd-hit 的默认算法,将一个序列聚类到第一个满足阈值的聚类(快速聚类)。 如果设置为 1,程序会将其聚类到满足阈值(准确但慢模式)的最相似的集群中,但 1 或 0 不会改变最终集群的代表。

-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

示例

CD-HIT的使用

cd-hit-est -i est_human -o est_human95 -c 0.95 -n 10 -d 0 -M 16000 - T 8 # cd-hit-est的使用,用于核酸序列聚类
-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 -i est_human -o est_human70 -c 0.7  -d 0 - T 8 # cd-hit-est的使用,用于核酸序列聚类

CD-HIT-EST-2D

Gclust

paper

Gclust是一种用于聚类非常长的微生物基因组序列的新工具。

CD-HIT-EST实验

  1. fasta文件顺逆序对结果的影响

    操作:将数据顺序排列和逆序排列

    结果:得到的结果不一致

  2. 采用快速算法和准确算法对结果的影响

    操作:使用-g 0-g 1

    结果:没发现改变

  3. 分段执行和统一执行对结果的影响

    操作:全部数据一次性做cd-hit和数据拆分后做数次ch-hit

    结果:拆分的得到的结果冗余度更高

你可能感兴趣的:(bioinfo,生物信息,cd-hit,序列去冗余,核苷酸,蛋白质)