Skip to content

Commit

Permalink
Merge pull request #2473 from dweindl/release_0.26.0
Browse files Browse the repository at this point in the history
Release 0.26.0
  • Loading branch information
dweindl authored Jul 2, 2024
2 parents 88a5454 + 3882d94 commit b958cce
Show file tree
Hide file tree
Showing 36 changed files with 300 additions and 101 deletions.
4 changes: 4 additions & 0 deletions .github/workflows/test_benchmark_collection_models.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,10 @@ jobs:
AMICI_PARALLEL_COMPILE="" pip3 install -v --user \
$(ls -t python/sdist/dist/amici-*.tar.gz | head -1)[petab,test,vis]
- run: |
python3 -m pip uninstall -y petab && python3 -m pip install git+https://github.com/petab-dev/libpetab-python.git@develop \
&& python3 -m pip install -U sympy
# retrieve test models
- name: Download and test benchmark collection
run: |
Expand Down
13 changes: 11 additions & 2 deletions .github/workflows/test_petab_test_suite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ jobs:
- name: Install petab
run: |
source ./venv/bin/activate \
&& pip3 install wheel pytest shyaml pytest-cov pysb
&& pip3 install wheel pytest shyaml pytest-cov pysb>=1.16
# retrieve test models
- name: Download and install PEtab test suite
Expand All @@ -68,11 +68,20 @@ jobs:
&& source ./venv/bin/activate \
&& cd petab_test_suite && pip3 install -e .
- name: Install petab
run: |
source ./venv/bin/activate \
&& python3 -m pip uninstall -y petab \
&& python3 -m pip install git+https://github.com/petab-dev/libpetab-python.git@develop \
&& python3 -m pip install git+https://github.com/FFroehlich/pysb@fix_pattern_matching \
&& python3 -m pip install sympy>=1.12.1
- name: Run PEtab-related unit tests
run: |
source ./venv/bin/activate \
&& pytest --cov-report=xml:coverage.xml \
--cov=./ python/tests/test_*petab*.py python/tests/petab/
--cov=./ python/tests/test_*petab*.py python/tests/petab_/
# run test models
- name: Run PEtab test suite
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/test_python_ver_matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,9 @@ jobs:
- run: source venv/bin/activate && pip3 install git+https://github.com/sympy/sympy.git@master
if: matrix.python-version == '3.12'

- run: source venv/bin/activate && pip3 install "sympy>=1.12.1"
if: matrix.python-version != '3.12'

- name: Python tests
run: |
source venv/bin/activate \
Expand Down
30 changes: 30 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,37 @@
# Changelog

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

## v0.X Series

### v0.26.0 (2024-07-06)

AMICI v0.26.0 requires sympy>=1.12.1 and petab>=0.4.0.

**Policy changes**

* Updated AMICI's [versioning / deprecation policy](https://amici.readthedocs.io/en/develop/versioning_policy.html)

We will start removing deprecated features that had a deprecation warning
for longer than six months in the next minor release.

**Deprecations**

* Passing individual tables to `amici_import_petab` is now deprecated.
Use a `petab.Problem` instance instead.

by @dweindl in https://github.com/AMICI-dev/AMICI/pull/2464

**Fixes**

* Fixed a bug where during installation of AMICI, an incorrect sundials CMake
would be used resulting in installation errors.

by @dweindl in https://github.com/AMICI-dev/AMICI/pull/2468

**Full Changelog**: https://github.com/AMICI-dev/AMICI/compare/v0.25.2...v0.26.0


### v0.25.2 (2024-06-16)

**Fixes**
Expand Down
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -142,9 +142,9 @@ else()
set(VENDORED_SUNDIALS_BUILD_DIR ${VENDORED_SUNDIALS_DIR}/build)
set(VENDORED_SUNDIALS_INSTALL_DIR ${VENDORED_SUNDIALS_BUILD_DIR})
endif()
set(SUNDIALS_ROOT "${VENDORED_SUNDIALS_INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}")
find_package(
SUNDIALS REQUIRED PATHS
"${VENDORED_SUNDIALS_INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/cmake/sundials/")
SUNDIALS REQUIRED CONFIG PATHS "${SUNDIALS_ROOT}/cmake/sundials/")
message(STATUS "Found SUNDIALS: ${SUNDIALS_DIR}")

