Metadata-Version: 2.4
Name: pypesto
Version: 0.5.7
Summary: python-based Parameter EStimation TOolbox
Home-page: https://github.com/icb-dcm/pypesto
Download-URL: https://github.com/icb-dcm/pypesto/releases
Author: The pyPESTO developers
Author-email: yannik.schaelte@gmail.com
Maintainer: Paul Jonas Jost, Domagoj Dorešić, Vincent Wieland, Fabian Fröhlich
Maintainer-email: paul.jost@uni-bonn.de, domagoj.doresic@uni-bonn.de, vwieland@uni-bonn.de, fabian.frohlich@crick.ac.uk
License: BSD-3-Clause
Project-URL: Bug Tracker, https://github.com/icb-dcm/pypesto/issues
Project-URL: Documentation, https://pypesto.readthedocs.io
Project-URL: Changelog, https://pypesto.readthedocs.io/en/latest/changelog.html
Keywords: parameter inference,optimization,sampling,profiles,ODE,AMICI,systems biology
Classifier: Development Status :: 4 - Beta
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.11
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy!=1.24.0,>=1.19.1
Requires-Dist: scipy>=1.5.2
Requires-Dist: pandas>=1.5.0
Requires-Dist: cloudpickle>=1.5.0
Requires-Dist: matplotlib>=3.6.2
Requires-Dist: more-itertools>=9.0.0
Requires-Dist: seaborn>=0.11.2
Requires-Dist: h5py!=3.15.0,>=3.1.0
Requires-Dist: tqdm>=4.46.0
Requires-Dist: tabulate>=0.8.10
Provides-Extra: all
Requires-Dist: amici<1.0.0,>=0.21.0; extra == "all"
Requires-Dist: petab>=0.4.0; extra == "all"
Requires-Dist: cyipopt>=1.3.0; extra == "all"
Requires-Dist: dlib>=19.19.0; extra == "all"
Requires-Dist: nlopt!=2.9.0,>=2.6.2; extra == "all"
Requires-Dist: pyswarm>=0.6; extra == "all"
Requires-Dist: cma>=3.0.3; extra == "all"
Requires-Dist: pyswarms>=1.3.0; extra == "all"
Requires-Dist: fides>=0.6.1; extra == "all"
Requires-Dist: mpi4py>=3.0.3; extra == "all"
Requires-Dist: arviz>=0.12.1; extra == "all"
Requires-Dist: pymc>=4.2.1; extra == "all"
Requires-Dist: jax>=0.4.1; extra == "all"
Requires-Dist: jaxlib>=0.4.1; extra == "all"
Requires-Dist: julia>=0.5.7; extra == "all"
Requires-Dist: ipython>=8.4.0; extra == "all"
Requires-Dist: pygments>=2.12.0; extra == "all"
Requires-Dist: emcee>=3.0.2; extra == "all"
Requires-Dist: dynesty>=2.0.3; extra == "all"
Requires-Dist: umap-learn[plot]>=0.5.3; extra == "all"
Requires-Dist: scikit-learn>=0.24.1; extra == "all"
Requires-Dist: sphinx>=6.2.1; extra == "all"
Requires-Dist: nbsphinx>=0.8.9; extra == "all"
Requires-Dist: nbconvert>=6.5.0; extra == "all"
Requires-Dist: sphinx-rtd-theme>=1.2.0; extra == "all"
Requires-Dist: sphinx-autodoc-typehints>=1.18.3; extra == "all"
Requires-Dist: sphinxcontrib-bibtex>=2.5.0; extra == "all"
Requires-Dist: ipython>=8.4.0; extra == "all"
Requires-Dist: myst-parser>=0.18.0; extra == "all"
Requires-Dist: ipykernel==6.23.1; extra == "all"
Requires-Dist: julia>=0.5.7; extra == "all"
Requires-Dist: ipython>=8.4.0; extra == "all"
Requires-Dist: pygments>=2.12.0; extra == "all"
Requires-Dist: arviz>=0.12.1; extra == "all"
Requires-Dist: pymc>=4.2.1; extra == "all"
Requires-Dist: emcee>=3.0.2; extra == "all"
Requires-Dist: dynesty>=2.0.3; extra == "all"
Requires-Dist: nlopt!=2.9.0,>=2.6.2; extra == "all"
Requires-Dist: pyswarms>=1.3.0; extra == "all"
Requires-Dist: notebook>=6.1.4; extra == "all"
Requires-Dist: ipywidgets>=8.1.5; extra == "all"
Requires-Dist: petab-select[plot]>=0.3.3; extra == "all"
Requires-Dist: fides>=0.6.1; extra == "all"
Requires-Dist: amici<1.0.0,>=0.21.0; extra == "all"
Requires-Dist: petab>=0.4.0; extra == "all"
Requires-Dist: jax>=0.4.1; extra == "all"
Requires-Dist: jaxlib>=0.4.1; extra == "all"
Requires-Dist: libroadrunner>=2.7.0; extra == "all"
Requires-Dist: petab>=0.4.0; extra == "all"
Requires-Dist: python-libsbml>=5.20.2; extra == "all"
Requires-Dist: julia>=0.5.7; extra == "all"
Requires-Dist: ipython>=8.4.0; extra == "all"
Requires-Dist: pygments>=2.12.0; extra == "all"
Requires-Dist: arviz>=0.12.1; extra == "all"
Requires-Dist: pymc>=4.2.1; extra == "all"
Requires-Dist: emcee>=3.0.2; extra == "all"
Requires-Dist: dynesty>=2.0.3; extra == "all"
Requires-Dist: nlopt!=2.9.0,>=2.6.2; extra == "all"
Requires-Dist: pyswarms>=1.3.0; extra == "all"
Requires-Dist: notebook>=6.1.4; extra == "all"
Requires-Dist: ipywidgets>=8.1.5; extra == "all"
Requires-Dist: petab-select[plot]>=0.3.3; extra == "all"
Requires-Dist: pytest>=5.4.3; extra == "all"
Requires-Dist: pytest-cov>=2.10.0; extra == "all"
Requires-Dist: gitpython>=3.1.7; extra == "all"
Requires-Dist: pytest-rerunfailures>=9.1.1; extra == "all"
Requires-Dist: autograd>=1.3; extra == "all"
Requires-Dist: libroadrunner>=2.7.0; extra == "all"
Requires-Dist: petab>=0.4.0; extra == "all"
Requires-Dist: python-libsbml>=5.20.2; extra == "all"
Provides-Extra: all-optimizers
Requires-Dist: cyipopt>=1.3.0; extra == "all-optimizers"
Requires-Dist: dlib>=19.19.0; extra == "all-optimizers"
Requires-Dist: nlopt!=2.9.0,>=2.6.2; extra == "all-optimizers"
Requires-Dist: pyswarm>=0.6; extra == "all-optimizers"
Requires-Dist: cma>=3.0.3; extra == "all-optimizers"
Requires-Dist: pyswarms>=1.3.0; extra == "all-optimizers"
Requires-Dist: fides>=0.6.1; extra == "all-optimizers"
Provides-Extra: amici
Requires-Dist: amici<1.0.0,>=0.21.0; extra == "amici"
Provides-Extra: roadrunner
Requires-Dist: libroadrunner>=2.7.0; extra == "roadrunner"
Requires-Dist: petab>=0.4.0; extra == "roadrunner"
Requires-Dist: python-libsbml>=5.20.2; extra == "roadrunner"
Provides-Extra: petab
Requires-Dist: petab>=0.4.0; extra == "petab"
Provides-Extra: ipopt
Requires-Dist: cyipopt>=1.3.0; extra == "ipopt"
Provides-Extra: dlib
Requires-Dist: dlib>=19.19.0; extra == "dlib"
Provides-Extra: nlopt
Requires-Dist: nlopt!=2.9.0,>=2.6.2; extra == "nlopt"
Provides-Extra: pyswarm
Requires-Dist: pyswarm>=0.6; extra == "pyswarm"
Provides-Extra: cma
Requires-Dist: cma>=3.0.3; extra == "cma"
Provides-Extra: pyswarms
Requires-Dist: pyswarms>=1.3.0; extra == "pyswarms"
Provides-Extra: fides
Requires-Dist: fides>=0.6.1; extra == "fides"
Provides-Extra: mpi
Requires-Dist: mpi4py>=3.0.3; extra == "mpi"
Provides-Extra: pymc
Requires-Dist: arviz>=0.12.1; extra == "pymc"
Requires-Dist: pymc>=4.2.1; extra == "pymc"
Provides-Extra: jax
Requires-Dist: jax>=0.4.1; extra == "jax"
Requires-Dist: jaxlib>=0.4.1; extra == "jax"
Provides-Extra: emcee
Requires-Dist: emcee>=3.0.2; extra == "emcee"
Provides-Extra: dynesty
Requires-Dist: dynesty>=2.0.3; extra == "dynesty"
Provides-Extra: mltools
Requires-Dist: umap-learn[plot]>=0.5.3; extra == "mltools"
Requires-Dist: scikit-learn>=0.24.1; extra == "mltools"
Provides-Extra: julia
Requires-Dist: julia>=0.5.7; extra == "julia"
Requires-Dist: ipython>=8.4.0; extra == "julia"
Requires-Dist: pygments>=2.12.0; extra == "julia"
Provides-Extra: doc
Requires-Dist: sphinx>=6.2.1; extra == "doc"
Requires-Dist: nbsphinx>=0.8.9; extra == "doc"
Requires-Dist: nbconvert>=6.5.0; extra == "doc"
Requires-Dist: sphinx-rtd-theme>=1.2.0; extra == "doc"
Requires-Dist: sphinx-autodoc-typehints>=1.18.3; extra == "doc"
Requires-Dist: sphinxcontrib-bibtex>=2.5.0; extra == "doc"
Requires-Dist: ipython>=8.4.0; extra == "doc"
Requires-Dist: myst-parser>=0.18.0; extra == "doc"
Requires-Dist: ipykernel==6.23.1; extra == "doc"
Requires-Dist: julia>=0.5.7; extra == "doc"
Requires-Dist: ipython>=8.4.0; extra == "doc"
Requires-Dist: pygments>=2.12.0; extra == "doc"
Requires-Dist: arviz>=0.12.1; extra == "doc"
Requires-Dist: pymc>=4.2.1; extra == "doc"
Requires-Dist: emcee>=3.0.2; extra == "doc"
Requires-Dist: dynesty>=2.0.3; extra == "doc"
Requires-Dist: nlopt!=2.9.0,>=2.6.2; extra == "doc"
Requires-Dist: pyswarms>=1.3.0; extra == "doc"
Requires-Dist: notebook>=6.1.4; extra == "doc"
Requires-Dist: ipywidgets>=8.1.5; extra == "doc"
Requires-Dist: petab-select[plot]>=0.3.3; extra == "doc"
Requires-Dist: fides>=0.6.1; extra == "doc"
Requires-Dist: amici<1.0.0,>=0.21.0; extra == "doc"
Requires-Dist: petab>=0.4.0; extra == "doc"
Requires-Dist: jax>=0.4.1; extra == "doc"
Requires-Dist: jaxlib>=0.4.1; extra == "doc"
Requires-Dist: libroadrunner>=2.7.0; extra == "doc"
Requires-Dist: petab>=0.4.0; extra == "doc"
Requires-Dist: python-libsbml>=5.20.2; extra == "doc"
Provides-Extra: example
Requires-Dist: julia>=0.5.7; extra == "example"
Requires-Dist: ipython>=8.4.0; extra == "example"
Requires-Dist: pygments>=2.12.0; extra == "example"
Requires-Dist: arviz>=0.12.1; extra == "example"
Requires-Dist: pymc>=4.2.1; extra == "example"
Requires-Dist: emcee>=3.0.2; extra == "example"
Requires-Dist: dynesty>=2.0.3; extra == "example"
Requires-Dist: nlopt!=2.9.0,>=2.6.2; extra == "example"
Requires-Dist: pyswarms>=1.3.0; extra == "example"
Requires-Dist: notebook>=6.1.4; extra == "example"
Requires-Dist: ipywidgets>=8.1.5; extra == "example"
Provides-Extra: select
Requires-Dist: petab-select[plot]>=0.3.3; extra == "select"
Provides-Extra: test
Requires-Dist: pytest>=5.4.3; extra == "test"
Requires-Dist: pytest-cov>=2.10.0; extra == "test"
Requires-Dist: gitpython>=3.1.7; extra == "test"
Requires-Dist: pytest-rerunfailures>=9.1.1; extra == "test"
Requires-Dist: autograd>=1.3; extra == "test"
Dynamic: download-url
Dynamic: license-file

