16 unstable releases (6 breaking)
0.7.0 | Nov 1, 2021 |
---|---|
0.6.0 | Jul 31, 2021 |
0.5.2 | Nov 14, 2020 |
#2491 in Parser implementations
Used in kair
79KB
1.5K
SLoC
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
- 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.
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).
Dependencies
~2–3.5MB
~64K SLoC