来NCBI后自己的一个工作就是对其他人多年前的一些数据进行再分析,期望发现新的规律。其中涉及到很多序列号与序列对应,蛋白与核酸序列对应,不同数据库数据对应的问题,这里做个总结,希望对其他人也有用。
先说说NCBI序列数据库中的编号问题。NCBI序列数据中我们常用到两种编号:一个是GI,一个是ACCESSION。ACCESSION形式为CC_#####,其中CC为两个字母,其不同组合又可以区分为蛋白序列、核酸序列或基因组序列,而#为位数不等的数字;GI则全为数字表示。ACCESSION后面又会加版本号,以CC_####.#形式表示,最后的尾数递增表示序列信息较之前的版本有所修改。这样ACCESSION+版本号就是一个唯一的表示,代表一个唯一的序列,而且这个编号不会改变。而GI原则上也是一个序列一个编号,但因为序列经常会变,因此GI号也会改变,而一些GI号可能会被删除,大家可以通过NCBI的
Sequence Revision History查询来看每个GI的变迁历史,包括被删除的GI。原则上讲GI并不是一个很好的序列代号,但因为其组成比较单一(全是数字),结构比较简单,因此用脚本语言比较好处理,用的很多,因此也就会导致很多问题(例如多个GI号可能会对应一个ACCESSION,而你可能无法用GI号从BioPerl中调用相应序列)。
现在讲序列数据关联的第一个问题,那就是GI与ACCESSION关联问题,以及蛋白序列与核算序列关联问题。我们很可能拿到手一些GI号,我们想知道其对应的蛋白序列,以及蛋白序列对应的核酸序列是什么。原则上这些信息都在数据库中存在,关键是我们如何获得,如果是少数几个那就好说了,把GI号拿去NCBI数据库查询,它会给出对应的蛋白,根据网站的链接,我们就会获得其相应的核算序列。但如果是大量GI呢,这种情况在比较基因组分析中很常见。NCBI提供了其文本关联文件,可以在其ftp上找到,例如
gene2refseq中就包含了所有这些信息(还有更多信息,例如gene id, tax id,chromsome位置等等)。
而第二个问题是关于跨数据库间数据的关联问题。我们经常遇到这样的情况,我们得到一套数据,但其中基因用一套代号表示,而我们知道的序列信息却是另外一套编号,如何关联呢(还是大量数据的问题)?EMBL的数据如何跟与NCBI的数据关联呢,UniProt的数据如何跟NCBI关联呢,一些特殊物种的数据库(例如FlyBase,WormBase)如何跟NCBI数据关联呢?
EBI上有专门的问题解答,其中提到各种服务以及数据资源。而NCBI也给出跟不同数据库的关联信息,存放在其
ftp上,定期更新。一些专门的网站也来提供相应的服务,自己接触的一个是
bioDBnet,其不仅给出大量数据库之间的关联查询,还能帮助你找到你需要的数据库!
先写这么多,有更新再加上。
https://blog.sciencenet.cn/blog-286438-424412.html
上一篇:
过年的那些令人回味的事下一篇:
三个人的篮球