2019-12-23 学习记录7

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 的基本用法

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 使用的线程数

输入文件

Cd-hit的输入文件仅有一个fasta格式文件 ,一般来说cd-hit是将几个样品的基因或蛋白序列进行聚类,所以需要将这些样品的序列汇总到一起作为输入文件,可在linux系统下通过cat命令实现:

cat a.fasta b.fasta c.fasta > all.fasta

其中a.fasta,b.fasta,c.fasta为fasta格式的三个样品基因或蛋白序列,all.fasta为汇总后的序列,在分析中作为cd-hit的输入序列。值得注意的是,在三个样品序列中不能有序列名相同的序列,否则会出现错误。因此,一般在分析时会在各样品序列名前添加样品名,这样即可避免重复。序列名是fasta文件中以“>”开头的行空格之前的内容,

输出文件介绍

Cd-hit有两个输出文件:一个是只含有所有代表序列(即去冗余后的序列)的fasta文件,其格式参看图2-1;另一个是以.clstr结尾的聚类信息文件,其格式如图4-1。


2019-12-23 学习记录7_第1张图片
8631a9c5cf0d4153a7a2f3fa9c88ce94.jpeg

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-est的基本用法

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

快主要是两个方面的原因:一个是使用了word过滤方法,即如果两条序列之间的相似性在80%(假设序列长度为100),那么它们至少有60个相同的长度为2的word,至少有40个相同的长度为3的word,至少有20个相同的长度为4的word。基于这个原则,在处理新的序列的时候,如果新的序列与已有序列的相同word的长度不能满足这些要求则不需要进行比对了,这极大的降低了时间消耗;另外一个速度快的原因是使用了index table,可以很快的计算序列之间相同word的数目。

缺点

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

使用cd-hit对蛋白质或核酸序列进行聚类
教程 | 如何用cd-hit去除冗余序列?
Cdhit的使用说明

你可能感兴趣的:(2019-12-23 学习记录7)