https://github.com/fastobo/fastobo-py
Faultless AST for Open Biomedical Ontologies in Python.
https://github.com/fastobo/fastobo-py
ast obo obofoundry ontology parser python-bindings python-extension rust
Last synced: 10 days ago
JSON representation
Faultless AST for Open Biomedical Ontologies in Python.
- Host: GitHub
- URL: https://github.com/fastobo/fastobo-py
- Owner: fastobo
- License: mit
- Created: 2019-05-09T23:07:22.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2026-02-02T08:13:28.000Z (about 2 months ago)
- Last Synced: 2026-02-22T11:12:18.141Z (about 1 month ago)
- Topics: ast, obo, obofoundry, ontology, parser, python-bindings, python-extension, rust
- Language: Rust
- Homepage: http://fastobo.readthedocs.io
- Size: 2.45 MB
- Stars: 32
- Watchers: 1
- Forks: 4
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: COPYING
Awesome Lists containing this project
README
# `fastobo-py` [](https://github.com/fastobo/fastobo-py/stargazers)
*Faultless AST for Open Biomedical Ontologies in Python.*
[](https://github.com/fastobo/fastobo-py/actions)
[](https://codecov.io/gh/fastobo/fastobo-py)
[](https://choosealicense.com/licenses/mit/)
[](https://github.com/fastobo/fastobo-py/)
[](https://pypi.org/project/fastobo)
[](https://pypi.org/project/fastobo/#files)
[](https://anaconda.org/conda-forge/fastobo)
[](https://pypi.org/project/fastobo/#files)
[](https://pypi.org/project/fastobo/#files)
[](https://github.com/fastobo/fastobo-py/blob/master/CHANGELOG.md)
[](https://fastobo.readthedocs.io/)
[](https://github.com/fastobo/fastobo-py/issues)
[](https://f1000research.com/posters/8-1500)
[](https://pepy.tech/project/fastobo)
## Overview
[`fastobo`](https://crates.io/crates/fastobo) is a Rust library implementing a
reliable parser for the OBO file format 1.4. This extension module exports
idiomatic Python bindings that can be used to load, edit and serialize ontologies
in the OBO format.
## Installation
If your platform has no pre-built binaries available, you will need to have the Rust
compiler installed. See the [documentation on `rust-lang.org`](https://forge.rust-lang.org/other-installation-methods.html)
to learn how to install Rust on your machine.
Installation is then supported through `pip`:
```console
$ pip install fastobo --user
```
## Usage
An `OboDoc` instance can be instantiated from a path or from a binary file handle
using the `fastobo.load` function, or from a string using the `fastobo.loads` function.
```python
import fastobo
obodoc = fastobo.load("../data/ms.obo")
```
Loading from a `gzip` file is supported:
```python
import fastobo
import gzip
gzdoc = fastobo.load(gzip.open("../data/cl.obo.gz"))
```
## Feedback
Found a bug ? Have an enhancement request ? Head over to the
[GitHub issue tracker](https://github.com/fastobo/fastobo-py/issues) of the project if
you need to report or ask something. If you are filling in on a bug, please include as much
information as you can about the issue, and try to recreate the same bug in a simple, easily
reproducible situation.
The following people have contributed to this project:
- Alex Henrie ([@alexhenrie](https://github.com/alexhenrie))
- Patrick Kalita ([@pkalita-lbl](https://github.com/pkalita-lbl))
## About
This project was developed by [Martin Larralde](https://github.com/althonos)
as part of a Master's Degree internship in the [BBOP team](http://berkeleybop.org/) of the
[Lawrence Berkeley National Laboratory](https://www.lbl.gov/), under the supervision of
[Chris Mungall](http://biosciences.lbl.gov/profiles/chris-mungall/). Cite this project as:
*Larralde M.* **Developing Python and Rust libraries to improve the ontology ecosystem**
*\[version 1; not peer reviewed\].* F1000Research 2019, 8(ISCB Comm J):1500 (poster)
([https://doi.org/10.7490/f1000research.1117405.1](https://doi.org/10.7490/f1000research.1117405.1))