Parser for the Systems Biology Markup Language (SBML):
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.
It has only been tested on Linux.
pip install rust_sbml
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())
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.
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
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).