Crate obofoundry

Crate obofoundry 

Source
Expand description

§obofoundry.rs Star me

Structures to deserialize OBO Foundry listings into.

Actions Codecov License Source Crate Documentation Changelog

§Usage

Add the obofoundry crate to the Cargo.toml manifest, as well as either serde_yaml or serde_json:

[dependencies]
obofoundry = "0.11"
serde_yaml = "0.8"

Then use the serde framework to load the listings:

extern crate obofoundry;
extern crate serde_yaml;

let yaml_data = include_str!("...");
let foundry: obofoundry::Foundry = serde_yaml::from_str(&yml).unwrap();

It’s also possible to use an HTTP library to load the listings from the OBO Foundry website directly, for instance using ureq:

extern crate obofoundry;
extern crate ureq;
extern crate serde_yaml;

let url = "http://www.obofoundry.org/registry/ontologies.yml";

let res = ureq::get(url).call();
let reader = res.unwrap().into_reader();
let foundry: obofoundry::Foundry = serde_yaml::from_reader(reader).unwrap();

§Example

Download the ontologies.yml table from the OBO Foundry and use it to extract all PURLs to ontologies in the OBO format:

extern crate obofoundry;
extern crate ureq;
extern crate serde_yaml;
use std::io::Read;

const URL: &'static str = "http://www.obofoundry.org/registry/ontologies.yml";

fn main() {
    let res = ureq::get(URL).call();
    let reader = res.unwrap().into_reader();

    let foundry: obofoundry::Foundry = serde_yaml::from_reader(reader).unwrap();
    for ontology in &foundry.ontologies {
        for product in &ontology.products {
            if product.id.ends_with(".obo") {
                println!("{} - {}", product.id, product.ontology_purl)
            }
        }
    }
}

See the online documentation at docs.rs for more examples.

§Changelog

This project adheres to Semantic Versioning and provides a changelog in the Keep a Changelog format.

§License

This library is provided under the open-source MIT license.

Structs§

Browser
A reference to a browser for the ontology.
Build
Information about the way an ontology is built.
Contact
The corresponding editor of an ontology.
Dependency
Reference to a particular dependency.
Development
Metadata concerning the development of the ontology.
Document
A review document.
Example
A reference to an example usage of the ontology.
Foundry
An index of ontologies following the OBO Foundry principles.
Funding
A funding reference.
Job
A CI/CD job pipeline running for the ontology.
License
The legal information about an ontology.
Ontology
A comprehensive table of informations about an ontology.
Product
A released product of an ontology.
Publication
A publication relevant to the ontology.
Redirect
A redirection to another location.
Review
A review for a particular ontology.
Taxon
A taxon specifically relevant to the ontology.
Usage
A relevant project an ontology is used in.

Enums§

ActivityStatus
The current development status of the ontology development.
BuildMethod
The build method for an ontology build.
BuildSystem
The build system for an ontology build.
JobType
The type of a job pipeline.
UsageType
The way an ontology can be used in a project.