Releases: AMICI-dev/AMICI
AMICI v0.25.0
This release requires Python >= 3.10.
Fixes
- Fixed a bug in event handling that could lead to incorrect simulation
results for models with events that assign to compartments and have
additional event assignments
by @dweindl in #2428 - SBML import: handle
useValuesFromTriggerTime
attribute on events.
This attribute was previously ignored. It is possible that now AMICI fails
to import models that it previously imported successfully. For cases where
useValuesFromTriggerTime=True
made a difference, AMICI might have produced
incorrect results before.
by @dweindl in #2429 - Faster code generation for models with events if they don't have
state-dependent triggers
by @dweindl in #2417 - Most warnings now come with a more informative code location
by @dweindl in #2421 amici.ExpData
was changed so thatisinstance(edata, amici.ExpData)
works
by @dweindl in #2396
Features
- Event-assignments to compartments are now supported. Previously, this only
worked for compartments that were rate rule targets.
by @dweindl in #2425 - Releases are now deployed to Docker Hub
by @dweindl in #2413
Full Changelog: v0.24.0...v0.25.0
AMICI v0.24.0
This will be the last release supporting Python 3.9.
Future releases will require Python 3.10.
Fixes
- Fix cmake error
cannot create directory: /cmake/Amici
during model import in cases where BLAS was not found viaFindBLAS
by @dweindl in #2389 - Added status code
AMICI_CONSTR_FAIL
by @dweindl in #2379 - Fixed certain initial state issues with PEtab
by @dweindl in #2382 - Fixed Solver
operator==
and copyctor
(constraints were not copied correctly)
by @dweindl in #2388 - Avoid confusing warnings about non-finite timepoints
by @dweindl in #2395 - Fixed incorrect exception types / messages for
IDASolver
by @dweindl in #2398 - cmake: set SUNDIALS path hint for python package to help CMake find
the correct SUNDIALS installation
by @dweindl in #2397
Features
- Optionally include measurements in
plot_observable_trajectories
by @dweindl in #2381 - Improved type annotations in swig-wrappers
by @dweindl in #2401 - Additional attributes are accessible directly via
ReturnDataView
and
ExpDataView
, e.g.ReturnDataView.ny
,ReturnDataView.nx
by @dweindl in #2405 - Allow subselection of state variables for convergence check during
steady-state simulations viaModel.set_steadystate_mask([1, 0, ..., 1])
(positive value: check; non-positive: don't check).
by @dweindl in #2387
Full Changelog: v0.23.1...v0.24.0
AMICI v0.23.1
AMICI v0.23.0
Features
-
SBML
InitialAssignment
are no longer absorbed into other model expressions, but are available as parameters or expressions (w
) in the amici model
by @dweindl in #2304, #2305, #2345, #2359 -
Model expressions
w
are now split into static and dynamic expressions, and only evaluated as needed
by @dweindl in #2303 -
Exposed additional solver settings:
Solver.setMaxConvFails()
: maximum number of non-linear solver convergence failuresSolver.setMaxNonlinIters()
: maximum number of non-linear solver iterationsSolver.setMaxStepSize()
: maximum step sizeSolver.setConstraints()
: for setting (non)negativity/positivity constraints on state variables
-
Improved output for debugging simulation failures:
ReturnData.{xdot,J}
now contain the respective values from the timepoint of failure, not the last output timepoint. NaN/Inf warnings now always include the timepoint at which the issue occurred. Note that C++ stacktraces are now only logged for debug builds.
by @dweindl in #2349, #2347, #2366 -
Updated dataframes import/export to include parameter values and scales
by @FFroehlich in #2351
Fixes
- CMake: Updated BLAS detection and some minor fixes
by @dweindl in #2318 and #2357 - Deterministic ordering of source files in generated
CMakeLists.txt
by @dweindl in #2322 - Fixed size check in
Model::setStateIsNonNegative
by @dweindl in #2332 - Fixed uncaught C++ exception in
runAmiciSimulation
that may crash Python in case of invalid values for standard deviations
by @dweindl in #2338 - Fixed missing import in
amici/petab/petab_import.py
by @plakrisenko in #2342 - Fixed
ReturnDataView
AttributeError: messages
by @dweindl in #2341 - Added a missing return code constant
LSETUP_FAIL
by @dweindl in #2353 - Fixed in-place building of model wheels
by @dweindl in #2352 - Made is-zero-checks compatible with the upcoming sympy>1.12
by @dweindl in #2350 - Fixed issues with paths containing blanks for sundials
by @dweindl in #2361 - Added
amici.petab.conditions
to the API documentation
by @PaulJonasJost in #2364 - Improved type annotations in swig-wrappers
by @dweindl in #2344, #2365
Full Changelog: v0.22.0...v0.23.0
AMICI v0.22.0
Features
-
PEtab import: User option to fail if model needs to be compiled
by @dilpath in #2289The
force_compile
argument is now deprecated. Usecompile_
instead. -
Model import now adds a
.gitignore
file to the model output directory
by @dweindl in #2301
Fixes
- Fixed a bug that may have caused wrong simulation results for certain
SBML models that containrateOf
-expressions
by @dweindl in #2291 - More informative error message for
ReturnDataView.by_id
by @dweindl in #2295 - Fixed
ENABLE_AMICI_DEBUGGING=TRUE
not working with MSVC
by @dweindl in #2296 - Fixed MANIFEST.in warning by @dweindl in #2297
- (performance) Skip unnecessary toposorting in
DEModel._collect_heaviside_roots
by @dweindl in #2299 - (performance) Fix redundant calls to
Model::fdwdx
fromModel_ODE::fJ
(only relevant for dense and banded solvers)
by @dweindl in #2298
Full Changelog: v0.21.2...v0.22.0
AMICI v0.21.2
AMICI v0.21.1
Fixed package configuration for PyPI upload. No further changes.
See https://github.com/AMICI-dev/AMICI/releases/tag/v0.21.0.
AMICI v0.21.0
Deprecations
- Moved PEtab-related functionality from
amici.petab_*
to the
petab-subpackageamici.petab.*
. The old public functions are still
available but will be removed in a future release.
by @dweindl in #2205, #2211, #2252
Features
- Handle events occurring at fixed timepoints without root-finding.
This avoids event-after-reinitialization errors in many cases brings a
slight performance improvement.
by @dweindl in #2227 - Added
PetabProblem
class for handling PEtab-defined simulation conditions,
making it easier to perform customized operations based on PEtab-defined
simulation conditions.
by @dweindl in #2255 - code-gen: Simplified
switch
statements, leading to reduced file sizes and
faster compilation for certain models.
by @dweindl in #2240 - Made
Model
andModelPtr
deepcopyable
by @dweindl in #2247 - Made
Solver
andSolverPtr
deepcopyable
by @dweindl in #2245 - Added a debugging helper
get_model_for_preeq
for debugging simulation
issues during pre-equilibration.
by @dweindl in #2250 - Added
SwigPtrView
fields todir()
outputs
by @dweindl in #2244 - Use proper labels for in plotting functions if IDs are available in
ReturnData
.
by @dweindl in #2249 - Added
ExpData::clear_observations
to set all measurements/sigmas to NaN
by @dweindl in #2258
Fixes
- Fixed AMICI hiding all warnings. Previously, importing
amici
resulted
in all warnings being hidden in the rest of the program.
by @dweindl in #2243 - CMake: Fixed model debug builds
by @dweindl in #2222 - Fixed CMake potentially using incorrect Python library for building model
extension
by @dweindl in #2220 - CMake: fixed cxx flag check
by @dweindl in #2225 - Fixed potential out-of-bounds read in
Model::checkFinite
for
matlab-imported models
by @dweindl in #2232 - Fixed piecewise/Heaviside handling
by @dweindl in #2234 - Deterministic order of event assignments
by @dweindl in #2242 - Proper error message in case of unsupported state-dependent sigmas
by @dweindl in #2239 - Fixed swig shadow warning + other linting issues
by @dweindl in #2261 - Fixed
SwigPtrView.__getattr__
by @dweindl in #2259 simulate_petab
: Avoid warning when simulating with default parameters
by @dweindl in #2265
Documentation
- Updated Python package installation instructions for Arch Linux
by @willov in #2212 - Updated
ExpData
documentation
by @dweindl in #2254 - Documented simulation starting time
t0
by @dweindl in #2263 - Updated PEtab example
by @dweindl in #2255
...
Full Changelog: v0.20.0...v0.21.0
AMICI v0.20.0
Fixes
- Fixed CMake cmake_minimum_required deprecation warning
by @dweindl in #2183 - Fixed misleading preequilibration failure messages
by @dweindl in #2181 - Removed setuptools<64 restriction
by @dweindl in #2180 - Fixed ExpData equality operator for Python
by @dweindl in #2194 - Enabled deepcopy for ExpData(View)
by @dweindl in #2196 - Allowed subsetting simulation conditions in simulate_petab
by @dweindl in #2199 - Set CMake CMP0144 to prevent warning
by @dweindl in #2209
Features
- Possibility to evaluate and plot symbolic expressions based on simulation results
by @dweindl in #2152 - Easier access to timepoints via ExpDataView
by @dweindl in #2193 - Nicer
__repr__
for ReturnDataView
by @dweindl in #2192
Documentation
- Added installation instructions for Arch Linux
by @stephanmg in #2173 - Updated reference list
by @dweindl in #2172 - Installation guide: optional requirements
by @dweindl in #2207
Full Changelog: v0.19.0...v0.20.0
AMICI v0.19.0
Features
-
Added
Model.{get,set}SteadyStateComputationMode
(analogous toSteadyStateSensitivityMode
)
which allows to choose how steady state is computed.
by @plakrisenko in #2074Note: The default
SteadyStateSensitivityMode
changed fromnewtonOnly
tointegrateIfNewtonFails
. -
SBML import: Allow hardcoding of numerical values
by @dweindl in #2134 -
Added
antimony2amici
for more convenient antimony import
(simplifies working with raw ODEs, see documentation)
by @dweindl in #2142 -
Added
AMICI_TRY_ENABLE_HDF5
environment variable to control whether to search for HDF5 or not
by @dweindl in #2148
Fixes
- Fixed SBML import for events with trigger functions depending on parameters that are initial
assignment targets
by @dweindl in #2145 - Fixed SBML import for event-assigned parameters with non-float initial assignments
by @dweindl in #2156 - Fixed
unistd.h
dependency ofhdf5.cpp
that led to compilation
failures on Windows
by @dweindl in #2154 - Set CMake policies for cmake 3.27 by @dweindl in #2162
- Fixed a
lib/
vslib64/
issue, leading toSUNDIALSConfig.cmake
-not-found issues
on some systems
by @dweindl in #2165 - CMake: fixed scope of
-DHAS_BOOST_CHRONO
which may have lead to a mix of
boost::chrono::thread_clock
andstd::clock
being used in programs using amici,
and potentially segmentation faults
by @dweindl in #2163
Performance
-
Combined code for sparse model functions and their index files for slightly faster
compilation of small models
by @dweindl in #2159 -
Removed complex / complex long KLU functions for slightly faster amici package installation
by @dweindl in #2160
Full Changelog: v0.18.1...v0.19.0