摘要
1简介
信号群数据(弗利切克等。, 2014)可以通过多种方式访问,包括我们的基因组浏览器、BioMart数据挖掘工具(金塞拉等。, 2011),生物导体R包(绅士等。, 2004)或观众,如Dalliance(向下等。, 2011). 直接编程访问在历史上需要一个本地客户机以其自己的编程语言与数据库交互。该解决方案需要跨多种语言重新实现功能,维护成本高昂,部分原因是我们只关注Ensembl的Perl API。第三方Ensembl API绑定确实存在,但可能难以跟上新的发展步伐,从而导致可能的过时实现。
远程过程调用和Web服务是一种广泛接受的解决方案,可以为多种语言提供单一编程接口。SOAP就是这样一种流行的技术(麦克威廉等。, 2013)但为客户端带来了大量的设置和处理开销。较新的Web服务基于表示状态传输(REST)模式(菲尔丁,2000). REST鼓励重用HTTP技术,以与Web浏览器通过统一资源定位器(URL)请求和接收Web页面相同的方式发送和接收数据。REST对返回的数据没有任何格式限制。分布式注释系统(詹金森等。, 2008)试图为生物数据设计通用REST系统,但需要自定义客户端库,再加上被视为冗长且不灵活的XML格式。
我们提供了一组REST绑定来访问Ensembl数据和工具,以大多数编程语言都能理解的简单格式公开这些数据。
2实施
2.1 REST API
集成REST API调用基于简单URL,这些URL指定所需的数据和返回的格式。例如,要以JSON文档的形式请求BRCA2(ENSP00000439902)的蛋白质序列,只需在Web浏览器中输入以下URL:http://rest.ensembl.org/sequence/id/ENSP00000439002.json
URL的组件定义所需的数据和/或操作。例如,/sequence执行序列检索,而/vep提供对集合变量效果预测器(vep)结果的访问(迈凯轮等。, 2010). 使用类似的命令,用户可以检索诸如基因、同源基因、变体、基因组比对和基因树等特征,或者执行诸如在集合之间转换坐标等操作。
将集成数据纳入任何分析都需要一个HTTP库和一个JSON解析器。HTTPS支持安全客户端访问。以下是Python请求打印与BRAF(ENSG00000157764)重叠的变体数量的示例:
必需的参数嵌入到URL中。在我们的第一个示例中,ENSP00000439902是必需的参数。可选参数指定为简单”key=值',对附加到URL。只要可能,服务器就会从其他服务器推断参数。例如,物种是由Ensembl基因或转录稳定的ID确定的。HTTP头可以用于控制输出格式或启用动态gzip压缩。除了PhyloXML等格式外,每个端点还发出四种输出格式:JSON、XML、YAML和JSON-P(Han和Zmasek,2009年).
在我们的公共REST服务器上,客户端的速率限制为每秒15个请求,即每小时54000个请求。为了使用户能够管理此限制或任何未来的限制,对REST服务器的每次调用都会返回许多HTTP响应标头,描述IP地址的当前限制以及此限制重置前的时间。一旦超过该值,将发回Retry-After标头,客户机将在此期间休眠,然后再发出新请求。
所有端点都附带自动生成的文档,可从http://rest.ensembl.org。每个页面都详细说明了参数,并附有简要说明和示例值。示例URL显示在其输出和示例客户端旁边。这些客户端是用流行的编程语言编写的,例如Python、Perl和Ruby。网站还提供了更高级别的用户指南,详细介绍了版本迁移指南、最佳实践和更高级的客户端https://github.com/Ensembl/ensemb-rest/wiki.
2.2大比例尺变量注释
在RESTAPI的测试阶段,我们观察到来自VEP端点请求和注释人为变化的大量流量。事实上,我们注意到单个IP地址向VEP端点发送了约300万个请求,我们将其解释为人类多样性的完整注释。这个过程效率很低:使用HTTPGET并将速率限制为每秒15个请求,注释一个人类变量需要2.3天。
为了响应这个用例,我们扩展了Ensembl REST API,允许在单个HTTP POST中提交多达1000个变体。采用VEP的脱机缓存文件使我们的服务能够在不超过HTTP超时的情况下注释大量变体。标杆管理(表1)显示了从1000个基因组第1阶段数据中提取的单个样本(HG00096)每秒约1000个变体的注释率(1000基因组项目联盟,2012年). 使用我们的公共服务器在一小时内分析人类变种是可行的。
表1。对来自三个Amazon Elastic Compute Cloud(EC2)位置的350万个非同义单核苷酸变体进行基准测试
EC2位置. | 经过的时间(s). | 每秒变量数. |
---|
爱尔兰 | 3631 | 946.66 |
弗吉尼亚州,美国 | 3508 | 998.59 |
新加坡 | 5385 | 652.45 |
EC2位置. | 经过的时间(s). | 每秒变量数. |
---|
爱尔兰 | 3631 | 946.66 |
弗吉尼亚州,美国 | 3508 | 998.59 |
新加坡 | 5385 | 652.45 |
表1。对来自三个Amazon Elastic Compute Cloud(EC2)位置的350万个非同义单核苷酸变体进行基准测试
EC2位置. | 经过的时间(s). | 每秒变量数. |
---|
爱尔兰 | 3631 | 946.66 |
弗吉尼亚州,美国 | 3508 | 998.59 |
新加坡 | 5385 | 652.45 |
EC2位置. | 经过的时间(s). | 每秒变化数. |
---|
爱尔兰 | 3631 | 946.66 |
弗吉尼亚州,美国 | 3508 | 998.59 |
新加坡 | 5385 | 652.45 |
3讨论
Ensemble REST API可用于从各种编程语言查询Ensembl数据资源和工具,并支持以前只有我们的Perl API支持的灵活编程访问。客户端安装成本的降低意味着用户可以与最新的Ensembl数据交互,而无需遵循我们的常规API版本。支持VEP的POST请求可以对大规模变化数据集进行注释,而无需下载或托管VEP代码或缓存文件。与MySQL相比,HTTP还证明了它是一种更健壮的数据协议,可以改善全球用户的用户体验。
已经开发了许多本机第三方API来帮助访问Python、R和JavaScript等语言中的REST API,这证明了我们的REST API对这些日益流行的生物信息学语言的有用性。Wasabi等JavaScript应用程序(http://wasabiapp.org)通过REST导入集成基因树和基因组多序列比对,在工具和数据之间创建无缝链接。RNACentral公司(贝特曼等。, 2011)在Genoverse中显示非编码基因模型和Ensembl注释(http://genoverse.org/),一个HTML5基因组浏览器,使用来自我们REST API的数据。
REST已经证明它是一个可持续的模型,可以将基因组数据分发给多种编程语言。我们计划扩大Ensembl数据和工具的覆盖范围。我们还计划从服务中提供更多格式,如VEP端点的VCF输出。我们将继续与工具开发人员合作,确保服务适合他们的目的。
致谢
作者感谢Glenn Proctor和Monika Byrne在早期REST API版本上的工作,感谢Daniel Zerbino在审阅本文时的帮助,以及EMBL-EBI的Ensembl团队。
基金:这项工作得到了威康信托基金会(WT095908)和欧洲分子生物学实验室的支持。G.R.S.R.由欧洲分子生物学实验室和桑格研究所通过EBI-Sanger博士后奖学金提供支持。
利益冲突:未声明。
参考文献
等RNAcentral:建立国际RNA序列数据库的愿景
, 核糖核酸
, 2011
,卷。 17
(第1941
-1946
) 等Dalliance:网上交互式基因组浏览
, 生物信息学
, 2011
,卷。 27
(第889
-890
) 等恩森布尔2014
, 核酸研究。
, 2014
,卷。 42
(第D749号
-D755型
) 等生物导体:计算生物学和生物信息学的开放软件开发
, 基因组生物学。
, 2004
,卷。 5
第页。 80兰特
, . phyloXML:进化生物学和比较基因组学的XML
, BMC生物信息学
, 2009
,卷。 10
第页。 356
等集成生物数据-分布式注释系统
, BMC生物信息学
, 2008
,卷。 9
补充8
第页第3章
等Ensembl BioMarts:跨分类空间的数据检索中心
, 数据库
, 2011
,卷。 2011
第页。 棒030
等利用集成API和SNP效应预测因子推导基因组变异的后果
, 生物信息学
, 2010
,体积。 26
(第2069
-2070
) 等EMBL-EBI的分析工具web服务
, 核酸研究。
, 2013
,卷。 41
(第W597号机组
-W600型
) 1000基因组计划联盟
1092个人类基因组遗传变异综合图谱
, 自然
, 2012
,卷。 491
(第56
-65
)
作者注释
©作者2014。牛津大学出版社出版。
这是一篇根据知识共享署名许可条款发布的开放存取文章(http://creativecommons.org/licenses/by/4.0/)它允许在任何介质中不受限制地重用、分发和复制原始作品,前提是正确引用了原始作品。