GithubHelp home page GithubHelp logo

yannikschaelte / amici Goto Github PK

View Code? Open in Web Editor NEW

This project forked from amici-dev/amici

0.0 1.0 0.0 192.29 MB

Advanced Multilanguage Interface to CVODES and IDAS

Home Page: http://icb-dcm.github.io/AMICI/

License: Other

MATLAB 10.37% C 0.58% TeX 1.20% C++ 36.67% CMake 1.78% PowerShell 0.08% Shell 0.55% Python 12.28% HTML 4.10% CSS 0.64% Jupyter Notebook 31.42% SWIG 0.31% Dockerfile 0.01%

amici's Introduction

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 .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.

Current build status

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) 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/ICB-DCM/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.

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:

Status of SBML support in Python-AMICI

Python-AMICI currently passes 696 out of the 1780 (~39%) test cases from the semantic SBML Test Suite (current status).

In addition, we currently plan to add support for the following features (see corresponding issues for details and progress):

  • Events (currently Matlab-only)
  • Algebraic rules
  • Models without species

contributions are welcome.

However, the following features are unlikely to be supported:

  • SBML extensions
  • factorial(), ceil(), 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).

amici's People

Contributors

dweindl avatar ffroehlich avatar paulstapor avatar yannikschaelte avatar amici-developer avatar leonardschmiester avatar lcontento avatar dilpath avatar paszkow avatar merktsimon avatar jvanhoefer avatar katrinleinweber avatar larsfroehling avatar plakrisenko avatar thomassligon avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.