Model infectious disease dynamics in populations with multiple subgroups having different vaccination rates, transmission characteristics, and contact patterns. Calculate final and intermediate outbre
HealthR · C++GitHub @EpiForeSITEOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Model infectious disease dynamics in populations with multiple subgroups having different vaccination rates, transmission characteristics, and contact patterns. Calculate final and intermediate outbreak sizes, form age-structured contact models with automatic fetching of U.S. census data, and explore vaccination scenarios with an interactive shiny dashboard for a model with two subgroups, as described in Nguyen et al. (2024) <doi:10.1016/j.jval.2024.03.039> and Duong et al. (2026) <doi:10.1093/o
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
multigroup.vaccine models infectious disease dynamics in populations
with multiple distinct subgroups that can have:
• Different vaccination rates
• Different susceptibility and/or transmissibility characteristics
• Different contact rates and patterns between and within groups
The package provides both an interactive shiny dashboard for a simple
two-group example and programmatic R functions for epidemiological
modeling and outbreak forecasting.
The package depends on the following R packages:Read the full README ↗[!NOTE] How to cite multigroup.vaccine. If you use multigroup.vaccine in published work, please cite it:
Toth D, Wagoner J, Ray W, Vega Yon G. multigroup.vaccine: Analyze Outbreak Models of Multi-Group Populations with Vaccination. doi:10.32614/CRAN.package.multigroup.vaccine
Run
citation("multigroup.vaccine")in R for the BibTeX entry.
multigroup.vaccine models infectious disease dynamics in populations
with multiple distinct subgroups that can have:
The package provides both an interactive shiny dashboard for a simple
two-group example and programmatic R functions for epidemiological
modeling and outbreak forecasting.
install.packages("multigroup.vaccine")
install.packages("multigroup.vaccine",
repos = "https://epiforesite.r-universe.dev")
# install.packages("remotes")
remotes::install_github("EpiForeSITE/multigroup-vaccine")
The package depends on the following R packages:
deSolve, graphics, shiny, stats, bslib (>=
0.9.0), htmltools, socialmixrknitr, rmarkdown, testthat (>= 3.0.0)Launch the shiny dashboard for interactive modeling:
library(multigroup.vaccine)
run_my_app()
The dashboard models two distinct sub-populations with differential within-group and across-group contact rates and different vaccination adherence levels. See Nguyen et al. (2024) and Duong et al. (2026) for more details on this modeling approach.
You can also use the package functions directly in R scripts. Here’s an example of comparing populations with different vaccination rates:
# Compare two populations with different vaccination rates
results <- finalsize(
popsize = c(10000, 10000), # Equal population sizes
R0 = 2, # Basic reproduction number
contactmatrix = matrix(1, 2, 2), # Equal and symmetric group-to-group contact
relsusc = c(1, 1), # Equal group susceptibility per at-risk contact
reltransm = c(1, 1), # Equal group transmissibility per at-risk contact
initR = c(0, 0), # Initially none previously infected & immune (R)
initI = c(1, 0), # One initial infectious case (I) in first group
initV = c(1000, 2000), # Initial numbers immune by vaccination (V)
method = "analytic" # Solve for final size analytically
)
print(results)
For examples of other functions or more complex scenarios, see the package vignettes.
shiny dashboard for scenario explorationComprehensive documentation and vignettes are available at: https://epiforesite.github.io/multigroup-vaccine/
View all available vignettes:
browseVignettes("multigroup.vaccine")
finalsize(): Master function for final outbreak size calculations
and simulationscontactMatrixPropPref(): Generate contact matrices from
proportionate mixing and preferential contact assumptionscontactMatrixPolymod(): Generate age-structured contact matrices
from POLYMOD datagetCensusData(): Download and process US Census Bureau population
data for age group-structured modelsrun_my_app(): Launch the interactive shiny dashboard for a
two-group modelIf you use this package in your research, please obtain citation information in R:
citation("multigroup.vaccine")
For local development:
# Clone the repository
# git clone https://github.com/EpiForeSITE/multigroup-vaccine.git
# Install development dependencies
install.packages(c("devtools", "roxygen2", "pkgdown", "lintr"))
# Load the package for development
devtools::load_all()
# Run tests
devtools::test()
# Check package
devtools::check()
This project is licensed under the MIT License - see the LICENSE.md file for details.
This package is part of the EpiForeSITE software ecosystem developed by the ForeSITE Group at the University of Utah. Development was supported by the Centers for Disease Control and Prevention’s Center for Forecasting and Outbreak Analytics (Cooperative agreement CDC-RFA-FT-23-0069).