amici

High-performance sensitivity analysis for large ordinary differential equation models

https://github.com/amici-dev/amici

Science Score: 77.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 5 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    8 of 30 committers (26.7%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.4%) to scientific vocabulary

Keywords

adjoint-sensitivities cvode cvodes differentialequations forward-sensitivities hacktoberfest idas kinetic-modeling mechanistic-models modeling ode parameter-estimation petab pysb python sbml sensitivities sensitivity-analysis simulation systemsbiology
Last synced: 6 months ago · JSON representation ·

Repository

High-performance sensitivity analysis for large ordinary differential equation models

Basic Info
Statistics
  • Stars: 125
  • Watchers: 9
  • Forks: 31
  • Open Issues: 123
  • Releases: 124
Topics
adjoint-sensitivities cvode cvodes differentialequations forward-sensitivities hacktoberfest idas kinetic-modeling mechanistic-models modeling ode parameter-estimation petab pysb python sbml sensitivities sensitivity-analysis simulation systemsbiology
Created over 10 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Code of conduct Citation Codeowners

README.md

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. 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 MATLAB interface is no longer supported and will be removed soon.

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

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

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.

bibtex @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:

AMICI Logo

Owner

  • Name: AMICI
  • Login: AMICI-dev
  • Kind: organization

Advanced Multilanguage Interface to CVODES and IDAS

Citation (CITATION.cff)

authors:
   -
     family-names: "Fröhlich"
     given-names: "Fabian"
     orcid: "https://orcid.org/0000-0002-5360-4292"
   -
     family-names: "Weindl"
     given-names: "Daniel"
     orcid: "https://orcid.org/0000-0001-9963-6057"
   -
     family-names: "Schälte"
     given-names: "Yannik"
     orcid: "https://orcid.org/0000-0003-1293-820X"
   -
     family-names: "Pathirana"
     given-names: "Dilan"
     orcid: "https://orcid.org/0000-0001-7000-2659"
   -
     family-names: "Paszkowski"
     given-names: "Lukasz"
   -
     family-names: "Lines"
     given-names: "Glenn Terje"
     orcid: "https://orcid.org/0000-0002-6294-1805"
   -
     family-names: "Stapor"
     given-names: "Paul"
     orcid: "https://orcid.org/0000-0002-7567-3985"
   -
     family-names: "Hasenauer"
     given-names: "Jan"
     orcid: "https://orcid.org/0000-0002-4935-3312"
title: "AMICI: High-Performance Sensitivity Analysis for Large Ordinary Differential Equation Models"

preferred-citation:
   type: article
   title: "AMICI: High-Performance Sensitivity Analysis for Large Ordinary Differential Equation Models"
   doi: 10.1093/bioinformatics/btab227
   journal: "Bioinformatics"
   year: 2021
   month: 4
   start: 1
   end: 1
   authors:
      -
        family-names: "Fröhlich"
        given-names: "Fabian"
        orcid: "https://orcid.org/0000-0002-5360-4292"
      -
        family-names: "Weindl"
        given-names: "Daniel"
        orcid: "https://orcid.org/0000-0001-9963-6057"
      -
        family-names: "Schälte"
        given-names: "Yannik"
        orcid: "https://orcid.org/0000-0003-1293-820X"
      -
        family-names: "Pathirana"
        given-names: "Dilan"
        orcid: "https://orcid.org/0000-0001-7000-2659"
      -
        family-names: "Paszkowski"
        given-names: "Lukasz"
      -
        family-names: "Lines"
        given-names: "Glenn Terje"
        orcid: "https://orcid.org/0000-0002-6294-1805"
      -
        family-names: "Stapor"
        given-names: "Paul"
        orcid: "https://orcid.org/0000-0002-7567-3985"
      -
        family-names: "Hasenauer"
        given-names: "Jan"
        orcid: "https://orcid.org/0000-0002-4935-3312"
