跳转到主要内容

本体Python前端。

项目描述

pronto Stars

本体Python前端。

Actions License Source Docs Coverage Sanity PyPI Bioconda Versions Wheel Changelog GitHub issues DOI Downloads

🚩 目录

🗺️ 概述

Pronto 是一个 Python 库,用于解析、浏览、创建和导出本体,支持多种本体语言和格式。它以安全的高级接口形式实现了 开放生物医学本体 1.4 的规范。如果您只想解析 OBO 或 OBO 图文档,可能需要考虑使用 fastobo

🏳️ 支持的语言

🔧 安装

使用 pip 安装是最简单的

# pip install pronto          # if you have the admin rights
$ pip install pronto --user   # install it in a user-site directory

bioconda 通道中也有一个 conda 食谱

$ conda install -c bioconda pronto

最后,如果您已经安装了正确的依赖项,可以使用 setuptools 从 GitHub 安装开发版本

$ git clone https://github.com/althonos/pronto
$ cd pronto
# python setup.py install

💡 示例

如果您只读取本体,您将只使用 Ontology 类,这是主要入口点。

>>> from pronto import Ontology

它可以从支持格式的本体路径实例化,即使文件是压缩的

>>> go = Ontology("tests/data/go.obo.gz")

也支持从持久 URL 加载文件,尽管如果您经常使用持久 URL,您可能还想使用 Ontology.from_obo_library 方法

>>> cl = Ontology("http://purl.obolibrary.org/obo/cl.obo")
>>> stato = Ontology.from_obo_library("stato.owl")

🏷️ 通过访问号获取术语

Ontology 对象可以用作映射,从它们标识符的紧凑形式访问它们包含的任何实体

>>> cl['CL:0002116']
Term('CL:0002116', name='B220-low CD38-positive unswitched memory B cell')

请注意,当加载 OWL 本体时,URIs 将尽可能压缩为 CURIEs

>>> aeo = Ontology.from_obo_library("aeo.owl")
>>> aeo["AEO:0000078"]
Term('AEO:0000078', name='lumen of tube')

🖊️ 从头创建新术语

我们可以加载一个本体,并对其进行本地编辑。在这里,我们向蛋白质本体中添加了一个新的蛋白质类。

>>> pr = Ontology.from_obo_library("pr.obo")
>>> brh = ms.create_term("PR:XXXXXXXX")
>>> brh.name = "Bacteriorhodopsin"
>>> brh.superclasses().add(pr["PR:000001094"])  # is a rhodopsin-like G-protein
>>> brh.disjoint_from.add(pr["PR:000036194"])   # disjoint from eukaryotic proteins

✏️ 将 OWL 本体转换为 OBO 格式

可以使用 Ontology.dump 方法将本体序列化为支持的任何格式(目前为 OBO 和 OBO JSON)

>>> edam = Ontology("http://edamontology.org/EDAM.owl")
>>> with open("edam.obo", "wb") as f:
...     edam.dump(f, format="obo")

🌿 查找没有子类的本体术语

可以使用 Ontology 实例的 terms 方法遍历本体中的所有术语(包括导入的)。然后我们可以使用 Term 对象的 is_leaf 方法检查术语是否是类包含图中的叶节点。

>>> ms = Ontology("ms.obo")
>>> for term in ms.terms():
...     if term.is_leaf():
...         print(term.id)
MS:0000000
MS:1000001
...

🤫 忽略警告

pronto 明确指出代码中执行非标准假设或缺少处理某些结构的功能的部分。它通过使用 warnings 模块来引发警告,这些警告可能会非常冗长。

如果您不介意不一致性,您可以使用 filterwarnings 函数手动禁用在您的消费者代码中的警告报告

import warnings
import pronto
warnings.filterwarnings("ignore", category=pronto.warnings.ProntoWarning)

📖 API 参考

完整的 API 参考可以在 在线文档 中找到,或者可以直接使用 pydoc 从命令行访问

$ pydoc pronto.Ontology

📜 许可证

此库根据开源 MIT 许可证 提供。如果您在科学环境中使用此库,请引用以下 DOI:10.5281/zenodo.595572

项目详情


版本历史 发布通知 | RSS 源

下载文件

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

源分发

pronto-2.5.8.tar.gz (60.8 kB 查看哈希值)

上传时间

构建分发

pronto-2.5.8-py2.py3-none-any.whl (61.7 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面