Releases: AMICI-dev/AMICI
AMICI v0.30.0
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
-
Added serialisation for JAX models
by @FFroehlich in #2608
-
Disabled building the C++ extension by default when generating a JAX model
by @FFroehlich in #2609
-
Separate pre-equilibration and dynamic simulation in jax
by @FFroehlich in #2617
-
State reinitialisation in JAX
by @FFroehlich in #2619
Fixes
-
Fixed ModelStateDerived copy ctor (fixes potential segfaults)
-
PEtab parameter mapping: fill in fixed parameter values for initial values
-
nan
-safe log÷ for JAX modelsby @FFroehlich in #2611
Full Changelog: v0.29.0...v0.30.0
AMICI v0.29.0
Fixes
-
Fixed race conditions in froot, which could have resulted in incorrect
simulation results for models with events/heavisides/piecewise, for
multi-threaded simulations. -
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. -
Added missing fields in ExpData HDF5 I/O
-
Added missing fields in ReturnData HDF5 output
Features
-
Generate models in a JAX-compatible format (example)
by @FFroehlich in #1861
-
Faster
fill_in_parameters_for_condition
-
Added Python function
writeSimulationExpData
for writing ExpData to HDF5 -
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 aRuntimeError
.
While model packages can, in principle, be imported using regular
import
s, it is strongly recommended to useamici.import_model_module()
.
Full Changelog: v0.28.0...v0.29.0
AMICI v0.28.0
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 previouslyintegrateIfNewtonFails
).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 inValueError
s (#2563). -
Fixed potentially incorrect disabling of Newton's method
-
Fixed
ModelStateDerived
copy ctor, where previously dangling pointers could lead to crashes in some situations -
Added missing simulation status codes
-
Check for unsupported observable IDs in sigma expressions
Features
Full Changelog: v0.27.0...v0.28.0
AMICI v0.27.0
This release comes with an updated version of the SUNDIALS package (7.1.1) (#2513).
For C++ users of some of AMICI's internal RAII classes, this may include some breaking changes.
The Python API is not affected.
Note regarding editable installations (pip install -e ...
): Due to the SUNDIALS update, it will be necessary to clean out some temporary build directories (at least ThirdParty/sundials/build/
, python/sdist/build/
) before rebuilding the package.
Fixes
-
Fixed a bug that led to program termination if a root-after-reinitialization
error (potentially also others) occurred at an output timepoint -
CMake: Fixes compilation errors for models named
model
-
Updated CMake export config, making it easier to use AMICI in CMake projects
and fixing some potential issues with interferring packages -
CMake: Set policies for CMake 3.31
-
Documentation fixes by @FFroehlich, @ChocolateCharlie, @dweindl
Full Changelog: v0.26.3...v0.27.0
AMICI v0.26.3
Fixes
-
Skip building SuiteSparse shared libraries and build all subprojects together for slightly faster package installation
-
Got rid of petab
DeprecationWarnings
when using theamici_import_petab
CLI -
Now also sundials and suitesparse are built in debug mode when installing with
ENABLE_AMICI_DEBUGGING=TRUE
Full Changelog: v0.26.2...v0.26.3
AMICI v0.26.2
Fixes
-
Fixed a sympy float comparison issue in spline code that would cause an
AssertionError
-
Fixed some warnings from recent CMake versions
-
Fixed a potential issue when including AMICI in a CMake project
Full Changelog: v0.26.1...v0.26.2
AMICI v0.26.1
AMICI v0.26.0
AMICI v0.26.0 requires sympy>=1.12.1 and petab>=0.4.0.
Policy changes
-
Updated AMICI's versioning / deprecation policy
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 apetab.Problem
instance instead.
Fixes
-
Fixed a bug where during installation of AMICI, an incorrect sundials CMake
would be used resulting in installation errors.
Full Changelog: v0.25.2...v0.26.0
AMICI v0.25.2
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: v0.25.1...v0.25.2
AMICI v0.25.1
Fixes
- Avoid clashes with sympy-entities in
plot_expressions
by @dweindl in #2440 - PEtab: fix KeyErrors for missing parameters in
fill_in_parameters
(default values are now used if only a subset of parameters is provided)
by @dweindl in #2449 - CMake: Fix Intel MKL detection when not using environment modules
by @dweindl in #2443 - CMake: Fix some issues with multi-config generators
by @dweindl in #2445
Full Changelog: v0.25.0...v0.25.1