- Notifications
You must be signed in to change notification settings - Fork60
Releases: EpiModel/EpiModel
Releases · EpiModel/EpiModel
EpiModel v2.5.0
c33aaa7
This commit was created on GitHub.com and signed with GitHub’sverified signature.
Compare
Could not load tags
Nothing to show
{{ refName }}defaultLoading
NEW FEATURES
- Export a generic
get_discordant_edgelist
where the attribute used to assess discordance as well as the values for each group can be specified. - Export
param.net_from_table
andparam.net_to_table
helper functions to convert parameter list and parameter data.frames used byparam.net
. - Allow saving the cumulative edge-list at the end of simulation using the
save.cumulative.edgelist
control argument. - Restarting a simulation now only requires saving
dat$run
. This removes the need to keep track of all the elements required at the end of a simulation. This requires the EpiModel user to put all elements indat$run
. - Export
get_forward_reachable
andget_backward_reachable
functions that works similarly to but more efficiently thantsna::tPath
for multiple nodes and using cumulative edgelists. - Export
overwrite_attrs
, a helper function to overwrite the attributes of the nodes with adata.frame
at the start of the simulation. (see?overwrite_attrs
). as.data.frame
for model classesnetsim
andicm
now assign theepi.data.frame
class in addition todata.frame
.- Add the
plot.epi.data.frame
method to plotepi.data.frame
similar toplot.netsim(type = "epi")
. - Export
as.epi.data.frame
that assign theepi.data.frame
class and validate that the inputdata.frame
is correctly formatted.
OTHER
- Speed up
raw.records
andattr.history
withcollections::queue
instead ofbase::list
. - Add
save.diss.stats
to the checked control values. Prevents undefined values when usingcontrol.net
wrappers. - Move
el.cuml
,_last_unique_id
, and_last_timestep
andattr
todat$run
and update the tests; part of the restructuring of thedat
object. - Remove
dat$epi$sim.num(.g2)
and replace it withdat$run$num(.g2)
(single value). These values keep track of the current size of the network and are only needed during model runs. - Speed up cumulative edge-list calculation by splitting current and historic edges.
- Remove
deleteAttr
function deprecated since EpiModel v2.4.0. - All function accepting
posit_ids
as argument must now pass exclusively a numeric vector. Logical vectors are not accepted anymore as they were making the code heavier and were error prone. ergm.ego
is now a suggestion to shorten the dependency chain. It needs to be installed separately to usenetest
with anegor
object.
Assets2
EpiModel v2.4.0
Compare
Could not load tags
Nothing to show
{{ refName }}defaultLoading
NEW FEATURES
- Stochastic network models, simulated with
netsim
, now support multi-layer networks. These are networks with a common common node set but different edge set (e.g., home-based and community-based contact layers). An example implementation can be found at theEpiModel Gallery. - Add a
get_cumulative_degree
function with an interface similar toget_partners
. This function helps look up cumulative degree over a time period (e.g., number of partners over the past year) for a specified set of nodes. - Generic
get_network
andset_network
functions created for more consistent access to the network objects withinnetsim_dat
class objects.
OTHER
update_cumulative_edgelist
is now called unconditionally and governed by thecumulative.edgelist
control.- Attempting to access a cumulative edgelist when the
control.net
settingcumulative.edgelist == FALSE
causes an error. netsim
data objects now properly classed asnetsim_dat
.icm
data objects now properly classed asicm_dat
, consistent withnetsim
objects.- Update network simulation handling of
ergm
objects to address backwards incompatible data structures forergm
package v4.5.0.
Assets2
EpiModel v2.3.2
Compare
Could not load tags
Nothing to show
{{ refName }}defaultLoading
NEW FEATURES
- Estimation with the
ergm.ego
package estimation is now supported. This is accomplished by passing anegor
class object instead of anetwork
class object as thenw
argument tonetest
. - Added an
end.horizon
control setting tocontrol.net
. This allows one to remove a set of modules within network epidemic models at a given time step. This end horizon is needed for cost-effectiveness analyses and related models that require tracking person time in the absence of disease transmision. - Added
.traceback.on.error
and.dump.frames.on.error
controls to print thetraceback
on error even on multicore settings anddump.frames
for remote debugging.
BUG FIXES
- Fixed an error where
get_attr_history
would crash when attribute history ofposit_ids
argument wasinteger(0)
. - Changed in the internal behavior of
saveout.net
: missing elements on some simulations now produce a warning instead of an error. Additionally, elements passed tosave.other
that are not present in the final object are skipped silently instead of producing an error.
OTHER
- Removed functionality for the
networkLite
class (sparse network representations needed for epidemic modeling) from EpiModel and placed into its own package on CRAN:https://CRAN.R-project.org/package=networkLite.
Assets2
EpiModel v2.3.1
Compare
Could not load tags
Nothing to show
{{ refName }}defaultLoading
NEW FEATURES
netdx
now calculates additional summary statistics to quantify variability within and across simulations for model diagnostics. See the help page for the associated print function for futher details:help("print.netdx")
.get_transmat
adds adeduplicate
argument to randomly select one transmitting act in the case that multiple potential transmissions occur within a time step to the newly infected person.
BUG FIXES
- Fix
get_sims
not properly subsettingel.cuml
and_last_unique_id
. - Fix parallel memory leak in
netsim
. - Rework the network resimulation module to allow for working with observed network data. See thisEpiModel Gallery Example.
- Fix error message for tergmLite/resimulate.network collision
OTHER
- The
tracker.net
module was removed as an optional extension module, and this functionality is now default for all network models (built-in and extension models). See theWorking with Attributes and Summary Statistics Vignette for more details. - Speed up the transmission matrix (
transmat
) storage by usingpadded_vector
instead of repeatedrbind
calls. The result ofget_transmat(netsim_object)
is unchanged. - Use
unflatten_params
ingenerate_random_params
instead of bespoke code. - Standardize and speed up the summary calculations and plotting functionality for
netdx
andnetsim
objects. - Streamline unit tests for testing on CRAN.
Assets2
EpiModel v2.3.0
Compare
Could not load tags
Nothing to show
{{ refName }}defaultLoading
NEW FEATURES
- Network models can now use predefined scenarios with the
use_scenario
function. See theWorking with Model Parameters vignette for details. - The
trim_netest
function has been added to reducenetest
object sizes in common use cases. - The
networkLite
class now supports some additional functionalities. - Duration = 1 time step models in
netsim
withtergmLite = FALSE
now usetergm
simulation to produce anetworkDynamic
class object, similar to the duration > 1 time step case. netdx
now supports heterogeneous dissolution model diagnostics. See the example inhelp("netdx")
.plot.netsim
now supportstype = "duration","dissolution"
for homogeneous ("edges-only") dissolution models.- Network model parameters can now be supplied to
param.net
via adata.frame
. See theWorking with Model Parameters vignette for details. - A new term
fuzzynodematch
was added, to support modeling of more generalized notions of homophily. - Network models can now be checkpointed to automate saving, recovering, and restarting simulations after interruption, as might occur with large-scale simulation jobs on high-performance computing (HPC) systems. See
help("control.net)
.
BUG FIXES
- EpiModel's custom terms
absdiffby
andabsdiffnodemix
are now usable again (due to enabling symbol search). - The correct formula is now used in
sim_nets_t1
when initializing the network with the non-nested edges dissolution approximation approach innetest
. - References to
network
class internals have been removed fromnet.utils.R
to make the code function properly withnetworkLite
s. update_dissolution
now correctly handles duration 1 models.get_edgelists
andget_cumulative_edgelists
now throw informative errors when thenetwork
refers to non-existing networks.get_partners
andget_cumulative_edgelists_df
will throw errors as well as they call those functions internally.
OTHER
- The
updater.net
module was removed as an optional module but its functionalities are now the default behavior for all network models (built-in and custom). - The parameters
param.updater.list
andcontrol.updater.list
inparam.net
andcontrol.net
respectively were renamed.param.updater.list
and.control.updater.list
. The leading dot indicates that these are built-in EpiModel elements not to be confused with the user-defined ones. - Dissolution models using the
nodefactor
term have been deprecated. stergm
controls have been deprecated in favor oftergm
controls.- Formula-style simulations are used consistently for both
ergm
andtergm
simulation, requiring control arguments of classcontrol.simulate.formula
andcontrol.simulate.formula.tergm
. ndtv
is added to "Suggests" (again) andplot.transmat
now accepts thetransmissionTimeline
in thestyle
argument (again).- Systematic review and improvement of documentation across the package.
netest
andnetdx
now have default control arguments following R's default argument mechanism.- Simulation names are now attached to
netsim
object fields produced via thesave.other
mechanism. - Imputed durational corrections for onset-censored edges are now sampled from a geometric distribution rather than simply using the mean of that distribution.
Assets2
1 person reacted
EpiModel v2.2.1
Compare
Could not load tags
Nothing to show
{{ refName }}defaultLoading
NEW FEATURES
- Improved optional module
updater.net
allowing it to update the model controls as well as the parameters. See the vignette, "Working with model parameters." - General updates to the names and content of the included vignettes.
BUG FIXES
- Fix dissolution model statistics calculations for
netsim
in the case with a model with an "end horizon" (when the network is not resimulated at the end of the time series). - Fix duplicate printing issues across
print.netsim
,print.param.net
, andprint.control.net
. - Fix use of
all.equal
in unit tests as requested by CRAN. - Change defaults of newly introduced cumulative edgelist functionality to not store it (improves speed).
- Allow
set_attr
forposit_ids
to return unchangeddat
object.
OTHER
- We have changed the names of arguments from the function
get_partners
newly introduced in EpiModel v2.2.0:max.age
is renamed totruncate
for consistency with the other cumulative edgelist functions;only.active
is renamedonly.active.nodes
to clarify that this argument subsets bynodes and not bypartnerships.
Assets2
EpiModel v2.2.0
Compare
Could not load tags
Nothing to show
{{ refName }}defaultLoading
NEW FEATURES
- Developed a general approach to tracking and querying historical and contacts, called a cumulative edgelist. This may be used, for example, to query the recent but non-current contacts of newly infected nodes. See the vignette, "Working with network objects".
- A
create_dat_object
helper function was added to standardize the creation of the coredat
object withininitialize.net
. - The current timestep within
netsim
simulations is now stored in thedat
object and accessible withget_current_timestep
. This eliminates the need to explicitly passat
as a function argument, although that is still allowed. - Addition of the
get_param_set
function that extracts from anetsim
object the set of parameters used by each simulation. See the help page:help("get_param_set")
. - Developed a mechanism to store nodal attribute history over the course of a
netsim
simulation. See the vignette, "Working with attributes and summary statistics." - Developed an optional module to define prevalence statistics (also called "epi stats") as functions to be passed to the model as control settings before each
netsim
simulation. This allows users to avoid updating theprevalence.net
module. See the vignette, "Working with attributes and summary statistics." - Developed an optional module allowing the update of the model parameters over timesteps within
netsim
simulations (i.e., time-varying parameters). See the vignette, "Working with model parameters." - Improved the random parameterization programming interface to allow correlation between parameters in each simulation (e.g., the ability to pass in a multivariate parameter set for each simulation). See the vignette, "Working with model parameters."
BUG FIXES
- When calling
plot
on anetsim
object, the arguments in the ellipsis (...
) are now correctly passed to thebase::plot
call. - When trying to use the built-in
group
attribute,netsim
will now output a more explicit error if the values used are not only1
and2
. - Fixed the names of the target formation statistics in
netdx
whenedapprox == FALSE
that were causing the plotting functions to misbehave. - Simplification of the
set_transmat
function removing the assumption thatdat$stats$transmat
was to exist only ifat != 2
(thanks to@thednainus). - More consistent formation and dissolution statistics print between
netdx
andnetsim
. - Removed duplication in the printing of the parameters when a parameter was defined both as fixed and as random.
- When using custom
netsim
modules withtype == NULL
, some built-in modules no longer stop because they requiredtype
to be a string. - Fixed issue with
Error
,Warning
orMessage
innetsim
printing twice. - Fixed problem with unique ID counter not saved by
saveout.net
, resulting in the unique ids to start a 1 again when restarting a model from a previous simulation.
Other
- The new home for EpiModel on Github is:https://github.com/EpiModel/EpiModel. It was previously located on the
statnet
organization on Github.
EpiModel v2.1.0
Compare
Could not load tags
Nothing to show
{{ refName }}defaultLoading
NEW FEATURES
- Summary network statistics for
netsim
class objects (epidemic simulations) are now available whentergmLite
is used. Previously these network statistics were only available whentergmLite = FALSE
but updates to thenetworkLite
class intergmLite
made this possible. These network stats are output withsave.nwstats
andnwstats.formula
arguments incontrol.net
. - Developed a general storage and printing mechanism for the recently developed random parameterization interface. See the help page
help("param.net")
. - Cleaned up the handling of the initial network simulation in
initialize.net
, so that the user-facing code in that function is more readable, and the more complex code is put insim_nets_t1
.
BUG FIXES
- Addressed errors in handling cross-sectional network simulations embedded within a dynamic epidemic model (e.g., contacts that last the length of one time step, specified by
duration = 1
indissolution_coefs
).
Assets2
EpiModel v2.0.5
Compare
Could not load tags
Nothing to show
{{ refName }}defaultLoading
Minor updates for CRAN submission.
Assets2
EpiModel v2.0.4
Compare
Could not load tags
Nothing to show
{{ refName }}defaultLoading
NEW FEATURES
- Added new
update_params
function to add new parameters to an existing list of network parameters specified inparam.net
. This aids in workflows that distinguish fixed parameters versus varying parameters that may change across scenarios or simulations. - Added new general interface for random parameters in network models that allows randomly drawing a parameter value from a specified statistical distribution, where the distribution may either be a sampling of discrete values or a factory function for any of R's random statistical distribution functions. See help file for
generate_random_params
for examples. - Implemented a standardized approach with helper functions for setting core attributes (those nodal attributes which should be present in any workflows) in network models. This functionality is specified with
append_core_attr
function in the initialization and arrival modules in any extension models. This includes a standardized implementation of persistent, unique IDs as an attribute that remains constant for nodes even with open population models.
BUG FIXES
- With the use of a standardized core attribute framework that now correctly handles unique IDs in all models, now the transmission matrix objects output from any network model work consistently and correctly for both closed population and open population models.
- For DCM models with
dt < 1
, fixNA
output for any.flow
variables. - Reduce complexity of some unit tests that were stochastically generating errors due to ERGM MCMC estimation problems.
- Fix problem with temporally extended status variables in network models (i.e., tracking of disease status history across time steps) by simplifying the general approach that works across built-in and extension model types.
OTHER
- Reimplemented the handling of relational age diagnostics in
netdx
, with updated numerical summaries inprint.netdx
and visuals inplot.netdx
. Because relational ages are left-censored for any edges that existed at time zero, this led to a misleading diagnostic that ages were lower than the targeted durations. Imputation of a start time for those edges was added, with the option inplot.netdx
to visualize with imputed start times (default = TRUE) or not. - More consistent approach to trimming unneeded environmental data from ERGM objects implemented with
statnet.common::trim_env()
, used innetest
. - Reimplemented the
netest
"edges dissolution approximation" for efficient estimation of a temporal ERGM via a cross-sectional ERGM estimation with adjustment of formation model coefficients (seenetest
help page). This new approach further reduces bias in the approximation method, plus now allows for non-nested dissolution models (i.e., dissolution formula does not need to be a subset of the formation formula).