cff-version: 1.2.0
message: "If you use this software, please cite both the article from preferred-citation and the software itself."
url: "https://github.com/AMICI-dev/AMICI"
doi: 10.5281/zenodo.597928

GitHub Events

Total
  • Create event: 190
  • Release event: 11
  • Issues event: 143
  • Watch event: 13
  • Delete event: 170
  • Issue comment event: 870
  • Push event: 560
  • Pull request review comment event: 80
  • Pull request review event: 250
  • Pull request event: 424
  • Fork event: 1
Last Year
  • Create event: 190
  • Release event: 11
  • Issues event: 143
  • Watch event: 13
  • Delete event: 170
  • Issue comment event: 870
  • Push event: 560
  • Pull request review comment event: 80
  • Pull request review event: 250
  • Pull request event: 424
  • Fork event: 1

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 3,005
  • Total Committers: 30
  • Avg Commits per committer: 100.167
  • Development Distribution Score (DDS): 0.619
Top Committers
Name Email Commits
fabian.froehlich f****h@h****e 1,145
Daniel Weindl d****l@h****e 804
Daniel Weindl d****l@u****m 514
Fabian Fröhlich f****n@s****m 221
Paul Stapor p****r@h****e 149
Fabian Fröhlich f****h@h****u 58
Yannik Schälte 3****e@u****m 32
Dilan Pathirana 5****h@u****m 21
lcontento l****o@u****m 11
AMICI-developer f****b@g****m 9
Polina Lakrisenko p****o@g****m 7
Thomas S. Ligon t****m@t****o 4
Leonard l****r@h****e 4
dependabot[bot] 4****]@u****m 3
Jan Hasenauer j****r@h****e 2
Łukasz Paszkowski l****i@r****m 2
Łukasz Paszkowski 4****w@u****m 2
yannikschaelte y****e@g****m 2
Paul Jonas Jost 7****t@u****m 2
Fabian Froehlich F****h@m****e 2
MerktSimon 4****n@u****m 2
Kristian Meyer km@m****m 1
Paul Lang 4****g@u****m 1
Stephan Grein s****n@u****e 1
Stephan Grein 1****g@u****m 1
Doresic 8****c@u****m 1
Katrin Leinweber 9****r@u****m 1
LarsFroehling 6****g@u****m 1
Jakob Vanhoefer 3****r@u****m 1
willov w****s@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 270
  • Total pull requests: 742
  • Average time to close issues: 9 months
  • Average time to close pull requests: 12 days
  • Total issue authors: 28
  • Total pull request authors: 13
  • Average comments per issue: 1.69
  • Average comments per pull request: 1.32
  • Merged pull requests: 620
  • Bot issues: 0
  • Bot pull requests: 9
Past Year
  • Issues: 96
  • Pull requests: 495
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 2 days
  • Issue authors: 7
  • Pull request authors: 4
  • Average comments per issue: 0.95
  • Average comments per pull request: 1.14
  • Merged pull requests: 394
  • Bot issues: 0
  • Bot pull requests: 3
Top Authors
Issue Authors
  • dweindl (229)
  • FFroehlich (27)
  • paulstapor (6)
  • aidinbii (5)
  • yannikschaelte (4)
  • plakrisenko (3)
  • matthiaskoenig (3)
  • dilpath (2)
  • ahjanee (2)
  • m-philipps (2)
  • lcontento (2)
  • derleanfv (1)
  • winkmal (1)
  • lmriccardo (1)
  • PHvanLent (1)
Pull Request Authors
  • dweindl (833)
  • FFroehlich (101)
  • dependabot[bot] (16)
  • plakrisenko (5)
  • dilpath (4)
  • paulstapor (4)
  • BartoszBartmanski (2)
  • ChocolateCharlie (2)
  • willov (1)
  • Podde1 (1)
  • Doresic (1)
  • PaulJonasJost (1)
  • fbergmann (1)
  • stephanmg (1)
