#ast-parser #obo #ast #ontology #syntax #parser #file-format

fastobo

无缺陷的Open Biomedical Ontologies抽象语法树

39个发布版本

0.15.2 2023年5月3日
0.15.1 2022年12月5日
0.15.0 2022年2月15日
0.13.1 2021年3月30日
0.6.1 2019年7月24日

#34生物学

Download history 18/week @ 2024-03-10 198/week @ 2024-03-31 2/week @ 2024-04-07 2/week @ 2024-04-21 6/week @ 2024-05-19 1/week @ 2024-05-26 41/week @ 2024-06-02 8/week @ 2024-06-09 3/week @ 2024-06-16 10/week @ 2024-06-23

62 每月下载量
4 crates 中使用

MIT 协议

365KB
9K SLoC

fastobo Star me

无缺陷的Open Biomedical Ontologies抽象语法树。

Actions Codecov License Source Crate Documentation Changelog GitHub issues DOI

概述

此库提供了对OBO平面文件格式1.4的几乎完整实现。

  • 数据结构 - fastobo提供了OBO语言的完整所有者抽象语法树,适用于构造器和便利特质的适用性。计划提供借用数据结构,以便能够从借用数据构建OBO文档的视图。
  • 解析 - 解析器使用pest实现,并从fastobo-syntaxcrate中重新导出。大多数结构实现了FromPair特质,该特质允许从pest标记流构建数据结构。
  • 错误 - 此crate中所有返回Result的函数将始终使用在error模块中定义的Error结构。pest报告的错误非常有意义,并且可以给出解析器遇到的语法错误的精确位置。
  • 语义 - 此库导出特定方法,可用于使用格式指南中预期的语义编辑OBO语法树:将标识符映射到URL、添加默认命名空间或使用treat-xrefs宏扩展实体框架。

警告:此项目遵循语义版本控制,但API在1.0稳定版本发布前可能会发生很大变化。

功能

以下所有功能默认启用,但可以使用项目Cargo.toml声明中的default-features = false选项禁用和选择

  • memchr - 使用 memchr 库来提高在缓冲区中搜索特定字符时的解析器速度。
  • threading - 使用多线程解析器(此外依赖于 crossbeam-channel),如果解析是CPU密集型,这可以大大提高解析器速度。
  • smartstring - 使用 smartstring 库来减少标识符和字符串数据的堆分配。

用法

fastobo 添加到您的 Cargo.toml 清单中的 [dependencies] 部分

[dependencies]
fastobo = "0.15.2"

fastobo 的顶层模块提供了几个解析 OboDoc 的函数。使用 fastobo::from_readerBufRead 实现(如果需要,请使用 std::io::BufReader)加载 OBO 文档

extern crate fastobo;
extern crate ureq;

fn main() {
    let response = ureq::get("http://purl.obolibrary.org/obo/ms.obo").call();
    let mut reader = std::io::BufReader::new(response.unwrap().into_reader());

    match fastobo::from_reader(&mut reader) {
        Ok(doc) => println!("Number of MS entities: {}", doc.entities().len()),
        Err(e) => panic!("Could not parse the Mass-Spec Ontology: {}", e),
    }
}

另请参阅

  • fastobo-syntax:用于 OBO 格式 1.4 的独立 pest 解析器。
  • fastobo-graphs:OBO 图规范的数据模型和 serde 实现,具有从和到 OBO 的转换特征。
  • fastobo-py:此包的惯用 Python 绑定。
  • fastobo-validator:用于验证 OBO 文件是否与规范一致的独立 CLI。
  • horned-functional:用于解析 OWL2 功能语法的解析器(可以用于解析 owl-axioms 子句)。

反馈

发现了错误吗?有增强请求吗?如果您需要报告或询问某些内容,请前往项目的 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)

依赖关系

~4.5MB
~93K SLoC