set(GSL_LITE_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ThirdParty/gsl")
Expand Down
50 changes: 38 additions & 12 deletions documentation/amici_refs.bib
Original file line number Diff line number Diff line change
Expand Up @@ -1069,18 +1069,19 @@ @Article{LakrisenkoSta2023
}
@Article{ContentoCas2023,
author = {Lorenzo Contento and Noemi Castelletti and Elba Raimúndez and Ronan {Le Gleut} and Yannik Schälte and Paul Stapor and Ludwig Christian Hinske and Michael Hoelscher and Andreas Wieser and Katja Radon and Christiane Fuchs and Jan Hasenauer},
journal = {Epidemics},
title = {Integrative modelling of reported case numbers and seroprevalence reveals time-dependent test efficiency and infectious contacts},
year = {2023},
issn = {1755-4365},
pages = {100681},
volume = {43},
abstract = {Mathematical models have been widely used during the ongoing SARS-CoV-2 pandemic for data interpretation, forecasting, and policy making. However, most models are based on officially reported case numbers, which depend on test availability and test strategies. The time dependence of these factors renders interpretation difficult and might even result in estimation biases. Here, we present a computational modelling framework that allows for the integration of reported case numbers with seroprevalence estimates obtained from representative population cohorts. To account for the time dependence of infection and testing rates, we embed flexible splines in an epidemiological model. The parameters of these splines are estimated, along with the other parameters, from the available data using a Bayesian approach. The application of this approach to the official case numbers reported for Munich (Germany) and the seroprevalence reported by the prospective COVID-19 Cohort Munich (KoCo19) provides first estimates for the time dependence of the under-reporting factor. Furthermore, we estimate how the effectiveness of non-pharmaceutical interventions and of the testing strategy evolves over time. Overall, our results show that the integration of temporally highly resolved and representative data is beneficial for accurate epidemiological analyses.},
creationdate = {2023-04-15T07:59:57},
doi = {10.1016/j.epidem.2023.100681},
keywords = {Compartmental model, Parameter estimation, Uncertainty quantification, COVID-19},
url = {https://www.sciencedirect.com/science/article/pii/S1755436523000178},
author = {Lorenzo Contento and Noemi Castelletti and Elba Raimúndez and Ronan {Le Gleut} and Yannik Schälte and Paul Stapor and Ludwig Christian Hinske and Michael Hoelscher and Andreas Wieser and Katja Radon and Christiane Fuchs and Jan Hasenauer},
journal = {Epidemics},
title = {Integrative modelling of reported case numbers and seroprevalence reveals time-dependent test efficiency and infectious contacts},
year = {2023},
issn = {1755-4365},
pages = {100681},
volume = {43},
abstract = {Mathematical models have been widely used during the ongoing SARS-CoV-2 pandemic for data interpretation, forecasting, and policy making. However, most models are based on officially reported case numbers, which depend on test availability and test strategies. The time dependence of these factors renders interpretation difficult and might even result in estimation biases. Here, we present a computational modelling framework that allows for the integration of reported case numbers with seroprevalence estimates obtained from representative population cohorts. To account for the time dependence of infection and testing rates, we embed flexible splines in an epidemiological model. The parameters of these splines are estimated, along with the other parameters, from the available data using a Bayesian approach. The application of this approach to the official case numbers reported for Munich (Germany) and the seroprevalence reported by the prospective COVID-19 Cohort Munich (KoCo19) provides first estimates for the time dependence of the under-reporting factor. Furthermore, we estimate how the effectiveness of non-pharmaceutical interventions and of the testing strategy evolves over time. Overall, our results show that the integration of temporally highly resolved and representative data is beneficial for accurate epidemiological analyses.},
creationdate = {2023-04-15T07:59:57},
doi = {10.1016/j.epidem.2023.100681},
keywords = {Compartmental model, Parameter estimation, Uncertainty quantification, COVID-19},
modificationdate = {2024-06-28T08:27:57},
url = {https://www.sciencedirect.com/science/article/pii/S1755436523000178},
}
@Article{FroehlichGer2023,
Expand Down Expand Up @@ -1332,6 +1333,31 @@ @PhdThesis{Mutsuddy2024
url = {https://tigerprints.clemson.edu/all_dissertations/3572},
}
@Misc{PhilippsKoe2024,
author = {Maren Philipps and Antonia Körner and Jakob Vanhoefer and Dilan Pathirana and Jan Hasenauer},
title = {Non-Negative Universal Differential Equations With Applications in Systems Biology},
year = {2024},
archiveprefix = {arXiv},
creationdate = {2024-06-28T08:27:59},
eprint = {2406.14246},
modificationdate = {2024-06-28T08:27:59},
primaryclass = {q-bio.QM},
url = {https://arxiv.org/abs/2406.14246},
}
@Article{BaltussenJon2024,
author = {Baltussen, Mathieu G. and de Jong, Thijs J. and Duez, Quentin and Robinson, William E. and Huck, Wilhelm T. S.},
journal = {Nature},
title = {Chemical reservoir computation in a self-organizing reaction network},
year = {2024},
issn = {1476-4687},
month = jun,
creationdate = {2024-06-29T14:03:08},
doi = {10.1038/s41586-024-07567-x},
modificationdate = {2024-06-29T14:03:08},
publisher = {Springer Science and Business Media LLC},
}
@Comment{jabref-meta: databaseType:bibtex;}
@Comment{jabref-meta: grouping:
Expand Down
20 changes: 14 additions & 6 deletions documentation/background.rst
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,22 @@ publications:

* Lakrisenko, Polina, Paul Stapor, Stephan Grein, Łukasz Paszkowski,
Dilan Pathirana, Fabian Fröhlich, Glenn Terje Lines, Daniel Weindl,
and Jan Hasenauer. 2022.
and Jan Hasenauer. 2023.
**Efficient Computation of Adjoint Sensitivities at Steady-State in ODE Models
of Biochemical Reaction Networks.** *bioRxiv* 2022.08.08.503176.
DOI: `10.1101/2022.08.08.503176 <https://doi.org/10.1101/2022.08.08.503176>`_.
of Biochemical Reaction Networks.** *PLoS Comput Biol* 19(1): e1010783.
DOI: `10.1371/journal.pcbi.1010783 <https://doi.org/10.1371/journal.pcbi.1010783>`_.

* L. Contento, P. Stapor, D. Weindl, and J. Hasenauer. 2023.
**A more expressive spline representation for SBML models improves code generation performance in AMICI**,
In: Pang, J., Niehren, J. (eds) Computational Methods in Systems Biology.
CMSB 2023. *Lecture Notes in Computer Science*, vol 14137. Springer, Cham.
DOI: `10.1007/978-3-031-42697-1_3 <https://doi.org/10.1007/978-3-031-42697-1_3>`_.
Preprint available at `bioRxiv <https://doi.org/10.1101/2023.06.29.547120>`_.

* Lakrisenko, Polina, Dilan Pathirana, Daniel Weindl, and Jan Hasenauer. 2024.
**Exploration of methods for computing sensitivities in ODE models at dynamic and steady states.** *arXiv:2405.16524 [q-bio.QM]*.
DOI: `10.48550/arXiv.2405.16524 <https://doi.org/10.48550/arXiv.2405.16524>`_.

* L. Contento, P. Stapor, D. Weindl, and J. Hasenauer, "A more expressive spline
representation for SBML models improves code generation performance in AMICI,"
bioRxiv, 2023, DOI: `10.1101/2023.06.29.547120 <https://doi.org/10.1101/2023.06.29.547120>`_.

.. note::

Expand Down
1 change: 1 addition & 0 deletions documentation/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ Welcome to AMICI's documentation!
references
background
changelog
versioning_policy
glossary
contributing

Expand Down
43 changes: 24 additions & 19 deletions documentation/python_installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ If this does not work for you, please follow the full instructions below.
Installation on Linux
+++++++++++++++++++++

Ubuntu 22.04
------------
Ubuntu 22.04 / 24.04
--------------------

Install the AMICI dependencies via ``apt``
(this requires superuser privileges):
Expand All @@ -44,8 +44,8 @@ Install the AMICI dependencies via ``apt``
# optionally for HDF5 support:
sudo apt install libhdf5-serial-dev
# optionally for boost support (thread-specific CPU times, extended math functions, serialization)
libboost-chrono-dev libboost-math-dev libboost-serialization-dev
# optionally for boost support (thread-specific CPU times, extended math functions, serialization)
libboost-chrono-dev libboost-math-dev libboost-serialization-dev
Install AMICI:

Expand Down Expand Up @@ -203,9 +203,8 @@ Newer installations could be located under

so that it matches your directory structure.
This will download OpenBLAS and compile it, creating

C:\\BLAS\\OpenBLAS\\lib\\openblas.lib
C:\\BLAS\\OpenBLAS\\bin\\openblas.dll
``C:\\BLAS\\OpenBLAS\\lib\\openblas.lib`` and
``C:\\BLAS\\OpenBLAS\\bin\\openblas.dll``.

You will also need to define two environment variables:

Expand All @@ -231,16 +230,16 @@ Now you need to make sure that all required DLLs are within the scope of the
``PATH`` variable. In particular, the following directories need to be included
in ``PATH``:

C:\\BLAS\\OpenBLAS\\bin
C:\\Program Files (x86)\\Windows Kits\\10\\Redist\\ucrt\\DLLs\\x64
* ``C:\BLAS\OpenBLAS\bin``
* ``C:\Program Files (x86)\Windows Kits\10\Redist\ucrt\DLLs\x64``

The first one is needed for ``openblas.dll`` and the second is needed for the
Windows Universal C Runtime.

If any DLLs are missing in the ``PATH`` variable, Python will return the
following error upon ``import amici``:

ImportError: DLL load failed: The specified module could not be found.
``ImportError: DLL load failed: The specified module could not be found.``

Almost all of the DLLs are standard Windows DLLs and should be included in
either Windows or Visual Studio. But, in case it is necessary to test this,
Expand Down Expand Up @@ -361,16 +360,19 @@ environment variables:
| | Default: ``ON`` | |
+----------------------------+----------------------------------+---------------------------------+

Installation under Anaconda
---------------------------
Installation under conda
------------------------

There is no amici conda recipe available yet. However, you can install AMICI
using pip in a conda environment.

To use an Anaconda installation of Python
`https://www.anaconda.com/distribution/ <https://www.anaconda.com/distribution/>`_,
Python>=3.7), proceed as follows:
.. note::

It is possible, but we currently don't recommend using conda for installing
AMICI, as it commonly leads to conflicts with system installations of
libraries and compilers.

Since Anaconda provides own versions of some packages which might not
work with AMICI (in particular the ``gcc`` compiler), create a minimal
virtual environment via:
Create a minimal conda environment via:

.. code-block:: bash
Expand Down Expand Up @@ -416,7 +418,7 @@ Now, you are ready to use AMICI in the virtual environment.

.. note::

**Anaconda on Mac**
**conda on Mac**

If the above installation does not work for you, try installing AMICI via:

Expand All @@ -438,6 +440,9 @@ Now, you are ready to use AMICI in the virtual environment.
(For further discussion see https://github.com/AMICI-dev/AMICI/issues/357)

Known issues:

* ``CMAKE_AR-NOTFOUND: not found``: Try ``conda install binutils``.

Optional Boost support
----------------------
Expand Down
5 changes: 4 additions & 1 deletion documentation/recreate_reference_list.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,10 @@ def main():
)
f.write(
"If you applied AMICI in your work and your publication is "
"missing, please let us know via a new GitHub issue.\n\n"
"missing, please let us know via a new\n"
"[GitHub issue](https://github.com/AMICI-dev/AMICI/issues/new"
"?labels=documentation&title=Add+publication"
"&body=AMICI+was+used+in+this+manuscript:+DOI).\n\n"
)
f.write(
"""
Expand Down
18 changes: 16 additions & 2 deletions documentation/references.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
# References

List of publications using AMICI. Total number is 87.
List of publications using AMICI. Total number is 89.

If you applied AMICI in your work and your publication is missing, please let us know via a new GitHub issue.
If you applied AMICI in your work and your publication is missing, please let us know via a new
[GitHub issue](https://github.com/AMICI-dev/AMICI/issues/new?labels=documentation&title=Add+publication&body=AMICI+was+used+in+this+manuscript:+DOI).


<style>
Expand All @@ -14,6 +15,13 @@ If you applied AMICI in your work and your publication is missing, please let us
<h1 class="unnumbered" id="section">2024</h1>
<div id="refs" class="references csl-bib-body hanging-indent"
role="list">
<div id="ref-BaltussenJon2024" class="csl-entry" role="listitem">
Baltussen, Mathieu G., Thijs J. de Jong, Quentin Duez, William E.
Robinson, and Wilhelm T. S. Huck. 2024. <span>“Chemical Reservoir
Computation in a Self-Organizing Reaction Network.”</span>
<em>Nature</em>, June. <a
href="https://doi.org/10.1038/s41586-024-07567-x">https://doi.org/10.1038/s41586-024-07567-x</a>.
</div>
<div id="ref-DoresicGre2024" class="csl-entry" role="listitem">
Dorešić, Domagoj, Stephan Grein, and Jan Hasenauer. 2024.
<span>“Efficient Parameter Estimation for ODE Models of Cellular
Expand Down Expand Up @@ -55,6 +63,12 @@ Mutsuddy, Arnab. 2024. <span>“Single Cell Pharmacodynamic Modeling of
Cancer Cell Lines.”</span> PhD thesis, Clemson University. <a
href="https://tigerprints.clemson.edu/all_dissertations/3572">https://tigerprints.clemson.edu/all_dissertations/3572</a>.
</div>
<div id="ref-PhilippsKoe2024" class="csl-entry" role="listitem">
Philipps, Maren, Antonia Körner, Jakob Vanhoefer, Dilan Pathirana, and
Jan Hasenauer. 2024. <span>“Non-Negative Universal Differential
Equations with Applications in Systems Biology.”</span> <a
href="https://arxiv.org/abs/2406.14246">https://arxiv.org/abs/2406.14246</a>.
</div>
<div id="ref-SluijsZho2024" class="csl-entry" role="listitem">
Sluijs, Bob van, Tao Zhou, Britta Helwig, Mathieu G. Baltussen, Frank H.
T. Nelissen, Hans A. Heus, and Wilhelm T. S. Huck. 2024.
Expand Down
28 changes: 28 additions & 0 deletions documentation/versioning_policy.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
.. _versioning_policy:

Versioning policy
=================

Versioning
----------

We use `Semantic Versioning <http://semver.org/>`_ with the modifications
described under :ref:`deprecation_policy`.

.. _deprecation_policy:

Deprecation policy
------------------

AMICI aims to provide a stable API for users. However, not all features can be
maintained indefinitely. We will deprecate features in minor releases and
where possible, issue a warning when they are used. We will keep deprecated
features for at least six months after the release that includes the
respective deprecation warning and then remove them earliest in the next minor
or major release. If a deprecated feature is the source of a major bug, we may
remove it earlier.

Python compatibility
--------------------

We follow `numpy's Python support policy <https://numpy.org/neps/nep-0029-deprecation_policy.html>`_.
Loading

0 comments on commit b958cce

Please sign in to comment.