Skip to content

Commit a08f66f

Browse files
authored
Merge branch 'midas-network:main' into main
2 parents b7cd4ae + 4d69676 commit a08f66f

16 files changed

Lines changed: 15657 additions & 15033 deletions

.github/requirement_validation.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Packages required for the truth data update (update 20250508)
2+
gh
3+
hubValidations
4+
jsonlite
5+
purrr
6+
remotes
7+
SMHvalidation
8+
stringr
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: Validation Cache Install
2+
3+
on:
4+
# push:
5+
# branch:
6+
# - main
7+
workflow_dispatch:
8+
9+
jobs:
10+
cache-R-library:
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- name: Checkout repository
15+
uses: actions/checkout@v4
16+
with:
17+
fetch-depth: 1
18+
sparse-checkout: '.github'
19+
20+
- name: Setup R
21+
uses: r-lib/actions/setup-r@v2
22+
23+
- name: Install system dependencies
24+
run: sudo apt-get install libcurl4-openssl-dev libharfbuzz-dev libfribidi-dev libarchive-dev libudunits2-dev libgdal-dev libfontconfig1-dev
25+
26+
- name: Cache R packages
27+
if: runner.os != 'Windows'
28+
uses: actions/cache@v4
29+
with:
30+
path: ${{ env.R_LIBS_USER }}
31+
key: ${{ runner.os }}-${{ hashFiles('.github/requirement_validation.txt') }}-1
32+
33+
- name: Install dependencies
34+
if: steps.cache.outputs.cache-hit != 'true'
35+
run: |
36+
R -e 'Sys.setenv("NOT_CRAN" = TRUE)
37+
install.packages(c("purrr", "stringr", "gh", "remotes", "jsonlite"))
38+
install.packages("hubValidations", repos = c("https://hubverse-org.r-universe.dev", "https://cloud.r-project.org"))
39+
Sys.unsetenv("NOT_CRAN")
40+
remotes::install_url("https://github.com/midas-network/SMHvalidation/archive/refs/heads/main.zip")'
41+
env:
42+
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/validation.yml

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
name: Validate
2+
on:
3+
pull_request_target:
4+
types: [synchronize, opened, reopened]
5+
branches:
6+
- main
7+
paths:
8+
- 'model-output/**.parquet'
9+
- 'model-metadata/*'
10+
- '!**README**'
11+
12+
jobs:
13+
validates-files:
14+
runs-on: ubuntu-latest
15+
16+
env:
17+
GH_PR_NUMBER: ${{ github.event.pull_request.number }}
18+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
19+
20+
steps:
21+
- name: Checkout repository
22+
uses: actions/checkout@v3
23+
with:
24+
ref: ${{ github.event.pull_request.head.sha }}
25+
fetch-depth: 1
26+
sparse-checkout: |
27+
.github/
28+
src
29+
hub-config
30+
model-output/
31+
model-metadata/
32+
33+
- name: Setup R
34+
uses: r-lib/actions/setup-r@v2
35+
36+
- name: Install system dependencies
37+
run: sudo apt-get install libcurl4-openssl-dev libudunits2-dev libgdal-dev
38+
39+
- name: Cache R packages
40+
id: cache
41+
uses: actions/cache@v4
42+
with:
43+
path: ${{ env.R_LIBS_USER }}
44+
key: ${{ runner.os }}-${{ hashFiles('.github/requirement_validation.txt') }}-1
45+
46+
- name: Install dependencies
47+
if: ( steps.cache.outputs.cache-hit != 'true' )
48+
run: |
49+
R -e 'Sys.setenv("NOT_CRAN" = TRUE)
50+
install.packages(c("arrow", "gh", "remotes"))
51+
Sys.unsetenv("NOT_CRAN")
52+
remotes::install_url("https://github.com/midas-network/SMHvalidation/archive/refs/heads/main.zip")'
53+
env:
54+
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
55+
56+
- name: Run Validation - Open/reopen
57+
if: ( github.event.action != 'synchronize' )
58+
run: |
59+
R -e 'source("src/validation.R")
60+
pr_validate(Sys.getenv("GITHUB_REPOSITORY"),
61+
Sys.getenv("GH_PR_NUMBER"), "", ".",
62+
Sys.getenv("GH_TOKEN"))'
63+
64+
- name: Run Validation - Synchronize
65+
if: ( github.event.action == 'synchronize' )
66+
run: |
67+
R -e 'source("src/validation.R")
68+
pr_validate(Sys.getenv("GITHUB_REPOSITORY"),
69+
Sys.getenv("GH_PR_NUMBER"),
70+
Sys.getenv("GH_COMMIT_SHA"), ".",
71+
Sys.getenv("GH_TOKEN"))'
72+
env:
73+
GH_COMMIT_SHA: ${{ github.event.pull_request.head.sha }}
74+

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -405,10 +405,10 @@ metadata and abstract.***
405405
- Projection quantiles for incident outcomes are optional but encouraged.
406406
Similarly projections of cumulative outcomes (either as quantiles or cumulative
407407
trajectories) are optional.
408-
- Weekly incident deaths
409-
- Weekly incident hospitalizations
410-
- Weekly cumulative deaths since simulation start
411-
- Weekly cumulative hospitalizations since simulation start
408+
- Weekly incident deaths
409+
- Weekly incident hospitalizations
410+
- Weekly cumulative deaths since simulation start
411+
- Weekly cumulative hospitalizations since simulation start
412412
- For teams who wish to submit quantiles, the format is in accordance with
413413
prior rounds. We ask for the following quantiles: 0.01, 0.025, 0.05, every 5%
414414
to 0.95, 0.975, and 0.99. Mean is optional.

