本文主要详解Gene Ontology数据库的存储结构,为之后开发相应数据库提供数据库的设计参考
1.GO数据库的总体存储结构
GO数据库的存储结构主要分为四种:termdb,assocdb,seqdb,以及full GO database ;具体区别如下:
- termdb(每日更新): a database containing just the information on the GO terms and relationships.(内容:ontologies, definitions and mappings to other dbs)
- assocdb(每周更新): a database containing both the GO vocabulary and associations between GO terms and gene products. This database subsumes termdb.(内容:all manual gene product annotations; electronic annotations (IEA) from all databases other than UniProtKB)
- seqdb(每周更新): a database containing GO terms, gene products and the sequences associated with these gene products. This db subsumes the two above.(内容:在包含前两个数据库内容的基础之上,增加了: plus protein sequences for most of the gene product)
- full GO database(每月更新): termdb (above), plus manual and electronically generated (IEA) annotations.
2.不同数据库的表(table)的设计存在包含关系
基本上seqdb的数据包含了assocdb,assocdb的数据又包含的termdb,即:
seqdb>assocdb>termdb
GO的整个数据库中主要有14张表
绘制成思维导图展示,是这样:
3.GO数据库提供了基于MYSQL的GO数据库的本地下载
MYSQL数据库的存储包括8个模式(schema)
go_associations
go_audit
go_general
go_graph
go_homology
go_meta
go_optimisations
go_sequence
官网详细给出了每个模式下,不同的表的设计(包括表的外键、主键等等的定义):http://geneontology.org/page/go-mysql-database-schema
以go_association这个schema下的go_associations.association表为例:
GO数据库的官网也提供了E-R图:
所以说GO整体数据库的设计还是比较复杂,sqlite只是GO数据库的一个迷你版
参考资源:
http://geneontology.org/page/go-mysql-database-guide GO的mysql数据库介绍(含ER图)
http://geneontology.org/page/go-mysql-database-schema GO数据库的schema设计