具有上下文消歧的生物医学实体归一化
项目描述
Gilda: 整合学习的消歧归一化
Gilda是一个Python包和REST服务,用于在生物医学文本中归一化(即,为命名实体找到适当的命名空间中的标识符)。
Gyori BM, Hoyt CT, Steppi A (2022). Gilda: 作为服务的机器学习消歧的生物医学实体文本归一化。生物信息学进展,2022; vbac034 https://doi.org/10.1093/bioadv/vbac034.
安装
Gilda作为网络服务部署在 http://grounding.indra.bio/(见下文的使用说明),然而,它也可以作为Python包在本地使用。
安装Gilda的推荐方法是通过PyPI,如下所示:
pip install gilda
请注意,Gilda使用单个大型资源文件进行归一化,该文件在运行时自动下载到 ~/.data/gilda/<version>
文件夹中(有关配置此文件夹位置的选择,请参阅 pystow)。
给定一些额外的依赖项,也可以通过运行 python -m gilda.generate_terms
在本地重新生成归一化资源文件。
文档和笔记本
Gilda的文档可在 此处 获取。我们还提供了几个交互式Jupyter笔记本,以帮助使用和定制Gilda
用法
Gilda可以作为一个REST网络服务使用,也可以通过其Python API编程式使用。有关使用Gilda的简介Jupyter笔记本可在https://github.com/indralab/gilda/blob/master/notebooks/gilda_introduction.ipynb找到。
作为Python包使用
要将Gilda作为Python包使用,请参阅http://gilda.readthedocs.org上的文档,其中详细介绍了Gilda的每个模块及其用法。以下是一个关于命名实体规范化(NEN)或地面处理的基本用法示例
import gilda
scored_matches = gilda.ground('ER', context='Calcium is released from the ER.')
Gilda还实现了一个简单的基于字典的命名实体识别(NER)算法,可以按以下方式使用
import gilda
results = gilda.annotate('Calcium is released from the ER.')
作为网络服务使用
REST服务接受在/ground
端点上带有JSON头部的POST请求。有一个公共REST服务在http://grounding.indra.bio运行,但该服务也可以本地运行,如下所示
python -m gilda.app
默认情况下,这将在localhost:8001
启动服务器(对于本地使用,将以下示例中的URL替换为此地址)。
以下是一个使用curl
的请求示例
curl -X POST -H "Content-Type: application/json" -d '{"text": "kras"}' http://grounding.indra.bio/ground
使用Python的request包进行相同请求的方式如下
import requests
requests.post('http://grounding.indra.bio/ground', json={'text': 'kras'})
网络服务也支持在ground_multi
端点上单个请求中使用多个输入,例如
import requests
requests.post('http://grounding.indra.bio/ground_multi',
json=[
{'text': 'braf'},
{'text': 'ER', 'context': 'endoplasmic reticulum (ER) is a cellular component'}
]
)
资源使用
首次使用时,Gilda将地面处理术语加载到内存中。如果内存使用成为问题,建议以下选项。
-
运行单个Gilda实例作为本地网络服务,由一个或多个其他进程发送请求。
-
创建一个自定义地面处理实例,仅加载适合狭窄用例的术语子集。
-
Gilda还提供可选的sqlite后端,可以显著降低内存使用,并导致单位时间内的字符串地面处理数量略有下降。可以使用以下方式构建sqlite后端数据库,其中包含可选的
[db_path]
参数,如果使用,则应使用.db扩展名。如果没有指定,.db文件将生成在Gilda默认资源文件夹中。
python -m gilda.resources.sqlite_adapter [db_path]
然后可以按以下方式实例化地面处理实例
from gilda.grounder import Grounder
gr = Grounder(db_path)
matches = gr.ground('kras')
使用Docker运行网络服务
在本地克隆存储库后,可以使用以下命令构建并运行Gilda的Docker镜像
$ docker build -t gilda:latest .
$ docker run -d -p 8001:8001 gilda:latest
或者,您可以使用docker-compose
来执行初始构建并基于docker-compose.yml
配置运行容器
$ docker-compose up
默认地面处理资源
Gilda可以通过来自不同词汇的术语进行自定义。然而,Gilda附带一组默认资源,从中收集术语(截至v1.1.0版本,大约有200万个条目),无需任何额外配置。这些资源包括
- HGNC(人类基因)
- UniProt(人类和模式生物体的蛋白质)
- FamPlex(人类蛋白质家族和复合物)
- CHeBI(小分子、代谢物等)
- GO(生物过程、分子功能、复合物)
- DOID(疾病)
- EFO(实验因素:细胞系、细胞类型、解剖实体等)
- HP(人类表型)
- MeSH(一般:疾病、蛋白质、小分子、细胞类型等)
- Adeft(与歧义缩写相对应的杂项术语)
引用
@article{gyori2022gilda,
author = {Gyori, Benjamin M and Hoyt, Charles Tapley and Steppi, Albert},
title = "{{Gilda: biomedical entity text normalization with machine-learned disambiguation as a service}}",
journal = {Bioinformatics Advances},
year = {2022},
month = {05},
issn = {2635-0041},
doi = {10.1093/bioadv/vbac034},
url = {https://doi.org/10.1093/bioadv/vbac034},
note = {vbac034}
}
资助
吉拉的发展得到了美国国防部高级研究计划局(DARPA)与计算机通信计划(ARO项目编号W911NF-15-1-0544)以及DARPA青年学者奖(ARO项目编号W911NF-20-1-0255)的支持。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源代码分发
构建分发
gilda-1.2.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2c97217e5d8e675302a6cbc75c007b72e4cb7ff1885bb86512a432fd8ccf5f7b |
|
MD5 | c2b1fb6550a0bbc4feea958fa7b52a6b |
|
BLAKE2b-256 | 3ed03e5e9434ab5ed96ef897d14223da4657e8046680b66e6819f4178543aded |
gilda-1.2.1-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 380a76a7e7533b92ac8f861c04bb6e25b65dcb0605ea4fd9c26ce715b15ba424 |
|
MD5 | 7452bf63ae5608d575a36447140832c7 |
|
BLAKE2b-256 | 2e509077e75746118b3f067713d86badb18d61cb8926c5f0361589c7d98bb1b1 |