#graph #obo #ontology #serde #data-model #graph-node #parser

fastobo-graphs

Rust中的OBO图数据模型、解码器和编码器

14个版本

0.4.8 2022年12月5日
0.4.7 2022年5月4日
0.4.5 2022年4月21日
0.4.4 2022年1月20日
0.1.2 2019年8月27日

#902解析器实现

33 每月下载量

MIT 许可证

70KB
1.5K SLoC

fastobo-graphs Star me

OBO图的Rust解码器和编码器。

Actions Codecov License Source Crate Documentation Changelog GitHub issues DOI

概述

该库为开发者提供了一个实现,该实现由基因本体指定的OBO图模式,以便于使用,比OBO或OWL格式的普通本体文件更容易。

  • 数据结构 - 完整的OBO图模式被复制到Rust数据结构中,具有公共字段,可以直接访问图节点。请参阅fastobo_graphs::model以查看数据结构的完整列表。
  • I/O - 结构使用serde实现从YAML和JSON的序列化和反序列化。
  • 错误 - 可失败的操作可以返回一个包含信息性消息以及std::error::Error实现的Error
  • 转换特质 - OBO图可以使用FromGraphIntoGraph特质(部分)转换为和从普通OBO文档转换。

使用方法

fastobo_graphs添加到Cargo.toml文件中的[dependencies]部分

[dependencies]
fastobo-graphs = "0.4"

然后使用 fastobo_graphs 中的顶级函数之一来加载一个序列化的 JSON 或 YAML OBO 图。

extern crate fastobo_graphs;
extern crate ureq;

fn main() {
    let response = ureq::get("http://purl.obolibrary.org/obo/zeco.json").call();

    match fastobo_graphs::from_reader(response.unwrap().into_reader()) {
        Ok(doc) => println!("Number of ZECO nodes: {}", doc.graphs[0].nodes.len()),
        Err(e) => panic!("Could not parse ZECO OBO Graph: {}", e),
    }
}

功能

以下功能默认启用,但在需要时可以禁用。

反馈

发现了错误?有增强请求?如果您需要报告或询问某些内容,请前往项目的 GitHub 问题跟踪器。如果您正在填写错误,请尽可能提供有关问题的详细信息,并尝试在简单、易于复现的情况下重现相同的错误。

关于

该项目由 Martin LarraldeBBOP 团队劳伦斯伯克利国家实验室 的硕士实习期间开发,由 Chris Mungall 指导。引用此项目如下:

Larralde M. 开发 Python 和 Rust 库以改进本体生态系统 [版本 1;未经同行评审]。 F1000Research 2019,8(ISCB Comm J):1500 (海报) (https://doi.org/10.7490/f1000research.1117405.1)

依赖项

~2.2–3.5MB
~77K SLoC