diff --git a/instructors/00-practical-template.qmd b/instructors/00-practical-template.qmd index 23714d23..2e5a1f75 100644 --- a/instructors/00-practical-template.qmd +++ b/instructors/00-practical-template.qmd @@ -3,9 +3,11 @@ title: "Week 2: Name" format: html: # learners solutions embed-resources: true - docx: default # learners practical + output-file: "02-practical-solutions" + docx: # learners practical + output-file: "02-practical-guide" gfm: default # instructors -keep-md: true +keep-md: false format-links: false --- diff --git a/instructors/05-miscellanea-tutors.qmd b/instructors/05-miscellanea-tutors.qmd new file mode 100644 index 00000000..c6ca2545 --- /dev/null +++ b/instructors/05-miscellanea-tutors.qmd @@ -0,0 +1,488 @@ +--- +title: "Session 1: Epidemic Final Size & Herd Immunity Threshold" +format: + html: # learners solutions + embed-resources: true + output-file: "05-miscellanea-solutions" + docx: # learners practical + output-file: "05-miscellanea-guide" + gfm: default # instructors +keep-md: false +format-links: false +--- + +```{r, include = FALSE} +knitr::opts_chunk$set( + collapse = TRUE, + comment = "#>" +) +``` + +::: {.content-hidden when-format="html"} + + + + + + + +::: + +::: {.content-hidden when-format="docx"} + + + +This practical is based on the following tutorial episodes: + +- +- + +::: + +::: {.content-visible when-format="docx"} + +{{< include _welcome.qmd >}} + +::: + + +This practical session focuses on calculating the expected final size of an epidemic for: + +- homogeneous (well-mixed) populations; and +- heterogeneous populations with demographic differences in social contact patterns and susceptibility to infection. + +In addition, it also covers how to compute the herd immunity threshold for a homogeneous population. + + + +## Epidemic Final Size for a Homogeneous Population + +In this section, we calculate the epidemic final size for a homogeneous (well-mixed) population, which is characterized solely by the basic reproduction number, $( R_0 )$. + +The code chunk below uses the `finalsize()` function from the `{finalsize}` package to compute the expected final size when $( R_0 = 1.5 )$. + +```{r} +#| warning: false +#| eval: true + +# Load packages ----------------------------------------------------------- +library(finalsize) + +finalsize::final_size(1.5) +``` + + +### Interpretation + +The estimated epidemic final size is reported in the `p_infected` column, which represents the proportion of individuals expected to be infected over the course of the epidemic. + +For $R_0 = 1.5$, the estimated final size proportion is $0.5828132$, meaning that approximately $58\%$ of the population is expected to become infected by the end of the outbreak. + + +## Herd immunity threshold + +The herd immunity threshold (HIT) is given by +$$ HIT = 1- \frac{1}{R_0} $$ +In our example, $R_0 = 1.5$, hence the threshold is +$$ HIT= 1 -1/1.5 \sim 0.33.$$ + + +### Interpretation + +This means that approximately $33\%$ of the population (about one third) must be immune in order to prevent sustained transmission and contain the epidemic under the assumption of a homogeneous, well-mixed population. + + +## Activity 1: Calculate final size and herd immunity threshold + +**Goal:** + +Calculate the final size of the epidemic, and compute the corresponding herd immunity threshold. + +**Questions:** + +Within your room, write your answers to these questions: + + 1. What us the final size of the epidemic in a well-mixed community for the given $R_0$ value, and how do you interpret this result? + 2. What is the corresponding herd-immunity threshold, and how do you interpret this result? + +### Inputs + +| Room | $R_0$ value| +|------| ----- | +|1 | $1.8$ | +|2 | $3$ | +|3 | $0.9$ | + + + +::: {.content-visible when-format="docx"} + +**Steps:** + +- Open the file `05-miscellanea-activity-1.R` and complete all the lines marked with `#`, following the detailed steps provided within the R file. + +### Your Answers + +Room 1 + +| $R_0$| Final size | HIT| +|---|---|---| +| | | | + + + +Write your interpretation to the results above: + +``` + + + + + + + +``` +------------------------ + +Room 2 + +| $R_0$| Final size| HIT| +|---|---|---| +| | | | + + +Write your interpretations to the results above: + +``` + + + + + + + +``` + + +------------------------ + +Room 3 + +| $R_0$| Final size | Interpretation | HIT| +|---|---|---|----| +| | | | | + + +Write your answers to the questions above: + +``` + + + + + + + +``` + +::: + +## Epidemic Final Size for a Heterogeneous Population + +In this section, we calculate the epidemic final size for a heterogeneous population with demographic structure. Here, individuals are grouped by demographic characteristics (e.g., age, gender, or economic class), and may differ in: + +- population size and composition, + +- social contact patterns between and within groups, and + +- susceptibility to infection. + +These differences influence transmission dynamics and, consequently, the overall and group-specific epidemic final sizes. + +```{r} +#| warning: false +#| eval: true + +# Load packages ----------------------------------------------------------- +library(socialmixr) +library(epidemics) + +gam_survey <- socialmixr::get_survey("https://doi.org/10.5281/zenodo.13101862") +contact_data <- socialmixr::contact_matrix( + gam_survey, + countries = "Gambia", + age_limits = c(0, 10, 20, 40, 60), + symmetric = TRUE +) +# view the elements of the contact data list +# the contact matrix +contact_data$matrix + +#the demography data +contact_data$demography + +# get the contact matrix and demography data +contact_matrix <- t(contact_data$matrix) +demography_vector <- contact_data$demography$population +demography_data <- contact_data$demography + +``` + + +#### Normalization of the Contact Matrix + +The `{finalsize}` package requires a normalized contact matrix to ensure that the overall epidemic dynamics are consistent with the specified value of +$R_0$. This normalization is carried outt in two steps: + +1. **Scaling by the largest eigenvalue**: Divide the contact matrix by its largest eigenvalue (also called the dominant eigenvalue or spectral radius). By doing so, the resulting next-generation matrix has a dominant eigenvalue equal to $R_0$, ensuring that the transmission intensity across demographic groups matches the assumed reproduction number. + +2. **Adjusting for group size** divide each row of the contact matrix by the corresponding demography. This reflects the assumption that each individual in group {j} make contacts at random with individuals in group {i}, correctly weighting contacts according to population composition. + + +```{r} +# scale the contact matrix so the largest eigenvalue is 1.0 +contact_matrix <- contact_matrix / max(Re(eigen(contact_matrix)$values)) + +# divide each row of the contact matrix by the corresponding demography +# this reflects the assumption that each individual in group {j} make contacts +# at random with individuals in group {i} +contact_matrix <- contact_matrix / demography_vector + +n_demo_grps <- length(demography_vector) +``` + +#### Susceptibility matrix. + +Individuals within each demographic group can be further subdivided into smaller subgroups (e.g., vaccinated and un-vaccinated), with each subgroup having its own level of susceptibility to infection. + +Accordingly, the `{finalsize}` package also requires a **susceptibility matrix** as input. This matrix has: + +- rows equal to the number of demographic groups, and + +- columns equal to the number of susceptibility groups. + +- Each entry represents the proportion of individuals who belong to a given demographic group and susceptibility subgroup, capturing variation in susceptibility within and across demographic groups. + + +In our example let us assume we have a full uniform susceptibility, which be modeled as a matrix with values of 1.0, with as many rows as there are demographic groups. + +```{r} +suscep_matrix <- matrix( + data = 1.0, + nrow = n_demo_grps, + ncol = 1 +) +suscep_matrix +``` + +In addition, we must specify the proportion of each demographic group that falls into each susceptibility subgroup. This distribution is represented by the **demography–susceptibility** distribution matrix `(p_susc_matrix)`, which has: + + - rows equal to the number of demographic groups, + + - columns equal to the number of susceptibility groups, and + + - rows that each sum to 1. + +Each entry gives the proportion of individuals in a given demographic group who belong to a particular susceptibility subgroup. In our special case where there is only one susceptibility group, this matrix reduces to a single-column vector of ones: +```{r} +p_suscep_matrix <- matrix( + data = 1.0, + nrow = n_demo_grps, + ncol = 1 +) +p_suscep_matrix +``` + +#### Calculating Final size + +Putting together, now we can run the `final_size()` with $R_0 = 1.5$ + +```{r} +fs_result <- finalsize::final_size( + r0 = 1.5, + contact_matrix = contact_matrix, + demography_vector = demography_vector, + susceptibility = suscep_matrix, + p_susceptibility = p_suscep_matrix +) +fs_result +``` + +#### Visualize final sizes + +The model returns the proportion of individuals infected in each age (and susceptibility) group during the epidemic. To obtain the final number of individuals infected in each group, multiply the estimated final proportion infected by the total population size of that group. + +These results can then be visualized either as: + +- proportions of infected by group (to compare relative risk), or + +- total numbers of infected by group (to assess absolute burden). + + + +```{r} +library(ggplot2) +# order demographic groups as factors +fs_result$demo_grp <- factor( + fs_result$demo_grp, + levels = demography_data$age.group) + +# prepare demography data +demography_data <- contact_data$demography + +fs_result <- merge( + fs_result, + demography_data, + by.x = "demo_grp", + by.y = "age.group" +) + +# reset age group order +fs_result$demo_grp <- factor( + fs_result$demo_grp, + levels = contact_data$demography$age.group +) + +# multiply counts with proportion infected +fs_result$n_infected <- fs_result$p_infected*fs_result$population + + +ggplot(fs_result) + + geom_col( + aes( + x = demo_grp, y = n_infected + ), + fill = "grey", col = "black" + ) + + expand_limits( + x = c(0.5, nrow(fs_result) + 0.5) + ) + + scale_y_continuous( + labels = scales::comma_format( + scale = 1e-6, suffix = "M" + ) + ) + + theme_classic() + + coord_cartesian( + expand = FALSE + ) + + labs( + x = "Age group", + y = "Number infected (millions)" + ) +``` + + + +## Activity 2: Final Size for Heterogeneous Population + +**Goal:** + +Calculate and visualize the final size of an epidemic for a population with structure under given assumptions + +**Steps:** + +- Open the file `05-miscellanea-activity-2.R` and complete all the lines marked with `#`, following the detailed steps provided within the R file. +- First, extract contact data, and demography data from **polymod** survey. +- Second, transpose and normalize contact matrix. +- Third, create susceptibility, and demography-susceptibility distribution matrices +- Fourth, calculate final sizes +- Fifth, visualize the proportion infected in each demographic group. +- Sixth, visualize the total number infected in each demographic group. + + +- Paste your outputs. + +### Inputs + +Use assumptions assigned to your room. + +| Room | $R_0$| Country |Age groups | #of susceptibility groups | susceptibility level| +|---|---|---|---|---|---| +| 1 | $1.8$ | Italy |{0, 30, 50, 80}| 1 | 1| +| 2 | $3.0$ | Germany | {0, 20, 40, 60} | 1| 1 | +| 3 | $0.9$ | Netherlands | {0, 30, 50, 70} | 1| 1| + +::: {.content-visible when-format="docx"} + +### Your Answers + +Room 1 + +| Data | Paste screenshot below | +|---|---| +| proportion infected in each group | | +| total number of infected in each group| | + + + +------------------------ + +Room 2 + +| Data | Paste screenshot below | +|---|---| +| proportion infected in each group | | +| total number of infected in each group| | + + +------------------------ + +Room 3 + +| Data | Paste screenshot below | +|---|---| +| proportion infected in each group | | +| total number of infected in each group| | + + +::: + + +::: {.content-visible unless-format="docx"} + +# Continue your learning path + + + +Explore more about epidemic final size and herd immunity threshold + +- + +- Andreasen, Viggo. 2011. +“The Final Size of an Epidemic and Its Relation to the Basic Reproduction Number.” +Bulletin of Mathematical Biology 73 (10): 2305–2321. + +https://doi.org/10.1007/s11538-010-9623-3 +. + +- Bidari, Subekshya, Xinying Chen, Daniel Peters, Dylanger Pittman, and Péter L. Simon. 2016. +“Solvability of Implicit Final Size Equations for SIR Epidemic Models.” +Mathematical Biosciences 282 (December): 181–190. + +https://doi.org/10.1016/j.mbs.2016.10.012 +. + +- Kucharski, Adam J., Kin O. Kwok, Vivian W. I. Wei, Benjamin J. Cowling, +Jonathan M. Read, Justin Lessler, Derek A. Cummings, and Steven Riley. 2014. +“The Contribution of Social Behaviour to the Transmission of Influenza A in a Human Population.” +PLoS Pathogens 10 (6): e1004206. + +https://doi.org/10.1371/journal.ppat.1004206 +. + +- Miller, Joel C. 2012. +“A Note on the Derivation of Epidemic Final Sizes.” +Bulletin of Mathematical Biology 74 (9): 2125–2141. + +https://doi.org/10.1007/s11538-012-9749-6 +. + +- Anderson, Roy M., and Robert M. May. 1991. +Infectious Diseases of Humans: Dynamics and Control. +Oxford: Oxford University Press. + +::: + +# end + diff --git a/instructors/data/05-miscellanea-activity-1.R b/instructors/data/05-miscellanea-activity-1.R new file mode 100644 index 00000000..5acd0ecb --- /dev/null +++ b/instructors/data/05-miscellanea-activity-1.R @@ -0,0 +1,33 @@ +# nolint start + +# Practical 1 -miscellaneous on final size and herd immunity +# Activity 1 + +room_number <- # replace with 1/2/3/ + + # Load packages ---------------------------------------------------------- +library(finalsize) + + +# Declare the value of the given R_0 --------------------------------------- +r0 <- # + +r0 + + +# Calculate the final size --------------------------------------------- + + +final_size_value <- finalsize::# + +final_size_vale + + +# Compute the herd immunity threshold --------------------------------------- + +# What time span unit best describes the 'delay' from 'onset' to 'death'? +hit_value <- # + +hit_value + +# nolint end diff --git a/instructors/data/05-miscellanea-activity-2.R b/instructors/data/05-miscellanea-activity-2.R new file mode 100644 index 00000000..8b719d9e --- /dev/null +++ b/instructors/data/05-miscellanea-activity-2.R @@ -0,0 +1,141 @@ +# nolint start + +# Practical 2 -miscellaneous on final size of heterogeneous population +# Activity 1 + +room_number <- # replace with 1/2/3/ + + # Load packages ---------------------------------------------------------- +library(finalsize) +library(tidyverse) +library(socialmixr) + +# Declare the value of the given R_0 --------------------------------------- +r0 <- # + +# load the polymod survey ---------------------------------------- +polymod <- socialmixr::polymod + +# Extract data for the country and age groups assigned to your room-------- + +# get your country polymod data +contact_data <- socialmixr::contact_matrix( + polymod, + countries = #, + age.limits = #, + symmetric = TRUE +) + +# view the elements of the contact data list +# the contact matrix +contact_data$matrix + +# the demography data +contact_data$demography + +# get the contact matrix and demography data +contact_matrix <- # +demography_vector <- # +demography_data <- # + + +# Transpose and normalize contact matrix--------------------------------------- + +# scale the contact matrix so the largest eigenvalue is 1.0 +# this is to ensure that the overall epidemic dynamics correctly reflect +# the assumed value of R0 +contact_matrix <- # + +# divide each row of the contact matrix by the corresponding demography +# this reflects the assumption that each individual in group {j} make contacts +# at random with individuals in group {i} +contact_matrix <- # + +# Create susceptibility, and demography-susceptibility distribution matrices--- +n_demo_grps <- # + +# Number of susceptible groups +n_susc_groups <- # +# susceptibility level +susc_guess <- # + +# Declare susceptibility matrix + + susc_uniform <- matrix( + data = #, + nrow = #, + ncol = # + ) + +# Declare demography-susceptibility distribution matrix +p_susc_uniform <- matrix( + data = #, + nrow = #, + ncol = # +) + +# Calculate the final size ----------------------------------------------------- + +final_size_data <- final_size( + r0 = #, + contact_matrix = #, + demography_vector = #, + susceptibility = #, + p_susceptibility = # +) + +# View the output data frame +final_size_data + +# Visualize the proportion infected in each demographic group------------------- + +# order demographic groups as factors +final_size_data$demo_grp <- factor( + final_size_data$demo_grp, + levels = demography_data$age.group +) +# plot data +ggplot(final_size_data) + + geom_col( + aes( + demo_grp, p_infected + ), + colour = "black", fill = "grey" + ) + + scale_y_continuous( + labels = scales::percent, + limits = c(0, 1) + ) + + expand_limits( + x = c(0.5, nrow(final_size_data) + 0.5) + ) + + theme_classic() + + coord_cartesian( + expand = FALSE + ) + + labs( + x = "Age group", + y = "% Infected" + ) +# Visualize the total number infected in each demographic group---------------- +# prepare demography data +demography_data <- contact_data$demography + +# merge final size counts with demography vector +final_size_data <- merge( + final_size_data, + demography_data, + by.x = "demo_grp", + by.y = "age.group" +) + +# reset age group order +final_size_data$demo_grp <- factor( + final_size_data$demo_grp, + levels = contact_data$demography$age.group +) + +# multiply counts with proportion infected +final_size_data$n_infected <- final_size_data$p_infected * + final_size_data$population +# nolint end diff --git a/instructors/files/05-miscellanea-tutors.md b/instructors/files/05-miscellanea-tutors.md new file mode 100644 index 00000000..1b48d81f --- /dev/null +++ b/instructors/files/05-miscellanea-tutors.md @@ -0,0 +1,412 @@ +# Session 1: Epidemic Final Size & Herd Immunity Threshold + + + + + + + + + + + + +This practical is based on the following tutorial episodes: + +- +- + +This practical session focuses on calculating the expected final size of +an epidemic for: + +- homogeneous (well-mixed) populations; and +- heterogeneous populations with demographic differences in social + contact patterns and susceptibility to infection. + +In addition, it also covers how to compute the herd immunity threshold +for a homogeneous population. + +## Epidemic Final Size for a Homogeneous Population + +In this section, we calculate the epidemic final size for a homogeneous +(well-mixed) population, which is characterized solely by the basic +reproduction number, $( R_0 )$. + +The code chunk below uses the `finalsize()` function from the +`{finalsize}` package to compute the expected final size when +$( R_0 = 1.5 )$. + +``` r +# Load packages ----------------------------------------------------------- +library(finalsize) + +finalsize::final_size(1.5) +#> demo_grp susc_grp susceptibility p_infected +#> 1 demo_grp_1 susc_grp_1 1 0.5828132 +``` + +### Interpretation + +The estimated epidemic final size is reported in the `p_infected` +column, which represents the proportion of individuals expected to be +infected over the course of the epidemic. + +For $R_0 = 1.5$, the estimated final size proportion is $0.5828132$, +meaning that approximately $58\%$ of the population is expected to +become infected by the end of the outbreak. + +## Herd immunity threshold + +The herd immunity threshold (HIT) is given by +$$ HIT = 1- \frac{1}{R_0} $$ In our example, $R_0 = 1.5$, hence the +threshold is $$ HIT= 1 -1/1.5 \sim 0.33.$$ + +### Interpretation + +This means that approximately $33\%$ of the population (about one third) +must be immune in order to prevent sustained transmission and contain +the epidemic under the assumption of a homogeneous, well-mixed +population. + +## Activity 1: Calculate final size and herd immunity threshold + +**Goal:** + +Calculate the final size of the epidemic, and compute the corresponding +herd immunity threshold. + +**Questions:** + +Within your room, write your answers to these questions: + +1. What us the final size of the epidemic in a well-mixed community for + the given $R_0$ value, and how do you interpret this result? +2. What is the corresponding herd-immunity threshold, and how do you + interpret this result? + +### Inputs + +| Room | $R_0$ value | +|------|-------------| +| 1 | $1.8$ | +| 2 | $3$ | +| 3 | $0.9$ | + +## Epidemic Final Size for a Heterogeneous Population + +In this section, we calculate the epidemic final size for a +heterogeneous population with demographic structure. Here, individuals +are grouped by demographic characteristics (e.g., age, gender, or +economic class), and may differ in: + +- population size and composition, + +- social contact patterns between and within groups, and + +- susceptibility to infection. + +These differences influence transmission dynamics and, consequently, the +overall and group-specific epidemic final sizes. + +``` r +# Load packages ----------------------------------------------------------- +library(socialmixr) +library(epidemics) + +gam_survey <- socialmixr::get_survey("https://doi.org/10.5281/zenodo.13101862") +contact_data <- socialmixr::contact_matrix( + gam_survey, + countries = "Gambia", + age_limits = c(0, 10, 20, 40, 60), + symmetric = TRUE +) +# view the elements of the contact data list +# the contact matrix +contact_data$matrix +#> contact.age.group +#> age.group [0,10) [10,20) [20,40) [40,60) 60+ +#> [0,10) 5.582535 3.166356 2.966261 1.129670 0.4122642 +#> [10,20) 4.408645 9.447761 4.023993 1.316608 0.3930872 +#> [20,40) 3.441827 3.353448 4.630573 1.716340 0.5063502 +#> [40,60) 3.246096 2.717197 4.250437 2.505618 0.7141843 +#> 60+ 3.607269 2.470281 3.818337 2.174720 0.7358491 + +#the demography data +contact_data$demography +#> age.group population proportion year +#> +#> 1: [0,10) 650021 0.32869451 2015 +#> 2: [10,20) 466855 0.23607341 2015 +#> 3: [20,40) 560206 0.28327798 2015 +#> 4: [40,60) 226213 0.11438857 2015 +#> 5: 60+ 74289 0.03756553 2015 + +# get the contact matrix and demography data +contact_matrix <- t(contact_data$matrix) +demography_vector <- contact_data$demography$population +demography_data <- contact_data$demography +``` + +#### Normalization of the Contact Matrix + +The `{finalsize}` package requires a normalized contact matrix to ensure +that the overall epidemic dynamics are consistent with the specified +value of $R_0$. This normalization is carried outt in two steps: + +1. **Scaling by the largest eigenvalue**: Divide the contact matrix by + its largest eigenvalue (also called the dominant eigenvalue or + spectral radius). By doing so, the resulting next-generation matrix + has a dominant eigenvalue equal to $R_0$, ensuring that the + transmission intensity across demographic groups matches the assumed + reproduction number. + +2. **Adjusting for group size** divide each row of the contact matrix + by the corresponding demography. This reflects the assumption that + each individual in group {j} make contacts at random with + individuals in group {i}, correctly weighting contacts according to + population composition. + +``` r +# scale the contact matrix so the largest eigenvalue is 1.0 +contact_matrix <- contact_matrix / max(Re(eigen(contact_matrix)$values)) + +# divide each row of the contact matrix by the corresponding demography +# this reflects the assumption that each individual in group {j} make contacts +# at random with individuals in group {i} +contact_matrix <- contact_matrix / demography_vector + +n_demo_grps <- length(demography_vector) +``` + +#### Susceptibility matrix. + +Individuals within each demographic group can be further subdivided into +smaller subgroups (e.g., vaccinated and un-vaccinated), with each +subgroup having its own level of susceptibility to infection. + +Accordingly, the `{finalsize}` package also requires a **susceptibility +matrix** as input. This matrix has: + +- rows equal to the number of demographic groups, and + +- columns equal to the number of susceptibility groups. + +- Each entry represents the proportion of individuals who belong to a + given demographic group and susceptibility subgroup, capturing + variation in susceptibility within and across demographic groups. + +In our example let us assume we have a full uniform susceptibility, +which be modeled as a matrix with values of 1.0, with as many rows as +there are demographic groups. + +``` r +suscep_matrix <- matrix( + data = 1.0, + nrow = n_demo_grps, + ncol = 1 +) +suscep_matrix +#> [,1] +#> [1,] 1 +#> [2,] 1 +#> [3,] 1 +#> [4,] 1 +#> [5,] 1 +``` + +In addition, we must specify the proportion of each demographic group +that falls into each susceptibility subgroup. This distribution is +represented by the **demography–susceptibility** distribution matrix +`(p_susc_matrix)`, which has: + +- rows equal to the number of demographic groups, + +- columns equal to the number of susceptibility groups, and + +- rows that each sum to 1. + +Each entry gives the proportion of individuals in a given demographic +group who belong to a particular susceptibility subgroup. In our special +case where there is only one susceptibility group, this matrix reduces +to a single-column vector of ones: + +``` r +p_suscep_matrix <- matrix( + data = 1.0, + nrow = n_demo_grps, + ncol = 1 +) +p_suscep_matrix +#> [,1] +#> [1,] 1 +#> [2,] 1 +#> [3,] 1 +#> [4,] 1 +#> [5,] 1 +``` + +#### Calculating Final size + +Putting together, now we can run the `final_size()` with $R_0 = 1.5$ + +``` r +fs_result <- finalsize::final_size( + r0 = 1.5, + contact_matrix = contact_matrix, + demography_vector = demography_vector, + susceptibility = suscep_matrix, + p_susceptibility = p_suscep_matrix +) +fs_result +#> demo_grp susc_grp susceptibility p_infected +#> 1 [0,10) susc_grp_1 1 0.5023614 +#> 2 [10,20) susc_grp_1 1 0.6699119 +#> 3 [20,40) susc_grp_1 1 0.5140867 +#> 4 [40,60) susc_grp_1 1 0.5035685 +#> 5 60+ susc_grp_1 1 0.4858792 +``` + +#### Visualize final sizes + +The model returns the proportion of individuals infected in each age +(and susceptibility) group during the epidemic. To obtain the final +number of individuals infected in each group, multiply the estimated +final proportion infected by the total population size of that group. + +These results can then be visualized either as: + +- proportions of infected by group (to compare relative risk), or + +- total numbers of infected by group (to assess absolute burden). + +``` r +library(ggplot2) +# order demographic groups as factors +fs_result$demo_grp <- factor( + fs_result$demo_grp, + levels = demography_data$age.group) + +# prepare demography data +demography_data <- contact_data$demography + +fs_result <- merge( + fs_result, + demography_data, + by.x = "demo_grp", + by.y = "age.group" +) + +# reset age group order +fs_result$demo_grp <- factor( + fs_result$demo_grp, + levels = contact_data$demography$age.group +) + +# multiply counts with proportion infected +fs_result$n_infected <- fs_result$p_infected*fs_result$population + + +ggplot(fs_result) + + geom_col( + aes( + x = demo_grp, y = n_infected + ), + fill = "grey", col = "black" + ) + + expand_limits( + x = c(0.5, nrow(fs_result) + 0.5) + ) + + scale_y_continuous( + labels = scales::comma_format( + scale = 1e-6, suffix = "M" + ) + ) + + theme_classic() + + coord_cartesian( + expand = FALSE + ) + + labs( + x = "Age group", + y = "Number infected (millions)" + ) +``` + +![](05-miscellanea-tutors_files/figure-commonmark/unnamed-chunk-8-1.png) + +## Activity 2: Final Size for Heterogeneous Population + +**Goal:** + +Calculate and visualize the final size of an epidemic for a population +with structure under given assumptions + +**Steps:** + +- Open the file `05-miscellanea-activity-2.R` and complete all the lines + marked with `#`, following the detailed steps provided + within the R file. + +- First, extract contact data, and demography data from **polymod** + survey. + +- Second, transpose and normalize contact matrix. + +- Third, create susceptibility, and demography-susceptibility + distribution matrices + +- Fourth, calculate final sizes + +- Fifth, visualize the proportion infected in each demographic group. + +- Sixth, visualize the total number infected in each demographic group. + +- Paste your outputs. + +### Inputs + +Use assumptions assigned to your room. + +| Room | $R_0$ | Country | Age groups | \#of susceptibility groups | susceptibility level | +|----|----|----|----|----|----| +| 1 | $1.8$ | Italy | {0, 30, 50, 80} | 1 | 1 | +| 2 | $3.0$ | Germany | {0, 20, 40, 60} | 1 | 1 | +| 3 | $0.9$ | Netherlands | {0, 30, 50, 70} | 1 | 1 | + +# Continue your learning path + + + +Explore more about epidemic final size and herd immunity threshold + +- + +- Andreasen, Viggo. 2011. “The Final Size of an Epidemic and Its + Relation to the Basic Reproduction Number.” Bulletin of + Mathematical Biology 73 (10): 2305–2321. + + https://doi.org/10.1007/s11538-010-9623-3 . + +- Bidari, Subekshya, Xinying Chen, Daniel Peters, Dylanger Pittman, and + Péter L. Simon. 2016. “Solvability of Implicit Final Size Equations + for SIR Epidemic Models.” Mathematical Biosciences 282 + (December): 181–190. + + https://doi.org/10.1016/j.mbs.2016.10.012 . + +- Kucharski, Adam J., Kin O. Kwok, Vivian W. I. Wei, Benjamin J. + Cowling, Jonathan M. Read, Justin Lessler, Derek A. Cummings, and + Steven Riley. 2014. “The Contribution of Social Behaviour to the + Transmission of Influenza A in a Human Population.” PLoS + Pathogens 10 (6): e1004206. + + https://doi.org/10.1371/journal.ppat.1004206 . + +- Miller, Joel C. 2012. “A Note on the Derivation of Epidemic Final + Sizes.” Bulletin of Mathematical Biology 74 (9): 2125–2141. + + https://doi.org/10.1007/s11538-012-9749-6 . + +- Anderson, Roy M., and Robert M. May. 1991. Infectious Diseases of + Humans: Dynamics and Control. Oxford: Oxford University Press. + +# end diff --git a/renv/profiles/lesson-requirements/renv.lock b/renv/profiles/lesson-requirements/renv.lock index 46403a67..8adbbac4 100644 --- a/renv/profiles/lesson-requirements/renv.lock +++ b/renv/profiles/lesson-requirements/renv.lock @@ -1,14 +1,10 @@ { "R": { - "Version": "4.5.2", + "Version": "4.3.3", "Repositories": [ { "Name": "CRAN", - "URL": "https://cran.rstudio.com" - }, - { - "Name": "RSPM", - "URL": "https://packagemanager.posit.co/cran/latest" + "URL": "https://cloud.r-project.org" } ] }, @@ -81,12 +77,12 @@ }, "EpiNow2": { "Package": "EpiNow2", - "Version": "1.7.1", + "Version": "1.8.0", "Source": "Repository", "Type": "Package", - "Title": "Estimate Real-Time Case Counts and Time-Varying Epidemiological Parameters", - "Authors@R": "c(person(given = \"Sam\", family = \"Abbott\", role = c(\"aut\"), email = \"sam.abbott@lshtm.ac.uk\", comment = c(ORCID = \"0000-0001-8057-8037\")), person(given = \"Joel\", family = \"Hellewell\", role = \"aut\", email = \"joel.hellewell@lshtm.ac.uk\", comment = c(ORCID = \"0000-0003-2683-0849\")), person(given = \"Katharine\", family = \"Sherratt\", role = \"aut\", email = \"katharine.sherratt@lshtm.ac.uk\"), person(given = \"Katelyn\", family = \"Gostic\", role = \"aut\", email = \"kgostic@uchicago.edu\"), person(given = \"Joe\", family = \"Hickson\", role = \"aut\", email = \"joseph.hickson@metoffice.gov.uk\"), person(given = \"Hamada S.\", family = \"Badr\", role = \"aut\", email = \"badr@jhu.edu\", comment = c(ORCID = \"0000-0002-9808-2344\")), person(given = \"Michael\", family = \"DeWitt\", role = \"aut\", email = \"me.dewitt.jr@gmail.com\", comment = c(ORCID = \"0000-0001-8940-1967\")), person(given = \"James M.\", family = \"Azam\", role = \"aut\", email = \"james.azam@lshtm.ac.uk\", comment = c(ORCID = \"0000-0001-5782-7330\")), person(given = \"Robin\", family = \"Thompson\", role = \"ctb\", email = \"robin.thompson@lshtm.ac.uk\"), person(given = \"Sophie\", family = \"Meakin\", role = \"ctb\", email = \"sophie.meaking@lshtm.ac.uk\"), person(given = \"James\", family = \"Munday\", role = \"ctb\", email = \"james.munday@lshtm.ac.uk\"), person(given = \"Nikos\", family = \"Bosse\", role = \"ctb\"), person(given = \"Paul\", family = \"Mee\", role = \"ctb\", email = \"paul.mee@lshtm.ac.uk\"), person(given = \"Peter\", family = \"Ellis\", role = \"ctb\", email = \"peter.ellis2013nz@gmail.com\"), person(given = \"Pietro\", family = \"Monticone\", role = \"ctb\", email = \"pietro.monticone@edu.unito.it\"), person(given = \"Lloyd\", family = \"Chapman\", role = \"ctb\", email = \"lloyd.chapman1@lshtm.ac.uk \"), person(given = \"Andrew\", family = \"Johnson\", role = \"ctb\", email = \"andrew.johnson@arjohnsonau.com\"), person(given = \"Kaitlyn\", family = \"Johnson\", role = \"ctb\", email = \"johnsonkaitlyne9@gmail.com\", comment = c(ORCID = \"0000-0001-8011-0012\")), person(given = \"EpiForecasts\", role = \"aut\"), person(given = \"Sebastian\", family = \"Funk\", role = c(\"aut\", \"cre\"), email = \"sebastian.funk@lshtm.ac.uk\", comment = c(ORCID = \"0000-0002-2842-3406\")) )", - "Description": "Estimates the time-varying reproduction number, rate of spread, and doubling time using a range of open-source tools (Abbott et al. (2020) ), and current best practices (Gostic et al. (2020) ). It aims to help users avoid some of the limitations of naive implementations in a framework that is informed by community feedback and is actively supported.", + "Title": "Estimate and Forecast Real-Time Infection Dynamics", + "Authors@R": "c(person(given = \"Sam\", family = \"Abbott\", role = c(\"aut\"), email = \"sam.abbott@lshtm.ac.uk\", comment = c(ORCID = \"0000-0001-8057-8037\")), person(given = \"Joel\", family = \"Hellewell\", role = \"aut\", email = \"joel.hellewell@lshtm.ac.uk\", comment = c(ORCID = \"0000-0003-2683-0849\")), person(given = \"Katharine\", family = \"Sherratt\", role = \"aut\", email = \"katharine.sherratt@lshtm.ac.uk\"), person(given = \"Katelyn\", family = \"Gostic\", role = \"aut\", email = \"kgostic@uchicago.edu\"), person(given = \"Joe\", family = \"Hickson\", role = \"aut\", email = \"joseph.hickson@metoffice.gov.uk\"), person(given = \"Hamada S.\", family = \"Badr\", role = \"aut\", email = \"badr@jhu.edu\", comment = c(ORCID = \"0000-0002-9808-2344\")), person(given = \"Michael\", family = \"DeWitt\", role = \"aut\", email = \"me.dewitt.jr@gmail.com\", comment = c(ORCID = \"0000-0001-8940-1967\")), person(given = \"James M.\", family = \"Azam\", role = \"aut\", email = \"james.azam@lshtm.ac.uk\", comment = c(ORCID = \"0000-0001-5782-7330\")), person(given = \"Adrian\", family = \"Lison\", role = \"aut\", email = \"adrian.lison@bsse.ethz.ch\", comment = c(ORCID = \"0000-0002-6822-8437\")), person(given = \"Robin\", family = \"Thompson\", role = \"ctb\", email = \"robin.thompson@lshtm.ac.uk\"), person(given = \"Sophie\", family = \"Meakin\", role = \"ctb\", email = \"sophie.meakin@lshtm.ac.uk\"), person(given = \"James\", family = \"Munday\", role = \"ctb\", email = \"james.munday@lshtm.ac.uk\"), person(given = \"Nikos\", family = \"Bosse\", role = \"ctb\"), person(given = \"Paul\", family = \"Mee\", role = \"ctb\", email = \"paul.mee@lshtm.ac.uk\"), person(given = \"Peter\", family = \"Ellis\", role = \"ctb\", email = \"peter.ellis2013nz@gmail.com\"), person(given = \"Pietro\", family = \"Monticone\", role = \"ctb\", email = \"pietro.monticone@edu.unito.it\"), person(given = \"Lloyd\", family = \"Chapman\", role = \"ctb\", email = \"lloyd.chapman1@lshtm.ac.uk\"), person(given = \"Andrew\", family = \"Johnson\", role = \"ctb\", email = \"andrew.johnson@arjohnsonau.com\"), person(given = \"Kaitlyn\", family = \"Johnson\", role = \"ctb\", email = \"johnsonkaitlyne9@gmail.com\", comment = c(ORCID = \"0000-0001-8011-0012\")), person(given = \"Adam\", family = \"Howes\", role = \"ctb\", email = \"adamthowes@gmail.com\", comment = c(ORCID = \"0000-0003-2386-4031\")), person(given = \"Sebastian\", family = \"Funk\", role = c(\"aut\", \"cre\"), email = \"sebastian.funk@lshtm.ac.uk\", comment = c(ORCID = \"0000-0002-2842-3406\")) )", + "Description": "Estimates the time-varying reproduction number, rate of spread, and doubling time using a renewal equation approach combined with Bayesian inference via Stan. Supports Gaussian process and random walk priors for modelling changes in transmission over time. Accounts for delays between infection and observation (incubation period, reporting delays), right-truncation in recent data, day-of-week effects, and observation overdispersion. Can estimate relationships between primary and secondary outcomes (e.g., cases to hospitalisations or deaths) and forecast both. Runs across multiple regions in parallel. Based on Abbott et al. (2020) and Gostic et al. (2020) .", "License": "MIT + file LICENSE", "URL": "https://epiforecasts.io/EpiNow2/, https://epiforecasts.io/EpiNow2/dev/, https://github.com/epiforecasts/EpiNow2", "BugReports": "https://github.com/epiforecasts/EpiNow2/issues", @@ -96,7 +92,7 @@ "Imports": [ "checkmate", "cli", - "data.table", + "data.table (>= 1.15.0)", "futile.logger (>= 1.4)", "ggplot2", "lifecycle", @@ -104,6 +100,7 @@ "methods", "patchwork", "posterior", + "primarycensored", "purrr", "R.utils (>= 2.0.0)", "Rcpp (>= 0.12.0)", @@ -118,17 +115,15 @@ ], "Suggests": [ "cmdstanr", - "covr", "future", "future.apply", - "here", "knitr", - "precommit", + "parallelly", "progressr", "rmarkdown", + "scoringutils", "spelling", "testthat", - "usethis", "withr" ], "LinkingTo": [ @@ -139,29 +134,30 @@ "rstan (>= 2.26.0)", "StanHeaders (>= 2.26.0)" ], - "Additional_repositories": "https://stan-dev.r-universe.dev", + "Additional_repositories": "https://production.r-multiverse.org/2025-12-15", "Biarch": "true", "Config/testthat/edition": "3", + "Config/Needs/dev": "covr, here, hexSticker, lintr, magick, pkgdown, precommit, styler, usethis", "Encoding": "UTF-8", "Language": "en-GB", "LazyData": "true", - "RoxygenNote": "7.3.2.9000", - "NeedsCompilation": "yes", + "RoxygenNote": "7.3.3", "SystemRequirements": "GNU make C++17", "VignetteBuilder": "knitr", - "Author": "Sam Abbott [aut] (), Joel Hellewell [aut] (), Katharine Sherratt [aut], Katelyn Gostic [aut], Joe Hickson [aut], Hamada S. Badr [aut] (), Michael DeWitt [aut] (), James M. Azam [aut] (), Robin Thompson [ctb], Sophie Meakin [ctb], James Munday [ctb], Nikos Bosse [ctb], Paul Mee [ctb], Peter Ellis [ctb], Pietro Monticone [ctb], Lloyd Chapman [ctb], Andrew Johnson [ctb], Kaitlyn Johnson [ctb] (), EpiForecasts [aut], Sebastian Funk [aut, cre] ()", + "NeedsCompilation": "yes", + "Author": "Sam Abbott [aut] (ORCID: ), Joel Hellewell [aut] (ORCID: ), Katharine Sherratt [aut], Katelyn Gostic [aut], Joe Hickson [aut], Hamada S. Badr [aut] (ORCID: ), Michael DeWitt [aut] (ORCID: ), James M. Azam [aut] (ORCID: ), Adrian Lison [aut] (ORCID: ), Robin Thompson [ctb], Sophie Meakin [ctb], James Munday [ctb], Nikos Bosse [ctb], Paul Mee [ctb], Peter Ellis [ctb], Pietro Monticone [ctb], Lloyd Chapman [ctb], Andrew Johnson [ctb], Kaitlyn Johnson [ctb] (ORCID: ), Adam Howes [ctb] (ORCID: ), Sebastian Funk [aut, cre] (ORCID: )", "Maintainer": "Sebastian Funk ", "Repository": "CRAN" }, "MASS": { "Package": "MASS", - "Version": "7.3-65", + "Version": "7.3-60.0.1", "Source": "Repository", "Priority": "recommended", - "Date": "2025-02-19", - "Revision": "$Rev: 3681 $", + "Date": "2024-01-12", + "Revision": "$Rev: 3621 $", "Depends": [ - "R (>= 4.4.0)", + "R (>= 4.0)", "grDevices", "graphics", "stats", @@ -176,7 +172,7 @@ "nnet", "survival" ], - "Authors@R": "c(person(\"Brian\", \"Ripley\", role = c(\"aut\", \"cre\", \"cph\"), email = \"Brian.Ripley@R-project.org\"), person(\"Bill\", \"Venables\", role = c(\"aut\", \"cph\")), person(c(\"Douglas\", \"M.\"), \"Bates\", role = \"ctb\"), person(\"Kurt\", \"Hornik\", role = \"trl\", comment = \"partial port ca 1998\"), person(\"Albrecht\", \"Gebhardt\", role = \"trl\", comment = \"partial port ca 1998\"), person(\"David\", \"Firth\", role = \"ctb\", comment = \"support functions for polr\"))", + "Authors@R": "c(person(\"Brian\", \"Ripley\", role = c(\"aut\", \"cre\", \"cph\"), email = \"ripley@stats.ox.ac.uk\"), person(\"Bill\", \"Venables\", role = \"ctb\"), person(c(\"Douglas\", \"M.\"), \"Bates\", role = \"ctb\"), person(\"Kurt\", \"Hornik\", role = \"trl\", comment = \"partial port ca 1998\"), person(\"Albrecht\", \"Gebhardt\", role = \"trl\", comment = \"partial port ca 1998\"), person(\"David\", \"Firth\", role = \"ctb\"))", "Description": "Functions and datasets to support Venables and Ripley, \"Modern Applied Statistics with S\" (4th edition, 2002).", "Title": "Support Functions and Datasets for Venables and Ripley's MASS", "LazyData": "yes", @@ -185,16 +181,16 @@ "URL": "http://www.stats.ox.ac.uk/pub/MASS4/", "Contact": "", "NeedsCompilation": "yes", - "Author": "Brian Ripley [aut, cre, cph], Bill Venables [aut, cph], Douglas M. Bates [ctb], Kurt Hornik [trl] (partial port ca 1998), Albrecht Gebhardt [trl] (partial port ca 1998), David Firth [ctb] (support functions for polr)", - "Maintainer": "Brian Ripley ", + "Author": "Brian Ripley [aut, cre, cph], Bill Venables [ctb], Douglas M. Bates [ctb], Kurt Hornik [trl] (partial port ca 1998), Albrecht Gebhardt [trl] (partial port ca 1998), David Firth [ctb]", + "Maintainer": "Brian Ripley ", "Repository": "CRAN" }, "Matrix": { "Package": "Matrix", - "Version": "1.7-4", + "Version": "1.6-5", "Source": "Repository", "VersionNote": "do also bump src/version.h, inst/include/Matrix/version.h", - "Date": "2025-08-27", + "Date": "2024-01-06", "Priority": "recommended", "Title": "Sparse and Dense Matrix Classes and Methods", "Description": "A rich hierarchy of sparse and dense matrix classes, including general, symmetric, triangular, and diagonal matrices with numeric, logical, or pattern entries. Efficient methods for operating on such matrices, often wrapping the 'BLAS', 'LAPACK', and 'SuiteSparse' libraries.", @@ -202,9 +198,9 @@ "URL": "https://Matrix.R-forge.R-project.org", "BugReports": "https://R-forge.R-project.org/tracker/?atid=294&group_id=61", "Contact": "Matrix-authors@R-project.org", - "Authors@R": "c(person(\"Douglas\", \"Bates\", role = \"aut\", comment = c(ORCID = \"0000-0001-8316-9503\")), person(\"Martin\", \"Maechler\", role = c(\"aut\", \"cre\"), email = \"mmaechler+Matrix@gmail.com\", comment = c(ORCID = \"0000-0002-8685-9910\")), person(\"Mikael\", \"Jagan\", role = \"aut\", comment = c(ORCID = \"0000-0002-3542-2938\")), person(\"Timothy A.\", \"Davis\", role = \"ctb\", comment = c(ORCID = \"0000-0001-7614-6899\", \"SuiteSparse libraries\", \"collaborators listed in dir(system.file(\\\"doc\\\", \\\"SuiteSparse\\\", package=\\\"Matrix\\\"), pattern=\\\"License\\\", full.names=TRUE, recursive=TRUE)\")), person(\"George\", \"Karypis\", role = \"ctb\", comment = c(ORCID = \"0000-0003-2753-1437\", \"METIS library\", \"Copyright: Regents of the University of Minnesota\")), person(\"Jason\", \"Riedy\", role = \"ctb\", comment = c(ORCID = \"0000-0002-4345-4200\", \"GNU Octave's condest() and onenormest()\", \"Copyright: Regents of the University of California\")), person(\"Jens\", \"Oehlschlägel\", role = \"ctb\", comment = \"initial nearPD()\"), person(\"R Core Team\", role = \"ctb\", comment = c(ROR = \"02zz1nj61\", \"base R's matrix implementation\")))", + "Authors@R": "c(person(\"Douglas\", \"Bates\", role = \"aut\", comment = c(ORCID = \"0000-0001-8316-9503\")), person(\"Martin\", \"Maechler\", role = c(\"aut\", \"cre\"), email = \"mmaechler+Matrix@gmail.com\", comment = c(ORCID = \"0000-0002-8685-9910\")), person(\"Mikael\", \"Jagan\", role = \"aut\", comment = c(ORCID = \"0000-0002-3542-2938\")), person(\"Timothy A.\", \"Davis\", role = \"ctb\", comment = c(ORCID = \"0000-0001-7614-6899\", \"SuiteSparse libraries, notably CHOLMOD and AMD\", \"collaborators listed in dir(pattern=\\\"^[A-Z]+[.]txt$\\\", full.names=TRUE, system.file(\\\"doc\\\", \\\"SuiteSparse\\\", package=\\\"Matrix\\\"))\")), person(\"Jens\", \"Oehlschlägel\", role = \"ctb\", comment = \"initial nearPD()\"), person(\"Jason\", \"Riedy\", role = \"ctb\", comment = c(ORCID = \"0000-0002-4345-4200\", \"GNU Octave's condest() and onenormest()\", \"Copyright: Regents of the University of California\")), person(\"R Core Team\", role = \"ctb\", comment = \"base R's matrix implementation\"))", "Depends": [ - "R (>= 4.4)", + "R (>= 3.5.0)", "methods" ], "Imports": [ @@ -230,7 +226,7 @@ "BuildResaveData": "no", "Encoding": "UTF-8", "NeedsCompilation": "yes", - "Author": "Douglas Bates [aut] (ORCID: ), Martin Maechler [aut, cre] (ORCID: ), Mikael Jagan [aut] (ORCID: ), Timothy A. Davis [ctb] (ORCID: , SuiteSparse libraries, collaborators listed in dir(system.file(\"doc\", \"SuiteSparse\", package=\"Matrix\"), pattern=\"License\", full.names=TRUE, recursive=TRUE)), George Karypis [ctb] (ORCID: , METIS library, Copyright: Regents of the University of Minnesota), Jason Riedy [ctb] (ORCID: , GNU Octave's condest() and onenormest(), Copyright: Regents of the University of California), Jens Oehlschlägel [ctb] (initial nearPD()), R Core Team [ctb] (ROR: , base R's matrix implementation)", + "Author": "Douglas Bates [aut] (), Martin Maechler [aut, cre] (), Mikael Jagan [aut] (), Timothy A. Davis [ctb] (, SuiteSparse libraries, notably CHOLMOD and AMD, collaborators listed in dir(pattern=\"^[A-Z]+[.]txt$\", full.names=TRUE, system.file(\"doc\", \"SuiteSparse\", package=\"Matrix\"))), Jens Oehlschlägel [ctb] (initial nearPD()), Jason Riedy [ctb] (, GNU Octave's condest() and onenormest(), Copyright: Regents of the University of California), R Core Team [ctb] (base R's matrix implementation)", "Maintainer": "Martin Maechler ", "Repository": "CRAN" }, @@ -486,7 +482,7 @@ }, "Rdpack": { "Package": "Rdpack", - "Version": "2.6.5", + "Version": "2.6.6", "Source": "Repository", "Type": "Package", "Title": "Update and Manipulate Rd Documentation Objects", @@ -818,15 +814,15 @@ }, "boot": { "Package": "boot", - "Version": "1.3-32", + "Version": "1.3-30", "Source": "Repository", "Priority": "recommended", - "Date": "2025-08-29", - "Authors@R": "c(person(\"Angelo\", \"Canty\", role = \"aut\", email = \"cantya@mcmaster.ca\", comment = \"author of original code for S\"), person(\"Brian\", \"Ripley\", role = c(\"aut\", \"trl\"), email = \"Brian.Ripley@R-project.org\", comment = \"conversion to R, maintainer 1999--2022, author of parallel support\"), person(\"Alessandra R.\", \"Brazzale\", role = c(\"ctb\", \"cre\"), email = \"brazzale@stat.unipd.it\", comment = \"minor bug fixes\"))", + "Date": "2024-02-19", + "Authors@R": "c(person(\"Angelo\", \"Canty\", role = \"aut\", email = \"cantya@mcmaster.ca\", comment = \"author of original code for S\"), person(\"Brian\", \"Ripley\", role = c(\"aut\", \"trl\"), email = \"ripley@stats.ox.ac.uk\", comment = \"conversion to R, maintainer 1999--2022, author of parallel support\"), person(\"Alessandra R.\", \"Brazzale\", role = c(\"ctb\", \"cre\"), email = \"brazzale@stat.unipd.it\", comment = \"minor bug fixes\"))", "Maintainer": "Alessandra R. Brazzale ", "Note": "Maintainers are not available to give advice on using a package they did not author.", "Description": "Functions and datasets for bootstrapping from the book \"Bootstrap Methods and Their Application\" by A. C. Davison and D. V. Hinkley (1997, CUP), originally written by Angelo Canty for S.", - "Title": "Bootstrap Functions", + "Title": "Bootstrap Functions (Originally by Angelo Canty for S)", "Depends": [ "R (>= 3.0.0)", "graphics", @@ -843,32 +839,6 @@ "Author": "Angelo Canty [aut] (author of original code for S), Brian Ripley [aut, trl] (conversion to R, maintainer 1999--2022, author of parallel support), Alessandra R. Brazzale [ctb, cre] (minor bug fixes)", "Repository": "CRAN" }, - "brio": { - "Package": "brio", - "Version": "1.1.5", - "Source": "Repository", - "Title": "Basic R Input Output", - "Authors@R": "c( person(\"Jim\", \"Hester\", role = \"aut\", comment = c(ORCID = \"0000-0002-2739-7082\")), person(\"Gábor\", \"Csárdi\", , \"csardi.gabor@gmail.com\", role = c(\"aut\", \"cre\")), person(given = \"Posit Software, PBC\", role = c(\"cph\", \"fnd\")) )", - "Description": "Functions to handle basic input output, these functions always read and write UTF-8 (8-bit Unicode Transformation Format) files and provide more explicit control over line endings.", - "License": "MIT + file LICENSE", - "URL": "https://brio.r-lib.org, https://github.com/r-lib/brio", - "BugReports": "https://github.com/r-lib/brio/issues", - "Depends": [ - "R (>= 3.6)" - ], - "Suggests": [ - "covr", - "testthat (>= 3.0.0)" - ], - "Config/Needs/website": "tidyverse/tidytemplate", - "Config/testthat/edition": "3", - "Encoding": "UTF-8", - "RoxygenNote": "7.2.3", - "NeedsCompilation": "yes", - "Author": "Jim Hester [aut] (), Gábor Csárdi [aut, cre], Posit Software, PBC [cph, fnd]", - "Maintainer": "Gábor Csárdi ", - "Repository": "CRAN" - }, "broom": { "Package": "broom", "Version": "1.0.12", @@ -1197,7 +1167,7 @@ }, "checkmate": { "Package": "checkmate", - "Version": "2.3.3", + "Version": "2.3.4", "Source": "Repository", "Type": "Package", "Title": "Fast and Versatile Argument Checks", @@ -1232,7 +1202,7 @@ ], "License": "BSD_3_clause + file LICENSE", "VignetteBuilder": "knitr", - "RoxygenNote": "7.3.2", + "RoxygenNote": "7.3.3", "Collate": "'AssertCollection.R' 'allMissing.R' 'anyInfinite.R' 'anyMissing.R' 'anyNaN.R' 'asInteger.R' 'assert.R' 'helper.R' 'makeExpectation.R' 'makeTest.R' 'makeAssertion.R' 'checkAccess.R' 'checkArray.R' 'checkAtomic.R' 'checkAtomicVector.R' 'checkCharacter.R' 'checkChoice.R' 'checkClass.R' 'checkComplex.R' 'checkCount.R' 'checkDataFrame.R' 'checkDataTable.R' 'checkDate.R' 'checkDirectoryExists.R' 'checkDisjunct.R' 'checkDouble.R' 'checkEnvironment.R' 'checkFALSE.R' 'checkFactor.R' 'checkFileExists.R' 'checkFlag.R' 'checkFormula.R' 'checkFunction.R' 'checkInt.R' 'checkInteger.R' 'checkIntegerish.R' 'checkList.R' 'checkLogical.R' 'checkMatrix.R' 'checkMultiClass.R' 'checkNamed.R' 'checkNames.R' 'checkNull.R' 'checkNumber.R' 'checkNumeric.R' 'checkOS.R' 'checkPOSIXct.R' 'checkPathForOutput.R' 'checkPermutation.R' 'checkR6.R' 'checkRaw.R' 'checkScalar.R' 'checkScalarNA.R' 'checkSetEqual.R' 'checkString.R' 'checkSubset.R' 'checkTRUE.R' 'checkTibble.R' 'checkVector.R' 'coalesce.R' 'isIntegerish.R' 'matchArg.R' 'qassert.R' 'qassertr.R' 'vname.R' 'wfwl.R' 'zzz.R'", "Author": "Michel Lang [cre, aut] (ORCID: ), Bernd Bischl [ctb], Dénes Tóth [ctb] (ORCID: )", "Maintainer": "Michel Lang ", @@ -1305,8 +1275,8 @@ }, "cleanepi": { "Package": "cleanepi", - "Version": "1.1.2", - "Source": "Repository", + "Version": "1.1.2.9000", + "Source": "GitHub", "Title": "Clean and Standardize Epidemiological Data", "Authors@R": "c( person(\"Karim\", \"Mané\", , \"karim.mane@lshtm.ac.uk\", role = \"aut\", comment = c(ORCID = \"0000-0002-9892-2999\")), person(\"Thibaut\", \"Jombart\", , \"thibautjombart@gmail.com\", role = \"ctb\", comment = \"Thibaut contributed in development of date_guess().\"), person(\"Abdoelnaser\", \"Degoot\", , \"abdoelnaser-mahmood.degoot@lshtm.ac.uk\", role = \"aut\", comment = c(ORCID = \"0000-0001-8788-2496\")), person(\"Bankolé\", \"Ahadzie\", , \"Bankole.Ahadzie@lshtm.ac.uk\", role = \"aut\"), person(\"Nuredin\", \"Mohammed\", , \"Nuredin.Mohammed@lshtm.ac.uk\", role = \"aut\"), person(\"Bubacarr\", \"Bah\", , \"Bubacarr.Bah1@lshtm.ac.uk\", role = c(\"aut\", \"cre\"), comment = c(ORCID = \"0000-0003-3318-6668\")), person(\"Hugo\", \"Gruson\", , \"hugo@data.org\", role = c(\"ctb\", \"rev\"), comment = c(ORCID = \"0000-0002-4094-1476\")), person(\"Pratik R.\", \"Gupte\", , \"pratik.gupte@lshtm.ac.uk\", role = \"rev\", comment = c(ORCID = \"0000-0001-5294-7819\")), person(\"James M.\", \"Azam\", , \"james.azam@lshtm.ac.uk\", role = \"rev\", comment = c(ORCID = \"0000-0001-5782-7330\")), person(\"Joshua W.\", \"Lambert\", , \"joshua.lambert@lshtm.ac.uk\", role = c(\"rev\", \"ctb\"), comment = c(ORCID = \"0000-0001-5218-3046\")), person(\"Chris\", \"Hartgerink\", , \"chris@data.org\", role = \"rev\", comment = c(ORCID = \"0000-0003-1050-6809\")), person(\"Andree\", \"Valle-Campos\", , \"avallecam@gmail.com\", role = c(\"rev\", \"ctb\"), comment = c(ORCID = \"0000-0002-7779-481X\")), person(\"London School of Hygiene and Tropical Medicine, LSHTM\", role = \"cph\", comment = c(ROR = \"00a0jsq62\")), person(\"data.org\", role = \"fnd\") )", "Description": "Cleaning and standardizing tabular data package, tailored specifically for curating epidemiological data. It streamlines various data cleaning tasks that are typically expected when working with datasets in epidemiology. It returns the processed data in the same format, and generates a comprehensive report detailing the outcomes of each cleaning task.", @@ -1350,11 +1320,17 @@ "Encoding": "UTF-8", "Language": "en-US", "LazyData": "true", + "Roxygen": "list(markdown = TRUE)", "RoxygenNote": "7.3.2", - "NeedsCompilation": "no", - "Author": "Karim Mané [aut] (ORCID: ), Thibaut Jombart [ctb] (Thibaut contributed in development of date_guess().), Abdoelnaser Degoot [aut] (ORCID: ), Bankolé Ahadzie [aut], Nuredin Mohammed [aut], Bubacarr Bah [aut, cre] (ORCID: ), Hugo Gruson [ctb, rev] (ORCID: ), Pratik R. Gupte [rev] (ORCID: ), James M. Azam [rev] (ORCID: ), Joshua W. Lambert [rev, ctb] (ORCID: ), Chris Hartgerink [rev] (ORCID: ), Andree Valle-Campos [rev, ctb] (ORCID: ), London School of Hygiene and Tropical Medicine, LSHTM [cph] (ROR: ), data.org [fnd]", + "Author": "Karim Mané [aut] (), Thibaut Jombart [ctb] (Thibaut contributed in development of date_guess().), Abdoelnaser Degoot [aut] (), Bankolé Ahadzie [aut], Nuredin Mohammed [aut], Bubacarr Bah [aut, cre] (), Hugo Gruson [ctb, rev] (), Pratik R. Gupte [rev] (), James M. Azam [rev] (), Joshua W. Lambert [rev, ctb] (), Chris Hartgerink [rev] (), Andree Valle-Campos [rev, ctb] (), London School of Hygiene and Tropical Medicine, LSHTM [cph] (00a0jsq62), data.org [fnd]", "Maintainer": "Bubacarr Bah ", - "Repository": "CRAN" + "RemoteType": "github", + "RemoteHost": "api.github.com", + "RemoteRepo": "cleanepi", + "RemoteUsername": "epiverse-trace", + "RemotePkgRef": "epiverse-trace/cleanepi", + "RemoteRef": "HEAD", + "RemoteSha": "6fb22d1aa55ebbe7edcc020771e6ab6006a26a26" }, "cli": { "Package": "cli", @@ -1842,11 +1818,11 @@ }, "deSolve": { "Package": "deSolve", - "Version": "1.40", + "Version": "1.41", "Source": "Repository", "Title": "Solvers for Initial Value Problems of Differential Equations ('ODE', 'DAE', 'DDE')", "Authors@R": "c(person(\"Karline\",\"Soetaert\", role = c(\"aut\"), email = \"karline.soetaert@nioz.nl\", comment = c(ORCID = \"0000-0003-4603-7100\")), person(\"Thomas\",\"Petzoldt\", role = c(\"aut\", \"cre\"), email = \"thomas.petzoldt@tu-dresden.de\", comment = c(ORCID = \"0000-0002-4951-6468\")), person(\"R. Woodrow\",\"Setzer\", role = c(\"aut\"), email = \"setzer.woodrow@epa.gov\", comment = c(ORCID = \"0000-0002-6709-9186\")), person(\"Peter N.\",\"Brown\", role = \"ctb\", comment = \"files ddaspk.f, dvode.f, zvode.f\"), person(\"George D.\",\"Byrne\", role = \"ctb\", comment = \"files dvode.f, zvode.f\"), person(\"Ernst\",\"Hairer\", role = \"ctb\", comment = \"files radau5.f, radau5a\"), person(\"Alan C.\",\"Hindmarsh\", role = \"ctb\", comment = \"files ddaspk.f, dlsode.f, dvode.f, zvode.f, opdkmain.f, opdka1.f\"), person(\"Cleve\",\"Moler\", role = \"ctb\", comment = \"file dlinpck.f\"), person(\"Linda R.\",\"Petzold\", role = \"ctb\", comment = \"files ddaspk.f, dlsoda.f\"), person(\"Youcef\", \"Saad\", role = \"ctb\", comment = \"file dsparsk.f\"), person(\"Clement W.\",\"Ulrich\", role = \"ctb\", comment = \"file ddaspk.f\") )", - "Author": "Karline Soetaert [aut] (), Thomas Petzoldt [aut, cre] (), R. Woodrow Setzer [aut] (), Peter N. Brown [ctb] (files ddaspk.f, dvode.f, zvode.f), George D. Byrne [ctb] (files dvode.f, zvode.f), Ernst Hairer [ctb] (files radau5.f, radau5a), Alan C. Hindmarsh [ctb] (files ddaspk.f, dlsode.f, dvode.f, zvode.f, opdkmain.f, opdka1.f), Cleve Moler [ctb] (file dlinpck.f), Linda R. Petzold [ctb] (files ddaspk.f, dlsoda.f), Youcef Saad [ctb] (file dsparsk.f), Clement W. Ulrich [ctb] (file ddaspk.f)", + "Author": "Karline Soetaert [aut] (ORCID: ), Thomas Petzoldt [aut, cre] (ORCID: ), R. Woodrow Setzer [aut] (ORCID: ), Peter N. Brown [ctb] (files ddaspk.f, dvode.f, zvode.f), George D. Byrne [ctb] (files dvode.f, zvode.f), Ernst Hairer [ctb] (files radau5.f, radau5a), Alan C. Hindmarsh [ctb] (files ddaspk.f, dlsode.f, dvode.f, zvode.f, opdkmain.f, opdka1.f), Cleve Moler [ctb] (file dlinpck.f), Linda R. Petzold [ctb] (files ddaspk.f, dlsoda.f), Youcef Saad [ctb] (file dsparsk.f), Clement W. Ulrich [ctb] (file ddaspk.f)", "Maintainer": "Thomas Petzoldt ", "Depends": [ "R (>= 3.3.0)" @@ -1859,15 +1835,15 @@ ], "Suggests": [ "scatterplot3d", + "nlme", "FME" ], "Description": "Functions that solve initial value problems of a system of first-order ordinary differential equations ('ODE'), of partial differential equations ('PDE'), of differential algebraic equations ('DAE'), and of delay differential equations. The functions provide an interface to the FORTRAN functions 'lsoda', 'lsodar', 'lsode', 'lsodes' of the 'ODEPACK' collection, to the FORTRAN functions 'dvode', 'zvode' and 'daspk' and a C-implementation of solvers of the 'Runge-Kutta' family with fixed or variable time steps. The package contains routines designed for solving 'ODEs' resulting from 1-D, 2-D and 3-D partial differential equations ('PDE') that have been converted to 'ODEs' by numerical differencing.", "License": "GPL (>= 2)", - "URL": "http://desolve.r-forge.r-project.org/", + "URL": "https://github.com/tpetzoldt/deSolve/", "LazyData": "yes", "NeedsCompilation": "yes", - "Repository": "RSPM", - "Encoding": "UTF-8" + "Repository": "CRAN" }, "desc": { "Package": "desc", @@ -1907,40 +1883,6 @@ "Author": "Gábor Csárdi [aut, cre], Kirill Müller [aut], Jim Hester [aut], Maëlle Salmon [ctb] (), Posit Software, PBC [cph, fnd]", "Repository": "CRAN" }, - "diffobj": { - "Package": "diffobj", - "Version": "0.3.6", - "Source": "Repository", - "Type": "Package", - "Title": "Diffs for R Objects", - "Description": "Generate a colorized diff of two R objects for an intuitive visualization of their differences.", - "Authors@R": "c( person( \"Brodie\", \"Gaslam\", email=\"brodie.gaslam@yahoo.com\", role=c(\"aut\", \"cre\")), person( \"Michael B.\", \"Allen\", email=\"ioplex@gmail.com\", role=c(\"ctb\", \"cph\"), comment=\"Original C implementation of Myers Diff Algorithm\"))", - "Depends": [ - "R (>= 3.1.0)" - ], - "License": "GPL-2 | GPL-3", - "URL": "https://github.com/brodieG/diffobj", - "BugReports": "https://github.com/brodieG/diffobj/issues", - "RoxygenNote": "7.2.3", - "VignetteBuilder": "knitr", - "Encoding": "UTF-8", - "Suggests": [ - "knitr", - "rmarkdown" - ], - "Collate": "'capt.R' 'options.R' 'pager.R' 'check.R' 'finalizer.R' 'misc.R' 'html.R' 'styles.R' 's4.R' 'core.R' 'diff.R' 'get.R' 'guides.R' 'hunks.R' 'layout.R' 'myerssimple.R' 'rdiff.R' 'rds.R' 'set.R' 'subset.R' 'summmary.R' 'system.R' 'text.R' 'tochar.R' 'trim.R' 'word.R'", - "Imports": [ - "crayon (>= 1.3.2)", - "tools", - "methods", - "utils", - "stats" - ], - "NeedsCompilation": "yes", - "Author": "Brodie Gaslam [aut, cre], Michael B. Allen [ctb, cph] (Original C implementation of Myers Diff Algorithm)", - "Maintainer": "Brodie Gaslam ", - "Repository": "CRAN" - }, "digest": { "Package": "digest", "Version": "0.6.39", @@ -2038,7 +1980,7 @@ }, "dplyr": { "Package": "dplyr", - "Version": "1.1.4", + "Version": "1.2.0", "Source": "Repository", "Type": "Package", "Title": "A Grammar of Data Manipulation", @@ -2048,27 +1990,25 @@ "URL": "https://dplyr.tidyverse.org, https://github.com/tidyverse/dplyr", "BugReports": "https://github.com/tidyverse/dplyr/issues", "Depends": [ - "R (>= 3.5.0)" + "R (>= 4.1.0)" ], "Imports": [ - "cli (>= 3.4.0)", + "cli (>= 3.6.2)", "generics", "glue (>= 1.3.2)", - "lifecycle (>= 1.0.3)", + "lifecycle (>= 1.0.5)", "magrittr (>= 1.5)", "methods", "pillar (>= 1.9.0)", "R6", - "rlang (>= 1.1.0)", + "rlang (>= 1.1.7)", "tibble (>= 3.2.0)", "tidyselect (>= 1.2.0)", "utils", - "vctrs (>= 0.6.4)" + "vctrs (>= 0.7.1)" ], "Suggests": [ - "bench", "broom", - "callr", "covr", "DBI", "dbplyr (>= 2.2.1)", @@ -2076,12 +2016,9 @@ "knitr", "Lahman", "lobstr", - "microbenchmark", "nycflights13", "purrr", "rmarkdown", - "RMySQL", - "RPostgreSQL", "RSQLite", "stringi (>= 1.7.6)", "testthat (>= 3.1.5)", @@ -2089,13 +2026,14 @@ "withr" ], "VignetteBuilder": "knitr", - "Config/Needs/website": "tidyverse, shiny, pkgdown, tidyverse/tidytemplate", + "Config/build/compilation-database": "true", + "Config/Needs/website": "tidyverse/tidytemplate", "Config/testthat/edition": "3", "Encoding": "UTF-8", "LazyData": "true", - "RoxygenNote": "7.2.3", + "RoxygenNote": "7.3.3", "NeedsCompilation": "yes", - "Author": "Hadley Wickham [aut, cre] (), Romain François [aut] (), Lionel Henry [aut], Kirill Müller [aut] (), Davis Vaughan [aut] (), Posit Software, PBC [cph, fnd]", + "Author": "Hadley Wickham [aut, cre] (ORCID: ), Romain François [aut] (ORCID: ), Lionel Henry [aut], Kirill Müller [aut] (ORCID: ), Davis Vaughan [aut] (ORCID: ), Posit Software, PBC [cph, fnd]", "Maintainer": "Hadley Wickham ", "Repository": "CRAN" }, @@ -2295,7 +2233,7 @@ "Language": "en-GB", "Roxygen": "list(markdown = TRUE)", "RoxygenNote": "7.3.2", - "Author": "Pratik Gupte [aut, cph] (ORCID: ), Rosalind Eggo [aut, cph, cre] (ORCID: ), Edwin Van Leeuwen [aut, cph] (ORCID: ), Adam Kucharski [ctb, rev] (ORCID: ), Tim Taylor [ctb, rev] (ORCID: ), Banky Ahadzie [ctb], Alexis Robert [ctb] (ORCID: ), Hugo Gruson [rev] (ORCID: ), Joshua W. Lambert [rev] (ORCID: ), James M. Azam [rev] (ORCID: ), Alexis Robert [rev] (ORCID: )", + "Author": "Pratik Gupte [aut, cph] (), Rosalind Eggo [aut, cph, cre] (), Edwin Van Leeuwen [aut, cph] (), Adam Kucharski [ctb, rev] (), Tim Taylor [ctb, rev] (), Banky Ahadzie [ctb], Alexis Robert [ctb] (), Hugo Gruson [rev] (), Joshua W. Lambert [rev] (), James M. Azam [rev] (), Alexis Robert [rev] ()", "Maintainer": "Rosalind Eggo ", "RemoteType": "github", "RemoteHost": "api.github.com", @@ -2828,7 +2766,7 @@ }, "ggplot2": { "Package": "ggplot2", - "Version": "4.0.1", + "Version": "4.0.2", "Source": "Repository", "Title": "Create Elegant Data Visualisations Using the Grammar of Graphics", "Authors@R": "c( person(\"Hadley\", \"Wickham\", , \"hadley@posit.co\", role = \"aut\", comment = c(ORCID = \"0000-0003-4757-117X\")), person(\"Winston\", \"Chang\", role = \"aut\", comment = c(ORCID = \"0000-0002-1576-2126\")), person(\"Lionel\", \"Henry\", role = \"aut\"), person(\"Thomas Lin\", \"Pedersen\", , \"thomas.pedersen@posit.co\", role = c(\"aut\", \"cre\"), comment = c(ORCID = \"0000-0002-5147-4711\")), person(\"Kohske\", \"Takahashi\", role = \"aut\"), person(\"Claus\", \"Wilke\", role = \"aut\", comment = c(ORCID = \"0000-0002-7470-9261\")), person(\"Kara\", \"Woo\", role = \"aut\", comment = c(ORCID = \"0000-0002-5125-4188\")), person(\"Hiroaki\", \"Yutani\", role = \"aut\", comment = c(ORCID = \"0000-0002-3385-7233\")), person(\"Dewey\", \"Dunnington\", role = \"aut\", comment = c(ORCID = \"0000-0002-9415-4582\")), person(\"Teun\", \"van den Brand\", role = \"aut\", comment = c(ORCID = \"0000-0002-9335-7468\")), person(\"Posit, PBC\", role = c(\"cph\", \"fnd\"), comment = c(ROR = \"03wc8by49\")) )", @@ -3795,9 +3733,9 @@ }, "lattice": { "Package": "lattice", - "Version": "0.22-7", + "Version": "0.22-5", "Source": "Repository", - "Date": "2025-03-31", + "Date": "2023-10-23", "Priority": "recommended", "Title": "Trellis Graphics for R", "Authors@R": "c(person(\"Deepayan\", \"Sarkar\", role = c(\"aut\", \"cre\"), email = \"deepayan.sarkar@r-project.org\", comment = c(ORCID = \"0000-0003-4107-1553\")), person(\"Felix\", \"Andrews\", role = \"ctb\"), person(\"Kevin\", \"Wright\", role = \"ctb\", comment = \"documentation\"), person(\"Neil\", \"Klepeis\", role = \"ctb\"), person(\"Johan\", \"Larsson\", role = \"ctb\", comment = \"miscellaneous improvements\"), person(\"Zhijian (Jason)\", \"Wen\", role = \"cph\", comment = \"filled contour code\"), person(\"Paul\", \"Murrell\", role = \"ctb\", email = \"paul@stat.auckland.ac.nz\"), person(\"Stefan\", \"Eng\", role = \"ctb\", comment = \"violin plot improvements\"), person(\"Achim\", \"Zeileis\", role = \"ctb\", comment = \"modern colors\"), person(\"Alexandre\", \"Courtiol\", role = \"ctb\", comment = \"generics for larrows, lpolygon, lrect and lsegments\") )", @@ -3830,8 +3768,7 @@ "NeedsCompilation": "yes", "Author": "Deepayan Sarkar [aut, cre] (), Felix Andrews [ctb], Kevin Wright [ctb] (documentation), Neil Klepeis [ctb], Johan Larsson [ctb] (miscellaneous improvements), Zhijian (Jason) Wen [cph] (filled contour code), Paul Murrell [ctb], Stefan Eng [ctb] (violin plot improvements), Achim Zeileis [ctb] (modern colors), Alexandre Courtiol [ctb] (generics for larrows, lpolygon, lrect and lsegments)", "Maintainer": "Deepayan Sarkar ", - "Repository": "RSPM", - "Encoding": "UTF-8" + "Repository": "CRAN" }, "lazyeval": { "Package": "lazyeval", @@ -4060,14 +3997,14 @@ }, "lubridate": { "Package": "lubridate", - "Version": "1.9.4", + "Version": "1.9.5", "Source": "Repository", "Type": "Package", "Title": "Make Dealing with Dates a Little Easier", "Authors@R": "c( person(\"Vitalie\", \"Spinu\", , \"spinuvit@gmail.com\", role = c(\"aut\", \"cre\")), person(\"Garrett\", \"Grolemund\", role = \"aut\"), person(\"Hadley\", \"Wickham\", role = \"aut\"), person(\"Davis\", \"Vaughan\", role = \"ctb\"), person(\"Ian\", \"Lyttle\", role = \"ctb\"), person(\"Imanuel\", \"Costigan\", role = \"ctb\"), person(\"Jason\", \"Law\", role = \"ctb\"), person(\"Doug\", \"Mitarotonda\", role = \"ctb\"), person(\"Joseph\", \"Larmarange\", role = \"ctb\"), person(\"Jonathan\", \"Boiser\", role = \"ctb\"), person(\"Chel Hee\", \"Lee\", role = \"ctb\") )", "Maintainer": "Vitalie Spinu ", "Description": "Functions to work with date-times and time-spans: fast and user friendly parsing of date-time data, extraction and updating of components of a date-time (years, months, days, hours, minutes, and seconds), algebraic manipulation on date-time and time-span objects. The 'lubridate' package has a consistent and memorable syntax that makes working with dates easy and fun.", - "License": "GPL (>= 2)", + "License": "MIT + file LICENSE", "URL": "https://lubridate.tidyverse.org, https://github.com/tidyverse/lubridate", "BugReports": "https://github.com/tidyverse/lubridate/issues", "Depends": [ @@ -4076,7 +4013,7 @@ ], "Imports": [ "generics", - "timechange (>= 0.3.0)" + "timechange (>= 0.4.0)" ], "Suggests": [ "covr", @@ -4097,8 +4034,8 @@ "Config/testthat/edition": "3", "Encoding": "UTF-8", "LazyData": "true", - "RoxygenNote": "7.2.3", - "SystemRequirements": "C++11, A system with zoneinfo data (e.g. /usr/share/zoneinfo). On Windows the zoneinfo included with R is used.", + "RoxygenNote": "7.3.3", + "SystemRequirements": "A system with zoneinfo data (e.g. /usr/share/zoneinfo). On Windows the zoneinfo included with R is used.", "Collate": "'Dates.r' 'POSIXt.r' 'util.r' 'parse.r' 'timespans.r' 'intervals.r' 'difftimes.r' 'durations.r' 'periods.r' 'accessors-date.R' 'accessors-day.r' 'accessors-dst.r' 'accessors-hour.r' 'accessors-minute.r' 'accessors-month.r' 'accessors-quarter.r' 'accessors-second.r' 'accessors-tz.r' 'accessors-week.r' 'accessors-year.r' 'am-pm.r' 'time-zones.r' 'numeric.r' 'coercion.r' 'constants.r' 'cyclic_encoding.r' 'data.r' 'decimal-dates.r' 'deprecated.r' 'format_ISO8601.r' 'guess.r' 'hidden.r' 'instants.r' 'leap-years.r' 'ops-addition.r' 'ops-compare.r' 'ops-division.r' 'ops-integer-division.r' 'ops-m+.r' 'ops-modulo.r' 'ops-multiplication.r' 'ops-subtraction.r' 'package.r' 'pretty.r' 'round.r' 'stamp.r' 'tzdir.R' 'update.r' 'vctrs.R' 'zzz.R'", "NeedsCompilation": "yes", "Author": "Vitalie Spinu [aut, cre], Garrett Grolemund [aut], Hadley Wickham [aut], Davis Vaughan [ctb], Ian Lyttle [ctb], Imanuel Costigan [ctb], Jason Law [ctb], Doug Mitarotonda [ctb], Joseph Larmarange [ctb], Jonathan Boiser [ctb], Chel Hee Lee [ctb]", @@ -4310,16 +4247,16 @@ }, "nlme": { "Package": "nlme", - "Version": "3.1-168", + "Version": "3.1-164", "Source": "Repository", - "Date": "2025-03-31", + "Date": "2023-11-27", "Priority": "recommended", "Title": "Linear and Nonlinear Mixed Effects Models", - "Authors@R": "c(person(\"José\", \"Pinheiro\", role = \"aut\", comment = \"S version\"), person(\"Douglas\", \"Bates\", role = \"aut\", comment = \"up to 2007\"), person(\"Saikat\", \"DebRoy\", role = \"ctb\", comment = \"up to 2002\"), person(\"Deepayan\", \"Sarkar\", role = \"ctb\", comment = \"up to 2005\"), person(\"EISPACK authors\", role = \"ctb\", comment = \"src/rs.f\"), person(\"Siem\", \"Heisterkamp\", role = \"ctb\", comment = \"Author fixed sigma\"), person(\"Bert\", \"Van Willigen\",role = \"ctb\", comment = \"Programmer fixed sigma\"), person(\"Johannes\", \"Ranke\", role = \"ctb\", comment = \"varConstProp()\"), person(\"R Core Team\", email = \"R-core@R-project.org\", role = c(\"aut\", \"cre\"), comment = c(ROR = \"02zz1nj61\")))", + "Authors@R": "c(person(\"José\", \"Pinheiro\", role = \"aut\", comment = \"S version\"), person(\"Douglas\", \"Bates\", role = \"aut\", comment = \"up to 2007\"), person(\"Saikat\", \"DebRoy\", role = \"ctb\", comment = \"up to 2002\"), person(\"Deepayan\", \"Sarkar\", role = \"ctb\", comment = \"up to 2005\"), person(\"EISPACK authors\", role = \"ctb\", comment = \"src/rs.f\"), person(\"Siem\", \"Heisterkamp\", role = \"ctb\", comment = \"Author fixed sigma\"), person(\"Bert\", \"Van Willigen\",role = \"ctb\", comment = \"Programmer fixed sigma\"), person(\"Johannes\", \"Ranke\", role = \"ctb\", comment = \"varConstProp()\"), person(\"R Core Team\", email = \"R-core@R-project.org\", role = c(\"aut\", \"cre\")))", "Contact": "see 'MailingList'", "Description": "Fit and compare Gaussian linear and nonlinear mixed-effects models.", "Depends": [ - "R (>= 3.6.0)" + "R (>= 3.5.0)" ], "Imports": [ "graphics", @@ -4328,6 +4265,7 @@ "lattice" ], "Suggests": [ + "Hmisc", "MASS", "SASmixed" ], @@ -4338,7 +4276,7 @@ "MailingList": "R-help@r-project.org", "URL": "https://svn.r-project.org/R-packages/trunk/nlme/", "NeedsCompilation": "yes", - "Author": "José Pinheiro [aut] (S version), Douglas Bates [aut] (up to 2007), Saikat DebRoy [ctb] (up to 2002), Deepayan Sarkar [ctb] (up to 2005), EISPACK authors [ctb] (src/rs.f), Siem Heisterkamp [ctb] (Author fixed sigma), Bert Van Willigen [ctb] (Programmer fixed sigma), Johannes Ranke [ctb] (varConstProp()), R Core Team [aut, cre] (02zz1nj61)", + "Author": "José Pinheiro [aut] (S version), Douglas Bates [aut] (up to 2007), Saikat DebRoy [ctb] (up to 2002), Deepayan Sarkar [ctb] (up to 2005), EISPACK authors [ctb] (src/rs.f), Siem Heisterkamp [ctb] (Author fixed sigma), Bert Van Willigen [ctb] (Programmer fixed sigma), Johannes Ranke [ctb] (varConstProp()), R Core Team [aut, cre]", "Maintainer": "R Core Team ", "Repository": "CRAN" }, @@ -4748,53 +4686,40 @@ "NeedsCompilation": "no", "Repository": "CRAN" }, - "pkgload": { - "Package": "pkgload", - "Version": "1.4.1", + "pkgsearch": { + "Package": "pkgsearch", + "Version": "3.1.5", "Source": "Repository", - "Title": "Simulate Package Installation and Attach", - "Authors@R": "c( person(\"Hadley\", \"Wickham\", role = \"aut\"), person(\"Winston\", \"Chang\", role = \"aut\"), person(\"Jim\", \"Hester\", role = \"aut\"), person(\"Lionel\", \"Henry\", , \"lionel@posit.co\", role = c(\"aut\", \"cre\")), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")), person(\"R Core team\", role = \"ctb\", comment = \"Some namespace and vignette code extracted from base R\") )", - "Description": "Simulates the process of installing a package and then attaching it. This is a key part of the 'devtools' package as it allows you to rapidly iterate while developing a package.", + "Title": "Search and Query CRAN R Packages", + "Authors@R": "c( person(\"Gábor\", \"Csárdi\", , \"csardi.gabor@gmail.com\", role = c(\"aut\", \"cre\")), person(\"Maëlle\", \"Salmon\", role = \"aut\", comment = c(ORCID = \"0000-0002-2815-0399\")), person(\"R Consortium\", role = \"fnd\") )", + "Description": "Search CRAN metadata about packages by keyword, popularity, recent activity, package name and more. Uses the 'R-hub' search server, see and the CRAN metadata database, that contains information about CRAN packages. Note that this is _not_ a CRAN project.", "License": "MIT + file LICENSE", - "URL": "https://github.com/r-lib/pkgload, https://pkgload.r-lib.org", - "BugReports": "https://github.com/r-lib/pkgload/issues", - "Depends": [ - "R (>= 3.4.0)" - ], + "URL": "https://github.com/r-hub/pkgsearch, https://r-hub.github.io/pkgsearch/", + "BugReports": "https://github.com/r-hub/pkgsearch/issues", "Imports": [ - "cli (>= 3.3.0)", - "desc", - "fs", - "glue", - "lifecycle", - "methods", - "pkgbuild", - "processx", - "rlang (>= 1.1.1)", - "rprojroot", - "utils" + "curl", + "jsonlite" ], "Suggests": [ - "bitops", - "jsonlite", - "mathjaxr", - "pak", - "Rcpp", - "remotes", + "covr", + "memoise", + "mockery", + "pillar", + "pingr (>= 2.0.0)", "rstudioapi", - "testthat (>= 3.2.1.1)", - "usethis", + "shiny", + "shinyjs", + "shinyWidgets", + "testthat (>= 3.0.0)", + "whoami", "withr" ], - "Config/Needs/website": "tidyverse/tidytemplate, ggplot2", "Config/testthat/edition": "3", - "Config/testthat/parallel": "TRUE", - "Config/testthat/start-first": "dll", "Encoding": "UTF-8", - "RoxygenNote": "7.3.2", + "RoxygenNote": "7.3.1.9000", "NeedsCompilation": "no", - "Author": "Hadley Wickham [aut], Winston Chang [aut], Jim Hester [aut], Lionel Henry [aut, cre], Posit Software, PBC [cph, fnd], R Core team [ctb] (Some namespace and vignette code extracted from base R)", - "Maintainer": "Lionel Henry ", + "Author": "Gábor Csárdi [aut, cre], Maëlle Salmon [aut] (), R Consortium [fnd]", + "Maintainer": "Gábor Csárdi ", "Repository": "CRAN" }, "plyr": { @@ -4883,23 +4808,34 @@ "Maintainer": "Paul-Christian Bürkner ", "Repository": "CRAN" }, - "praise": { - "Package": "praise", - "Version": "1.0.0", + "pracma": { + "Package": "pracma", + "Version": "2.4.6", "Source": "Repository", - "Title": "Praise Users", - "Author": "Gabor Csardi, Sindre Sorhus", - "Maintainer": "Gabor Csardi ", - "Description": "Build friendly R packages that praise their users if they have done something good, or they just need it to feel better.", - "License": "MIT + file LICENSE", - "LazyData": "true", - "URL": "https://github.com/gaborcsardi/praise", - "BugReports": "https://github.com/gaborcsardi/praise/issues", + "Type": "Package", + "Date": "2025-10-20", + "Title": "Practical Numerical Math Functions", + "Authors@R": "person(\"Hans W.\", \"Borchers\", email=\"hwborchers@googlemail.com\", role=c(\"aut\", \"cre\"))", + "Depends": [ + "R (>= 3.1.0)" + ], + "Imports": [ + "graphics", + "grDevices", + "stats", + "utils" + ], "Suggests": [ - "testthat" + "NlcOptim", + "quadprog" ], - "Collate": "'adjective.R' 'adverb.R' 'exclamation.R' 'verb.R' 'rpackage.R' 'package.R'", + "Description": "Provides a large number of functions from numerical analysis and linear algebra, numerical optimization, differential equations, time series, plus some well-known special mathematical functions. Uses 'MATLAB' function names where appropriate to simplify porting.", + "License": "GPL (>= 3)", + "ByteCompile": "true", + "LazyData": "yes", "NeedsCompilation": "no", + "Author": "Hans W. Borchers [aut, cre]", + "Maintainer": "Hans W. Borchers ", "Repository": "CRAN" }, "prettyunits": { @@ -4927,6 +4863,51 @@ "Maintainer": "Gabor Csardi ", "Repository": "CRAN" }, + "primarycensored": { + "Package": "primarycensored", + "Version": "1.3.0", + "Source": "Repository", + "Title": "Primary Event Censored Distributions", + "Authors@R": "c(person(given = \"Sam\", family = \"Abbott\", role = c(\"aut\", \"cre\", \"cph\"), email = \"contact@samabbott.co.uk\", comment = c(ORCID = \"0000-0001-8057-8037\")), person(given = \"Sam\", family = \"Brand\", role = c(\"aut\"), email = \"usi1@cdc.gov\", comment = c(ORCID = \"0000-0003-0645-5367\")), person(given = \"Adam\", family = \"Howes\", role = c(\"ctb\"), email = \"adamthowes@gmail.com\", comment = c(ORCID = \"0000-0003-2386-4031\")), person(given = \"James Mba\", family = \"Azam\", role = c(\"aut\"), email = \"james.azam@lshtm.ac.uk\", comment = c(ORCID = \"0000-0001-5782-7330\")), person(given = \"Carl\", family = \"Pearson\", role = c(\"aut\"), email = \"carl.ab.pearson@gmail.com\", comment = c(ORCID = \"0000-0003-0701-7860\")), person(given = \"Sebastian\", family = \"Funk\", role = c(\"aut\"), email = \"sebastian.funk@lshtm.ac.uk\", comment = c(ORCID = \"0000-0002-2842-3406\")), person(given = \"Kelly\", family = \"Charniga\", role = c(\"aut\"), email = \" kelly.charniga@gmail.com\", comment = c(ORCID = \"0000-0002-7648-7041\")))", + "Description": "Provides functions for working with primary event censored distributions and 'Stan' implementations for use in Bayesian modeling. Primary event censored distributions are useful for modeling delayed reporting scenarios in epidemiology and other fields (Charniga et al. (2024) ). It also provides support for arbitrary delay distributions, a range of common primary distributions, and allows for truncation and secondary event censoring to be accounted for (Park et al. (2024) ). A subset of common distributions also have analytical solutions implemented, allowing for faster computation. In addition, it provides multiple methods for fitting primary event censored distributions to data via optional dependencies.", + "License": "MIT + file LICENSE", + "URL": "https://primarycensored.epinowcast.org, https://github.com/epinowcast/primarycensored", + "BugReports": "https://github.com/epinowcast/primarycensored/issues", + "Depends": [ + "R (>= 4.0.0)" + ], + "Imports": [ + "lifecycle", + "pracma", + "rlang" + ], + "Suggests": [ + "bookdown", + "cmdstanr", + "dplyr", + "fitdistrplus", + "knitr", + "ggplot2", + "rmarkdown", + "spelling", + "testthat (>= 3.1.9)", + "usethis", + "withr" + ], + "Additional_repositories": "https://stan-dev.r-universe.dev", + "Config/Needs/hexsticker": "hexSticker, sysfonts, ggplot2", + "Config/Needs/website": "r-lib/pkgdown, epinowcast/enwtheme", + "Config/testthat/edition": "3", + "Encoding": "UTF-8", + "Language": "en-GB", + "LazyData": "true", + "RoxygenNote": "7.3.2", + "VignetteBuilder": "knitr", + "NeedsCompilation": "no", + "Author": "Sam Abbott [aut, cre, cph] (ORCID: ), Sam Brand [aut] (ORCID: ), Adam Howes [ctb] (ORCID: ), James Mba Azam [aut] (ORCID: ), Carl Pearson [aut] (ORCID: ), Sebastian Funk [aut] (ORCID: ), Kelly Charniga [aut] (ORCID: )", + "Maintainer": "Sam Abbott ", + "Repository": "CRAN" + }, "processx": { "Package": "processx", "Version": "3.8.6", @@ -5119,11 +5100,17 @@ "Config/testthat/edition": "3", "Config/usethis/last-upkeep": "2025-04-25", "Encoding": "UTF-8", + "Roxygen": "list(markdown = TRUE)", "RoxygenNote": "7.3.2", "SystemRequirements": "freetype2, libpng, libtiff, libjpeg, libwebp, libwebpmux", + "Config/pak/sysreqs": "libfontconfig1-dev libfreetype6-dev libfribidi-dev libharfbuzz-dev libjpeg-dev libpng-dev libtiff-dev libwebp-dev", + "Repository": "https://carpentries.r-universe.dev", "NeedsCompilation": "yes", "Author": "Thomas Lin Pedersen [cre, aut] (ORCID: ), Maxim Shemanarev [aut, cph] (Author of AGG), Tony Juricic [ctb, cph] (Contributor to AGG), Milan Marusinec [ctb, cph] (Contributor to AGG), Spencer Garrett [ctb] (Contributor to AGG), Posit Software, PBC [cph, fnd] (ROR: )", - "Repository": "CRAN" + "RemoteType": "repository", + "RemoteUrl": "https://github.com/r-lib/ragg", + "RemoteRef": "v1.5.0", + "RemoteSha": "0ca12a78be048fcb89f2320ae33b3f4fe642925d" }, "randomNames": { "Package": "randomNames", @@ -5433,7 +5420,7 @@ "NeedsCompilation": "no", "Author": "Gábor Csárdi [aut, cre], Jim Hester [aut], Hadley Wickham [aut], Winston Chang [aut], Martin Morgan [aut], Dan Tenenbaum [aut], Posit Software, PBC [cph, fnd], Ascent Digital Services [cph]", "Maintainer": "Gábor Csárdi ", - "Repository": "CRAN" + "Repository": "https://packagemanager.posit.co/cran/__linux__/noble/latest" }, "renv": { "Package": "renv", @@ -5722,40 +5709,6 @@ "Maintainer": "Yihui Xie ", "Repository": "CRAN" }, - "rprojroot": { - "Package": "rprojroot", - "Version": "2.1.1", - "Source": "Repository", - "Title": "Finding Files in Project Subdirectories", - "Authors@R": "person(given = \"Kirill\", family = \"M\\u00fcller\", role = c(\"aut\", \"cre\"), email = \"kirill@cynkra.com\", comment = c(ORCID = \"0000-0002-1416-3412\"))", - "Description": "Robust, reliable and flexible paths to files below a project root. The 'root' of a project is defined as a directory that matches a certain criterion, e.g., it contains a certain regular file.", - "License": "MIT + file LICENSE", - "URL": "https://rprojroot.r-lib.org/, https://github.com/r-lib/rprojroot", - "BugReports": "https://github.com/r-lib/rprojroot/issues", - "Depends": [ - "R (>= 3.0.0)" - ], - "Suggests": [ - "covr", - "knitr", - "lifecycle", - "rlang", - "rmarkdown", - "testthat (>= 3.2.0)", - "withr" - ], - "VignetteBuilder": "knitr", - "Config/testthat/edition": "3", - "Encoding": "UTF-8", - "RoxygenNote": "7.3.2.9000", - "Config/autostyle/scope": "line_breaks", - "Config/autostyle/strict": "true", - "Config/Needs/website": "tidyverse/tidytemplate", - "NeedsCompilation": "no", - "Author": "Kirill Müller [aut, cre] (ORCID: )", - "Maintainer": "Kirill Müller ", - "Repository": "CRAN" - }, "rstan": { "Package": "rstan", "Version": "2.32.7", @@ -6078,7 +6031,7 @@ }, "simulist": { "Package": "simulist", - "Version": "0.6.0", + "Version": "0.7.0", "Source": "Repository", "Title": "Simulate Disease Outbreak Line List and Contacts Data", "Authors@R": "c( person(\"Joshua W.\", \"Lambert\", , \"joshua.lambert@lshtm.ac.uk\", role = c(\"aut\", \"cre\", \"cph\"), comment = c(ORCID = \"0000-0001-5218-3046\")), person(\"Carmen\", \"Tamayo Cuartero\", , \"carmen.tamayo-cuartero@lshtm.ac.uk\", role = \"aut\", comment = c(ORCID = \"0000-0003-4184-2864\")), person(\"Hugo\", \"Gruson\", , \"hugo@data.org\", role = c(\"ctb\", \"rev\"), comment = c(ORCID = \"0000-0002-4094-1476\")), person(\"Pratik R.\", \"Gupte\", , \"pratik.gupte@lshtm.ac.uk\", role = c(\"ctb\", \"rev\"), comment = c(ORCID = \"0000-0001-5294-7819\")), person(\"Adam\", \"Kucharski\", , \"adam.kucharski@lshtm.ac.uk\", role = \"rev\", comment = c(ORCID = \"0000-0001-8814-9421\")), person(\"Chris\", \"Hartgerink\", , \"chris@data.org\", role = \"rev\", comment = c(ORCID = \"0000-0003-1050-6809\")), person(\"Sebastian\", \"Funk\", , \"sebastian.funk@lshtm.ac.uk\", role = \"ctb\", comment = c(ORCID = \"0000-0002-2842-3406\")), person(\"London School of Hygiene and Tropical Medicine, LSHTM\", role = \"cph\", comment = c(ROR = \"00a0jsq62\")) )", @@ -6114,7 +6067,7 @@ "Config/testthat/edition": "3", "Encoding": "UTF-8", "Language": "en-GB", - "RoxygenNote": "7.3.2", + "RoxygenNote": "7.3.3", "NeedsCompilation": "no", "Author": "Joshua W. Lambert [aut, cre, cph] (ORCID: ), Carmen Tamayo Cuartero [aut] (ORCID: ), Hugo Gruson [ctb, rev] (ORCID: ), Pratik R. Gupte [ctb, rev] (ORCID: ), Adam Kucharski [rev] (ORCID: ), Chris Hartgerink [rev] (ORCID: ), Sebastian Funk [ctb] (ORCID: ), London School of Hygiene and Tropical Medicine, LSHTM [cph] (ROR: )", "Maintainer": "Joshua W. Lambert ", @@ -6206,10 +6159,10 @@ }, "socialmixr": { "Package": "socialmixr", - "Version": "0.5.0", + "Version": "0.5.1", "Source": "Repository", "Title": "Social Mixing Matrices for Infectious Disease Modelling", - "Authors@R": "c( person(\"Sebastian\", \"Funk\", , \"sebastian.funk@lshtm.ac.uk\", role = c(\"aut\", \"cre\")), person(\"Lander\", \"Willem\", role = \"aut\"), person(\"Hugo\", \"Gruson\", role = \"aut\"), person(\"Maria\", \"Bekker-Nielsen Dunbar\", role = \"ctb\"), person(\"Carl A. B.\", \"Pearson\", role = \"ctb\"), person(\"Sam\", \"Clifford\", , \"sj.clifford@gmail.com\", role = \"ctb\"), person(\"Christopher\", \"Jarvis\", role = \"ctb\"), person(\"Alexis\", \"Robert\", , \"alexis.robert@lshtm.ac.uk\", role = \"ctb\"), person(\"Niel\", \"Hens\", role = \"ctb\"), person(\"Pietro\", \"Coletti\", role = c(\"col\", \"dtm\")), person(\"Lloyd\", \"Chapman\", , \"l.chapman4@lancaster.ac.uk\", role = \"ctb\") )", + "Authors@R": "c( person(\"Sebastian\", \"Funk\", , \"sebastian.funk@lshtm.ac.uk\", role = c(\"aut\", \"cre\")), person(\"Lander\", \"Willem\", role = \"aut\"), person(\"Hugo\", \"Gruson\", role = \"aut\"), person(\"Nicholas\", \"Tierney\", , \"nicholas.tierney@gmail.com\", role = \"aut\", comment = c(ORCID = \"0000-0003-1460-8722\")), person(\"Maria\", \"Bekker-Nielsen Dunbar\", role = \"ctb\"), person(\"Carl A. B.\", \"Pearson\", role = \"ctb\"), person(\"Sam\", \"Clifford\", , \"sj.clifford@gmail.com\", role = \"ctb\"), person(\"Christopher\", \"Jarvis\", role = \"ctb\"), person(\"Alexis\", \"Robert\", , \"alexis.robert@lshtm.ac.uk\", role = \"ctb\"), person(\"Niel\", \"Hens\", role = \"ctb\"), person(\"Pietro\", \"Coletti\", role = c(\"col\", \"dtm\")), person(\"Lloyd\", \"Chapman\", , \"l.chapman4@lancaster.ac.uk\", role = \"ctb\") )", "Description": "Provides methods for sampling contact matrices from diary data for use in infectious disease modelling, as discussed in Mossong et al. (2008) .", "License": "MIT + file LICENSE", "Depends": [ @@ -6235,6 +6188,7 @@ "methods" ], "Suggests": [ + "contactsurveys", "ggplot2", "here", "knitr", @@ -6253,7 +6207,7 @@ "URL": "https://github.com/epiforecasts/socialmixr, https://epiforecasts.io/socialmixr/", "BugReports": "https://github.com/epiforecasts/socialmixr/issues", "Config/testthat/edition": "3", - "Author": "Sebastian Funk [aut, cre], Lander Willem [aut], Hugo Gruson [aut], Maria Bekker-Nielsen Dunbar [ctb], Carl A. B. Pearson [ctb], Sam Clifford [ctb], Christopher Jarvis [ctb], Alexis Robert [ctb], Niel Hens [ctb], Pietro Coletti [col, dtm], Lloyd Chapman [ctb]", + "Author": "Sebastian Funk [aut, cre], Lander Willem [aut], Hugo Gruson [aut], Nicholas Tierney [aut] (ORCID: ), Maria Bekker-Nielsen Dunbar [ctb], Carl A. B. Pearson [ctb], Sam Clifford [ctb], Christopher Jarvis [ctb], Alexis Robert [ctb], Niel Hens [ctb], Pietro Coletti [col, dtm], Lloyd Chapman [ctb]", "Maintainer": "Sebastian Funk ", "Repository": "CRAN" }, @@ -6373,11 +6327,11 @@ }, "survival": { "Package": "survival", - "Version": "3.8-6", + "Version": "3.5-8", "Source": "Repository", "Title": "Survival Analysis", "Priority": "recommended", - "Date": "2026-01-09", + "Date": "2024-02-13", "Depends": [ "R (>= 3.5.0)" ], @@ -6466,12 +6420,18 @@ "Config/Needs/website": "tidyverse/tidytemplate", "Config/usethis/last-upkeep": "2025-04-23", "Encoding": "UTF-8", + "Roxygen": "list(markdown = TRUE)", "RoxygenNote": "7.3.2", "SystemRequirements": "fontconfig, freetype2", + "Config/pak/sysreqs": "libfontconfig1-dev libfreetype6-dev", + "Repository": "https://carpentries.r-universe.dev", "NeedsCompilation": "yes", "Author": "Thomas Lin Pedersen [aut, cre] (ORCID: ), Jeroen Ooms [aut] (ORCID: ), Devon Govett [aut] (Author of font-manager), Posit Software, PBC [cph, fnd] (ROR: )", "Maintainer": "Thomas Lin Pedersen ", - "Repository": "CRAN" + "RemoteType": "repository", + "RemoteUrl": "https://github.com/r-lib/systemfonts", + "RemoteRef": "v1.3.1", + "RemoteSha": "cbb69fb67798b2f27bc88bd693fec705524e7281" }, "tensorA": { "Package": "tensorA", @@ -6491,68 +6451,6 @@ "NeedsCompilation": "yes", "Repository": "CRAN" }, - "testthat": { - "Package": "testthat", - "Version": "3.3.2", - "Source": "Repository", - "Title": "Unit Testing for R", - "Authors@R": "c( person(\"Hadley\", \"Wickham\", , \"hadley@posit.co\", role = c(\"aut\", \"cre\")), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")), person(\"R Core team\", role = \"ctb\", comment = \"Implementation of utils::recover()\") )", - "Description": "Software testing is important, but, in part because it is frustrating and boring, many of us avoid it. 'testthat' is a testing framework for R that is easy to learn and use, and integrates with your existing 'workflow'.", - "License": "MIT + file LICENSE", - "URL": "https://testthat.r-lib.org, https://github.com/r-lib/testthat", - "BugReports": "https://github.com/r-lib/testthat/issues", - "Depends": [ - "R (>= 4.1.0)" - ], - "Imports": [ - "brio (>= 1.1.5)", - "callr (>= 3.7.6)", - "cli (>= 3.6.5)", - "desc (>= 1.4.3)", - "evaluate (>= 1.0.4)", - "jsonlite (>= 2.0.0)", - "lifecycle (>= 1.0.4)", - "magrittr (>= 2.0.3)", - "methods", - "pkgload (>= 1.4.0)", - "praise (>= 1.0.0)", - "processx (>= 3.8.6)", - "ps (>= 1.9.1)", - "R6 (>= 2.6.1)", - "rlang (>= 1.1.6)", - "utils", - "waldo (>= 0.6.2)", - "withr (>= 3.0.2)" - ], - "Suggests": [ - "covr", - "curl (>= 0.9.5)", - "diffviewer (>= 0.1.0)", - "digest (>= 0.6.33)", - "gh", - "knitr", - "otel", - "otelsdk", - "rmarkdown", - "rstudioapi", - "S7", - "shiny", - "usethis", - "vctrs (>= 0.1.0)", - "xml2" - ], - "VignetteBuilder": "knitr", - "Config/Needs/website": "tidyverse/tidytemplate", - "Config/testthat/edition": "3", - "Config/testthat/parallel": "true", - "Config/testthat/start-first": "watcher, parallel*", - "Encoding": "UTF-8", - "RoxygenNote": "7.3.3", - "NeedsCompilation": "yes", - "Author": "Hadley Wickham [aut, cre], Posit Software, PBC [cph, fnd], R Core team [ctb] (Implementation of utils::recover())", - "Maintainer": "Hadley Wickham ", - "Repository": "CRAN" - }, "textshaping": { "Package": "textshaping", "Version": "1.0.4", @@ -6912,9 +6810,9 @@ }, "toOrdinal": { "Package": "toOrdinal", - "Version": "1.3-0.0", + "Version": "1.4-0.0", "Source": "Repository", - "Date": "2022-2-18", + "Date": "2026-2-5", "Title": "Cardinal to Ordinal Number & Date Conversion", "Description": "Language specific cardinal to ordinal number conversion.", "Authors@R": "c(person(given=c(\"Damian\", \"W.\"), family=\"Betebenner\", email=\"dbetebenner@nciea.org\", role=c(\"aut\", \"cre\")), person(given=\"Andrew\", family=\"Martin\", role=\"ctb\"), person(given=\"Jeff\", family=\"Erickson\", role=\"ctb\"))", @@ -6924,11 +6822,12 @@ ], "Suggests": [ "knitr", - "rmarkdown" + "rmarkdown", + "testthat" ], "Imports": [ "crayon", - "testthat" + "pkgsearch" ], "URL": "https://centerforassessment.github.io/toOrdinal/, https://github.com/centerforassessment/toOrdinal/, https://cran.r-project.org/package=toOrdinal", "BugReports": "https://github.com/centerforassessment/toOrdinal/issues/", @@ -7092,11 +6991,11 @@ }, "viridisLite": { "Package": "viridisLite", - "Version": "0.4.2", + "Version": "0.4.3", "Source": "Repository", "Type": "Package", "Title": "Colorblind-Friendly Color Maps (Lite Version)", - "Date": "2023-05-02", + "Date": "2026-02-03", "Authors@R": "c( person(\"Simon\", \"Garnier\", email = \"garnier@njit.edu\", role = c(\"aut\", \"cre\")), person(\"Noam\", \"Ross\", email = \"noam.ross@gmail.com\", role = c(\"ctb\", \"cph\")), person(\"Bob\", \"Rudis\", email = \"bob@rud.is\", role = c(\"ctb\", \"cph\")), person(\"Marco\", \"Sciaini\", email = \"sciaini.marco@gmail.com\", role = c(\"ctb\", \"cph\")), person(\"Antônio Pedro\", \"Camargo\", role = c(\"ctb\", \"cph\")), person(\"Cédric\", \"Scherer\", email = \"scherer@izw-berlin.de\", role = c(\"ctb\", \"cph\")) )", "Maintainer": "Simon Garnier ", "Description": "Color maps designed to improve graph readability for readers with common forms of color blindness and/or color vision deficiency. The color maps are also perceptually-uniform, both in regular form and also when converted to black-and-white for printing. This is the 'lite' version of the 'viridis' package that also contains 'ggplot2' bindings for discrete and continuous color and fill scales and can be found at .", @@ -7113,7 +7012,7 @@ ], "URL": "https://sjmgarnier.github.io/viridisLite/, https://github.com/sjmgarnier/viridisLite/", "BugReports": "https://github.com/sjmgarnier/viridisLite/issues/", - "RoxygenNote": "7.2.3", + "RoxygenNote": "7.3.3", "NeedsCompilation": "no", "Author": "Simon Garnier [aut, cre], Noam Ross [ctb, cph], Bob Rudis [ctb, cph], Marco Sciaini [ctb, cph], Antônio Pedro Camargo [ctb, cph], Cédric Scherer [ctb, cph]", "Repository": "CRAN" @@ -7283,43 +7182,6 @@ "Maintainer": "Jennifer Bryan ", "Repository": "CRAN" }, - "waldo": { - "Package": "waldo", - "Version": "0.6.2", - "Source": "Repository", - "Title": "Find Differences Between R Objects", - "Authors@R": "c( person(\"Hadley\", \"Wickham\", , \"hadley@posit.co\", role = c(\"aut\", \"cre\")), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")) )", - "Description": "Compare complex R objects and reveal the key differences. Designed particularly for use in testing packages where being able to quickly isolate key differences makes understanding test failures much easier.", - "License": "MIT + file LICENSE", - "URL": "https://waldo.r-lib.org, https://github.com/r-lib/waldo", - "BugReports": "https://github.com/r-lib/waldo/issues", - "Depends": [ - "R (>= 4.0)" - ], - "Imports": [ - "cli", - "diffobj (>= 0.3.4)", - "glue", - "methods", - "rlang (>= 1.1.0)" - ], - "Suggests": [ - "bit64", - "R6", - "S7", - "testthat (>= 3.0.0)", - "withr", - "xml2" - ], - "Config/Needs/website": "tidyverse/tidytemplate", - "Config/testthat/edition": "3", - "Encoding": "UTF-8", - "RoxygenNote": "7.3.2", - "NeedsCompilation": "no", - "Author": "Hadley Wickham [aut, cre], Posit Software, PBC [cph, fnd]", - "Maintainer": "Hadley Wickham ", - "Repository": "CRAN" - }, "withr": { "Package": "withr", "Version": "3.0.2",