16 个不稳定版本 (6 个破坏性更改)

0.7.0 2021年11月1日
0.6.0 2021年7月31日
0.5.2 2020年11月14日

#2006解析器实现

每月下载量:23
用于 kair

MIT/Apache 许可

79KB
1.5K SLoC

Rust 1K SLoC // 0.0% comments Python 125 SLoC // 0.1% comments Pan 14 SLoC // 0.2% comments

Crates.io pypi Documentation Build Codecov

rust_sbml

用于 系统生物学标记语言 (SBML) 的解析器

入门指南

Rust

将其添加到 Cargo.toml 中,不启用默认功能,以避免所有 PyO3 烦扰。

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

例如,

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());

请参阅 write_to_file.rs 了解将数据序列化到文件的示例。

Python

仅在 Linux 上进行了测试。

使用 pip

pip install rust_sbml

从源码

克隆仓库。

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

您需要 maturin 来构建它。

python -m pip install maturin
  • 本地构建
    maturin build --release
    pip install .
    
  • 在 virtualenv 上构建(无需安装 pip)
    # --release can be omitted to speed up compilation time
    maturin develop --release
    

安装后,您可以使用它作为正常的 Python 包。

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)
  • 能够检索 FBC 边界。
  • 发布到 pypi
  • 动力学定律,针对 SBML 定制的原始数学表达式。
  • 元数据,针对 SBML 定制的原始 RDF。
  • 具有 Python 调用的测试套件。
  • 通过 cobrapy 与 libsbml 比较的测试套件。

许可证

许可方式任选其一

贡献

除非您明确声明,否则您根据Apache-2.0许可证定义的任何有意提交以包含在作品中的贡献,应按上述方式双重授权,不附加任何额外条款或条件。

README.md是使用cargo-readme在CI上自动生成的。请修改README.tpl或lib.rs(详细信息请查看GitHub工作流程)。

依赖项

约2–3.5MB
约64K SLoC