Metadata-Version: 2.4
Name: amici
Version: 1.0.0
Summary: Advanced multi-language Interface to CVODES and IDAS
Author: Jan Hasenauer, AMICI contributors
Author-email: Fabian Froehlich <froehlichfab@gmail.com>, Daniel Weindl <sci@danielweindl.de>
Maintainer-email: Fabian Froehlich <froehlichfab@gmail.com>, Daniel Weindl <sci@danielweindl.de>
License-Expression: BSD-3-Clause
Project-URL: Homepage, https://github.com/AMICI-dev/AMICI
Project-URL: Documentation, https://amici.readthedocs.io/en/latest/
Project-URL: Repository, https://github.com/AMICI-dev/AMICI.git
Project-URL: Bug Tracker, https://github.com/AMICI-dev/AMICI/issues
Keywords: differential equations,simulation,ode,cvodes,systems biology,sensitivity analysis,sbml,pysb,petab
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Programming Language :: Python
Classifier: Programming Language :: C++
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE.md
Requires-Dist: cmake-build-extension==0.6.0
Requires-Dist: sympy>=1.12.1
Requires-Dist: numpy>=1.23.2; python_version == "3.11"
Requires-Dist: numpy>=1.26.2; python_version == "3.12"
Requires-Dist: numpy; python_version >= "3.13"
Requires-Dist: python-libsbml
Requires-Dist: pandas>=2.0.2
Requires-Dist: sbmlmath>=0.4.0
Requires-Dist: toposort
Requires-Dist: setuptools>=48
Requires-Dist: mpmath
Requires-Dist: swig
Requires-Dist: xarray>=2025.01.0
Provides-Extra: petab
Requires-Dist: petab>=0.7.0; extra == "petab"
Provides-Extra: pysb
Requires-Dist: pysb>=1.17.0; extra == "pysb"
Provides-Extra: test
Requires-Dist: fiddy>=0.0.3; extra == "test"
Requires-Dist: h5py!=3.15; extra == "test"
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Requires-Dist: pytest-rerunfailures!=16.0; extra == "test"
Requires-Dist: coverage; extra == "test"
Requires-Dist: shyaml; extra == "test"
Requires-Dist: antimony>=2.13; extra == "test"
Requires-Dist: antimony!=2.14; (platform_system == "Darwin" and platform_machine in "x86_64h") and extra == "test"
Requires-Dist: scipy; extra == "test"
Requires-Dist: pooch; extra == "test"
Requires-Dist: beartype; extra == "test"
Provides-Extra: vis
Requires-Dist: matplotlib; extra == "vis"
Requires-Dist: seaborn; extra == "vis"
Provides-Extra: examples
Requires-Dist: jupyter; extra == "examples"
Requires-Dist: scipy; extra == "examples"
Provides-Extra: jax
Requires-Dist: jax<0.8.2,>=0.7.2; extra == "jax"
Requires-Dist: diffrax>=0.7.0; extra == "jax"
Requires-Dist: jaxtyping>=0.2.34; extra == "jax"
Requires-Dist: equinox>=0.13.2; extra == "jax"
Requires-Dist: optimistix>=0.0.9; extra == "jax"
Requires-Dist: interpax>=0.3.9; extra == "jax"
Provides-Extra: sciml
Requires-Dist: h5py; extra == "sciml"
Dynamic: license-file

<img src="https://raw.githubusercontent.com/AMICI-dev/AMICI/main/doc/gfx/banner.png" height="60" align="left" alt="AMICI logo">

## Advanced Multilanguage Interface for CVODES and IDAS

## About

