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
每月下载量 345
在5个crate中(通过fastobo使用)
12KB
250 行
fastobo

无故障的Open Biomedical Ontologies抽象语法树。
概述
此库提供了对OBO平面文件格式1.4的几乎所有完整的实现。
- 数据结构 -
fastobo
提供了OBO语言的完整所有权的AST,适用于构造函数和便利特性。有一个计划提供借用数据结构,以便能够从借用数据构建OBO文档的视图。 - 解析 - 解析器使用pest实现,并从
fastobo-syntax
crate中导出。大多数结构实现了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_reader
从 BufRead
实现者(如果需要,请使用 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