hub-config/model-metadata-schema.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@
7171
"CC-BY-4.0",
7272
"cc-by_sa-4.0",
7373
"CC-BY_SA-4.0",
74+
"cc-by-sa-4.0",
75+
"CC-BY-SA-4.0",
7476
"NA",
7577
"ppdl",
7678
"PPDL",

hub-config/validation.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"2025-04-27": {
3+
"n_decimal": 1,
4+
"merge_sample_col": ["run_grouping", "stochastic_run"],
5+
"partition": ["origin_date", "target"]
6+
}
7+
}

model-metadata/CFA-Scenarios.yaml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
team_name: "CFA"
2+
team_abbr: "CFA"
3+
model_name: "Scenarios"
4+
model_abbr: "Scenarios"
5+
model_contributors:
6+
[
7+
{
8+
"name": "Laura Albrecht",
9+
"affiliation": "CDC Center for Forecasting and Outbreak Analytics",
10+
"email": "zhw3@cdc.gov",
11+
},
12+
{
13+
"name": "Elisha Are",
14+
"affiliation": "CDC Center for Forecasting and Outbreak Analytics",
15+
"email": "aj00@cdc.gov",
16+
},
17+
{
18+
"name": "Michael Batista",
19+
"affiliation": "CDC Center for Forecasting and Outbreak Analytics",
20+
"email": "upi8@cdc.gov",
21+
},
22+
{
23+
"name": "Ariel Shurygin",
24+
"affiliation": "CDC Center for Forecasting and Outbreak Analytics",
25+
"email": "uva5@cdc.gov",
26+
},
27+
{
28+
"name": "Kok Ben Toh",
29+
"affiliation": "CDC Center for Forecasting and Outbreak Analytics",
30+
"email": "tjk3@cdc.gov",
31+
},
32+
{
33+
"name": "Thomas Hladish",
34+
"affiliation": "CDC Center for Forecasting and Outbreak Analytics",
35+
"email": "utx5@cdc.gov",
36+
},
37+
]
38+
license: "Apache-2.0 or later"
39+
methods: "SEIS multi-strain ODE model with age structure, immune waning, and vaccine and infection history. State-based models are fit to hospitalization and strain prevalence data. US model is an aggregate."
40+
methods_long: "We created state-specific COVID-19 burden projections using a deterministic, modified SEIS model with additional stratifications and partial immunity. Each infection state is stratified by age, immune history, vaccination history, waning status (for Susceptibles), and infecting strain (all other compartments). Immunity is determined by immunogenic events (infections and vaccinations) and time since the most recent event. Protection against infection is strain-specific: past infection with a more similar variant, or vaccination with a better-matched vaccine, provides a higher level of protection against the challenging strain. External introductions of new variants are represented by introducing a small, transient new-variant infection hazard for 18- to 49-year-olds, over a one-month period. Stochastic Variational Inference (SVI) is used to fit 28 parameters for each U.S. state to 39 months of COVID-19 hospitalization and strain prevalence data. For some time periods, hospitalizations are inferred from emergency department visit data. The U.S. national projections are aggregates of the state projections. Hospitalizations are estimated after simulation by applying locale-, immune state-, and age-specific infection-hospitalization ratios that are estimated during the fitting process. Deaths are estimated from hospitalizations by applying age-specific hospitalization-death ratios and sampling from a hospitalization-to-death delay distribution."
41+
model_version: "2025-05-06"
42+
website_url: "https://github.com/cdcgov/DynODE"
43+
data_inputs: "Weekly hospitalization data based on National Healthcare Safety Network (NHSN) from Feb 2022 to Apr 2024, inferred weekly hospital admissions using National Syndromic Surveillance Program (NSSP) emergency department visit data from May 2024 to Apr 2025, and biweekly variant proportion data published by CDC"

