BioNetGen 3 is a Python-first, in-process rule-based modeling platform for biochemical reaction systems. It parses BNGL directly in C++, simulates with the bundled backend, and exposes models, results, scans, and exports as ordinary Python objects.
pip install bionetgenNo Perl runtime is required for the default workflow.
importbionetgenmodel=bionetgen.load("models/simple_system.bngl")
result=model.simulate(method="ode", t_end=100)
result.plot()- C++ backend for parsing, network generation, ODE simulation, SSA, NFSim, PLA, and PSA.
- Parameter scanning in 1D and 2D, with serial or isolated parallel execution.
- Local sensitivity analysis with finite differences.
- Jupyter-friendly HTML reprs for models, simulation results, and scan results.
- SBML import through the atomizer bridge.
- Programmatic model construction without hand-writing BNGL.
- Direct export to BNGL, XML, SBML, MATLAB, LaTeX, and graph visualizations.
If you are upgrading from PyBioNetGen or BNG2, start with docs/migration_guide.md.
Key differences:
bionetgen.load()replacesbngmodel().model.simulate()replaces subprocess-basedbionetgen.run()workflows.- Results are NumPy-backed objects instead of
.gdatfiles. - Parameter scans and sensitivity analysis are first-class APIs.
- Perl, cement, distutils, pyparsing, and pylru are no longer required for the default path.
Benchmark data is generated by benchmarks/run_benchmarks.py and archived by nightly CI.
| Model | C++ Parse | C++ Generate | C++ Simulate | Perl Total | 100-pt Scan |
|---|---|---|---|---|---|
| simple_system | see benchmark artifact | see benchmark artifact | see benchmark artifact | see benchmark artifact | see benchmark artifact |
| egfr_net | see benchmark artifact | see benchmark artifact | see benchmark artifact | see benchmark artifact | see benchmark artifact |
| fceri_ji | see benchmark artifact | see benchmark artifact | see benchmark artifact | see benchmark artifact | see benchmark artifact |
The primary object is model.
| Method | Purpose |
|---|---|
model.simulate(...) | Run ODE, SSA, NFSim, PLA, or PSA simulation |
model.generate_network(...) | Expand the rule set into a reaction network |
model.parameter_scan(...) | Scan one parameter across a value range |
model.parameter_scan_2d(...) | Scan two parameters on a grid |
model.sensitivity_analysis(...) | Compute normalized local sensitivities |
model.contact_map(...) | Export a contact map graph |
model.regulatory_graph(...) | Export a regulatory graph |
model.rule_influence_graph(...) | Export a rule influence graph |
model.reaction_network_graph(...) | Export a reaction network graph |
model.ruleviz_pattern(...) | Export a rule pattern graph |
model.ruleviz_operation(...) | Export a rule operation graph |
model.process_graph(...) | Export a process graph |
model.sbml_multi(...) | Export SBML Multi |
model.write_xml(...) | Export BioNetGen XML |
model.write_bngl(...) | Export BNGL text |
model.write_sbml(...) | Export SBML from the generated network |
model.write_matlab(...) | Export MATLAB code |
model.write_latex(...) | Export LaTeX output |
Top-level helpers:
importbionetgenmodel=bionetgen.load("models/simple_system.bngl")
scan=bionetgen.parameter_scan(model, parameter="k", min=0.01, max=10, n_points=20)
model2=bionetgen.from_sbml("tests/python/test/test_sbml.xml")
builder=bionetgen.ModelBuilder("MyModel")bionetgen run MODEL.bngl --method ode --t-end 100
bionetgen scan MODEL.bngl --parameter k_on --min 0.01 --max 100 --n-points 50
bionetgen sensitivity MODEL.bngl --parameter k_on --observable AB
bionetgen visualize MODEL.bngl --type contact_map -o output.graphml
bionetgen check MODEL.bngl
bionetgen export MODEL.bngl --format sbml --output model.xmlSee docs/cli_reference.md for the full command reference.
git clone <repo-url>cd BNG3
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build
pip install -e .If you only want the Python package, pip install -e . is usually enough; the build system compiles the extension as needed.
Please cite BioNetGen when using the platform in publications. See docs/index.md and the project website for current citation information.
MIT. See LICENSE.