Skip to main content

Advanced multi-language Interface to CVODES and IDAS

Project description

AMICI logo

Advanced Multilanguage Interface for CVODES and IDAS

About

AMICI provides a multi-language (Python, C++, Matlab) 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, C++ libraries or Matlab .mex simulation files.

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.

Current build status

PyPI version Build Status Code coverage SonarCloud technical debt Zenodo DOI ReadTheDocs status coreinfrastructure bestpractices badge

Features

  • 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
    • forward
    • steady state
    • adjoint
    • 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), PySB (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.

AMICI workflow

Getting started

The AMICI source code is available at https://github.com/AMICI-dev/AMICI/. To install AMICI, first read the installation instructions.

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 for the python and MATLAB/C++ interfaces.

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: DOI

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

When presenting work that employs AMICI, feel free to use one of the icons in documentation/gfx/, which are available under a CC0 license:

AMICI Logo

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

amici-0.11.7.tar.gz (1.4 MB view details)

Uploaded Source

File details

Details for the file amici-0.11.7.tar.gz.

File metadata

  • Download URL: amici-0.11.7.tar.gz
  • Upload date:
  • Size: 1.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.5

File hashes

Hashes for amici-0.11.7.tar.gz
Algorithm Hash digest
SHA256 935602e2efad2fa7358948298013a726f43b2de0af501972b267a920625a3679
MD5 8b9d9df304afad04e6147ade0b7a2ee0
BLAKE2b-256 133870c44f4fa71b759c07fefb6a7fae5f0abdf059f6bf85e92211bb4044a2e7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page