Atlas系统由五个主要部分组成:1)源数据,2)本体系统,3)关系数据模型,4)API,5)应用程序(见图1). 以下各节详细概述了Atlas体系结构。
源数据
我们将Atlas数据源分为四大类:“序列”、“分子相互作用”、“基因相关资源”和“本体”(图1). 目前,属于这些类别的数据源有:“sequence”、GenBank、RefSeq[11]和UniProt;'分子相互作用'、HPRD、BIND、DIP、IntAct和MINT;'基因相关资源,人类在线孟德尔遗传(OMIM)[20],本地链接[11,21],Entrez基因[22]、和同源基因[11,23]; 和“本体论”、NCBI分类学[11,24]和基因本体论[25,26]. 表1列出了纳入Atlas的每个数据源,并提供了可以找到这些数据源的URL。请注意,GenBank是指国际核苷酸序列数据库合作组织(GenBank)的综合记录[11]、DDBJ[27]和EMBL[28]).
关系数据模型(模式设计)
本节描述了Atlas中包含的源数据的数据模型的组成。我们在这里介绍的数据模型是在MySQL中实现的[29]是一个开源关系数据库管理系统(RDBMS)。因此,我们只提供与MySQL兼容的数据定义语言(DDL)文件。目前还没有计划将这些移植到其他RDBMS系统。
本体论
本体论用于定义系统内和系统间的概念和关系。这个概念和关系词汇表代表了给定的专家话语领域,如序列、基因注释和分类法。在Atlas中,本体被分为两类:Atlas定义的本体和外部本体。Atlas定义的本体用于表示Atlas中特别发现的概念和关系,以及表征GenBank序列特征数据模型隐含定义的概念和关联。外部本体包括用于生物分类的NCBI分类学、用于基于功能、过程和细胞成分对生物特征进行分类的基因注释的基因本体,以及受蛋白质组学标准倡议分子相互作用标准(PSI-MI)控制的词汇[30]. Atlas内部本体包含术语的定义,如标识符类型(如登录号、GI号、PSI-MI术语和标识符)、PubMed标识符、文件格式类型(如XML)、关系术语,以及GenBank序列特征和特征限定符、测序技术等概念。Atlas本体的这一部分由三个表组成:本体论其中包括术语和定义,Ontology_type上定义本体源和类别,以及本体论_本体论存储定期关系的。外键约束用于确保数据完整性。与这些紧密集成的本体相比,另外两个外部词汇表被实例化为独立的MySQL数据库:GO和NCBI分类法。与其他本体不同,这些本体没有对其他数据库模块实现外键强制。因此,当本体术语更新时,对被视为无效的已删除术语的引用将保留在系统中,直到执行完整数据集重新加载。
Atlas内部本体主要用于帮助描述序列特征,因为它们存在于GenBank序列特征模型中,因为这是特征的主要数据源。开放式生物本体论(OBO)[31]关系术语,也不是序列本体(Sequence Ontology,SO)[32]关系术语符合我们作为特征本体的需求。我们利用了海外建筑运营管理局和标准运营管理局中类似的基本关系,如“is-a”、“part-of”和“reverse-of”,但我们也定义了更具体的术语,如“is synonym-of”、“reference to PubMed”、‘feature-includes-qualifier’和‘gene-contains-promotor’。通过定义这些特定关系,我们将本体树简化为更扁平的结构,便于查询。此外,主题-目的-对象三元组没有在内部本体中明确定义,而是在加载时分配,因为GenBank序列特征数据被解析并存储到数据库中。关系条款不一定完整,但足以满足我们的需求,当遇到新的关系时,会相应地添加这些条款。例如,我们将所有66个GenBank功能键映射到我们的Ontology表中的一个条目,这使我们能够对GenBank中的任何类型的功能或我们在内部注释的基因组进行功能级查询。我们提醒读者,人们普遍认为,并非所有GenBank功能都具有相同的信息价值,也不具备相同的信息质量。然而,为了获取最大数量的信息,我们选择提取并存储所有带注释的特征。使用Atlas中存储的特征位置,可以使用SQL、API或工具箱应用程序以高吞吐量的方式提取特征的子序列。例如,这对于从完整基因组或跨越特定基因的区域中提取非编码RNA等特征特别有用。我们正在积极集成选定的外部本体,并扩展我们的内部本体。本体集成计划包括国家医学图书馆(NLM)MeSH术语和微阵列基因表达数据(MGED)本体[33]. 我们正在评估采用基于框架的本体表示的选项,以及现有的本体,如TAMBIS本体(TaO)[17,34]. 在不久的将来,我们将以其他格式发布Atlas本体,如GO平面文件、RDF/XML和OWL。Atlas网站上提供了一个完整的本体列表,我们为这些本体提供了MySQL转储:http://bioinformatics.ubc.ca/atlas/ontology/.
序列模型
序列模式分为三个主要部分:序列,存储序列字符串和相关的元数据,如测序技术和分子类型;序列标识符存储记录中出现的所有标识符(参见图2); 和带注释的序列特征,其中存储了功能键、限定符键和值以及功能位置。尽管将功能输出为通用功能格式第2版(GFF2)[35]支持,则功能需要注意的是,表并没有显式地包含源或类型字段。此信息存储在其他表中,可以在构造GFF2记录时动态地组合在一起。例如生物ID_类型表的db_source字段和内部Atlas中包含数据库源信息本体论表的术语字段,表示GFF2输出中使用的特征类型。然而,为了反映这样一个事实,即这些输出中的功能现在是从Atlas系统重建的,我们在原始源类型前面加上“Atlas:”,例如“Atlas:GenBank/RefSeq”。读者会注意到Atlas中有两个不同的本体表。在前面的本体部分中描述了使用两种不同类型的本体表的动机的更详细的解释。然而,就层序特征而言,它是内部地图集本体论相关的表。
序列字符串存储在顺序表。其他字段:测序技术、技术,如表达序列标签(EST);分子型、分子型,如DNA、RNA、蛋白质和核酸;序列长度;NCBI分类标识符taxonid;定义行defline也存储在Sequence表中。分类单元、技术和摩尔类型等字段可以单独使用,也可以组合使用,以生成可定制的查询,返回高度特定的数据集。与所有其他外部标识符一样,序列标识符通过一层抽象进行管理,将它们与Atlas中的内部标识符相关联,这些标识符充当主键。序列只有一个内部标识符,这使我们能够将记录中发现的所有其他标识符相互关联。此外,GenBank ASN.1数据文件中当前发现的所有类型标识符的本体,以及这些标识符之间的关系都在类生物和生物类群表。如上所述,层序特征也在Atlas中建模。有关详细信息,请参阅下面的本体部分。
分子相互作用
对于分子交互数据,我们开发了一个符合PSI-MI的关系模型。采用通用交互数据模型可以统一来自不同来源的数据,并可以开发一组通用交互检索API。
目前,HPRD、BIND、DIP、IntAct和MINT都是交互数据源。BIND、DIP、MINT和IntAct以PSI-MI格式发布数据。HPRD以PSI-MI标准格式和他们自己的XML格式发布数据。在本次发布时,BIND以索引平面文件、ASN.1、XML和PSI-MI格式(第2级)发布数据。
Atlas交互模型由四个主要实体组成:交互、交互、实验和数据库外部参照。互动者保存关于交互中一个交互成员的信息,例如交互者的名称、分类、序列、分子类型、特征、亚细胞定位和外部标识符。安互动由一个或多个交互器和一个或更多实验组成。
实验存储用于识别交互作用的实验的信息。最后,数据库外部参照用于交联外部标识符,例如PubMed id、RefSeq登录、HPRD id、BIND id和Ontology id(参见图2). 作为补充说明功能Interaction数据库中的表主要用于存储交互中涉及的蛋白质特征。
我们将发布符合PSI-MI第2级标准的交互模型版本,并在第2级规范公开发布后发布API。
基因相关资源
我们将OMIM、LocusLink、Entrez Gene、HomoloGene和GO的注释部分集成到Atlas系统中,以提供基因相关信息。OMIM和LocusLink数据源提供了平面文件表,可以通过MySQL导入功能直接导入。Entrez Gene最终将取代LocusLink,然而,为了保持平稳过渡和向后兼容性,我们正在为Entrez基因和LocusLink维护填充的关系模型,直到LocausLink正式退役。通过将分类、蛋白质序列和基因标识符与Atlas’类生物表。这使我们能够整合这些数据库,并提供例如在不同交互场景中存在的同源基因之间的链接(参见Atlas系统的效用)。
应用程序编程接口
Atlas中有两类API:加载程序和检索。我们已经为其开发了自己的关系模型的Atlas组件,如生物序列组件或分子相互作用组件,每个组件都有自己的加载程序API集。用于构建加载应用程序的加载程序API填充Atlas数据库中关系模型的实例。尽管大多数最终用户永远不需要使用加载器API,但它们对Atlas加载过程的实现至关重要,并提供给软件开发社区。另一类API是检索API。这些API用于检索存储在Atlas中的数据。他们是开发自定义检索应用程序(如Atlas工具箱应用程序)所必需的。生物序列加载程序API是在C++中实现的,因为它严重依赖于NCBI C++工具包[36]解析ASN.1数据。另一方面,生物序列检索API以所有三种语言提供:C++、Java和Perl。Java和Perl API分别以BioJava SimpleSequence和BioPerl Bio::Seq对象的形式返回序列。Java提供了分子交互的加载和检索API。尽管并非所有语言都支持检索API,但如果我们的用户社区提出要求,将添加Perl和C++的进一步开发。请参考图1用于将数据模块映射到当前支持的编程语言。该项目也是开源的,鼓励其他开发人员做出贡献。API和数据库之间的所有事务都由大量SQL语句指定,这些语句都是在大多数API方法中定义的。
应用程序编程接口体系结构
API是使用面向对象的方法构建的,使用对象来表示从低级数据库连接到高级数据结构的所有内容及其访问方法。如图所示三.
C++、Java和Perl API设计中常见的是一组为MySQL数据库连接编写的API,用于处理MySQL连接的打开和关闭,以及管理SQL语句本身的执行。与Atlas数据库交互的所有后续API都是从这组API扩展而来的。
数据加载器和检索实用程序共享一个负责低级数据转换的公共类。此类包括促进两个内部Atlas标识符之间转换的方法,例如bioid_id到ontology_id,或者将内部Atlass标识符转换为外部引用的公共标识符(例如GenBank登录号或GI号)的方法。继承这个共享标识符转换类可以为加载程序API和检索API提供集成信息的必要工具,从而使它们受益。
Atlas的生物序列组件管理通用标识符和顺序类。此类由SeqLoad(序列加载)类和SeqGet(序列获取)类,分别定义加载程序方法和检索方法。生物序列API的另一个特点是能够根据分子类型控制流输出。API用户只需通过调用更高级的检索方法来指定要筛选的分子类型,以及SeqGet(序列获取)然后将处理物流管理的物流。与Atlas的分子相互作用组件类似交互Db类由交互加载类和交互获取类,分别定义操纵内存中数据的加载程序和检索方法。
例如,我们的Java交互API与交互数据模型紧密耦合,其中的类表示所有主要的模式对象,如interaction、Feature、Dbxref和Experiment。API正在开发中,我们将继续开发和改进它们。我们正在考虑使用JAXB等XML模式代码生成器进行更紧密耦合的API开发。
所有的源代码都是根据GNU通用公共许可证(GPL)提供的,因此任何开发者都可以在我们已经实现的许多功能上为未来的API开发建模。
应用
工具箱
Atlas工具箱是使用C++API执行常见序列和特征检索任务的应用程序的集合。这些应用程序是基于Unix命令行的标准工具,遵循基于命令行选项的参数输入界面。这些是最终用户应用程序,使用它们不需要任何编程能力。我们开发了工具箱应用程序,用于从登录和GI编号检索序列,检索NCBI分类树中给定节点下所有生物体的序列,检索给定登录和GI-编号的特征,检索与限定符及其值标识的特定特征相对应的子序列,以及检索与给定交互因子加入数的分子相关联的一组交互作用。除了是有用的工具外,工具箱应用程序的源代码还提供了使用API开发应用程序的良好示例。希望使用API的软件开发人员可以使用这些工具箱应用程序作为其自定义应用程序的起点(参见表2).
数据加载器
Atlas中提供了数据加载器,以便于解析源数据集并将其加载到各自的Atlas数据库表中。Atlas包中目前提供了两类主要的加载程序:序列加载程序和交互加载程序。尽管其他类型的数据都加载到了Atlas中,但由于数据提供商已经提供了这些数据集的MySQL数据库转储,因此它们的加载非常简单。
第一类加载器是基于序列的加载器。在这个类中提供了两个应用程序:seqloader和fastaloader。seqloader从GenBank和RefSeq数据集执行大多数序列加载。这些数据集长期以来一直由NCBI表示为ASN.1(二进制/文本)[37]、和紧凑且定义良好,用于存储结构化数据。seqloader是使用NCBI C++软件开发工具包构建的[36]它专门用于解析ASN.1序列数据,提取序列、相关标识符、序列特征和相关出版物等内容。然而,在某些情况下,ASN.1记录中缺少序列数据。在这些情况下,我们以Fasta记录的形式从NCBI Entrez系统中获取丢失的记录。然后使用fastaloader应用程序用Fasta记录中的序列更新Atlas中的序列字段。
第二类加载器是基于交互的加载器。这些加载器是专门用Java实现的。这类加载器加载的数据集包括BIND、HPRD、MINT、IntAct和DIP。所有交互加载程序都设计为以最适合处理特定源数据的结构和内容(主要是XML)的方式解析数据。交互数据是使用通用交互对象模型加载的,交互加载API为未来的交互数据加载工作提供了一个灵活且可扩展的框架。目前,我们正在开发PSI-MI第2级数据加载器。
除了这些加载程序类之外,还有一个基于Java的加载程序,用于解析和加载UniProt序列数据。此外,脚本用于加载提供了MySQL转储或tab分隔的数据库转储的数据集。这是使用MySQL导入函数处理的,无需设计特殊的解析器和加载器。
每天检查GenBank和RefSeq是否有来自NCBI的增量更新。登录号用于维护数据的完整性。新的加入号反映了新的记录,并将插入数据库。更新的序列或具有相同根登录号和修补注释的记录将替换数据库中的现有记录。当GenBank/RefSeq的新版本可用时,将清除并重新加载所有数据库,以删除失效的记录并保持引用完整性。
Web工具
虽然我们鼓励使用Atlas作为内部存储库,但它也可以为更广泛的互联网社区服务。我们为Atlas数据库提供了一个公开可用的web界面,以演示其部分功能。这提供了对GenBank、RefSeq、NCBI分类法、Atlas Ontologies、BIND、HPRD、MINT、IntAct和DIP的基本访问。Atlas工具箱应用程序的Web界面:ac2gi、ac2seq、ac2tax、feat2seq,gi2ac、gi2feat、gi2seq和gi2tax,tax2seq、techtax2seq以及tech2seq可用。此外,通过登录号或GI号识别的蛋白质的相互作用伙伴可以从Atlas中存储的四个相互作用数据库中的任何一个中检索。这些web工具可以在以下位置找到:http://bioinformatics.ubc.ca/atlas/webtools/.