knitr::opts_chunk$set( collapse = TRUE, comment = "#>", gganimate = list( nframes = 0 ), out.width = "100%" ) knitr::opts_chunk$set(echo = TRUE, warning = FALSE, message = FALSE, fig.dim = c(12, 5))
suppressPackageStartupMessages({ library(covmuller) library(COVID19) library(tidyverse) }) theme_set(CovmullerTheme())
gisaid_metadata <- qs::qread("~/data/epicov/metadata_tsv_2024_04_11.qs") gisaid_germany <- gisaid_metadata %>% filter(Country == "Germany") %>% filter(Host == "Human") # format metadata gisaid_germany <- FormatGISAIDMetadata(gisaid_germany) gisaid_germany <- gisaid_germany %>% arrange(State, MonthYearCollected) %>% filter(pangolin_lineage != "Unknown") vocs <- GetVOCs() custom_voc_mapping <- list( `JN.1` = "JN.1", `JN.1.*` = "JN.1", `HV.1` = "HV.1", `HV.1.*` = "HV.1", `B.1` = "B.1", `B.1.1.306` = "B.1", `B.1.1.306.*` = "B.1", `B.1.1.326` = "B.1", `B.1.36.29` = "B.1", `B.1.560` = "B.1", `B.1.1` = "B.1", `B.1.210` = "B.1", `B.1.36.8` = "B.1", `B.1.36` = "B.1", `B.1.36.*` = "B.1" ) gisaid_germany <- gisaid_germany %>% filter(pangolin_lineage != "None") gisaid_germany <- CollapseLineageToVOCs( variant_df = gisaid_germany, vocs = vocs, custom_voc_mapping = custom_voc_mapping, summarize = FALSE )
GetCases <- function() { data <- read.csv("https://raw.githubusercontent.com/owid/covid-19-data/master/public/data/cases_deaths/new_cases.csv") confirmed <- data %>% select(date, Germany) colnames(confirmed)[2] <- c("cases") confirmed$MonthYear <- GetMonthYear(confirmed$date) confirmed$WeekYear <- tsibble::yearweek(confirmed$date) return(confirmed) } GetCasesLong <- function() { data <- read.csv("https://raw.githubusercontent.com/owid/covid-19-data/master/public/data/cases_deaths/new_cases.csv") confirmed <- data %>% select(date, Germany) colnames(confirmed)[2] <- c("cases") confirmed$MonthYear <- GetMonthYear(confirmed$date) confirmed$WeekYear <- tsibble::yearweek(confirmed$date) confirmed_subset_weekwise <- confirmed %>% group_by(WeekYear) %>% summarise(cases = mean(cases, na.rm = T)) %>% arrange(WeekYear) confirmed_subset_weekwise$cases <- ceiling(confirmed_subset_weekwise$cases) confirmed_subset_dateweekwise_long_india <- confirmed_subset_weekwise %>% rename(n = cases) %>% rename(WeekYearCollected = WeekYear) } confirmed <- GetCases() confirmed_subset_dateweekwise_long <- GetCasesLong() gisaid_germany_weekwise <- SummarizeVariantsWeekwise(gisaid_germany)
state_month_counts <- SummarizeVariantsMonthwise(gisaid_germany) state_month_counts$State <- "Germany" state_month_prevalence <- CountsToPrevalence(state_month_counts) vocs <- GetVOCs() state_month_prevalence <- CollapseLineageToVOCs( variant_df = state_month_prevalence, vocs = vocs, custom_voc_mapping = custom_voc_mapping, summarize = FALSE ) p5 <- StackedBarPlotPrevalence(state_month_prevalence) p5
voc_to_keep <- gisaid_germany_weekwise %>% group_by(lineage_collapsed) %>% summarise(n_sum = sum(n)) %>% filter(n_sum > 50) %>% pull(lineage_collapsed) %>% unique() gisaid_germany_weekwise <- gisaid_germany_weekwise %>% filter(lineage_collapsed %in% voc_to_keep) germany_cases_pred_prob_sel_long <- FitMultinomWeekly(gisaid_germany_weekwise, confirmed_subset_dateweekwise_long) the_anim <- PlotVariantPrevalenceAnimated(germany_cases_pred_prob_sel_long, title = "Estimated cases (weekly average) in Germany by variant", caption = "**Source: gisaid.org and ourworldindata.org/coronavirus**<br>", date_breaks = "100 days") gganimate::anim_save(filename = here::here("docs/articles/Germany_animated.gif"), animation = the_anim)
Look at cases from 2022,
confirmed_subset_dateweekwise_long <- GetCasesLong() %>% filter(WeekYearCollected >= tsibble::yearweek("2021 W35")) gisaid_germany_subset <- gisaid_germany %>% filter(MonthYearCollected > "Oct 2021") gisaid_germany_weekwise <- SummarizeVariantsWeekwise(gisaid_germany_subset) voc_to_keep <- gisaid_germany_weekwise %>% group_by(lineage_collapsed) %>% summarise(n_sum = sum(n)) %>% filter(n_sum > 50) %>% pull(lineage_collapsed) %>% unique() gisaid_germany_weekwise <- gisaid_germany_weekwise %>% filter(lineage_collapsed %in% voc_to_keep) germany_cases_pred_prob_sel_long <- FitMultinomWeekly(gisaid_germany_weekwise, confirmed_subset_dateweekwise_long) the_anim <- PlotVariantPrevalenceAnimated(germany_cases_pred_prob_sel_long, title = "Estimated cases (weekly average) in Germany by variant", caption = "**Source: gisaid.org and ourworldindata.org/coronavirus**<br>", date_breaks = "100 days") gganimate::anim_save(filename = here::here("docs/articles/Germany_animated_2021.gif"), animation = the_anim)
Look at cases from 2023
confirmed_subset_dateweekwise_long <- GetCasesLong() %>% filter(WeekYearCollected >= tsibble::yearweek("2022 W35")) gisaid_germany_subset <- gisaid_germany %>% filter(MonthYearCollected > "October 2022") gisaid_germany_weekwise <- SummarizeVariantsWeekwise(gisaid_germany_subset) voc_to_keep <- gisaid_germany_weekwise %>% group_by(lineage_collapsed) %>% summarise(n_sum = sum(n)) %>% filter(n_sum > 50) %>% pull(lineage_collapsed) %>% unique() gisaid_germany_weekwise <- gisaid_germany_weekwise %>% filter(lineage_collapsed %in% voc_to_keep) germany_cases_pred_prob_sel_long <- FitMultinomWeekly(gisaid_germany_weekwise, confirmed_subset_dateweekwise_long) the_anim <- PlotVariantPrevalenceAnimated(germany_cases_pred_prob_sel_long, title = "Estimated cases (weekly average) in Germany by variant", caption = "**Source: gisaid.org and ourworldindata.org/coronavirus**<br>") gganimate::anim_save(filename = here::here("docs/articles/Germany_animated_2023.gif"), animation = the_anim)
Look at cases in the past few weeks
confirmed_subset_dateweekwise_long <- GetCasesLong() %>% filter(WeekYearCollected >= tsibble::yearweek("2023 W23")) gisaid_germany_subset <- gisaid_germany %>% filter(MonthYearCollected > "June 2023") gisaid_germany_weekwise <- SummarizeVariantsWeekwise(gisaid_germany_subset) voc_to_keep <- gisaid_germany_weekwise %>% group_by(lineage_collapsed) %>% summarise(n_sum = sum(n)) %>% filter(n_sum > 50) %>% pull(lineage_collapsed) %>% unique() gisaid_germany_weekwise <- gisaid_germany_weekwise %>% filter(lineage_collapsed %in% voc_to_keep) germany_cases_pred_prob_sel_long <- FitMultinomWeekly(gisaid_germany_weekwise, confirmed_subset_dateweekwise_long) the_anim <- PlotVariantPrevalenceAnimated(germany_cases_pred_prob_sel_long, title = "Estimated cases (weekly average) in Germany by variant", caption = "**Source: gisaid.org and ourworldindata.org/coronavirus**<br>") gganimate::anim_save(filename = here::here("docs/articles/Germany_animated_2024.gif"), animation = the_anim)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.