跳转到主要内容

SeqRepo REST服务

项目描述

seqrepo-rest-api

提供SeqRepo和GA4GH RefGet REST接口,从现有的seqrepo序列存储库访问生物序列和序列元数据。

重要更改

破坏性更改(2022年7月):现在忽略SEQREPO_DIR。您必须明确传递seqrepo实例目录。请参阅以下示例。

描述

具体命名的生物序列提供了参考和坐标系统,用于沟通变异及其导致的表型变化。存在几个序列数据库,它们之间存在显著的重叠,并且都使用不同的名称。此外,这些系统通常难以本地安装。

客户端使用熟悉的标识符(如NM_000551.3或GRCh38:1)或基于哈希的标识符来引用序列和元数据。界面支持对大序列的任意区域进行快速切片。

一个“完全限定”的标识符包括一个命名空间,用于消除访问号的歧义(例如,GRCh37和GRCh38中的“1”)。如果提供了命名空间,seqrepo将直接使用它。如果没有提供命名空间,并且未限定标识符指向一个唯一的序列,则返回;否则,模糊的标识符将引发错误。

SeqRepo在可用的情况下优先选择来自identifiers.orgidentifiers.org的标识符。例如包括refseqrefseqensemblensembl

此仓库仅提供REST接口。底层数据由seqreposeqrepo提供。

此仓库还实现了在<baseurl>/refget/上的GA4GH refget (v1) 协议

在Apache License 2.0下发布。

链接: 问题 | Docker镜像

引用

Hart RK, Prlić A (2020)
SeqRepo:用于管理本地生物序列集合的系统。
PLoS ONE 15(12): e0239883. https://doi.org/10.1371/journal.pone.0239883

示例

OpenAPI文档

REST接口使用OpenAPI实现。当前和交互式文档可在端点的基URL中找到。

OpenAPI UI Screenshot

获取序列

通过访问号获取序列

$ curl -f http://0.0.0.0:5000/seqrepo/1/sequence/NP_001274413.1
MERSFVWLSCLDSDSCNLTFRLGEVESHACSPSLLWNLLTQYLPPGAGHILRTYNFPVLSCVSSCHLIGGKMPEN

或者不获取

$ curl -f http://0.0.0.0:5000/seqrepo/1/sequence/bogus
curl: (22) The requested URL returned error: 404 NOT FOUND

也提供流行的摘要

$ curl -f http://0.0.0.0:5000/seqrepo/1/sequence/MD5:d52770ec477d0c9ee01fa034aff62cb4
MERSFVWLSCLDSDSCNLTFRLGEVESHACSPSLLWNLLTQYLPPGAGHILRTYNFPVLSCVSSCHLIGGKMPEN

带范围

# 👉 Seqrepo uses interbase coordinates.
$ curl -f "http://0.0.0.0:5000/seqrepo/1/sequence/NP_001274413.1?start=5&end=10"
VWLSC

获取元数据

$ curl -f "http://0.0.0.0:5000/seqrepo/1/metadata/GRCh38:1"
{
  "added": "2016-08-27T21:17:00Z",
  "aliases": [
    "GRCh38:1",
    "GRCh38:chr1",
    "GRCh38.p1:1",
    "GRCh38.p1:chr1",
	⋮
    "GRCh38.p9:chr1",
    "MD5:6aef897c3d6ff0c78aff06ac189178dd",
    "refseq:NC_000001.11",
    "SEGUID:FCUd6VJ6uikS/VWLbhGdVmj2rOA",
    "SHA1:14251de9527aba2912fd558b6e119d5668f6ace0",
    "sha512t24u:Ya6Rs7DHhDeg7YaOSg1EoNi3U_nQ9SvO",
    "ga4gh:SQ.Ya6Rs7DHhDeg7YaOSg1EoNi3U_nQ9SvO"
  ],
  "alphabet": "ACGMNRT",
  "length": 248956422
}

开发

$ make devready
$ source venv/bin/activate

运行本地实例

安装如上后,你应该能够

$ seqrepo-rest-service /usr/local/share/seqrepo/2021-01-29

导航到控制台输出中显示的URL。

构建和运行Docker镜像

可以使用此仓库构建Docker镜像,也可以从Docker Hub拉取。在任何情况下,容器都需要现有的本地seqrepo序列仓库。

在此仓库中构建Docker镜像

make docker-image

这将创建biocommons/seqrepo-rest-service:lastest,如下所示

$ docker images 
REPOSITORY                        TAG     IMAGE ID       CREATED          SIZE
biocommons/seqrepo-rest-service   latest  ad9ca051c5c9   2 minutes ago    627MB

此Docker镜像定期推送到Docker Hub。

以这种方式调用Docker镜像

docker run \
  --name seqrepo-rest-service \
  --detach --rm -p 5000:5000 \
  -v /usr/local/share/seqrepo/2021-01-29:/mnt/seqrepo \
  biocommons/seqrepo-rest-service \
  seqrepo-rest-service /mnt/seqrepo

然后你应该能够像这样获取测试序列

$ curl 'http://127.0.0.1:5000/seqrepo/1/sequence/refseq:NM_000551.3?end=20'
CCTCGCCTCCGTTACAACGG

如果出现问题,请使用docker logs -f seqrepo-rest-service检查日志。

项目详细信息


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

seqrepo-rest-service-0.2.2.tar.gz (266.4 kB 查看哈希值)

上传

构建分发

由以下提供支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面