Skip to content

Commit

Permalink
Release 0.11.20
Browse files Browse the repository at this point in the history
Merge pull request #1588 from AMICI-dev/release_0_11_20
  • Loading branch information
dweindl authored Nov 12, 2021
2 parents 4610a60 + 06ed8b9 commit e79215d
Show file tree
Hide file tree
Showing 91 changed files with 465 additions and 6,271 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/test_benchmark_collection_models.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ on:
- master
- develop
workflow_dispatch:
schedule:
- cron: '48 4 * * *'

jobs:
build:
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/test_doc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ on:
- develop
- master
workflow_dispatch:
schedule:
- cron: '48 4 * * *'

jobs:
doxygen:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/test_matlab.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ jobs:
- run: echo "AMICI_DIR=$(pwd)" >> $GITHUB_ENV

- name: Install MATLAB
uses: matlab-actions/setup-matlab@v0
uses: matlab-actions/setup-matlab@v1
- name: Run script
uses: matlab-actions/run-command@v0
uses: matlab-actions/run-command@v1
with:
command: cd matlab; installAMICI; addpath tests; testModels
3 changes: 3 additions & 0 deletions .github/workflows/test_performance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ on:

workflow_dispatch:

schedule:
- cron: '48 4 * * *'

jobs:
build:
name: Performance Test
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test_python_cplusplus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
- run: echo "BNGPATH=${GITHUB_WORKSPACE}/ThirdParty/BioNetGen-2.7.0" >> $GITHUB_ENV

# sonar cloud
- run: echo "SONAR_SCANNER_VERSION=4.5.0.2216" >> $GITHUB_ENV
- run: echo "SONAR_SCANNER_VERSION=4.6.1.2450" >> $GITHUB_ENV
- run: echo "SONAR_SCANNER_HOME=${HOME}/.sonar/sonar-scanner-$SONAR_SCANNER_VERSION-linux" >> $GITHUB_ENV
- run: echo "SONAR_SCANNER_OPTS=-server" >> $GITHUB_ENV
- run: echo "${SONAR_SCANNER_HOME}/bin" >> $GITHUB_PATH
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test_python_ver_matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: [3.7, 3.8, 3.9]
python-version: [3.7, 3.8, 3.9, '3.10']
experimental: [false]
# Temporarily disabled because the respective jobs somehow runs infinitely
# include:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test_valgrind.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ on:
push:
branches:
- master
- feature_cpp_hierarchical_derivatives
- update_valgrind_supp
pull_request:
branches:
- master
Expand Down
15 changes: 7 additions & 8 deletions .readthedocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,18 @@ sphinx:
configuration: documentation/conf.py
fail_on_warning: True

# Build documentation with MkDocs
#mkdocs:
# configuration: mkdocs.yml

# Optionally build your docs in additional formats such as PDF and ePub
formats:
- pdf

# Optionally set the version of Python and requirements required to build your docs
python:
version: 3.8
install:
- requirements: documentation/rtd_requirements.txt

build:
image: latest
os: "ubuntu-20.04"
apt_packages:
# for custom doxygen
- libclang-cpp9
- libclang1-9
tools:
python: "3.8"
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,23 @@

## v0.X Series

### v0.11.20 (2021-11-12)

