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 在 生物学
62 每月下载量
在 4 crates 中使用
365KB
9K SLoC
fastobo
无缺陷的Open Biomedical Ontologies抽象语法树。
概述
此库提供了对OBO平面文件格式1.4的几乎完整实现。
- 数据结构 -
fastobo
提供了OBO语言的完整所有者抽象语法树,适用于构造器和便利特质的适用性。计划提供借用数据结构,以便能够从借用数据构建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
)加载 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 Larralde 在 BBOP 团队 的 劳伦斯伯克利国家实验室 的硕士实习期间开发,在 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