rust_sbml

Crates.iorust_sbml
lib.rsrust_sbml
version0.7.0
sourcesrc
created_at2020-10-12 12:07:41.515664
updated_at2021-11-01 22:37:29.119664
descriptionA parser for SBML
homepage
repositoryhttps://github.com/carrascomj/rust_sbml
max_upload_size
id298653
size1,092,436
Jorge Carrasco (carrascomj)

documentation

README

Crates.io pypi Documentation Build Codecov

rust_sbml

Parser for the Systems Biology Markup Language (SBML):

Getting started

Rust

Add it to your Cargo.toml with no default features to avoid all PyO3 nuisances.

[dependencies.rust_sbml]
version = "0.7.0"
default_features=false

For example,

use rust_sbml::Model;

let example=r#"<?xml version="1.0" encoding="UTF-8"?>
<sbml xmlns="http://www.sbml.org/sbml/level3/version2/core" level="3" version="2">
     <model timeUnits="second" extentUnits="mole" substanceUnits="mole">
     </model>
</sbml>"#;
let result = Model::parse(example);
println!("{:?}", result.unwrap());

See write_to_file.rs for an example on serializing to a file.

Python

It has only been tested on Linux.

Using pip

pip install rust_sbml

From source

Clone the repository.

git clone https://github.com/carrascomj/rust_sbml.git

You need maturin for building it.

python -m pip install maturin
  • Build locally
    maturin build --release
    pip install .
    
  • Build on virtualenv (no pip install required)
    # --release can be omitted to speed up compilation time
    maturin develop --release
    

Having it installed, you can use it as a normal Python package.

from rust_sbml import Model

sbml = Model("examples/EcoliCore.xml")
reaction = sbml.getListOfReactions()[0]
print(reaction.getListOfReactants())

Milestones

  • getListOfSpecies() (id, name)
  • getListOfCompartments() (id, name)
  • getListOfReactions() (id, name)
    • .getListOfReactants() (id, name)
    • .getListOfProducts() (id, name)
  • Capable of retrieving FBC bounds.
  • Published to pypi
  • Kinetic Laws, with naive mathml tailored for SBML.
  • Metadata, with naive rdf tailored for SBML.
  • Test suite with python calls.
  • Test suite with libsbml comparison trough cobrapy.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

README.md is automatically generated on CI using cargo-readme. Please, modify README.tpl or lib.rs instead (check the github worflow for more details).

Commit count: 182

cargo fmt