From 71beb5e55580e53f416fb7d84ee3147ee4c75162 Mon Sep 17 00:00:00 2001 From: Daniel Weindl Date: Mon, 27 May 2024 16:59:04 +0200 Subject: [PATCH 1/9] Update valgrind suppressions --- python/tests/valgrind-python.supp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/python/tests/valgrind-python.supp b/python/tests/valgrind-python.supp index dab3c06dc4..ada85d34fa 100644 --- a/python/tests/valgrind-python.supp +++ b/python/tests/valgrind-python.supp @@ -965,3 +965,13 @@ fun:Py_CompileStringObject ... } + +{ + Python + Memcheck:Leak + match-leak-kinds: definite + fun:malloc + fun:gc_alloc + fun:_PyObject_GC_NewVar + ... +} From 2b8c6a20c2a4c1ea594c1dbede0eba389a855a8e Mon Sep 17 00:00:00 2001 From: Daniel Weindl Date: Wed, 29 May 2024 18:06:55 +0200 Subject: [PATCH 2/9] Update doxygen to 1.11.0 (#2453) --- documentation/conf.py | 10 ++++++---- scripts/downloadAndBuildDoxygen.sh | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/documentation/conf.py b/documentation/conf.py index a0dcf658fb..3f867e0a3a 100644 --- a/documentation/conf.py +++ b/documentation/conf.py @@ -104,7 +104,9 @@ def install_mtocpp(): def install_doxygen(): """Get a more recent doxygen""" - version = "1.9.7" + version = "1.11.0" + release = f"Release_{version.replace('.', '_')}" + filename = f"doxygen-{version}.linux.bin.tar.gz" doxygen_exe = os.path.join( amici_dir, "ThirdParty", f"doxygen-{version}", "bin", "doxygen" ) @@ -112,9 +114,9 @@ def install_doxygen(): some_dir_on_path = os.environ["PATH"].split(os.pathsep)[0] cmd = ( f"cd '{os.path.join(amici_dir, 'ThirdParty')}' " - f"&& wget 'https://www.doxygen.nl/files/" - f"doxygen-{version}.linux.bin.tar.gz' " - f"&& tar -xzf doxygen-{version}.linux.bin.tar.gz " + f"&& wget 'https://github.com/doxygen/doxygen/releases/download/" + f"{release}/{filename}' " + f"&& tar -xzf '{filename}' " f"&& ln -sf '{doxygen_exe}' '{some_dir_on_path}'" ) subprocess.run(cmd, shell=True, check=True) diff --git a/scripts/downloadAndBuildDoxygen.sh b/scripts/downloadAndBuildDoxygen.sh index 4efa9ab483..a27587d96c 100755 --- a/scripts/downloadAndBuildDoxygen.sh +++ b/scripts/downloadAndBuildDoxygen.sh @@ -9,7 +9,7 @@ DOXYGEN_DIR="${AMICI_PATH}"/ThirdParty/doxygen cd "${AMICI_PATH}"/ThirdParty if [[ ! -d ${DOXYGEN_DIR} ]]; then git clone --single-branch \ - --branch Release_1_10_0 \ + --branch Release_1_11_0 \ --depth 1 \ -c advice.detachedHead=false \ https://github.com/doxygen/doxygen.git "${DOXYGEN_DIR}" From 3fbb90be64a1aafd8d0ed61404a60f867a42a584 Mon Sep 17 00:00:00 2001 From: Daniel Weindl Date: Sun, 16 Jun 2024 14:44:04 +0200 Subject: [PATCH 3/9] PEtab: Fix estimated initial conditions specified via the conditions table (#2456) * For reinitialization of state variables after preequilibration, we need to add *fixed* parameters for initial conditions (otherwise parameter values can't be different for pre-equilibration and the following period). This case was handled fine. * If we want to estimate initial conditions and want to compute sensitivities w.r.t. those, we need *non-fixed* parameters for the initial conditions. This was not handled correctly, those were added as *fixed* parameters. * As a consequence, we *can't* handle reinitialization *and* estimation of initial values for the same state variable. Closes #2455. --- .github/workflows/test_petab_test_suite.yml | 2 +- python/sdist/amici/petab/cli/import_petab.py | 5 +- python/sdist/amici/petab/import_helpers.py | 3 +- python/sdist/amici/petab/sbml_import.py | 72 +++++++++++++++++--- tests/petab_test_suite/test_petab_suite.py | 3 +- 5 files changed, 67 insertions(+), 18 deletions(-) diff --git a/.github/workflows/test_petab_test_suite.yml b/.github/workflows/test_petab_test_suite.yml index 7e9a93c494..c63a733e07 100644 --- a/.github/workflows/test_petab_test_suite.yml +++ b/.github/workflows/test_petab_test_suite.yml @@ -63,7 +63,7 @@ jobs: # retrieve test models - name: Download and install PEtab test suite run: | - git clone --depth 1 --branch main \ + git clone --depth 1 --branch add_test_ic_est \ https://github.com/PEtab-dev/petab_test_suite \ && source ./venv/bin/activate \ && cd petab_test_suite && pip3 install -e . diff --git a/python/sdist/amici/petab/cli/import_petab.py b/python/sdist/amici/petab/cli/import_petab.py index db600b0590..9f29d26e71 100644 --- a/python/sdist/amici/petab/cli/import_petab.py +++ b/python/sdist/amici/petab/cli/import_petab.py @@ -145,10 +145,7 @@ def _main(): import_model_sbml( model_name=args.model_name, - sbml_model=pp.sbml_model, - condition_table=pp.condition_df, - observable_table=pp.observable_df, - measurement_table=pp.measurement_df, + petab_problem=pp, model_output_dir=args.model_output_dir, compile=args.compile, generate_sensitivity_code=args.generate_sensitivity_code, diff --git a/python/sdist/amici/petab/import_helpers.py b/python/sdist/amici/petab/import_helpers.py index 29cbff07e6..94d8e8e0ce 100644 --- a/python/sdist/amici/petab/import_helpers.py +++ b/python/sdist/amici/petab/import_helpers.py @@ -229,9 +229,10 @@ def get_fixed_parameters( # check global parameters if not petab_problem.model.has_entity_with_id(fixed_parameter): # TODO: could still exist as an output parameter? + # TODO: or in the parameters table logger.warning( f"Column '{fixed_parameter}' used in condition " - "table but not entity with the corresponding ID " + "table but no entity with the corresponding ID " "exists. Ignoring." ) fixed_parameters.remove(fixed_parameter) diff --git a/python/sdist/amici/petab/sbml_import.py b/python/sdist/amici/petab/sbml_import.py index 2c43c3adc4..e22a214e18 100644 --- a/python/sdist/amici/petab/sbml_import.py +++ b/python/sdist/amici/petab/sbml_import.py @@ -135,6 +135,7 @@ def import_model_sbml( else SbmlModel.from_file(sbml_model), condition_df=petab.get_condition_df(condition_table), observable_df=petab.get_observable_df(observable_table), + measurement_df=petab.get_measurement_df(measurement_table), ) if petab_problem.observable_df is None: @@ -264,12 +265,50 @@ def import_model_sbml( # feels dirty and should be changed (see also #924) # + # state variable IDs and initial values specified via the conditions' table initial_states = get_states_in_condition_table(petab_problem) + # is there any condition that involves preequilibration? + requires_preequilibration = ( + petab_problem.measurement_df is not None + and petab.PREEQUILIBRATION_CONDITION_ID in petab_problem.measurement_df + and petab_problem.measurement_df[petab.PREEQUILIBRATION_CONDITION_ID] + .notnull() + .any() + ) + estimated_parameters_ids = petab_problem.get_x_ids(free=True, fixed=False) + # any initial states overridden to be estimated via the conditions table? + has_estimated_initial_states = any( + par_id in petab_problem.condition_df[initial_states.keys()].values + for par_id in estimated_parameters_ids + ) + + if ( + has_estimated_initial_states + and requires_preequilibration + and kwargs.setdefault("generate_sensitivity_code", True) + ): + # To support reinitialization of initial conditions after + # preequilibration we need fixed parameters for the initial + # conditions. If we need sensitivities w.r.t. to initial conditions, + # we need to create non-fixed parameters for the initial conditions. + # We can't have both for the same state variable. + # (We could handle it via separate amici models if pre-equilibration + # and estimation of initial values for a given state variable are + # used in separate PEtab conditions.) + # We currently assume that we do need sensitivities w.r.t. initial + # conditions if sensitivities are needed at all. + # TODO: check this state by state, then we can support some additional + # cases + raise NotImplementedError( + "PEtab problems that have both, estimated initial conditions " + "specified in the condition table, and preequilibration with " + "initial conditions specified in the condition table are not " + "supported." + ) + fixed_parameters = [] - if initial_states: + if initial_states and requires_preequilibration: # add preequilibration indicator variable - # NOTE: would only be required if we actually have preequilibration - # adding it anyways. can be optimized-out later if sbml_model.getParameter(PREEQ_INDICATOR_ID) is not None: raise AssertionError( "Model already has a parameter with ID " @@ -286,11 +325,15 @@ def import_model_sbml( "Adding preequilibration indicator " f"constant {PREEQ_INDICATOR_ID}" ) - logger.debug(f"Adding initial assignments for {initial_states.keys()}") + logger.debug( + f"Adding initial assignments for {list(initial_states.keys())}" + ) for assignee_id in initial_states: init_par_id_preeq = f"initial_{assignee_id}_preeq" init_par_id_sim = f"initial_{assignee_id}_sim" - for init_par_id in [init_par_id_preeq, init_par_id_sim]: + for init_par_id in ( + [init_par_id_preeq] if requires_preequilibration else [] + ) + [init_par_id_sim]: if sbml_model.getElementBySId(init_par_id) is not None: raise ValueError( "Cannot create parameter for initial assignment " @@ -300,8 +343,12 @@ def import_model_sbml( init_par = sbml_model.createParameter() init_par.setId(init_par_id) init_par.setName(init_par_id) - # must be a fixed parameter in any case to allow reinitialization - fixed_parameters.append(init_par_id) + if requires_preequilibration: + # must be a fixed parameter to allow reinitialization + # TODO: also add other initial condition parameters that are + # not estimated + fixed_parameters.append(init_par_id) + assignment = sbml_model.getInitialAssignment(assignee_id) if assignment is None: assignment = sbml_model.createInitialAssignment() @@ -315,10 +362,13 @@ def import_model_sbml( "be overwritten to handle preequilibration and " "initial values specified by the PEtab problem." ) - formula = ( - f"{PREEQ_INDICATOR_ID} * {init_par_id_preeq} " - f"+ (1 - {PREEQ_INDICATOR_ID}) * {init_par_id_sim}" - ) + if requires_preequilibration: + formula = ( + f"{PREEQ_INDICATOR_ID} * {init_par_id_preeq} " + f"+ (1 - {PREEQ_INDICATOR_ID}) * {init_par_id_sim}" + ) + else: + formula = init_par_id_sim math_ast = libsbml.parseL3Formula(formula) assignment.setMath(math_ast) # diff --git a/tests/petab_test_suite/test_petab_suite.py b/tests/petab_test_suite/test_petab_suite.py index 6d08cfb693..fee6c6d763 100755 --- a/tests/petab_test_suite/test_petab_suite.py +++ b/tests/petab_test_suite/test_petab_suite.py @@ -178,8 +178,9 @@ def check_derivatives( problem_parameters=problem_parameters, ): # check_derivatives does currently not support parameters in ExpData - model.setParameters(edata.parameters) + # set parameter scales before setting parameter values! model.setParameterScale(edata.pscale) + model.setParameters(edata.parameters) edata.parameters = [] edata.pscale = amici.parameterScalingFromIntVector([]) amici_check_derivatives(model, solver, edata) From c28b8931253f6e0310efaba84df98e70e7de75bf Mon Sep 17 00:00:00 2001 From: Daniel Weindl Date: Sun, 16 Jun 2024 14:52:38 +0200 Subject: [PATCH 4/9] Fix PEtab test suite branch --- .github/workflows/test_petab_test_suite.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test_petab_test_suite.yml b/.github/workflows/test_petab_test_suite.yml index c63a733e07..7e9a93c494 100644 --- a/.github/workflows/test_petab_test_suite.yml +++ b/.github/workflows/test_petab_test_suite.yml @@ -63,7 +63,7 @@ jobs: # retrieve test models - name: Download and install PEtab test suite run: | - git clone --depth 1 --branch add_test_ic_est \ + git clone --depth 1 --branch main \ https://github.com/PEtab-dev/petab_test_suite \ && source ./venv/bin/activate \ && cd petab_test_suite && pip3 install -e . From 6277a5e3faabf8eff6eadaf787d67f99fccb3013 Mon Sep 17 00:00:00 2001 From: Daniel Weindl Date: Sun, 16 Jun 2024 15:02:19 +0200 Subject: [PATCH 5/9] Fix missing parameter table in performance test --- tests/performance/test.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/tests/performance/test.py b/tests/performance/test.py index c497577ab1..f117371910 100755 --- a/tests/performance/test.py +++ b/tests/performance/test.py @@ -77,10 +77,7 @@ def run_import(model_name, model_dir: Path): import_model( model_name=model_name, model_output_dir=model_dir, - sbml_model=pp.sbml_model, - condition_table=pp.condition_df, - observable_table=pp.observable_df, - measurement_table=pp.measurement_df, + petab_problem=pp, compile=False, verbose=True, ) From 6393c0c14650ac5f5dbe38a96444af48f93a835a Mon Sep 17 00:00:00 2001 From: Daniel Weindl Date: Sun, 16 Jun 2024 18:34:13 +0200 Subject: [PATCH 6/9] Numpy 2.0 compatibility (#2392) * Fix numpy2.0 np.infty -> np.inf Fixes `AttributeError: `np.infty` was removed in the NumPy 2.0 release. Use `np.inf` instead.` * Require numpy>=2.0 at build time --- python/sdist/pyproject.toml | 8 +------- python/tests/test_preequilibration.py | 2 +- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/python/sdist/pyproject.toml b/python/sdist/pyproject.toml index 905e564cf4..f93d0c7e1b 100644 --- a/python/sdist/pyproject.toml +++ b/python/sdist/pyproject.toml @@ -4,13 +4,7 @@ requires = [ "setuptools>=61", "wheel", - # oldest-supported-numpy helps us to pin numpy here to the lowest supported - # version to have ABI-compatibility with the numpy version in the runtime - # environment. The undesirable alternative would be pinning the setup.py - # numpy requirement to the same version as here, which we want to avoid. - # cf. discussion at https://github.com/numpy/numpy/issues/5888 - # (https://github.com/scipy/oldest-supported-numpy/) - "oldest-supported-numpy", + "numpy>=2.0", "cmake-build-extension==0.6.0", ] build-backend = "setuptools.build_meta" diff --git a/python/tests/test_preequilibration.py b/python/tests/test_preequilibration.py index d9a2335459..bb657b4153 100644 --- a/python/tests/test_preequilibration.py +++ b/python/tests/test_preequilibration.py @@ -32,7 +32,7 @@ def preeq_fixture(pysb_example_presimulation_module): edata_preeq = amici.ExpData(edata) edata_preeq.t_presim = 0 - edata_preeq.setTimepoints([np.infty]) + edata_preeq.setTimepoints([np.inf]) edata_preeq.fixedParameters = edata.fixedParametersPreequilibration edata_preeq.fixedParametersPresimulation = () edata_preeq.fixedParametersPreequilibration = () From 3004be61c18420de34f100769a006ea76779c193 Mon Sep 17 00:00:00 2001 From: Daniel Weindl Date: Sun, 16 Jun 2024 18:37:39 +0200 Subject: [PATCH 7/9] Remove deprecated functionality for PEtab import from individual files instead of petab.Problem (#2459) Since almost two years, it's possible to pass a `petab.Problem`, which is safer and more convenient. Omitting the parameter table for model import (since there is no option to supply this) is likely to produce unwanted results (see #2458 and #2455 for more details), and therefore, this functionality is best removed. Closes #2458 --- python/sdist/amici/petab/sbml_import.py | 42 ------------------------- 1 file changed, 42 deletions(-) diff --git a/python/sdist/amici/petab/sbml_import.py b/python/sdist/amici/petab/sbml_import.py index e22a214e18..6acf4587f7 100644 --- a/python/sdist/amici/petab/sbml_import.py +++ b/python/sdist/amici/petab/sbml_import.py @@ -5,11 +5,9 @@ from itertools import chain from pathlib import Path from typing import Union -from warnings import warn import amici import libsbml -import pandas as pd import petab import sympy as sp from _collections import OrderedDict @@ -31,9 +29,6 @@ @log_execution_time("Importing PEtab model", logger) def import_model_sbml( sbml_model: Union[str, Path, "libsbml.Model"] = None, - condition_table: str | Path | pd.DataFrame | None = None, - observable_table: str | Path | pd.DataFrame | None = None, - measurement_table: str | Path | pd.DataFrame | None = None, petab_problem: petab.Problem = None, model_name: str | None = None, model_output_dir: str | Path | None = None, @@ -52,18 +47,6 @@ def import_model_sbml( PEtab SBML model or SBML file name. Deprecated, pass ``petab_problem`` instead. - :param condition_table: - PEtab condition table. If provided, parameters from there will be - turned into AMICI constant parameters (i.e. parameters w.r.t. which - no sensitivities will be computed). - Deprecated, pass ``petab_problem`` instead. - - :param observable_table: - PEtab observable table. Deprecated, pass ``petab_problem`` instead. - - :param measurement_table: - PEtab measurement table. Deprecated, pass ``petab_problem`` instead. - :param petab_problem: PEtab problem. @@ -113,31 +96,6 @@ def import_model_sbml( logger.info("Importing model ...") - if any([sbml_model, condition_table, observable_table, measurement_table]): - warn( - "The `sbml_model`, `condition_table`, `observable_table`, and " - "`measurement_table` arguments are deprecated and will be " - "removed in a future version. Use `petab_problem` instead.", - DeprecationWarning, - stacklevel=2, - ) - if petab_problem: - raise ValueError( - "Must not pass a `petab_problem` argument in " - "combination with any of `sbml_model`, " - "`condition_table`, `observable_table`, or " - "`measurement_table`." - ) - - petab_problem = petab.Problem( - model=SbmlModel(sbml_model) - if isinstance(sbml_model, libsbml.Model) - else SbmlModel.from_file(sbml_model), - condition_df=petab.get_condition_df(condition_table), - observable_df=petab.get_observable_df(observable_table), - measurement_df=petab.get_measurement_df(measurement_table), - ) - if petab_problem.observable_df is None: raise NotImplementedError( "PEtab import without observables table " From 350ff6c091125cbc06cfceee969525ffd05925b5 Mon Sep 17 00:00:00 2001 From: Daniel Weindl Date: Sun, 16 Jun 2024 18:38:07 +0200 Subject: [PATCH 8/9] Update reference list (#2414) * Update reference list * LakrisenkoPat2024 * Mutsuddy2024 --- documentation/amici_refs.bib | 46 ++++++++++++++++++++++++++++-------- documentation/references.md | 28 +++++++++++++++------- 2 files changed, 56 insertions(+), 18 deletions(-) diff --git a/documentation/amici_refs.bib b/documentation/amici_refs.bib index 550a58ecc6..b14d0e18b0 100644 --- a/documentation/amici_refs.bib +++ b/documentation/amici_refs.bib @@ -1196,16 +1196,6 @@ @Article{TunedalVio2023 url = {https://physoc.onlinelibrary.wiley.com/doi/abs/10.1113/JP284652}, } -@Unknown{HasenauerMer2023, - author = {Hasenauer, Jan and Merkt, Simon and Ali, Solomon and Gudina, Esayas and Adissu, Wondimagegn and Münchhoff, Maximilian and Graf, Alexander and Krebs, Stefan and Elsbernd, Kira and Kisch, Rebecca and Sirgu, Sisay and Fantahun, Bereket and Bekele, Delayehu and Rubio-Acero, Raquel and Gashaw, Mulatu and Girma, Eyob and Yilma, Daniel and Zeynudin, Ahmed and Paunovic, Ivana and Wieser, Andreas}, - creationdate = {2023-09-19T09:21:01}, - doi = {10.21203/rs.3.rs-3307821/v1}, - modificationdate = {2023-09-19T09:21:01}, - month = {09}, - title = {Long-term monitoring of SARS-CoV-2 seroprevalence and variants in Ethiopia provides prediction for immunity and cross-immunity}, - year = {2023}, -} - @Article{RaimundezFed2023, author = {Elba Raim{\'{u}}ndez and Michael Fedders and Jan Hasenauer}, journal = {{iScience}}, @@ -1306,6 +1296,42 @@ @Article{DoresicGre2024 url = {https://www.biorxiv.org/content/early/2024/01/30/2024.01.26.577371}, } +@Article{MerktAli2024, + author = {Merkt, Simon and Ali, Solomon and Gudina, Esayas Kebede and Adissu, Wondimagegn and Gize, Addisu and Muenchhoff, Maximilian and Graf, Alexander and Krebs, Stefan and Elsbernd, Kira and Kisch, Rebecca and Betizazu, Sisay Sirgu and Fantahun, Bereket and Bekele, Delayehu and Rubio-Acero, Raquel and Gashaw, Mulatu and Girma, Eyob and Yilma, Daniel and Zeynudin, Ahmed and Paunovic, Ivana and Hoelscher, Michael and Blum, Helmut and Hasenauer, Jan and Kroidl, Arne and Wieser, Andreas}, + journal = {Nature Communications}, + title = {Long-term monitoring of SARS-CoV-2 seroprevalence and variants in Ethiopia provides prediction for immunity and cross-immunity}, + year = {2024}, + issn = {2041-1723}, + month = apr, + number = {1}, + volume = {15}, + creationdate = {2024-04-29T08:30:06}, + doi = {10.1038/s41467-024-47556-2}, + modificationdate = {2024-04-29T08:30:06}, + publisher = {Springer Science and Business Media LLC}, +} + +@Misc{LakrisenkoPat2024, + author = {Polina Lakrisenko and Dilan Pathirana and Daniel Weindl and Jan Hasenauer}, + title = {Exploration of methods for computing sensitivities in ODE models at dynamic and steady states}, + year = {2024}, + archiveprefix = {arXiv}, + creationdate = {2024-05-30T09:48:00}, + eprint = {2405.16524}, + modificationdate = {2024-05-30T09:48:00}, + primaryclass = {q-bio.QM}, +} + +@PhdThesis{Mutsuddy2024, + author = {Mutsuddy, Arnab}, + school = {Clemson University}, + title = {Single cell pharmacodynamic modeling of cancer cell lines}, + year = {2024}, + creationdate = {2024-05-30T09:51:58}, + modificationdate = {2024-05-30T09:53:40}, + url = {https://tigerprints.clemson.edu/all_dissertations/3572}, +} + @Comment{jabref-meta: databaseType:bibtex;} @Comment{jabref-meta: grouping: diff --git a/documentation/references.md b/documentation/references.md index 0a2759f4eb..f17da06c55 100644 --- a/documentation/references.md +++ b/documentation/references.md @@ -1,6 +1,6 @@ # References -List of publications using AMICI. Total number is 85. +List of publications using AMICI. Total number is 87. If you applied AMICI in your work and your publication is missing, please let us know via a new GitHub issue. @@ -29,6 +29,12 @@ complex.” Nucleic Acids Research, February, gkae123. https://doi.org/10.1093/nar/gkae123. +
+Lakrisenko, Polina, Dilan Pathirana, Daniel Weindl, and Jan Hasenauer. +2024. “Exploration of Methods for Computing Sensitivities in ODE +Models at Dynamic and Steady States.” https://arxiv.org/abs/2405.16524. +
Lang, Paul F., David R. Penas, Julio R. Banga, Daniel Weindl, and Bela Novak. 2024. “Reusable Rule-Based Cell Cycle Model Explains @@ -36,6 +42,19 @@ Compartment-Resolved Dynamics of 16 Observables in RPE-1 Cells.” PLOS Computational Biology 20 (1): 1–24. https://doi.org/10.1371/journal.pcbi.1011151.
+
+Merkt, Simon, Solomon Ali, Esayas Kebede Gudina, Wondimagegn Adissu, +Addisu Gize, Maximilian Muenchhoff, Alexander Graf, et al. 2024. +“Long-Term Monitoring of SARS-CoV-2 Seroprevalence and Variants in +Ethiopia Provides Prediction for Immunity and Cross-Immunity.” +Nature Communications 15 (1). https://doi.org/10.1038/s41467-024-47556-2. +
+
+Mutsuddy, Arnab. 2024. “Single Cell Pharmacodynamic Modeling of +Cancer Cell Lines.” PhD thesis, Clemson University. https://tigerprints.clemson.edu/all_dissertations/3572. +
Sluijs, Bob van, Tao Zhou, Britta Helwig, Mathieu G. Baltussen, Frank H. T. Nelissen, Hans A. Heus, and Wilhelm T. S. Huck. 2024. @@ -84,13 +103,6 @@ Rewiring Contribute to Drug Resistance.” Molecular Systems Biology 19 (2): e10988. https://doi.org/10.15252/msb.202210988.
-
-Hasenauer, Jan, Simon Merkt, Solomon Ali, Esayas Gudina, Wondimagegn -Adissu, Maximilian Münchhoff, Alexander Graf, et al. 2023. -“Long-Term Monitoring of SARS-CoV-2 Seroprevalence and Variants in -Ethiopia Provides Prediction for Immunity and Cross-Immunity.” https://doi.org/10.21203/rs.3.rs-3307821/v1. -
Huck, Wilhelm, Mathieu Baltussen, Thijs de Jong, Quentin Duez, and William Robinson. 2023. “Chemical Reservoir Computation in a From 6da397a442ef490c52a489d90215d9179d00408b Mon Sep 17 00:00:00 2001 From: Daniel Weindl Date: Sun, 16 Jun 2024 14:50:39 +0200 Subject: [PATCH 9/9] Bump version number, update release notes --- CHANGELOG.md | 17 +++++++++++++++++ documentation/rtd_requirements.txt | 1 + version.txt | 2 +- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f4eed1f392..b466d2d491 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,23 @@ ## v0.X Series +### v0.25.2 (2024-06-16) + +**Fixes** + +* Fixed a bug in PEtab import which led to incorrect gradients + *w.r.t. estimated initial values specified via the condition table* + **BREAKING CHANGE**: + `amici.petab.sbml_import.{import_model_sbml,import_model}` no longer supports + passing individual PEtab tables, but only the PEtab problem object. + This functionality was deprecated since v0.12.0 (2022-08-26). +* Fixes for numpy 2.0 compatibility + **NOTE**: As long as some amici dependencies don't support numpy 2.0 yet, + you may need to pin numpy to <2.0 in your requirements + (`pip install amici "numpy<2.0"`). + +**Full Changelog**: https://github.com/AMICI-dev/AMICI/compare/v0.25.1...v0.25.2 + ### v0.25.1 (2024-05-16) **Fixes** diff --git a/documentation/rtd_requirements.txt b/documentation/rtd_requirements.txt index 9b5cc9709b..06cf506666 100644 --- a/documentation/rtd_requirements.txt +++ b/documentation/rtd_requirements.txt @@ -23,3 +23,4 @@ git+https://github.com/readthedocs/readthedocs-sphinx-ext ipykernel -e git+https://github.com/Benchmarking-Initiative/Benchmark-Models-PEtab.git@master#subdirectory=src/python&egg=benchmark_models_petab -e python/sdist/ +numpy<2.0 diff --git a/version.txt b/version.txt index af2dabf3ff..166c9e29b7 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -0.25.1 +0.25.2