AMICI provides a Python and C++ interface for the
[SUNDIALS](https://computing.llnl.gov/projects/sundials/) solvers
[CVODES](https://computing.llnl.gov/projects/sundials/cvodes)
(for ordinary differential equations) and
[IDAS](https://computing.llnl.gov/projects/sundials/idas)
(for algebraic differential equations). AMICI allows the user to read
differential equation models specified as [SBML](http://sbml.org/)
or [PySB](http://pysb.org/)
and automatically compiles such models into Python modules or C++ libraries.
The generated model expressions along with the corresponding sensitivity
equations are transformed into native C++ code which allows for a significantly
faster simulation.

**NOTE: The former MATLAB interface has been removed in AMICI 1.0.**

Beyond forward integration, the compiled simulation file also allows for
forward sensitivity analysis, steady state sensitivity analysis and
adjoint sensitivity analysis for likelihood-based output functions.

The interface was designed to provide routines for efficient gradient
computation in parameter estimation of biochemical reaction models, but
it is also applicable to a wider range of differential equation
constrained optimization problems.

## Current build status

<a href="https://badge.fury.io/py/amici">
  <img src="https://badge.fury.io/py/amici.svg" alt="PyPI version"></a>
<a href="https://github.com/AMICI-dev/AMICI/actions/workflows/test_pypi.yml">
  <img src="https://github.com/AMICI-dev/AMICI/actions/workflows/test_pypi.yml/badge.svg" alt="PyPI installation"></a>
<a href="https://codecov.io/gh/AMICI-dev/AMICI">
  <img src="https://codecov.io/gh/AMICI-dev/AMICI/branch/main/graph/badge.svg" alt="Code coverage"></a>
<a href="https://sonarcloud.io/dashboard?id=ICB-DCM_AMICI&branch=main">
  <img src="https://sonarcloud.io/api/project_badges/measure?project=ICB-DCM_AMICI&metric=sqale_index" alt="SonarCloud technical debt"></a>
<a href="https://zenodo.org/badge/latestdoi/43677177">
  <img src="https://zenodo.org/badge/43677177.svg" alt="Zenodo DOI"></a>
<a href="https://amici.readthedocs.io/en/latest/?badge=latest">
 <img src="https://readthedocs.org/projects/amici/badge/?version=latest" alt="ReadTheDocs status"></a>
<a href="https://bestpractices.coreinfrastructure.org/projects/3780">
  <img src="https://bestpractices.coreinfrastructure.org/projects/3780/badge" alt="coreinfrastructure bestpractices badge"></a>

## Features

* SBML import
* PySB import
* Generation of C++ code for model simulation and sensitivity
  computation
* Access to and high customizability of CVODES and IDAS solver
* Python and C++ interface
* Sensitivity analysis
  * forward
  * steady state
  * adjoint
  * first- and second-order
* Pre-equilibration and pre-simulation conditions
* Support for
  [discrete events and logical operations](https://academic.oup.com/bioinformatics/article/33/7/1049/2769435)

## Interfaces & workflow

The AMICI workflow starts with importing a model from either
[SBML](http://sbml.org/) (Python) or [PySB](http://pysb.org/) (Python).
From this input, all equations for model simulation
are derived symbolically and C++ code is generated. This code is then
compiled into a plain C++ library or a Python module, and
is then used for model simulation.

![AMICI workflow](https://raw.githubusercontent.com/AMICI-dev/AMICI/main/doc/gfx/amici_workflow.png)

## Getting started

The AMICI source code is available at https://github.com/AMICI-dev/AMICI/.
To install AMICI, first read the installation instructions for
[Python](https://amici.readthedocs.io/en/latest/python_installation.html) or
[C++](https://amici.readthedocs.io/en/latest/cpp_installation.html).
There are also instructions for using AMICI inside
[containers](https://github.com/AMICI-dev/AMICI/tree/main/container).

To get you started with Python-AMICI, the best way might be checking out this
[Jupyter notebook](https://github.com/AMICI-dev/AMICI/blob/main/doc/examples/getting_started/GettingStarted.ipynb)
[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/AMICI-dev/AMICI/main?labpath=doc%2Fexamples%2Fgetting_started%2FGettingStarted.ipynb).

Comprehensive documentation is available at
[https://amici.readthedocs.io/en/latest/](https://amici.readthedocs.io/en/latest/).

Any [contributions](https://amici.readthedocs.io/en/latest/CONTRIBUTING.html)
to AMICI are welcome (code, bug reports, suggestions for improvements, ...).


## Getting help

In case of questions or problems with using AMICI, feel free to post an
[issue](https://github.com/AMICI-dev/AMICI/issues) on GitHub. We are trying to
get back to you quickly.

## Projects using AMICI

There are several tools for parameter estimation offering good integration
with AMICI:

* [pyPESTO](https://github.com/ICB-DCM/pyPESTO): Python library for
  optimization, sampling and uncertainty analysis
* [pyABC](https://github.com/ICB-DCM/pyABC): Python library for
  parallel and scalable ABC-SMC (Approximate Bayesian Computation - Sequential
  Monte Carlo)
* [parPE](https://github.com/ICB-DCM/parPE): C++ library for parameter
  estimation of ODE models offering distributed memory parallelism with focus
  on problems with many simulation conditions.

## Publications

**Citeable DOI for the latest AMICI release:**
[![DOI](https://zenodo.org/badge/43677177.svg)](https://zenodo.org/badge/latestdoi/43677177)

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

When using AMICI in your project, please cite:

* Fröhlich, F., Weindl, D., Schälte, Y., Pathirana, D., Paszkowski, Ł., Lines, G.T., Stapor, P. and Hasenauer, J., 2021.
  AMICI: High-Performance Sensitivity Analysis for Large Ordinary Differential Equation Models. Bioinformatics, btab227,
  [DOI:10.1093/bioinformatics/btab227](https://doi.org/10.1093/bioinformatics/btab227).

  ```bibtex
  @article{frohlich2020amici,
    title={AMICI: High-Performance Sensitivity Analysis for Large Ordinary Differential Equation Models},
    author={Fr{\"o}hlich, Fabian and Weindl, Daniel and Sch{\"a}lte, Yannik and Pathirana, Dilan and Paszkowski, {\L}ukasz and Lines, Glenn Terje and Stapor, Paul and Hasenauer, Jan},
    journal = {Bioinformatics},
    year = {2021},
    month = {04},
    issn = {1367-4803},
    doi = {10.1093/bioinformatics/btab227},
    note = {btab227},
    eprint = {https://academic.oup.com/bioinformatics/advance-article-pdf/doi/10.1093/bioinformatics/btab227/36866220/btab227.pdf},
  }
  ```

When presenting work that employs AMICI, feel free to use one of the icons in
[doc/gfx/](https://github.com/AMICI-dev/AMICI/tree/main/doc/gfx),
which are available under a
[CC0](https://github.com/AMICI-dev/AMICI/tree/main/doc/gfx/LICENSE.md)
license:

<p align="center">
  <img src="https://raw.githubusercontent.com/AMICI-dev/AMICI/main/doc/gfx/logo_text.png" height="75" alt="AMICI Logo">
</p>
