Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,15 @@

See also our [versioning policy](https://amici.readthedocs.io/en/latest/versioning_policy.html).

## v1.X Series

### v1.0.0 (unreleased)

BREAKING CHANGES

* The MATLAB interface has been removed.


## v0.X Series

### v0.34.1 (2025-08-25)
Expand Down
31 changes: 0 additions & 31 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,6 @@ set(AMICI_SRC_LIST
src/edata.cpp
src/exception.cpp
src/simulation_parameters.cpp
src/spline.cpp
src/solver.cpp
src/solver_cvodes.cpp
src/solver_idas.cpp
Expand Down Expand Up @@ -213,7 +212,6 @@ set(AMICI_SRC_LIST
include/amici/solver_cvodes.h
include/amici/solver.h
include/amici/solver_idas.h
include/amici/spline.h
include/amici/splinefunctions.h
include/amici/steadystateproblem.h
include/amici/sundials_linsol_wrapper.h
Expand Down Expand Up @@ -309,35 +307,6 @@ if(AMICI_PYTHON_BUILD_EXT_ONLY)
endif()

# Create targets to make the sources show up in IDEs for convenience

# For matlab interface
if(NOT AMICI_PYTHON_BUILD_EXT_ONLY)

set(MATLAB_SOURCES
src/interface_matlab.cpp src/returndata_matlab.cpp
include/amici/interface_matlab.h include/amici/returndata_matlab.h)
find_package(Matlab)
# In case we can find Matlab, we create a respective library to compile the
# extension from cmake. Otherwise we just create a dummy target for the files
# to show up inside IDEs. (Set the Matlab_ROOT_DIR cmake variable if CMake
# cannot find your Matlab installation)
if(${Matlab_FOUND})
add_library(matlabInterface ${MATLAB_SOURCES})
set_target_properties(matlabInterface PROPERTIES INCLUDE_DIRECTORIES
"${Matlab_INCLUDE_DIRS}")
target_link_libraries(matlabInterface PUBLIC amici)
else()
add_custom_target(
matlabInterface
SOURCES ${MATLAB_SOURCES}
COMMENT "Dummy target for MATLAB interface files")
endif()
set_property(
TARGET matlabInterface
APPEND
PROPERTY INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/include/")
endif()

# For template files
add_custom_target(
fileTemplates
Expand Down
6 changes: 0 additions & 6 deletions LICENSE.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,3 @@ The AMICI logo is released under the Creative Commons CC0 1.0 Universal
terms given in `ThirdParty/SuiteSparse/LICENSE.txt`
* *gsl-lite* is redistributed under the MIT License (MIT) with the terms given
in `ThirdParty/gsl/gsl/gsl-lite.hpp`
* *xml2struct* and *struct2xml* are redistributed under the BSD 2-Clause
License (BSD-2-Clause) with terms given in
`matlab/auxiliary/xml2struct/license.txt` and
`matlab/auxiliary/struct2xml/license.txt`
* *CalcMD5* is redistributed under the BSD 2-Clause License (BSD-2-Clause)
with terms given in `matlab/auxiliary/CalcMD5/license.txt`
24 changes: 9 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,20 @@

## About

AMICI provides a multi-language (Python, C++, Matlab) interface for the
AMICI provides a Python and C++ interface for the
[SUNDIALS](https://computing.llnl.gov/projects/sundials/) solvers
[CVODES](https://computing.llnl.gov/projects/sundials/cvodes)
(for ordinary differential equations) and
[IDAS](https://computing.llnl.gov/projects/sundials/idas)
(for algebraic differential equations). AMICI allows the user to read
differential equation models specified as [SBML](http://sbml.org/)
or [PySB](http://pysb.org/)
and automatically compiles such models into Python modules, C++ libraries or
Matlab `.mex` simulation files.
and automatically compiles such models into Python modules or C++ libraries.
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.**
**NOTE: The former MATLAB interface has been removed in AMICI 1.0.**

Beyond forward integration, the compiled simulation file also allows for
forward sensitivity analysis, steady state sensitivity analysis and
Expand Down Expand Up @@ -53,7 +52,7 @@ constrained optimization problems.
* Generation of C++ code for model simulation and sensitivity
computation
* Access to and high customizability of CVODES and IDAS solver
* Python, C++, Matlab interface
* Python and C++ interface
* Sensitivity analysis
* forward
* steady state
Expand All @@ -66,11 +65,10 @@ constrained optimization problems.
## Interfaces & workflow

The AMICI workflow starts with importing a model from either
[SBML](http://sbml.org/) (Matlab, Python), [PySB](http://pysb.org/) (Python),
or a Matlab definition of the model (Matlab-only). From this input,
all equations for model simulation
[SBML](http://sbml.org/) (Python) or [PySB](http://pysb.org/) (Python).
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
compiled into a plain C++ library or a Python module, and
is then used for model simulation.

![AMICI workflow](https://raw.githubusercontent.com/AMICI-dev/AMICI/main/doc/gfx/amici_workflow.png)
Expand All @@ -79,19 +77,15 @@ is then used for model simulation.

The AMICI source code is available at https://github.com/AMICI-dev/AMICI/.
To install AMICI, first read the installation instructions for
[Python](https://amici.readthedocs.io/en/latest/python_installation.html),
[C++](https://amici.readthedocs.io/en/latest/cpp_installation.html) or
[Matlab](https://amici.readthedocs.io/en/latest/matlab_installation.html).
[Python](https://amici.readthedocs.io/en/latest/python_installation.html) or
[C++](https://amici.readthedocs.io/en/latest/cpp_installation.html).
There are also instructions for using AMICI inside
[containers](https://github.com/AMICI-dev/AMICI/tree/main/container).

To get you started with Python-AMICI, the best way might be checking out this
[Jupyter notebook](https://github.com/AMICI-dev/AMICI/blob/main/doc/examples/getting_started/GettingStarted.ipynb)
[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/AMICI-dev/AMICI/main?labpath=doc%2Fexamples%2Fgetting_started%2FGettingStarted.ipynb).

To get started with Matlab-AMICI, various examples are available
in [matlab/examples/](https://github.com/AMICI-dev/AMICI/tree/main/matlab/examples).

Comprehensive documentation is available at
[https://amici.readthedocs.io/en/latest/](https://amici.readthedocs.io/en/latest/).

Expand Down
3 changes: 1 addition & 2 deletions doc/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,13 @@ This Agents.md file provides comprehensive guidance for OpenAI Codex and other A

## Project Structure for OpenAI Codex Navigation

AMICI is a python package that uses SWIG to generate python bindings to C++ code. There are also a deprecated matlab interface to the C++ code, which will be removed at some point in the future.
AMICI is a python package that uses SWIG to generate python bindings to C++ code.

- `/binder`: binder configuration
- `/cmake`: various cmake utility functions
- `/container`: docker configuration
- `/doc`: high level documentation, all API documentation is automatically generated using doxygen/sphinx
- `/include`: C++ header files
- `/matlab`: matlab interface
- `/models`: pre-generated c++ models for testing
- `/python`: python source code
- `/benchmark`: helper scripts for benchmarking
Expand Down
18 changes: 1 addition & 17 deletions doc/CI.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,12 +49,6 @@ To run the SBML Test Suite test cases, the easiest way is:
Once the test cases are available locally, for debugging it might be easier
to directly use `pytest` with `tests/sbml/testSBMLSuite.py`.


## Matlab tests (not included in CI pipeline)

To execute the Matlab test suite, run `tests/testModels.m`.


## Model simulation integration tests

Many of our integration tests are model simulations. The simulation results
Expand All @@ -69,17 +63,7 @@ This code is to be updated whenever `amici::Model` changes.

### Regenerating C++ code of the test models

Regeneration of the model code has to be done whenever `amici::Model` or
the Matlab model import routines change.

This is done with

tests/cpp/wrapTestModels.m

**Note:** This is currently only possible from Matlab < R2018a. This should
change as soon as 1) all second-order sensitivity code is ported to C++/Python,
2) a non-SBML import exists for Python and 3) support for events has been added
for Python.
*To be updated*


### Regenerating expected results
Expand Down
15 changes: 4 additions & 11 deletions matlab/mtoc/config/Doxyfile.template → doc/Doxyfile.template
Original file line number Diff line number Diff line change
Expand Up @@ -947,10 +947,8 @@ WARN_LOGFILE =

INPUT = "_SourceDir_/README.md" \
"_SourceDir_/LICENSE.md" \
"_SourceDir_/doc/MATLAB_.md" \
"_SourceDir_/doc/CPP_.md" \
"_SourceDir_/include" \
"_SourceDir_/matlab"
"_SourceDir_/include"

# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
Expand Down Expand Up @@ -1040,11 +1038,6 @@ EXCLUDE_PATTERNS = "_SourceDir_/models/*" \
"_SourceDir_/tests/*" \
"_SourceDir_/scripts/*" \
"_SourceDir_/ThirdParty/*" \
"_SourceDir_/matlab/examples/*" \
"_SourceDir_/matlab/mtoc/*" \
"_SourceDir_/matlab/auxiliary/*" \
"_SourceDir_/matlab/SBMLimporter/*" \
"_SourceDir_/matlab/tests/*" \
"_SourceDir_/python/tests/*" \
"_SourceDir_/python/sdist/*" \
"_SourceDir_/python/examples/example_*/model_*" \
Expand Down Expand Up @@ -1127,7 +1120,7 @@ INPUT_FILTER =
# need to set EXTENSION_MAPPING for the extension otherwise the files are not
# properly processed by doxygen.

FILTER_PATTERNS = "*.m=_MTOCFILTER_"
# FILTER_PATTERNS = "*.m=_MTOCFILTER_"

# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
# INPUT_FILTER) will also be used to filter the input files that are used for
Expand Down Expand Up @@ -1330,7 +1323,7 @@ HTML_FOOTER =
# obsolete.
# This tag requires that the tag GENERATE_HTML is set to YES.

HTML_STYLESHEET = _ConfDir_/customdoxygen.css
# HTML_STYLESHEET = _ConfDir_/customdoxygen.css

# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
# cascading style sheets that are included after the standard style sheets
Expand Down Expand Up @@ -1971,7 +1964,7 @@ PAPER_TYPE = a4
# If left blank no extra packages will be included.
# This tag requires that the tag GENERATE_LATEX is set to YES.

EXTRA_PACKAGES = "_LatexExtras_"
# EXTRA_PACKAGES = "_LatexExtras_"

# The LATEX_HEADER tag can be used to specify a user-defined LaTeX header for
# the generated LaTeX document. The header should contain everything until the
Expand Down
11 changes: 0 additions & 11 deletions doc/MATLAB.rst

This file was deleted.

Loading
Loading