|
1 | 1 | # About AMICI |
2 | 2 |
|
| 3 | +AMICI provides a multi-language (Python, C++, Matlab) interface for the |
| 4 | +[SUNDIALS](https://computing.llnl.gov/projects/sundials/) solvers |
| 5 | +[CVODES](https://computing.llnl.gov/projects/sundials/cvodes) |
| 6 | +(for ordinary differential equations) and |
| 7 | +[IDAS](https://computing.llnl.gov/projects/sundials/idas) |
| 8 | +(for algebraic differential equations). AMICI allows the user to read |
| 9 | +differential equation models specified as [SBML](http://sbml.org/) |
| 10 | +and automatically compiles such models as `.mex` simulation files |
| 11 | +(Matlab), C++ executables or Python modules. |
3 | 12 |
|
4 | | -AMICI provides a multilanguage (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 and automatically compiles such models as .mex simulation files, C++ executables or python modules. In contrast to the SUNDIALSTB 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. |
| 13 | +In contrast to the (no longer maintained) |
| 14 | +[sundialsTB](https://computing.llnl.gov/projects/sundials/sundials-software) |
| 15 | +Matlab interface, all necessary functions are transformed into native |
| 16 | +C++ code, which allows for a significantly faster simulation. |
5 | 17 |
|
6 | | -The interface was designed to provide routines for efficient gradient computation in parameter estimation of biochemical reaction models but is also applicable to a wider range of differential equation constrained optimization problems. |
| 18 | +Beyond forward integration, the compiled simulation file also allows for |
| 19 | +forward sensitivity analysis, steady state sensitivity analysis and |
| 20 | +adjoint sensitivity analysis for likelihood based output functions. |
7 | 21 |
|
8 | | -Online documentation is available as [github-pages](http://icb-dcm.github.io/AMICI/). |
| 22 | +The interface was designed to provide routines for efficient gradient |
| 23 | +computation in parameter estimation of biochemical reaction models but |
| 24 | +it is also applicable to a wider range of differential equation |
| 25 | +constrained optimization problems. |
9 | 26 |
|
10 | | -## Publications |
11 | | - |
12 | | -[](https://zenodo.org/badge/latestdoi/43677177) |
13 | 27 |
|
14 | | -[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](https://doi.org/10.1371/journal.pcbi.1005331) |
| 28 | +## Features |
15 | 29 |
|
16 | | -[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](https://doi.org/10.1093/bioinformatics/btw764) |
| 30 | +* SBML import (see details below) |
| 31 | +* Generation of C++ code for model simulation and sensitivity |
| 32 | + computation |
| 33 | +* Access to and high customizability of CVODES and IDAS solver |
| 34 | +* Python, C++, Matlab interface |
| 35 | +* Sensitivity analysis |
| 36 | + * forward |
| 37 | + * steady state |
| 38 | + * adjoint |
| 39 | + * first- and second-order |
| 40 | +* Pre-equilibration and pre-simulation conditions |
| 41 | +* Support for |
| 42 | + [discrete events and logical operations](https://academic.oup.com/bioinformatics/article/33/7/1049/2769435) |
17 | 43 |
|
18 | | -[Full list](documentation/references.md) |
19 | 44 |
|
20 | 45 | ## Interfaces & workflow |
21 | 46 |
|
22 | 47 | The AMICI workflow starts with importing a model from either |
23 | 48 | [SBML](http://sbml.org/) (Matlab, Python) or a Matlab definition of the |
24 | 49 | model (Matlab-only). From this input, all equations for model simulation |
25 | 50 | are derived symbolically and C++ code is generated. This code is then |
26 | | -compiled into a C++ library, a Python module, or a Matab mex file and |
27 | | -is then used for model simulation. |
| 51 | +compiled into a C++ library, a Python module, or a Matlab `.mex` file and |
| 52 | +is then used for model simulation. |
| 53 | + |
| 54 | + |
| 55 | + |
| 56 | +## Getting started |
| 57 | + |
| 58 | +AMICI installation instructions are provided |
| 59 | +[here](http://icb-dcm.github.io/AMICI/md__i_n_s_t_a_l_l.html). |
| 60 | + |
| 61 | +To get you started with Python-AMICI the best way might be this |
| 62 | +[Jupyter notebook](https://github.com/ICB-DCM/AMICI/blob/master/python/examples/example_steadystate/ExampleSteadystate.ipynb). |
| 63 | + |
| 64 | +For Matlab, various examples are available |
| 65 | +[here](https://github.com/ICB-DCM/AMICI/tree/master/matlab/examples). |
| 66 | + |
| 67 | + |
| 68 | +Comprehensive documentation on installation and usage of AMICI is available |
| 69 | +online at [http://icb-dcm.github.io/AMICI/](http://icb-dcm.github.io/AMICI/). |
| 70 | + |
| 71 | +Any contributions to AMICI are welcome, read more contributing |
| 72 | +[here](http://icb-dcm.github.io/AMICI/md__c_o_n_t_r_i_b_u_t_i_n_g.html). |
| 73 | + |
| 74 | + |
| 75 | +### Getting help |
| 76 | + |
| 77 | +In case of questions or problems with using AMICI, feel free to post an |
| 78 | +[issue](https://github.com/ICB-DCM/AMICI/issues) on Github. We are trying to |
| 79 | +get back to you quickly. |
| 80 | + |
| 81 | +## Publications |
| 82 | + |
| 83 | +**Citeable DOI for the latest AMICI release:** |
| 84 | +[](https://zenodo.org/badge/latestdoi/43677177) |
| 85 | + |
| 86 | +There is a list of [publications using AMICI](documentation/references.md). |
| 87 | +If you used AMICI in your work, we are happy to include |
| 88 | +your project, please let us know via a Github issue. |
| 89 | + |
| 90 | +When using AMICI in your project, please cite |
| 91 | +* [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](https://doi.org/10.1371/journal.pcbi.1005331) |
| 92 | +and/or |
| 93 | +* [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](https://doi.org/10.1093/bioinformatics/btw764) |
| 94 | + |
| 95 | + |
| 96 | +## Status of SBML support in Python-AMICI |
| 97 | + |
| 98 | +Python-AMICI currently passes 494 out of the 1780 (~28%) test cases from |
| 99 | +the semantic |
| 100 | +[SBML Test Suite](https://github.com/sbmlteam/sbml-test-suite/). |
| 101 | + |
| 102 | +In additional, we currently plan to add support for the following features |
| 103 | +(see corresponding issues for details and progress): |
| 104 | + |
| 105 | +- Events (currently Matlab-only) |
| 106 | +- Rate rules |
| 107 | +- Algebraic rules |
| 108 | +- Species assignment rules |
| 109 | +- Compartment assignment rules |
| 110 | +- Models without species |
| 111 | +- Logical operators |
| 112 | + |
| 113 | +contributions are welcome. |
| 114 | + |
| 115 | +However, the following features are unlikely to be supported: |
| 116 | + |
| 117 | +- SBML extensions |
| 118 | +- `factorial()`, `ceil()`, `floor()`, due to incompatibility with |
| 119 | + symbolic sensitivity computations |
| 120 | +- initial assignments for parameters |
| 121 | +- `delay()` due to missing SUNDIALS solver support |
28 | 122 |
|
29 | | - |
30 | 123 |
|
31 | 124 | ## Current build status |
32 | 125 |
|
33 | | -[](https://badge.fury.io/py/amici) |
34 | | -[](https://travis-ci.com/ICB-DCM/AMICI) |
35 | | -[](https://codecov.io/gh/ICB-DCM/AMICI) |
36 | | -[](https://www.codacy.com/app/FFroehlich/AMICI?utm_source=github.com&utm_medium=referral&utm_content=ICB-DCM/AMICI&utm_campaign=Badge_Grade) |
| 126 | +<a href="https://badge.fury.io/py/amici" alt="PyPI version"> |
| 127 | + <img src="https://badge.fury.io/py/amici.svg"></a> |
| 128 | +<a href="https://travis-ci.com/ICB-DCM/AMICI" alt="Build Status"> |
| 129 | + <img src="https://travis-ci.com/ICB-DCM/AMICI.svg?branch=master"></a> |
| 130 | +<a href="https://codecov.io/gh/ICB-DCM/AMICI" alt="CodeCov"> |
| 131 | + <img src="https://codecov.io/gh/ICB-DCM/AMICI/branch/master/graph/badge.svg"></a> |
| 132 | +<a href="https://www.codacy.com/app/FFroehlich/AMICI" alt="Codacy"> |
| 133 | + <img src="https://api.codacy.com/project/badge/Grade/945235766e344a7fa36278feab915ff6"></a> |
0 commit comments