Nothing
## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## ----setup--------------------------------------------------------------------
library(superspreading)
library(ggplot2)
library(scales)
## ----calc-R-zika--------------------------------------------------------------
infect_duration <- exp(seq(log(0.01), log(10), length.out = 100))
prob_transmission <- exp(seq(log(0.01), log(1), length.out = 100))
params <- expand.grid(
infect_duration = infect_duration,
prob_transmission = prob_transmission
)
R <- t(apply(
params,
MARGIN = 1,
function(x) {
calc_network_R(
mean_num_contact = 14.1,
sd_num_contact = 69.6,
infect_duration = x[["infect_duration"]],
prob_transmission = x[["prob_transmission"]],
age_range = c(16, 74)
)
}
))
res <- cbind(params, R)
res <- reshape(
data = res,
varying = c("R", "R_net"),
v.names = "R",
direction = "long",
times = c("R", "R_net"),
timevar = "group"
)
## ----plot-zika-r, fig.cap="The reproduction number using the unadjusted and adjusted calculation -- calculated using `calc_network_R()` -- with mean duration of infection on the x-axis and transmission probability per sexual partner on the y-axis. The line shows the points that $R_0$ is equal to one. Both axes are plotted on a natural log scale. This plot is similar to Figure 1 from @yakobLowRiskSexuallytransmitted2016, but is plotted as a heatmap and without annotation.", fig.width = 8, fig.height = 5----
ggplot(data = res) +
geom_tile(
mapping = aes(
x = infect_duration,
y = prob_transmission,
fill = R
)
) +
geom_contour(
mapping = aes(
x = infect_duration,
y = prob_transmission,
z = R
),
breaks = 1, # Set the contour line at R = 1
colour = "black"
) +
scale_x_continuous(
name = "Mean duration of infectiousness",
trans = "log", breaks = breaks_log()
) +
scale_y_continuous(
name = "Zika virus transmission probability per sexual partners",
trans = "log", breaks = breaks_log()
) +
facet_wrap(
vars(group),
labeller = as_labeller(c(R = "R", R_net = "Adjusted R"))
) +
scale_fill_viridis_c(
trans = "log",
breaks = breaks_log(n = 8)(min(res$R):max(res$R)),
labels = label_comma()
) +
theme_bw()
## ----calc-r-mpox--------------------------------------------------------------
beta <- seq(0.001, 1, length.out = 1000)
duration_years <- 21 / 365
res <- lapply(
beta,
calc_network_R,
mean_num_contact = 10,
sd_num_contact = 50,
infect_duration = duration_years,
age_range = c(18, 44)
)
res <- do.call(rbind, res)
res <- as.data.frame(cbind(beta, res))
res <- reshape(
data = res,
varying = c("R", "R_net"),
v.names = "R",
direction = "long",
times = c("R", "R_net"),
timevar = "group"
)
## ----plot-mpox, fig.cap="The reproduction number using the unadjusted and adjusted calculation -- calculated using `calc_network_R()` -- with secondary attack rate on the x-axis and reproduction number ($R_0$) on the y-axis. This plot is similar to Figure 2A from @endoHeavytailedSexualContact2022.", fig.width = 8, fig.height = 5----
ggplot(data = res) +
geom_line(mapping = aes(x = beta, y = R, colour = group)) +
geom_hline(mapping = aes(yintercept = 1)) +
scale_y_continuous(
name = "Reproduction Number (R)",
trans = "log",
breaks = breaks_log(),
labels = label_comma()
) +
scale_x_continuous(name = "Secondary Attack Rate (SAR)") +
scale_colour_brewer(
name = "Reproduction Number",
labels = c("R", "Adjusted R"),
palette = "Set1"
) +
theme_bw() +
theme(legend.position = "top")
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.