Skip to content

Releases: AMICI-dev/AMICI

AMICI v0.34.0

29 Jul 13:46
7168721
Compare
Choose a tag to compare

The amici 0.34.0 release contains a number of bug fixes and new features.

Note that this will probably be the last release to include the MATLAB interface.

Fixes

  • Breaking changes Events are now also handled during pre-equilibration, presimulation, and post-equilibration.
    This may be a breaking change, as it may lead to different results for models with events that may trigger during these periods. This change is considered a bugfix, as it was not intended to ignore events during these periods.
    (by @dweindl in #2777, #2780, #2859, #2881, #2889, #2920, #2921, #2925)
  • Fixed various issues related to adjoint sensitivity analysis for models with events.
    While many cases are now supported, it is still highly recommended to check the ASA results for models with events against forward sensitivities or finite differences.
  • Fixed a number of issues related to the handling of events or discontinuities in general:
    • Fixed import of DAE models with events (by @dweindl in #2897)
    • Fixed root functions for events with initialValue=trigger=false (by @dweindl in #2910)
    • Fixed check for sign change, fix Heaviside update (by @dweindl in #2927)
  • Fixed sign of residuals (by @dweindl in #2896)
  • Updated the steady state notebook to match the current implementation (by @plakrisenko & @dweindl in #2891)
  • Improved sigma<=0 error reporting (by @FFroehlich in #2829)
  • Fixed sensitivities for the total abundances of conservation laws (only relevant if AMICI_EXPERIMENTAL_SBML_NONCONST_CLS is enabled) (by @dweindl in #2782)
  • Fix sensitivities w.r.t. unused log-scaled NaN parameters (by @dweindl in #2903)

Features

  • AMICI should now be pip-installable without pre-installing SWIG or BLAS (by @dweindl in #2774, #2772)
  • Event/discontinuity handling for JAX models
  • Handle state-independent, parameter-dependent event triggers without root-finding (by @dweindl in #2913)
  • Presimulation is now also supported in combination with adjoint sensitivities (by @dweindl in #2786)
  • It is now possible to set a separate $t_0$ for pre-equilibration and main simulation (by @dweindl in #2793)
  • Sensitivity analysis for AlgebraicRule / DAE models is now also supported for Python-imported models
    (by @dweindl in #2101)
  • An optional random generator seed can now be passed to ExpData::ExpData(ReturnData const&, ...) when generating synthetic measurements (by @dweindl in #2802)
  • Added ReturnData::plist (by @dweindl in #2874)

... and extended tests, documentation, and many changes under the hood.

Full Changelog: v0.33.0...v0.34.0

AMICI v0.33.0

11 Jun 20:46
ce28017
Compare
Choose a tag to compare

Note that this release requires Python >= 3.11.

Fixes

  • Fixed an issue in SBML AlgebraicRule processing leading to import failure if a species occurred in multiple AlgebraicRules

    by @dweindl in #2744

  • Fixed a potential segfault when running forward sensitivity analysis for models without state variables

    by @FFroehlich in #2749

  • Fixed a dimension bug for presimulation parameters in ExpDataView

    by @FFroehlich in #2746

  • Fixed incorrect initialization for initial assignments with explicit time dependence

    by @dweindl in #2779

Features

  • AMICI now supports SBML events with use_values_from_trigger_time=true

    by @dweindl in #2741

  • AMICI now supports SBML events with constant priorities

    by @dweindl in #2730

Other changes

  • doc: Added a caveats section listing some known issues and potentially unexpected behavior in AMICI

    by @dweindl in #2735

  • Added warnings for presimulation and steady state simulation with events. So far, events were not fully supported in these modes. This is subject to change.

    by @dweindl in #2755

Full Changelog: v0.32.0...v0.33.0

AMICI v0.32.0

15 May 19:52
57d8179
Compare
Choose a tag to compare

Breaking changes

  • Removed deprecated amici.petab_* modules (now under amici.petab.*)

    by @dweindl in #2658

  • Removed deprecated CLI options to amici_import_petab

    by @dweindl in #2671

Changed requirements

Fixes

  • Fixed Heaviside functions for <, > <=, >= which could have lead to incorrect simulation results.

    Note that > and >=, as well as < and <= can't be distinguished in some cases (see #2707). Avoid situations where this would matter.

    by @dweindl in #2701

  • Prevent segfaults under pytest after swig4.3 wrapping

    by @dweindl in #2696

  • Fixed SetuptoolsDeprecationWarning: \project.license` as a TOML table is deprecated`

    by @dweindl in #2697

  • Updated Dockerfile, use Ubuntu 24.04 LTS

    by @dweindl in #2698

  • SBML import: Handle unsolvable event triggers

    by @dweindl in #2705

  • Added RTFUNC_FAIL simulation status

    by @dweindl in #2702

  • doc: Enable building docs with Python 3.13

    by @dweindl in #2704

  • Fixed crash for models without state variables

    by @dweindl in #2703

  • SBML import: avoid repeated xdot==0 checks

    by @dweindl in #2706

  • Fixed Boolean to float conversion issues during SBML import

    by @dweindl in #2725

Features

  • Support for XOR, == and != operators in SBML models

    Note that not all (combinations of) Boolean functions will work well with AMICI's root-finding. It's recommended to verify the results.

    by @dweindl in #2699, #2708, and #2716

Full Changelog: v0.31.2...v0.32.0

AMICI v0.31.2

23 Apr 10:15
a87058e
Compare
Choose a tag to compare

Bugfix-only release.

  • SBML import: Handle unsolvable event triggers
    by @dweindl in #2686
  • Fixed a clang compiler warning related to variable length arrays
    by @FFroehlich in #2688
  • Temporarily require interpax<=0.3.6
    by @dweindl in #2678
  • Update OpenBLAS installation script to work with CMake>=4
    by @dweindl in #2679
  • GHA: Don't run cron jobs on forks by @dweindl in #2669
  • Fixed Matlab documentation build with CMake 4.0
    by @dweindl in #2676

Full Changelog: v0.31.1...v0.31.2

AMICI v0.31.1

21 Mar 15:45
4cda6c7
Compare
Choose a tag to compare

Bugfix-only release.

  • Handle relational operators in SBML import
    by @dweindl in #2652

Full Changelog: v0.31.0...v0.31.1

AMICI v0.31.0

18 Feb 17:45
f742e48
Compare
Choose a tag to compare

Full Changelog: v0.30.1...v0.31.0

AMICI v0.30.1

18 Feb 10:52
64bbd80
Compare
Choose a tag to compare

Bugfix-only release.

  • Removed eqx.debug.nan, fixes #2629
    by @FFroehlich in #2630
  • Fixes an SBML import issue that led to incorrect results for models with
    species-dependent initial assignments (fixes #2642)
    by @FFroehlich in #2643
  • Fixed CVodeGetSensDky error message
    by @dweindl in #2644
  • Disabled CvodeF checkpointing to prevent certain rare crashes when forward
    integration takes exactly maxsteps integration steps, plus some additional
    yet unclear condition.
    by @dweindl in #2645
  • Fixed rare crashes due to uncaught exceptions in ~FinalStateStorer
    by @dweindl in #2647

Full Changelog: v0.30.0...v0.30.1

AMICI v0.30.0

10 Dec 17:36
2d58f54
Compare
Choose a tag to compare

Please note that the amici JAX model generation introduced in v0.29.0 is experimental, the API may substantially change in the future. Use at your own risk and do not expect backward compatibility.

Features

Fixes

  • Fixed ModelStateDerived copy ctor (fixes potential segfaults)

    by @dweindl in #2612

  • PEtab parameter mapping: fill in fixed parameter values for initial values

    by @dweindl in #2613

  • nan-safe log&divide for JAX models

    by @FFroehlich in #2611

Full Changelog: v0.29.0...v0.30.0

AMICI v0.29.0

28 Nov 11:45
d2fbf91
Compare
Choose a tag to compare

Fixes

  • Fixed race conditions in froot, which could have resulted in incorrect
    simulation results for models with events/heavisides/piecewise, for
    multi-threaded simulations.

    by @dweindl in #2587

  • Fixed race conditions for the max-time check, which could have resulted in
    incorrect termination of simulations in case of multi-threaded simulations
    in combination with a time limit.

    by @dweindl in #2587

  • Added missing fields in ExpData HDF5 I/O

    by @dweindl in #2593

  • Added missing fields in ReturnData HDF5 output

    by @dweindl in #2602

Features

  • Generate models in a JAX-compatible format (example)

    by @FFroehlich in #1861

  • Faster fill_in_parameters_for_condition

    by @dweindl in #2586

  • Added Python function writeSimulationExpData for writing ExpData to HDF5

    by @dweindl in #2588

  • Improved import of amici-generated models via amici.import_model_module().

    So far, it was not possible to import different model modules with the same
    name. This is now possible if they are in different directories.
    Overwriting an already imported module is still not possible (and never
    was); any attempts to do so will raise a RuntimeError.
    While model packages can, in principle, be imported using regular
    imports, it is strongly recommended to use amici.import_model_module().

    by @dweindl in #2604, #2603, #2596

Full Changelog: v0.28.0...v0.29.0

AMICI v0.28.0

11 Nov 08:19
c3bbdd9
Compare
Choose a tag to compare

Breaking changes

  • Changed the default steady-state method to integrationOnly (by @dweindl in #2574)

    The default mode for computing steady states and sensitivities at steady state was changed to integrationOnly (from previously integrateIfNewtonFails).

    This was done for a more robust default behavior. For example, the evaluation in https://doi.org/10.1371/journal.pone.0312148 shows that - at least for some models - Newton's method may easily lead to physically impossible solutions.

    To keep the previous behavior, use:

    amici_model.setSteadyStateComputationMode(amici.SteadyStateComputationMode.integrateIfNewtonFails)
    amici_model.setSteadyStateSensitivityMode(amici.SteadyStateSensitivityMode.integrateIfNewtonFails)

Fixes

  • PEtab import: Fixed potentially incorrect sensitivities with observable/state-dependent sigmas.
    This was fixed for all cases amici can handle, others cases will now result in ValueErrors (#2563).

    by @dweindl in #2562

  • Fixed potentially incorrect disabling of Newton's method

    by @dweindl in #2576

  • Fixed ModelStateDerived copy ctor, where previously dangling pointers could lead to crashes in some situations

    by @dweindl in #2583

  • Added missing simulation status codes

    by @dweindl in #2560

  • Check for unsupported observable IDs in sigma expressions

    by @dweindl in #2563

Features

Full Changelog: v0.27.0...v0.28.0