Advanced multi-language Interface to CVODES and IDAS
AMICI provides a multi-language (Python, C++, Matlab) interface for the
(for ordinary differential equations) and
(for algebraic differential equations). AMICI allows the user to read
differential equation models specified as SBML
and automatically compiles such models into
.mex simulation files
(Matlab), C++ executables or Python modules.
In contrast to the (no longer maintained) sundialsTB Matlab interface, all necessary functions are transformed into native C++ code, which allows for a significantly faster simulation.
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.
- SBML import (see details below)
- PySB import
- Generation of C++ code for model simulation and sensitivity computation
- Access to and high customizability of CVODES and IDAS solver
- Python, C++, Matlab interface
- Sensitivity analysis
- steady state
- first- and second-order
- Pre-equilibration and pre-simulation conditions
- Support for discrete events and logical operations (Matlab-only)
Interfaces & workflow
The AMICI workflow starts with importing a model from either
SBML (Matlab, Python) or a Matlab definition of the
model (Matlab-only). From this input, all equations for model simulation
are derived symbolically and C++ code is generated. This code is then
compiled into a C++ library, a Python module, or a Matlab
.mex file and
is then used for model simulation.
To get you started with Python-AMICI, the best way might be checking out this Jupyter notebook.
To get started with Matlab-AMICI, various examples are available in matlab/examples/.
Comprehensive documentation on installation and usage of AMICI is available online at http://icb-dcm.github.io/AMICI/.
Any contributions to AMICI are welcome (code, bug reports, suggestions for improvements, ...).
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.
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., Kaltenbacher, B., Theis, F. J., & Hasenauer, J. (2017). Scalable Parameter Estimation for Genome-Scale Biochemical Reaction Networks. Plos Computational Biology, 13(1), e1005331. doi:10.1371/journal.pcbi.1005331 and/or
- Fröhlich, F., Theis, F. J., Rädler, J. O., & Hasenauer, J. (2017). Parameter estimation for dynamical systems with discrete events and logical operations. Bioinformatics, 33(7), 1049-1056. doi:10.1093/bioinformatics/btw764
Status of SBML support in Python-AMICI
In addition, we currently plan to add support for the following features (see corresponding issues for details and progress):
- Events (currently Matlab-only)
- Rate rules
- Algebraic rules
- Species assignment rules
- Compartment assignment rules
- Models without species
contributions are welcome.
However, the following features are unlikely to be supported:
- SBML extensions
floor(), due to incompatibility with symbolic sensitivity computations
- initial assignments for parameters
delay()due to missing SUNDIALS solver support
In addition to SBML, we also plan to implement support for the Simulation Experiment Description Markup Language (SED-ML).
Current build status
Release history Release notifications
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size amici-0.10.17.tar.gz (1.8 MB)||File type Source||Python version None||Upload date||Hashes View hashes|