model-metadata/UT-ImmunoSEIRS.yaml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
team_name: "University of Texas at Austin"
2+
team_abbr: "UT"
3+
model_name: "UT-ImmunoSEIRS"
4+
model_abbr: "ImmunoSEIRS"
5+
model_contributors: [
6+
{
7+
"name": "Shraddha Ramdas Bandekar",
8+
"affiliation": "The University of Texas at Austin",
9+
"email": "shraddha.bandekar@austin.utexas.edu"
10+
},
11+
{
12+
"name": "Kaiming Bi",
13+
"affiliation": "University of Texas Health Science Center School of Public Health",
14+
"email": "Kaiming.Bi@uth.tmc.edu"
15+
},
16+
{
17+
"name": "Anass Bouchnita",
18+
"affiliation": "The University of Texas at El Paso",
19+
"email": "abouchnita@utep.edu"
20+
},
21+
{
22+
"name": "Spencer J. Fox",
23+
"affiliation": "The University of Georgia",
24+
"email": "sjfox@uga.edu"
25+
},
26+
{
27+
"name": "Lauren Ancel Meyers",
28+
"affiliation": "The University of Texas at Austin",
29+
"email": "laurenmeyers@austin.utexas.edu"
30+
}
31+
]
32+
license: "cc-by-4.0"
33+
methods: "We develop an age stratified model that explicitly tracks the immunity caused by natural infections and vaccination and its impact on the average chances of infection, hospitalization and death."
34+
model_version: "1.0"
35+
website_url: "https://covid-19.tacc.utexas.edu/"
36+

model-metadata/UVA-adaptive.yaml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
team_name: "UVA Biocomplexity Institute"
2+
team_abbr: "UVA"
3+
model_name: adaptive
4+
model_abbr: adaptive
5+
model_version: "v23"
6+
model_contributors:
7+
[
8+
{
9+
"name": "Przemyslaw Porebski",
10+
"affiliation": "UVA",
11+
"email": "pjp2b@virginia.edu",
12+
},
13+
{
14+
"name": "Srinivasan Venkatramanan",
15+
"affiliation": "UVA",
16+
"email": "srini@virginia.edu",
17+
},
18+
{
19+
"name": "Bryan Lewis",
20+
"affiliation": "UVA",
21+
"email": "brylew@virginia.edu",
22+
},
23+
{
24+
"name": "Aniruddha Adiga",
25+
"affiliation": "UVA",
26+
"email": "aa5dw@virginia.edu",
27+
},
28+
{ "name": "Jiangzhuo Chen", "affiliation": "UVA" },
29+
{ "name": "Madhav Marathe", "affiliation": "UVA" },
30+
]
31+
website_url: https://biocomplexity.virginia.edu/project/covid-19-pandemic-response
32+
license: cc-by-4.0
33+
methods: Compartmental model of transmission and disease dynamics using PatchSim
34+
methods_long: |
35+
We use a discrete time SEIR compartmental model with explicit strain modeling fit to observed hospitalizations at the state level. The fitting procedure takes into account variable hospitalization rate, depending on the immune status derived from round 16 results.
36+
Deaths are projected using rescaling of the projected hospitalizations by the current (last 3 weeks) death-to-hospitalization ratio per state.
37+
Uncertainty bounds are obtained by using an experiment design over other model parameters such as infectious/incubation periods, reporting delay and bounds on hospitalization rates. Representative trajectories are selected using K-medoids clustering.
38+
Seasonal effects are modeled by proxy using the fitted effective transmissibility. The observed, smoothed and twp seasons averaged effective transmissibility is assumed in the future.
39+
data_inputs: "Data provided by SMH"
40+
citation: https://doi.org/10.1016/j.epidem.2024.100761
30.7 MB
Binary file not shown.

0 commit comments

Comments
 (0)