New:
* Changed parameter mappings such that unassigned values have non-nan default values. This fixes erroneous evaluation of `llh` as `NaN` in some situations (#1574)
* Added support for Python 3.10 (#1555)

Fixes:
* Fixed a bug when simulation start time was not transferred when copying a solver instance (#1573)
* Fixed a bug which led to incorrect sensitivies for models with multiple assignment rules or rate rules (#1584)

Other:
* Update CI and documentation settings (#1569, #1527, #1572, #1575, #1579, #1580, #1589, #1581)
* Extend set of validated benchmark models that is checked during CI (#1571, #1577)
* Fixed string formatting in derivative checks (#1585)
* Added helper methods to save and restore model instance-only settings (#1576)


### v0.11.19 (2021-10-13)

New:
Expand Down
37 changes: 37 additions & 0 deletions documentation/amici_refs.bib
Original file line number Diff line number Diff line change
Expand Up @@ -946,6 +946,43 @@ @phdthesis{Maier2021
doi = {10.25932/publishup-51587},
year = {2021},
}
@article {Contento2021.10.01.21263052,
author = {Contento, Lorenzo and Castelletti, Noemi and Raim{\'u}ndez, Elba and Le Gleut, Ronan and Sch{\"a}lte, Yannik and Stapor, Paul and Hinske, Ludwig Christian and H{\"o}lscher, Michael and Wieser, Andreas and Radon, Katja and Fuchs, Christiane and Hasenauer, Jan and the KoCo19 study group},
title = {Integrative modelling of reported case numbers and seroprevalence reveals time-dependent test efficiency and infection rates},
elocation-id = {2021.10.01.21263052},
year = {2021},
doi = {10.1101/2021.10.01.21263052},
publisher = {Cold Spring Harbor Laboratory Press},
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.Competing Interest StatementThe authors have declared no competing interest.Funding StatementThis study was funded by the Bavarian State Ministry of Science and the Arts, the University Hospital of Ludwig-Maximilians-University Munich, the Helmholtz Centre Munich, the University of Bonn (via the Transdiciplinary Research Areas), the University of Bielefeld, Munich Center of Health (McHealth) and the German Ministry for Education and Research (MoKoCo19, reference number 01KI20271), German Research Foundation (SEPAN, reference number HA7376/3-1), Volkswagen Stiftung (reference number: 99 450). This work was supported by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under Germany{\textquoteright}s Excellence Strategy EXC 2047/1 - 390685813 and EXC 2151 - 390873048. The ORCHESTRA project has received funding from the European Union{\textquoteright}s Horizon 2020 research and innovation programme under grant agreement No 101016167. The views expressed in this paper are the sole responsibility of the authors and the Commission is not responsible for any use that may be made of the information it contains. The funders had no role in study design, data collection, data analyses, data interpretation, writing, or submission of this manuscript.Author DeclarationsI confirm all relevant ethical guidelines have been followed, and any necessary IRB and/or ethics committee approvals have been obtained.YesThe details of the IRB/oversight body that provided approval or exemption for the research described are given below:The study protocol was approved by the Institutional Review Board at the Ludwig-Maximilians-University in Munich, Germany (opinion date 31 March 2020, number 20-275, opinion date amendment: 10 October 2020), prior to study initiation.All necessary patient/participant consent has been obtained and the appropriate institutional forms have been archived.YesI understand that all clinical trials and any other prospective interventional studies must be registered with an ICMJE-approved registry, such as ClinicalTrials.gov. I confirm that any such study reported in the manuscript has been registered and the trial registration ID is provided (note: if posting a prospective study registered retrospectively, please provide a statement in the trial ID field explaining why the study was not registered in advance).YesI have followed all appropriate research reporting guidelines and uploaded the relevant EQUATOR Network research reporting checklist(s) and other pertinent material as supplementary files, if applicable.YesThe data used in this manuscript (except data from public sources such as the Robert Koch Institute) cannot be made public due to patient consent.},
URL = {https://www.medrxiv.org/content/early/2021/10/01/2021.10.01.21263052},
eprint = {https://www.medrxiv.org/content/early/2021/10/01/2021.10.01.21263052.full.pdf},
journal = {medRxiv}
}
@Article{GudinaAli2021,
author = {Esayas Kebede Gudina and Solomon Ali and Eyob Girma and Addisu Gize and Birhanemeskel Tegene and Gadissa Bedada Hundie and Wondewosen Tsegaye Sime and Rozina Ambachew and Alganesh Gebreyohanns and Mahteme Bekele and Abhishek Bakuli and Kira Elsbernd and Simon Merkt and Lorenzo Contento and Michael Hoelscher and Jan Hasenauer and Andreas Wieser and Arne Kroidl},
journal = {The Lancet Global Health},
title = {{Seroepidemiology and model-based prediction of SARS-CoV-2 in Ethiopia: longitudinal cohort study among front-line hospital workers and communities}},
year = {2021},
issn = {2214-109X},
number = {11},
pages = {e1517-e1527},
volume = {9},
abstract = {Summary
Background
Over 1 year since the first reported case, the true COVID-19 burden in Ethiopia remains unknown due to insufficient surveillance. We aimed to investigate the seroepidemiology of SARS-CoV-2 among front-line hospital workers and communities in Ethiopia.
Methods
We did a population-based, longitudinal cohort study at two tertiary teaching hospitals involving hospital workers, rural residents, and urban communities in Jimma and Addis Ababa. Hospital workers were recruited at both hospitals, and community participants were recruited by convenience sampling including urban metropolitan settings, urban and semi-urban settings, and rural communities. Participants were eligible if they were aged 18 years or older, had provided written informed consent, and were willing to provide blood samples by venepuncture. Only one participant per household was recruited. Serology was done with Elecsys anti-SARS-CoV-2 anti-nucleocapsid assay in three consecutive rounds, with a mean interval of 6 weeks between tests, to obtain seroprevalence and incidence estimates within the cohorts.
Findings
Between Aug 5, 2020, and April 10, 2021, we did three survey rounds with a total of 1104 hospital workers and 1229 community residents participating. SARS-CoV-2 seroprevalence among hospital workers increased strongly during the study period: in Addis Ababa, it increased from 10·9% (95% credible interval [CrI] 8·3–13·8) in August, 2020, to 53·7% (44·8–62·5) in February, 2021, with an incidence rate of 2223 per 100 000 person-weeks (95% CI 1785–2696); in Jimma Town, it increased from 30·8% (95% CrI 26·9–34·8) in November, 2020, to 56·1% (51·1–61·1) in February, 2021, with an incidence rate of 3810 per 100 000 person-weeks (95% CI 3149–4540). Among urban communities, an almost 40% increase in seroprevalence was observed in early 2021, with incidence rates of 1622 per 100 000 person-weeks (1004–2429) in Jimma Town and 4646 per 100 000 person-weeks (2797–7255) in Addis Ababa. Seroprevalence in rural communities increased from 18·0% (95% CrI 13·5–23·2) in November, 2020, to 31·0% (22·3–40·3) in March, 2021.
Interpretation
SARS-CoV-2 spread in Ethiopia has been highly dynamic among hospital worker and urban communities. We can speculate that the greatest wave of SARS-CoV-2 infections is currently evolving in rural Ethiopia, and thus requires focused attention regarding health-care burden and disease prevention.
Funding
Bavarian State Ministry of Sciences, Research, and the Arts; Germany Ministry of Education and Research; EU Horizon 2020 programme; Deutsche Forschungsgemeinschaft; and Volkswagenstiftung.},
doi = {https://doi.org/10.1016/S2214-109X(21)00386-7},
url = {https://www.sciencedirect.com/science/article/pii/S2214109X21003867},
}
@Comment{jabref-meta: databaseType:bibtex;}
@Comment{jabref-meta: grouping:
Expand Down
35 changes: 33 additions & 2 deletions documentation/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ def install_amici_deps_rtd():
cmd = (f"cd '{os.path.join(amici_dir, 'ThirdParty')}' "
"&& apt download libatlas-base-dev && mkdir libatlas-base-dev "
"&& cd libatlas-base-dev "
"&& ar x ../libatlas-base-dev_3.10.3-5_amd64.deb "
"&& ar x ../libatlas-base-dev_3.10.3-8ubuntu7_amd64.deb "
"&& tar -xJf data.tar.xz "
f"&& ln -s {cblas_inc_dir}/cblas-atlas.h {cblas_inc_dir}/cblas.h "
)
Expand All @@ -113,6 +113,28 @@ def install_amici_deps_rtd():
os.environ['SWIG'] = os.path.join(swig_dir, 'swig')


def install_doxygen():
"""Get a more recent doxygen"""
version = '1.9.1'
doxygen_exe = os.path.join(amici_dir, 'ThirdParty',
f'doxygen-{version}', 'bin', 'doxygen')
# to create a symlink to doxygen in a location that is already on PATH
some_dir_on_path = os.environ['PATH'].split(os.pathsep)[0]
cmd = (
f"cd '{os.path.join(amici_dir, 'ThirdParty')}' "
f"&& wget 'https://doxygen.nl/files/"
f"doxygen-{version}.linux.bin.tar.gz' "
f"&& tar -xzf doxygen-{version}.linux.bin.tar.gz "
f"&& ln -s '{doxygen_exe}' '{some_dir_on_path}'"
)
subprocess.run(cmd, shell=True, check=True)
assert os.path.islink(os.path.join(some_dir_on_path, 'doxygen'))
# verify it's available
res = subprocess.run(['doxygen', '--version'],
check=False, capture_output=True)
print(res.stdout.decode(), res.stderr.decode())
assert version in res.stdout.decode()

# -- Path setup --------------------------------------------------------------

# If extensions (or modules to document with autodoc) are in another directory,
Expand All @@ -127,6 +149,7 @@ def install_amici_deps_rtd():
# only execute those commands when running from RTD
if 'READTHEDOCS' in os.environ and os.environ['READTHEDOCS']:
install_amici_deps_rtd()
install_doxygen()

# Required for matlab doxygen processing
install_mtocpp()
Expand Down Expand Up @@ -298,7 +321,15 @@ def install_amici_deps_rtd():
"exhaleDoxygenStdin": "\n".join([
"INPUT = ../include",
"BUILTIN_STL_SUPPORT = YES",
"PREDEFINED += EXHALE_DOXYGEN_SHOULD_SKIP_THIS"
"PREDEFINED += EXHALE_DOXYGEN_SHOULD_SKIP_THIS",
"EXCLUDE += ../include/amici/interface_matlab.h",
"EXCLUDE += ../include/amici/returndata_matlab.h",
"EXCLUDE += ../include/amici/spline.h",
# amici::log collides with amici::${some_enum}::log
# potentially fixed in
# https://github.com/svenevs/exhale/commit/c924df2e139a09fbacd07587779c55fd0ee4e00b
# and can be un-excluded after the next exhale release
"EXCLUDE += ../include/amici/symbolic_functions.h",
]),
"containmentFolder": "_exhale_cpp_api",
"rootFileTitle": "AMICI C++ API",
Expand Down
1 change: 1 addition & 0 deletions documentation/python_modules.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ AMICI Python API
amici.petab_import
amici.petab_import_pysb
amici.petab_objective
amici.petab_simulate
amici.import_utils
amici.ode_export
amici.plotting
Expand Down
8 changes: 7 additions & 1 deletion documentation/references.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# References

List of publications using AMICI. Total number is 62.
List of publications using AMICI. Total number is 64.

If you applied AMICI in your work and your publication is missing, please let us know via a new Github issue.

Expand All @@ -9,6 +9,9 @@ If you applied AMICI in your work and your publication is missing, please let us
<div id="ref-BastBuc2021">
<p>Bast, Lisa, Michèle C. Buck, Judith S. Hecker, Robert A. J. Oostendorp, Katharina S. Götze, and Carsten Marr. 2021. “Computational Modeling of Stem and Progenitor Cell Kinetics Identifies Plausible Hematopoietic Lineage Hierarchies.” <em>iScience</em> 24 (2): 102120. <a href="https://doi.org/https://doi.org/10.1016/j.isci.2021.102120">https://doi.org/https://doi.org/10.1016/j.isci.2021.102120</a>.</p>
</div>
<div id="ref-Contento2021.10.01.21263052">
<p>Contento, Lorenzo, Noemi Castelletti, Elba Raimúndez, Ronan Le Gleut, Yannik Schälte, Paul Stapor, Ludwig Christian Hinske, et al. 2021. “Integrative Modelling of Reported Case Numbers and Seroprevalence Reveals Time-Dependent Test Efficiency and Infection Rates.” <em>medRxiv</em>. <a href="https://doi.org/10.1101/2021.10.01.21263052">https://doi.org/10.1101/2021.10.01.21263052</a>.</p>
</div>
<div id="ref-ErdemMut2021">
<p>Erdem, Cemal, Arnab Mutsuddy, Ethan M. Bensman, William B. Dodd, Michael M. Saint-Antoine, Mehdi Bouhaddou, Robert C. Blake, et al. 2021. “A Scalable, Open-Source Implementation of a Large-Scale Mechanistic Model for Single Cell Proliferation and Death Signaling.” <em>bioRxiv</em>. <a href="https://doi.org/10.1101/2020.11.09.373407">https://doi.org/10.1101/2020.11.09.373407</a>.</p>
</div>
Expand All @@ -18,6 +21,9 @@ If you applied AMICI in your work and your publication is missing, please let us
<div id="ref-Gaspari2021">
<p>Gaspari, Erika. 2021. “Model-Driven Design of Mycoplasma as a Vaccine Chassis.” PhD thesis, Wageningen: Wageningen University. <a href="https://doi.org/10.18174/539593">https://doi.org/10.18174/539593</a>.</p>
</div>
<div id="ref-GudinaAli2021">
<p>Gudina, Esayas Kebede, Solomon Ali, Eyob Girma, Addisu Gize, Birhanemeskel Tegene, Gadissa Bedada Hundie, Wondewosen Tsegaye Sime, et al. 2021. “Seroepidemiology and model-based prediction of SARS-CoV-2 in Ethiopia: longitudinal cohort study among front-line hospital workers and communities.” <em>The Lancet Global Health</em> 9 (11): e1517–e1527. <a href="https://doi.org/https://doi.org/10.1016/S2214-109X(21)00386-7">https://doi.org/https://doi.org/10.1016/S2214-109X(21)00386-7</a>.</p>
</div>
<div id="ref-Maier2021">
<p>Maier, Corinna. 2021. “Bayesian Data Assimilation and Reinforcement Learning for Model-Informed Precision Dosing in Oncology.” Doctoralthesis, Universität Potsdam. <a href="https://doi.org/10.25932/publishup-51587">https://doi.org/10.25932/publishup-51587</a>.</p>
</div>
Expand Down
21 changes: 10 additions & 11 deletions documentation/rtd_requirements.txt
Original file line number Diff line number Diff line change
@@ -1,24 +1,23 @@
sphinx==3.2.1
sphinx==4.2.0
mock>=4.0.1
setuptools>=45.2.0
pysb>=1.11.0
matplotlib>=3.1.3
pkgconfig>=1.5.1
nbsphinx>=0.5.1
matplotlib>=3.4.3
pkgconfig>=1.5.5
nbsphinx>=0.8.7
recommonmark>=0.6.0
sphinx_rtd_theme>=0.4.3
petab>=0.1.5
sphinx_rtd_theme>=1.0.0
petab>=0.1.20
sphinx-autodoc-typehints>=1.10.3
git+https://github.com/readthedocs/sphinx-hoverxref@master
prompt-toolkit<=3.0.0
ipython>=7.17.0
breathe==4.25.1
ipython>=7.28.0
breathe==4.31.0
#exhale>=0.2.3
git+https://github.com/dweindl/exhale@ea77a313777c1382a7830ce9ee6c405ce47f5f3b#egg=exhale
# Newer versions cause trouble with including notebooks:
# sphinx.errors.SphinxParallelError: ImportError: cannot import name 'Application' from partially initialized module 'prompt_toolkit.application.application' (most likely due to a circular import)
# https://github.com/svenevs/exhale/issues/27 https://github.com/mithro/sphinx-contrib-mithro/tree/master/sphinx-contrib-exhale-multiproject
-e git+https://github.com/mithro/sphinx-contrib-mithro#egg=sphinx-contrib-exhale-multiproject&subdirectory=sphinx-contrib-exhale-multiproject
sphinxcontrib-matlabdomain
sphinxcontrib-matlabdomain>=0.12.0
sphinxcontrib-napoleon
pygments==2.7.4
pygments==2.10.0
Loading

0 comments on commit e79215d

Please sign in to comment.