Function to run EpiModel network simulations with scenarios
Source:R/netsim_scenarios.R
netsim_scenarios.Rd
This function will run n_rep
replications of each scenarios in
the scenarios_list
. It runs them as multiple batches of up to
n_cores
simulations at a time. The simfiles are then stored in the
output_dir
folder and are named using the following pattern:
"sim__name_of_scenario__2.rds". Where the last number is the batch number
for this particular scenario. Each scenario is therefore run over
ceiling(n_rep / n_cores)
batches.
This function is meant to mimic the behavior of
step_tmpl_netsim_scenarios
in your local machine. It should fail
in a similar fashion an reciprocally, if it runs correctly locally, moving
to an HPC should not produce any issue.
Usage
netsim_scenarios(
path_to_x,
param,
init,
control,
scenarios_list,
n_rep,
n_cores,
output_dir,
libraries = NULL,
save_pattern = "simple"
)
Arguments
- path_to_x
Path to a Fitted network model object saved with
saveRDS
. (See thex
argument to theEpiModel::netsim
function)- param
Model parameters, as an object of class
param.net
.- init
Initial conditions, as an object of class
init.net
.- control
Control settings, as an object of class
control.net
.- scenarios_list
A list of scenarios to be run. Produced by the
EpiModel::create_scenario_list
function- n_rep
The number of replication to be run for each scenario.
- n_cores
The number of CPUs on which the simulations will be run.
- output_dir
The folder where the simulation files are to be stored.
- libraries
A character vector containing the name of the libraries required for the model to run. (e.g. EpiModelHIV or EpiModelCOVID)
- save_pattern
A character vector of what should be kept in the final
netsim
objects. It can contain the names of the elements as well as: "simple" (defautlt) to only keep "epi", "param" and "control"; "restart" to get the elements required to restart from such file; "all" to not trim the object at all.c("simple", "el.cuml")
is an example of a valid pattern to save "epi", "param", "control" and "el.cuml". Ifcontrol$raw.output
isTRUE
, this parameter has no effect and the full result is saved.
Checkpointing
This function takes care of editing .checkpoint.dir
to create unique sub
directories for each scenario. The EpiModel::control.net
way of setting up
checkpoints can be used transparently.