# pyPESTO - Parameter EStimation TOolbox for python

<img src="https://raw.githubusercontent.com/ICB-DCM/pyPESTO/master/doc/logo/logo_wordmark.png" width="50%" alt="pyPESTO logo"/>

**pyPESTO** is a widely applicable and highly customizable toolbox for
parameter estimation.

[![PyPI](https://badge.fury.io/py/pypesto.svg)](https://badge.fury.io/py/pypesto)
[![CI](https://github.com/ICB-DCM/pyPESTO/workflows/CI/badge.svg)](https://github.com/ICB-DCM/pyPESTO/actions)
[![Coverage](https://codecov.io/gh/ICB-DCM/pyPESTO/branch/master/graph/badge.svg)](https://codecov.io/gh/ICB-DCM/pyPESTO)
[![Documentation](https://readthedocs.org/projects/pypesto/badge/?version=latest)](https://pypesto.readthedocs.io)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.2553546.svg)](https://doi.org/10.5281/zenodo.2553546)

## Feature overview

![](https://raw.githubusercontent.com/ICB-DCM/pyPESTO/main/doc/gfx/concept_pypesto.png)
*Feature overview of pyPESTO. Figure taken from the [Bioinformatics publication](https://doi.org/10.1093/bioinformatics/btad711).*

pyPESTO features include:

* Parameter estimation interfacing **multiple optimization algorithms** including
  multi-start local and global optimization. ([example](https://pypesto.readthedocs.io/en/latest/example/getting_started.html),
  [overview of optimizers](https://pypesto.readthedocs.io/en/latest/api/pypesto.optimize.html))
* Interface to **multiple simulators** including
  * [AMICI](https://github.com/AMICI-dev/AMICI/) for efficient simulation and
    sensitivity analysis of ordinary differential equation (ODE) models. ([example](https://pypesto.readthedocs.io/en/latest/example/amici.html))
  * [RoadRunner](https://libroadrunner.org/) for simulation of SBML models. ([example](https://pypesto.readthedocs.io/en/latest/example/roadrunner.html))
  * [Jax](https://jax.readthedocs.io/en/latest/quickstart.html) and
    [Julia](https://julialang.org) for automatic differentiation.
* **Uncertainty quantification** using various methods:
  * **Profile likelihoods**.
  * **Sampling** using Markov chain Monte Carlo (MCMC), parallel tempering, and
    interfacing other samplers including [emcee](https://emcee.readthedocs.io/en/stable/),
    [pymc](https://www.pymc.io/welcome.html) and
    [dynesty](https://dynesty.readthedocs.io/en/stable/).
    ([example](https://pypesto.readthedocs.io/en/latest/example/sampler_study.html))
  * **Variational inference**
* **Complete** parameter estimation **pipeline** for systems biology problems specified in
  [SBML](http://sbml.org/) and [PEtab](https://github.com/PEtab-dev/PEtab).
  ([example](https://pypesto.readthedocs.io/en/latest/example/petab_import.html))
* Parameter estimation pipelines for **different modes of data**:
  * **Relative (scaled and offset) data** as described in
    [Schmiester et al. (2020)](https://doi.org/10.1093/bioinformatics/btz581).
    ([example](https://pypesto.readthedocs.io/en/latest/example/relative_data.html))
  * **Ordinal data** as described in
    [Schmiester et al. (2020)](https://doi.org/10.1007/s00285-020-01522-w) and
    [Schmiester et al. (2021)](https://doi.org/10.1093/bioinformatics/btab512).
    ([example](https://pypesto.readthedocs.io/en/latest/example/ordinal_data.html))
  * **Censored data**. ([example](https://pypesto.readthedocs.io/en/latest/example/censored_data.html))
  * **Semiquantitative data** as described in [Doresic et al. (2024)](https://doi.org/10.1093/bioinformatics/btae210). ([example](https://pypesto.readthedocs.io/en/latest/example/semiquantitative_data.html))
* **Model selection**. ([example](https://pypesto.readthedocs.io/en/latest/example/model_selection.html))
* Various **visualization methods** to analyze parameter estimation results.

## Quick install

The simplest way to install **pyPESTO** is via pip:

```shell
pip3 install pypesto
```

More information is available here:
https://pypesto.readthedocs.io/en/latest/install.html

## Documentation

The documentation is hosted on readthedocs.io:
<https://pypesto.readthedocs.io>

## Examples

Multiple use cases are discussed in the documentation. In particular, there are
jupyter notebooks in the [doc/example](doc/example) directory.

## Contributing

We are happy about any contributions. For more information on how to contribute
to pyPESTO check out
<https://pypesto.readthedocs.io/en/latest/contribute.html>

## How to Cite

**Citeable DOI for the latest pyPESTO release:**
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.2553546.svg)](https://doi.org/10.5281/zenodo.2553546)

When using pyPESTO in your project, please cite
* Schälte, Y., Fröhlich, F., Jost, P. J., Vanhoefer, J., Pathirana, D., Stapor, P.,
  Lakrisenko, P., Wang, D., Raimúndez, E., Merkt, S., Schmiester, L., Städter, P.,
  Grein, S., Dudkin, E., Doresic, D., Weindl, D., & Hasenauer, J.
  pyPESTO: A modular and scalable tool for parameter estimation for dynamic models,
  Bioinformatics, Volume 39, Issue 11, 2023, btad711,
  [doi:10.1093/bioinformatics/btad711](https://doi.org/10.1093/bioinformatics/btad711)

When presenting work that employs pyPESTO, feel free to use one of the icons in
[doc/logo/](doc/logo):

<p align="center">
  <img src="https://raw.githubusercontent.com/ICB-DCM/pyPESTO/main/doc/logo/logo.png" height="75" alt="pyPESTO Logo">
</p>

There is a list of [publications using pyPESTO](https://pypesto.readthedocs.io/en/latest/references.html).
If you used pyPESTO in your work, we are happy to include
your project, please let us know via a GitHub issue.

## References

pyPESTO supersedes [**PESTO**](https://github.com/ICB-DCM/PESTO/) a parameter estimation
toolbox for MATLAB, whose development is discontinued.