Top Labels
Issue Labels
enhancement (55) python (52) c++ (45) bug (42) SBML (26) ci (25) events (18) PEtab (17) documentation (15) cmake (13) new (11) refactoring (10) matlab (10) wontfix (8) good first issue (8) breaking change (7) question (7) steady state (6) windows (5) performance (5) swig (3) maintenance (2) DAE (1) 2nd order (1) HacktoberFest (1) PySB (1) help wanted (1) :mega: :mega: :mega: (1)
Pull Request Labels
codex (41) dependencies (16) github_actions (12) PEtab (2) performance (2) invalid (2) help wanted (1)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 3,028 last-month
  • Total docker downloads: 2,876
  • Total dependent packages: 5
    (may contain duplicates)
  • Total dependent repositories: 13
    (may contain duplicates)
  • Total versions: 129
  • Total maintainers: 3
pypi.org: amici

Advanced multi-language Interface to CVODES and IDAS

  • Versions: 127
  • Dependent Packages: 5
  • Dependent Repositories: 13
  • Downloads: 3,028 Last month
  • Docker Downloads: 2,876
Rankings
Dependent packages count: 1.6%
Docker downloads count: 1.7%
Dependent repos count: 4.0%
Average: 4.4%
Downloads: 5.0%
Stargazers count: 6.9%
Forks count: 7.3%
Maintainers (2)
Last synced: 6 months ago
spack.io: py-amici

Advanced Multilanguage Interface for CVODES and IDAS

  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Stargazers count: 19.1%
Forks count: 19.2%
Average: 23.8%
Dependent packages count: 57.0%
Maintainers (1)
Last synced: 6 months ago

Dependencies

documentation/rtd_requirements.txt pypi
  • breathe ==4.31.0
  • exhale ea77a313777c1382a7830ce9ee6c405ce47f5f3b
  • ipython >=7.28.0
  • matplotlib >=3.4.3
  • mock >=4.0.1
  • nbformat ==5.1.3
  • nbsphinx >=0.8.7
  • petab >=0.1.20
  • pkgconfig >=1.5.5
  • pygments ==2.10.0
  • pysb >=1.11.0
  • recommonmark >=0.6.0
  • setuptools >=45.2.0
  • sphinx ==4.2.0
  • sphinx-autodoc-typehints ==1.13.0
  • sphinx_rtd_theme >=1.0.0
  • sphinxcontrib-matlabdomain >=0.12.0
  • sphinxcontrib-napoleon *
.github/workflows/deploy_branch.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
.github/workflows/deploy_protected.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • docker/setup-buildx-action v2 composite
  • docker/setup-qemu-action v2 composite
  • elgohr/Publish-Docker-Github-Action v4 composite
.github/workflows/deploy_release.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • pypa/gh-action-pypi-publish release/v1 composite
.github/workflows/test_benchmark_collection_models.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
.github/workflows/test_doc.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/test_install.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/test_matlab.yml actions
  • actions/checkout v3 composite
  • matlab-actions/run-command v1 composite
  • matlab-actions/setup-matlab v1 composite
.github/workflows/test_performance.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
.github/workflows/test_petab_test_suite.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • codecov/codecov-action v3.1.0 composite
.github/workflows/test_pypi.yml actions
  • actions/setup-python v4 composite
.github/workflows/test_python_cplusplus.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • codecov/codecov-action v3.1.0 composite
.github/workflows/test_python_ver_matrix.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/test_sbml_semantic_test_suite.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
  • codecov/codecov-action v3.1.0 composite
.github/workflows/test_valgrind.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/test_windows.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
  • ilammy/msvc-dev-cmd v1 composite
binder/Dockerfile docker
  • ubuntu 22.04 build
container/Dockerfile docker
  • ubuntu 22.04 build
documentation/rtd_requirements2.txt pypi
  • exhale >=0.3.6
python/sdist/pyproject.toml pypi
python/sdist/setup.py pypi