#obo #ontology #derive #proc-macro

fastobo-derive-internal

fastobocrate提供的内部derive宏

34个版本

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日

#7 in #obo

Download history • Rust 包仓库 1/week @ 2024-04-16 • Rust 包仓库 4/week @ 2024-04-23 • Rust 包仓库 5/week @ 2024-05-21 • Rust 包仓库 2/week @ 2024-05-28 • Rust 包仓库 43/week @ 2024-06-04 • Rust 包仓库 9/week @ 2024-06-11 • Rust 包仓库 3/week @ 2024-06-18 • Rust 包仓库 8/week @ 2024-06-25 • Rust 包仓库 170/week @ 2024-07-02 • Rust 包仓库 146/week @ 2024-07-09 • Rust 包仓库 15/week @ 2024-07-16 • Rust 包仓库 14/week @ 2024-07-23 • Rust 包仓库

每月下载量 345
5个crate中(通过fastobo使用)

MIT许可证

12KB
250

fastobo Star me

无故障的Open Biomedical Ontologies抽象语法树。

Actions Codecov License Source Crate Documentation Changelog GitHub issues DOI

概述

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

  • 数据结构 - fastobo提供了OBO语言的完整所有权的AST,适用于构造函数和便利特性。有一个计划提供借用数据结构,以便能够从借用数据构建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)加载数据

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 Larralde 开发,作为 BBOP 团队劳伦斯伯克利国家实验室 的硕士学位实习项目的一部分,在 Chris Mungall 的指导下开发。请引用此项目如下:

Larralde M. Developing Python and Rust libraries to improve the ontology ecosystem [版本 1;未经同行评审]. F1000Research 2019, 8(ISCB Comm J):1500 (海报) (https://doi.org/10.7490/f1000research.1117405.1)

依赖项

~0.6–1.1MB
~25K SLoC