Overview
SBMLNetwork is a cross-platform library—built on a C++ core with native Python and WebAssembly bindings—that automatically generates and renders SBML Layout & Render info, transforming plain biochemical models into standards-compliant, publication-ready network diagrams with a single function call.
Key Capabilities
Standards fidelity – full read/write support for SBML Layout & Render.
Reaction-aware autolayout – Fruchterman–Reingold variant tuned for metabolic graphs.
Styling engine – predefined templates like Escher to get you started, plus per-element overrides for colors, shapes, fonts, and stroke widths.
Data overlays – map fluxes or concentrations to color gradients, line thickness, or node size with one call; automatic color-bar legend included.
Multi-format export – render to PNG, SVG, PDF; high-quality drawing powered by Skia.
Multi-language API – performance-oriented C++ core exposed to Python (PyPI) and JavaScript/WebAssembly for seamless embedding in desktop or web tools.
Who Is It For?
Modelers and computational biologists Generate complete SBML Layout & Render info in one line, then fine-tune every glyph for publication-quality pathway figures or supplementary material.
Software developers and tool authors Embed SBMLNetwork’s C API, Python package, or WebAssembly build to add standards-compliant visualization to desktop, CLI, or browser applications.
Educators and trainers Use the high-level Python API in Jupyter notebooks to teach SBML Layout & Render concepts with immediate visual feedback.
Architecture Snapshot
Figure 1 – Layered design of SBMLNetwork. A performance-oriented C++ Core is wrapped by a stable C API. Language-specific bindings build on that API to expose identical functionality in Python (PyPI package) and JavaScript / WebAssembly (browser). Thin user-facing layers—CLI helpers sit on top of the bindings.
Key design points
C++ Core – Implements network data structures, SBML Layout & Render I/O, and a reaction-aware Fruchterman–Reingold autolayout algorithm.
C API – A stable interface that exposes core functionality to other languages while insulating them from C++ implementation details.
Python binding – Presents an intuitive, object-oriented hierarchy (
Network,Species,Reaction…) with concise methods, making visualization straightforward for modelers.WebAssembly build – Generated with Emscripten to provide the same high-level API in browsers, enabling interactive web tools and documentation demos.
Quick-Start
Install SBMLNetwork – follow the step-by-step instructions in the Installation page.
Run your first example – open the Getting Started guide fora quick walkthrough of using SBMLNetwork with simple examples.