目录
定义
CDD全名为Conserved Domain Database,它的出现是因为NCBI数据库中蛋白的序列数据在目前呈现指数级别的增加,在目前,假如依然按照序列之间的比对会导致资源的极大地浪费和消耗,因此CDD出现了,它出现的目的是我们再搜索蛋白序列的时候可以使用一个保守的结构域的信息来对备选序列进行注释和研究。通过CDD我们可以了解到蛋白的进化和功能信息,因此达到较快的获得最有用的信息的目的。关于CDD的具体介绍和信息在这里可以找到
使用方法
获取数据
按照常规的blast的流程,我们需要先建立一个blast database,对于CDD分析的blast的流程,我们需要先利用PSSM(位置特异性打分矩阵)数据来建立一个数据库,PSSM是一个找出比对之后的蛋白序列的保守序列的矩阵格式。这个矩阵数据NCBI已经为我们准备好了,有两种格式
格式1:
提供原始的PSSM矩阵数据,数据的地址为:CDD.tar.gz,点击直接下载,该数据需要后续的建立数据库操作,后续会有说明
格式2
同样也准备好了从原始数据格式转化后的数据库,我们下载后可以直接使用,具体地址为:little_endian
建立数据库
由于blast一直在更新,所以在建立数据库之前尽量要保证自己所用的可执行文件是最新版的,具体可以到这里下载blast_newest,这里提供的是2.9.0版本的blast,运行环境为linux的64位系统,直接解压,添加到运行环境中即可。注意:不同的版本建立database的具体操作可能不同,因此尽量保证自己的版本比较新,在按照标准的操作来建立database。
数据库分类
NCBI根据数据的不同的来源将数据库进行了分类,不论是不是预创建的数据库还是原始数据都有这样的分类,由于数据库的来源不同,所以相同的保守结构的展现方式会有所不同,为了展示一个不冗余的信息,数据库最后将结构域分为几个超家族,具体的分类信息有:
NCBI-Curated Domains
该数据集是利用蛋白的比对信息结合3D结构信息进行相互补充,进而获取到的数据信息
NCBIfams
这个数据集是利用隐马模型获取到的微生物蛋白数据,该数据是为了更好地理解和注释微生物基因组使用,
External Data Sources
CDD数据库同时也从其他数据库中收集数据并且整合,信息如下:
- SMART:全称Simple Modular Architecture Research Tool,SMART是一个识别蛋白保守结构域的网络应用,提供基因和蛋白的结构分析。
- Pfam:全称为Protein families,是一个蛋白结构域数据库,该数据库使用隐马尔可夫模型构建。
- COGs:全称为Clusters of Orthologous Groups of proteins,是一个NCBI策划的蛋白分类资源。
- TIGRFAMs:全称为The Institute for Genomic Research’s database of protein families,该数据库由手动的结构域,基于隐马尔可夫模型收集的结构域,多序列比对,基因本体论,以及与其他数据库交叉验证的结构域组成。
- PRK:全称为PRotein K©lusters,该数据库由原核和叶绿体的的表达蛋白序列组成,它包含策划以及未策划的序列集群。
- other project:KOG:COG对应的真核数据库,LOAD:Library of Ancient Domains,
执行rpsblast
终于,我们要对我们的蛋白序列进行rpsblast,找出我们蛋白中到底有什么保守的结构域,可能有什么样的功能,甚至对这个蛋白的来源(比如逆转录病毒的来源)都会提供有效的信息。
本次执行主要是利用预建立好的database进行的数据分析
#我们需要查询的序列数据储存在test_1.fasta,指定db文件(只需要前缀,用路径也可以),-outfmt指定输出数据的格式,-out指定输出文件的名称,-evalue指定evalue值,-num_threads指定运行的线程
rpsblast -query test_1.fasta -db /home/fanxuezhe/files/blast_database_new/cdd/little_endian/Cdd -outfmt 6 -out test.out -evalue 1E-70 -num_threads 6
解析输出结果
我们将得到形如
AFH78575.1__68__496 CDD:276881 44.522 429 217 8 15 429 3 424 6.61e-111 340
AFH78575.1__68__496 CDD:276899 41.568 421 228 4 14 421 2 417 4.67e-110 338
AFH78575.1__68__496 CDD:276882 44.391 419 215 7 15 421 3 415 4.46e-109 335
AFH78575.1__68__496 CDD:276879 42.993 421 220 7 15 421 3 417 3.29e-108 333
AFH78575.1__68__496 CDD:276880 43.823 429 221 7 15 429 3 425 8.93e-108 332
AFH78575.1__68__496 CDD:276875 43.943 421 216 7 15 421 3 417 2.99e-107 330
这样的格式为outfmt为6的数据,我们们,从第一列到最后一列的数据分别表示(和blast的输出结果一致):
第N列 | 内容 |
---|---|
1 | Query_id |
2 | Subject_id |
3 | %_identity |
4 | alignment_length |
5 | mismatches |
6 | gap_openings |
7 | q. start |
8 | q. end |
9 | s. start |
10 | s. end |
11 | e-value |
12 | bit_score |
在这里我们主要关心第二列,我将会自己写脚本来统计后一列出现的频率,然后确认我们的蛋白中主要出现的结构域是什么,过段时间把脚本贴上来
关于个性化的rpslast
有时我们需要针对特定的结构域类型进行分析,比如说我们需要找出我们拥有的一大堆氨基酸序列里有没有含有逆转录酶活性的蛋白或者多肽,此时,我们就需要有针对性的针对逆转录酶活性相关的结构域进行分析,这样可以减少工作量并且更有针对性。
首先需要到NCBI的CDD中搜索感兴趣的结构域,或者已经有文献报道和收集了相关的结构域。将收集到的结构域ID放在一个文件中,格式是一行一个或者是利用空格或者利用制表符进行分割。比如一行一个的格式:
将这个文件放在完整的CDD数据库里,这样可以使程序找出smp文件。
接下来利用收集到的一系列ID转化为rpsblast能够识别的数据库,这个转化的过程不同于常规的利用蛋白序列建库,该建库使用的工具为makeprofiledb,具体的命令为:
makeprofiledb -in test -out test -dbtype rps
-in test是指我们收集到的smp文件名称的集合-out test是我们建立库之后,library的名称,后续用它来进行
rpsblast,dbtype是指我们建立的数据库的类型。
接着就可以利用该数据库对自己的序列数据进行分析。