All Projects → AMICI-dev → AMICI

AMICI-dev / AMICI

Licence: other
Advanced Multilanguage Interface to CVODES and IDAS

Programming Languages

C++
36643 projects - #6 most used programming language
Jupyter Notebook
11667 projects
python
139335 projects - #7 most used programming language
matlab
3953 projects
CMake
9771 projects
CSS
56736 projects

Projects that are alternatives of or similar to AMICI

Sundials.jl
Julia interface to Sundials, including a nonlinear solver (KINSOL), ODE's (CVODE and ARKODE), and DAE's (IDA) in a SciML scientific machine learning enabled manner
Stars: ✭ 167 (+108.75%)
Mutual labels:  ode, differentialequations, cvode, sensitivity-analysis, idas
parPE
Parameter estimation for dynamical models using high-performance computing, batch and mini-batch optimizers, and dynamic load balancing.
Stars: ✭ 16 (-80%)
Mutual labels:  ode, parameter-estimation, sbml, petab
DiffEqParamEstim.jl
Easy scientific machine learning (SciML) parameter estimation with pre-built loss functions
Stars: ✭ 36 (-55%)
Mutual labels:  ode, parameter-estimation, differentialequations
DiffEqSensitivity.jl
A component of the DiffEq ecosystem for enabling sensitivity analysis for scientific machine learning (SciML). Optimize-then-discretize, discretize-then-optimize, and more for ODEs, SDEs, DDEs, DAEs, etc.
Stars: ✭ 186 (+132.5%)
Mutual labels:  ode, differentialequations, sensitivity-analysis
DiffEqGPU.jl
GPU-acceleration routines for DifferentialEquations.jl and the broader SciML scientific machine learning ecosystem
Stars: ✭ 131 (+63.75%)
Mutual labels:  ode, differentialequations
SBMLToolkit.jl
SBML differential equation and chemical reaction model (Gillespie simulations) for Julia's SciML ModelingToolkit
Stars: ✭ 25 (-68.75%)
Mutual labels:  ode, sbml
SciMLBenchmarks.jl
Benchmarks for scientific machine learning (SciML) software and differential equation solvers
Stars: ✭ 195 (+143.75%)
Mutual labels:  ode, differentialequations
DiffEqPhysics.jl
A library for building differential equations arising from physical problems for physics-informed and scientific machine learning (SciML)
Stars: ✭ 46 (-42.5%)
Mutual labels:  ode, differentialequations
Differentialequations.jl
Multi-language suite for high-performance solvers of differential equations and scientific machine learning (SciML) components
Stars: ✭ 2,023 (+2428.75%)
Mutual labels:  ode, differentialequations
GlobalSensitivity.jl
Robust, Fast, and Parallel Global Sensitivity Analysis (GSA) in Julia
Stars: ✭ 30 (-62.5%)
Mutual labels:  ode, sensitivity-analysis
MultiScaleArrays.jl
A framework for developing multi-scale arrays for use in scientific machine learning (SciML) simulations
Stars: ✭ 63 (-21.25%)
Mutual labels:  ode, differentialequations
sbml-test-suite
The SBML Test Suite is a conformance testing system. It allows developers and users to test the degree and correctness of the SBML support provided in a software package.
Stars: ✭ 21 (-73.75%)
Mutual labels:  ode, sbml
pestpp
tools for scalable and non-intrusive parameter estimation, uncertainty analysis and sensitivity analysis
Stars: ✭ 90 (+12.5%)
Mutual labels:  parameter-estimation, sensitivity-analysis
pysces
The official PySCeS project source code repository.
Stars: ✭ 25 (-68.75%)
Mutual labels:  sbml, kinetic-modeling
StructuralIdentifiability.jl
Fast and automatic structural identifiability software for ODE systems
Stars: ✭ 57 (-28.75%)
Mutual labels:  parameter-estimation, differentialequations
DiffEqUncertainty.jl
Fast uncertainty quantification for scientific machine learning (SciML) and differential equations
Stars: ✭ 61 (-23.75%)
Mutual labels:  ode, differentialequations
rec-core
Data pipelining service
Stars: ✭ 19 (-76.25%)
Mutual labels:  modeling
welltestpy
A python-package for handling well based field campaigns.
Stars: ✭ 26 (-67.5%)
Mutual labels:  parameter-estimation
DiffEqDevTools.jl
Benchmarking, testing, and development tools for differential equations and scientific machine learning (SciML)
Stars: ✭ 37 (-53.75%)
Mutual labels:  ode
OpenCossan
OpenCossan is an open and free toolbox for uncertainty quantification and management.
Stars: ✭ 40 (-50%)
Mutual labels:  sensitivity-analysis

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 PyPI installation Code coverage SonarCloud technical debt Zenodo DOI ReadTheDocs status coreinfrastructure bestpractices badge

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, 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 for Python, C++ or Matlab.

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 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: 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., 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 documentation/gfx/, which are available under a CC0 license:

AMICI Logo

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].