| ssa | R Documentation |
Main interface function to the implemented SSA methods. Runs a
single realization of a predefined system. For a detailed explanation
on how to set up your first SSA system, check the introduction
vignette: vignette("an_introduction", package = "GillespieSSA2").
If you're transitioning from GillespieSSA to GillespieSSA2,
check out the corresponding vignette:
vignette("converting_from_GillespieSSA", package = "GillespieSSA2").
ssa( initial_state, reactions, final_time, params = NULL, method = ssa_exact(), census_interval = 0, stop_on_neg_state = TRUE, max_walltime = Inf, log_propensity = FALSE, log_firings = FALSE, log_buffer = FALSE, verbose = FALSE, console_interval = 1, sim_name = NA_character_, return_simulator = FALSE )
initial_state |
|
reactions |
A list of reactions, see |
final_time |
|
params |
|
method |
|
census_interval |
|
stop_on_neg_state |
|
max_walltime |
|
log_propensity |
|
log_firings |
|
log_buffer |
|
verbose |
|
console_interval |
|
sim_name |
|
return_simulator |
Whether to return the simulator itself, instead of the output. |
Substantial improvements in speed and accuracy can be obtained by
adjusting the additional (and optional) ssa arguments. By default
ssa uses conservative parameters (o.a. ssa_exact()) which prioritise
computational accuracy over computational speed.
Approximate methods (ssa_etl() and ssa_btl()) are not fool proof!
Some tweaking might be required for a stochastic model to run appropriately.
Returns a list containing the output of the simulation:
out[["time"]]: [numeric] The simulation time at which a census was performed.
out[["state"]]: [numeric matrix] The number of individuals at those time points.
out[["propensity"]]: [numeric matrix] If log_propensity is TRUE, the propensity value of each reaction at each time point.
out[["firings"]]: [numeric matrix] If log_firings is TRUE, the number of firings between two time points.
out[["buffer"]]: [numeric matrix] If log_buffer is TRUE, the buffer values at each time point.
out[["stats"]]: [data frame] Various stats:
$method: The name of the SSA method used.
$sim_name: The name of the simulation, if provided.
$sim_time_exceeded: Whether the simulation stopped because the final simulation time was reached.
$all_zero_state: Whether an extinction has occurred.
$negative_state: Whether a negative state has occurred. If an SSA method other than ssa_etl() is used, this indicates a mistake in the provided reaction effects.
$all_zero_propensity: Whether the simulation stopped because all propensity values are zero.
$negative_propensity: Whether a negative propensity value has occurred. If so, there is likely a mistake in the provided reaction propensity functions.
$walltime_exceeded: Whether the simulation stopped because the maximum execution time has been reached.
$walltime_elapsed: The duration of the simulation.
$num_steps: The number of steps performed.
$dtime_mean: The mean time increment per step.
$dtime_sd: THe standard deviation of time increments.
$firings_mean: The mean number of firings per step.
$firings_sd: The standard deviation of the number of firings.
GillespieSSA2 for a high level explanation of the package
initial_state <- c(prey = 1000, predators = 1000)
params <- c(c1 = 10, c2 = 0.01, c3 = 10)
reactions <- list(
# propensity function effects name for reaction
reaction(~c1 * prey, c(prey = +1), "prey_up"),
reaction(~c2 * prey * predators, c(prey = -1, predators = +1), "predation"),
reaction(~c3 * predators, c(predators = -1), "pred_down")
)
out <-
ssa(
initial_state = initial_state,
reactions = reactions,
params = params,
method = ssa_exact(),
final_time = 5,
census_interval = .001,
verbose = TRUE
)
plot_ssa(out)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.