All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
v0.1.7 - 2021-10-18
- it's possible to set explicit time dependence of rates now when starting a simulation
- changed references to deprecated classes in examples and docstrings
- better handling of detecting explicit time-dependence in functional rates.
v0.1.6 - 2021-07-30
- renamed a parameter in
StochasticEpiModel.simulate
tostop_simulation_on_vanishing_total_event_rate
, because it describes the mechanism better (adjustedTemporalNetwork
) accordingly
- Disallowing resizing a visualization app on Linux OSes to avoid a recursion error
- metadata such as
epipack.__version__
is now correctly given out
- a
SymbolicSEIRModel
- a routine to generate random geometric graphs
- the possiblity to add a callback function in
StochasticEpiModel.simulate
such that event tracking is possible
v0.1.5 - 2021-06-08
- methods to the IntegratorMixin class that allow integration until a stop condition is reached
- specified for MatrixEpiModel that the leading eigenvalue of a Jacobian should be measured by largest real part
- specified for MatrixEpiModel that the leading eigenvalue of the next generation matrix should be measured by largest magnitude (because R is the matrix's spectral radius)
- in StochasticEpiModel, convert rate values to float by default
v0.1.4 - 2021-05-18
- A new small-world network styling method based on 1d lattice distance (in epipack.networks)
- methods to compute Jacobian and next generation matrices (NGMs) in
MatrixEpiModel
, as well as R0 from said NGMs (TODO: add docs) - tests for these methods
epipack.distributions
module, which deals with fitting empirical distributions to sums of exponentially distributed random variables (still in dev mode, also TODO: add docs)- tests for this module
- methods to
EpiModel
that save events that have been set. This will be used to generate model flowcharts with graphviz at some point - the possibility to pass a function to
StochasticEpiModel.simulate
that checks for a custom stop condition
v0.1.3 - 2021-04-07
- dependency issues with pyglet, apparently the "shapes" module did not appear until lately. Defined a range of versions for pyglet
- bug in example code in README.md
v0.1.2 - 2021-04-01
- A bug where the
reset_events
-flag was ignored when setting processes
v0.1.1 - 2021-03-03
- GeneralInteractiveWidget was added to allow interactive display of general functions
- a very basic SDE integrator was added (no diffusion coefficent matrix, and no system-dependent diffusion coefficients)
- InteractiveIntegrator can now plot derivatives
- Range and LogRange classes will behave like floats whenever necessary
- behavior of the SamplableSet class
- a bug where the reaction rate of nodes in weighted networks is scaled by the node's degree and not by its strength
v0.1.0 - 2020-10-21
epipack.interactive
: contains a class that adds an interactive widget to Jupyter notebooks with which one may control the parameter values of a SymbolicEpiModel instanceepipack.temporal_networks
: set up temporal networks and model simulations on themSymbolicODEModel
: A model that's defined via ODEs in sympy format.
- DeterministicEpiModel is now MatrixEpiModel
- SymbolicEpiModel is now SymbolicMatrixEpiModel
- in StochasticEpiModel and during visualization, a more efficient mechanism checks for whether the simulation has ended for good
- Added models that are based entirely on events. In this way, we can easily implement time-dependent rates and have single models that can do everything at once: symbolic evaluations, numerical evaluations, and stochastic mean-field simulations
- time-dependent rates are integrated using a time-varying Gillespie algorithm
- EpiModel, StochasticSIModel, StochasticSIRModel, StochasticSISModel, SymbolicEpiModel (based on events rather than rates)
v0.0.4 - 2020-08-03
- SymbolicEpiModel: raise error when
disease_free_state
is not given explicitly and no S-compartment can be found - allow non-unity initial conditions for SymbolicEpiModel and DeterministicEpiModel
population_size
is now explicitly regarded in SymbolicEpiModel- in DeterministicEpiModel, instead of raising errors, warnings are raised for nonzero column sums
- in StochasticEpiModel, save the current state after the end of the simulation
- A complete visualization framework and network grid layout
- in StochasticEpiModel, a callback function can be passed that's called whenever a sample is taken during the simimulation
- fixed bug where fission processes were converted to quadratic rates
v0.0.3 - 2020-06-30
- Catch situations where the true total event is zero but the maximum total event rate is non-zero
v0.0.2 - 2020-06-29
- Catching ModuleNotFoundError properly
v0.0.1 - 2020-06-25
- Working package
- initialized