AMICI
High-performance sensitivity analysis for large ordinary differential equation models
Install / Use
/learn @AMICI-dev/AMICIREADME
Advanced Multilanguage Interface for CVODES and IDAS
About
AMICI provides a Python and C++ interface for the SUNDIALS solvers CVODES (for ordinary differential equations) and IDAS (for algebraic differential equations). AMICI allows the user to read differential equation models specified as SBML or PySB 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
Interfaces & workflow
The AMICI workflow starts with importing a model from either SBML (Python) or PySB (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.

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 or C++. There are also instructions for using AMICI inside containers.
To get you started with Python-AMICI, the best way might be checking out this
Jupyter notebook
.
Comprehensive documentation is available at https://amici.readthedocs.io/en/latest/.
Any contributions 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 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: Python library for optimization, sampling and uncertainty analysis
- pyABC: Python library for parallel and scalable ABC-SMC (Approximate Bayesian Computation - Sequential Monte Carlo)
- 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:
There is a list of publications using AMICI. 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.
@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/, which are available under a CC0 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>Related Skills
node-connect
342.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
claude-opus-4-5-migration
85.3kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
frontend-design
85.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
model-usage
342.5kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
