## -----------------------------------------------------------------------------
#| label: sirconn-setup
library(epiworldR)
model_sir <- ModelSIRCONN(
  name              = "COVID-19",
  n                 = 50000,
  prevalence        = 0.0001,
  contact_rate      = 2,
  transmission_rate = 0.5,
  recovery_rate     = 1 / 3
)

# Printing the model
model_sir


## -----------------------------------------------------------------------------
#| label: summary-method
summary(model_sir)


## -----------------------------------------------------------------------------
run(model_sir, ndays = 50, seed = 1912)
summary(model_sir)


## -----------------------------------------------------------------------------
#| label: getting-totals
#| echo: false
initials <- get_hist_total(model_sir)[1:3, ]$counts |> prettyNum(big.mark = ",")
finals   <- get_today_total(model_sir) |> prettyNum(big.mark = ",")
tmat     <- get_transition_probability(model_sir)
tmat     <- round(tmat, digits = 2)


## -----------------------------------------------------------------------------
#| label: generate-diagram
diagram <- draw_mermaid(model_sir)
print(diagram)


## -----------------------------------------------------------------------------
#| label: mermaid-diagram
plot(diagram)


## -----------------------------------------------------------------------------
#| label: showing-methods
methods(class = "epiworld_model")


## -----------------------------------------------------------------------------
plot(model_sir)


## -----------------------------------------------------------------------------
#| label: get-hist-total
head(get_hist_total(model_sir))


## -----------------------------------------------------------------------------
#| label: repnum
repnum <- get_reproductive_number(model_sir)
head(repnum)


## -----------------------------------------------------------------------------
x <- plot(repnum, type = "b")
subset(x, date == 10) # Reproductive number on day 10


## -----------------------------------------------------------------------------
plot_incidence(model_sir)


## -----------------------------------------------------------------------------
#| label: design-and-add
# Building the virus
flu <- virus(
  name = "Flu", prob_infecting = .3,
  prevalence = .0001, as_proportion = TRUE
)

# Adding the virus to the model
add_virus(model_sir, flu)


## -----------------------------------------------------------------------------
run(model_sir, ndays = 50, seed = 1912)
model_sir


## -----------------------------------------------------------------------------
#| fig-height: 10
repnum2 <- get_reproductive_number(model_sir)

op <- par(mfrow = c(2, 1))
plot(model_sir)
plot(repnum2, type = "b")
par(op)


## -----------------------------------------------------------------------------
# Removing the flu virus from the model
rm_virus(model_sir, 1)

vaccine <- tool(
  name = "Vaccine",
  prevalence = 0.5,
  as_proportion = TRUE,
  susceptibility_reduction = .9,
  transmission_reduction = .5,
  recovery_enhancer = .5,
  death_reduction = .9
)

add_tool(model_sir, vaccine)
run(model_sir, ndays = 50, seed = 1231)


## -----------------------------------------------------------------------------
#| label: curves-including-vaccine
#| fig-height: 10
repnum3 <- get_reproductive_number(model_sir)

op <- par(mfrow = c(2, 1))
plot_incidence(model_sir)
plot(repnum3, type = "b")
par(op)

