Metadata-Version: 2.4
Name: pybnf
Version: 1.7.0
Summary: An application for parallel fitting of BioNetGen and SBML models using metaheuristics
Author: Eshan Mitra, Ryan Suderman, Alex Ionkov, Jacob Neumann, Bill Hlavacek
License-Expression: BSD-3-Clause
Project-URL: Homepage, https://github.com/lanl/PyBNF
Project-URL: Documentation, https://lanl.github.io/PyBNF/
Project-URL: Source, https://github.com/lanl/PyBNF
Project-URL: Issues, https://github.com/lanl/PyBNF/issues
Keywords: BioNetGen,BNGL,SBML,parameter-estimation,systems-biology
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: MacOS
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: bngsim<1,>=0.12.2
Requires-Dist: dask>=2024.1.0
Requires-Dist: distributed>=2024.1.0
Requires-Dist: libroadrunner>=1.6.0
Requires-Dist: msgpack>=0.6.2
Requires-Dist: numpy>=1.24
Requires-Dist: paramiko>=2.7
Requires-Dist: pydantic<3,>=2
Requires-Dist: pyparsing<4,>=2.4
Requires-Dist: scipy>=1.10
Requires-Dist: tornado>=6.1
Provides-Extra: antimony
Requires-Dist: bngsim[antimony]<1,>=0.12.2; extra == "antimony"
Provides-Extra: petab
Requires-Dist: petab<1,>=0.8; extra == "petab"
Provides-Extra: jax
Requires-Dist: jax>=0.4; extra == "jax"
Requires-Dist: jaxlib>=0.4; extra == "jax"
Requires-Dist: blackjax>=1.2; extra == "jax"
Provides-Extra: arviz
Requires-Dist: arviz>=0.17; extra == "arviz"
Requires-Dist: h5netcdf>=1; extra == "arviz"
Requires-Dist: h5py; extra == "arviz"
Provides-Extra: plot
Requires-Dist: matplotlib>=3.5; extra == "plot"
Provides-Extra: tests
Requires-Dist: pytest<10,>=7; extra == "tests"
Requires-Dist: hypothesis<7,>=6; extra == "tests"
Requires-Dist: pytest-xdist; extra == "tests"
Requires-Dist: petab<1,>=0.8; extra == "tests"
Requires-Dist: arviz>=0.17; extra == "tests"
Requires-Dist: h5netcdf>=1; extra == "tests"
Requires-Dist: h5py; extra == "tests"
Requires-Dist: jax>=0.4; extra == "tests"
Requires-Dist: jaxlib>=0.4; extra == "tests"
Requires-Dist: blackjax>=1.2; extra == "tests"
Requires-Dist: matplotlib>=3.5; extra == "tests"
Dynamic: license-file

![alt text](docs/pybnf-pronghorn-logo/pybnf-pronghorn-turquoise-gold-card.svg "PyBioNetFit")

PyBioNetFit (PyBNF) is a general-purpose program for parameterizing biological models specified using the BioNetGen
rule-based modeling language (BNGL) or the Systems Biology Markup Language (SBML). PyBioNetFit offers a suite of
parallelized metaheuristic algorithms (differential evolution, particle swarm optimization, scatter search) for
parameter optimization. In addition to model parameterization, PyBNF supports uncertainty quantification by
bootstrapping or Bayesian approaches, and model checking. PyBNF includes an adaptive Markov chain Monte Carlo (MCMC) sampling algorithm, which supports Bayesian inference. PyBNF includes the Biological Property Specification Language
(BPSL) for defining qualitative data for use in parameterization or checking. It runs on most Linux and macOS
workstations as well on computing clusters.

For documentation, refer to the online documentation at <https://lanl.github.io/PyBNF/> or [Documentation_PyBioNetFit.pdf](Documentation_PyBioNetFit.pdf).

## Installation

PyBNF requires Python 3.11 or higher.

```bash
python3 -m pip install pybnf
```

With `uv`, PyBNF can also be installed as a command-line tool:

```bash
uv tool install pybnf
```

PyBNF installs its Python dependencies, including BNGsim and libRoadRunner, through the package metadata. BNGL workflows can still require a BioNetGen installation for `BNG2.pl`; see the installation documentation for simulator setup details.

## Development

After cloning, run once:

```bash
make bootstrap
```

This installs the `pre-push` git hook (via `pre-commit`) so the bngsim test subset runs locally before any `git push`.

`pytest` runs the fast suite by default. Two opt-in tiers are deselected unless requested: `pytest -m slow` (statistical recovery against analytical targets) and `pytest -m recovery` (parameter recovery through the real bngsim backend; needs bngsim + BNG2.pl). Run `pytest --markers` for the full list, or see [tests/README_integration.md](tests/README_integration.md).

PyBioNetFit is released under the BSD-3 license. For more information, refer to the
[LICENSE](LICENSE). LANL code designation: C18062
