From 8495eb70fa91926c8d1ad79d2651ef1f8dd9634d Mon Sep 17 00:00:00 2001 From: lelaboratoire Date: Thu, 3 Jun 2021 14:46:46 -0400 Subject: [PATCH 1/2] revised code --- 10.visualize-gender.Rmd | 153 ++++++++-------- 11.visualize-name-origins.Rmd | 321 +++++++++++++++++++++++++--------- 14.us-name-origin.Rmd | 150 ++++++++-------- 3 files changed, 394 insertions(+), 230 deletions(-) diff --git a/10.visualize-gender.Rmd b/10.visualize-gender.Rmd index 9210729..9e520c6 100644 --- a/10.visualize-gender.Rmd +++ b/10.visualize-gender.Rmd @@ -9,7 +9,7 @@ library(tidyverse) library(lubridate) library(rnaturalearth) library(wru) -source('utils/r-utils.R') +source("utils/r-utils.R") theme_set(theme_bw() + theme(legend.title = element_blank())) ``` @@ -19,17 +19,17 @@ Only keep articles from 2002 because few authors had gender predictions before 2 See [093.summary-stats](docs/093.summary-stats.html) for more details. ```{r} -load('Rdata/raws.Rdata') +load("Rdata/raws.Rdata") alpha_threshold <- qnorm(0.975) -gender_df <- read_tsv('data/gender/genderize.tsv') +gender_df <- read_tsv("data/gender/genderize.tsv") pubmed_gender_df <- corr_authors %>% - filter(year(year) >= 2002) %>% - left_join(gender_df, by = 'fore_name_simple') + filter(year(year) >= 2002) %>% + left_join(gender_df, by = "fore_name_simple") -iscb_gender_df <- keynotes %>% - left_join(gender_df, by = 'fore_name_simple') +iscb_gender_df <- keynotes %>% + left_join(gender_df, by = "fore_name_simple") start_year <- 1993 end_year <- 2019 @@ -48,38 +48,41 @@ n_confs <- length(my_confs) ```{r} iscb_pubmed <- iscb_gender_df %>% - rename('journal' = conference) %>% + rename("journal" = conference) %>% select(year, journal, probability_male, publication_date) %>% - mutate(type = 'Keynote speakers/Fellows', - adjusted_citations = 1) %>% + mutate( + type = "Keynote speakers/Fellows", + adjusted_citations = 1 + ) %>% bind_rows( pubmed_gender_df %>% select(year, journal, probability_male, publication_date, adjusted_citations) %>% - mutate(type = 'Pubmed authors') + mutate(type = "Pubmed authors") + ) %>% + mutate(probability_female = 1 - probability_male) %>% + pivot_longer(contains("probability"), + names_to = "gender", + values_to = "probabilities" ) %>% - mutate(probability_female = 1 - probability_male) %>% - pivot_longer(contains('probability'), - names_to = 'gender', - values_to = 'probabilities') %>% - filter(!is.na(probabilities)) %>% + filter(!is.na(probabilities)) %>% group_by(type, year, gender) %>% mutate( pmc_citations_year = mean(adjusted_citations), - weight = adjusted_citations/pmc_citations_year, - weighted_probs = probabilities*weight + weight = adjusted_citations / pmc_citations_year, + weighted_probs = probabilities * weight # weight = 1 - ) + ) -iscb_pubmed_sum <- iscb_pubmed %>% +iscb_pubmed_sum <- iscb_pubmed %>% summarise( # n = n(), mean_prob = mean(weighted_probs), # mean_prob = mean(probabilities, na.rm = T), # sd_prob = sd(probabilities, na.rm = T), - se_prob = sqrt(var(probabilities) * sum(weight^2)/(sum(weight)^2)), + se_prob = sqrt(var(probabilities) * sum(weight^2) / (sum(weight)^2)), # n = mean(n), me_prob = alpha_threshold * se_prob, - .groups = 'drop' + .groups = "drop" ) # https://stats.stackexchange.com/questions/25895/computing-standard-error-in-weighted-mean-estimation ``` @@ -97,18 +100,18 @@ iscb_pubmed_sum <- iscb_pubmed %>% ```{r fig.height=3} fig_1 <- iscb_pubmed_sum %>% # group_by(year, type, gender) %>% - gender_breakdown('main', fct_rev(type)) + gender_breakdown("main", fct_rev(type)) fig_1 -ggsave('figs/gender_breakdown.png', fig_1, width = 5, height = 2.5) -ggsave('figs/gender_breakdown.svg', fig_1, width = 5, height = 2.5) +ggsave("figs/gender_breakdown.png", fig_1, width = 5, height = 2.5) +ggsave("figs/gender_breakdown.svg", fig_1, width = 5, height = 2.5) ``` ```{r echo=FALSE} iscb_pubmed_sum %>% # group_by(year, type, gender) %>% - # summarise(mean_prob = mean(probabilities, na.rm = T), .groups = 'drop') %>% - filter(year(year) > 2016, grepl('female', gender)) %>% - group_by(type) %>% + # summarise(mean_prob = mean(probabilities, na.rm = T), .groups = 'drop') %>% + filter(year(year) > 2016, grepl("female", gender)) %>% + group_by(type) %>% summarise(prob_female_avg = mean(mean_prob)) ``` @@ -121,22 +124,23 @@ fig_1d <- iscb_pubmed %>% ungroup() %>% mutate( type2 = case_when( - type == 'Pubmed authors' ~ 'Pubmed authors', - journal == 'ISCB Fellow' ~ 'ISCB Fellows', - type == 'Keynote speakers/Fellows' ~ 'Keynote speakers' + type == "Pubmed authors" ~ "Pubmed authors", + journal == "ISCB Fellow" ~ "ISCB Fellows", + type == "Keynote speakers/Fellows" ~ "Keynote speakers" ) ) %>% group_by(type2, year, gender) %>% summarise( mean_prob = mean(weighted_probs), - se_prob = sqrt(var(probabilities) * sum(weight ^ 2) / (sum(weight) ^ - 2)), + se_prob = sqrt(var(probabilities) * sum(weight^2) / (sum(weight)^2)), me_prob = alpha_threshold * se_prob, - .groups = 'drop' + .groups = "drop" ) %>% - gender_breakdown('main', fct_rev(type2)) + - scale_x_date(labels = scales::date_format("'%y"), - expand = c(0, 0)) + gender_breakdown("main", fct_rev(type2)) + + scale_x_date( + labels = scales::date_format("'%y"), + expand = c(0, 0) + ) ``` @@ -148,71 +152,70 @@ fig_1d <- iscb_pubmed %>% # theme(legend.position = 'bottom') # fig_1d -ggsave('figs/fig_s1.png', fig_1d, width = 7, height = 3) -ggsave('figs/fig_s1.svg', fig_1d, width = 7, height = 3) +ggsave("figs/fig_s1.png", fig_1d, width = 7, height = 3) +ggsave("figs/fig_s1.svg", fig_1d, width = 7, height = 3) ``` ## Mean and standard deviation of predicted probabilities ```{r} -iscb_pubmed_sum %>% filter(gender == 'probability_male') %>% - gam_and_ci(df2 = iscb_pubmed %>% filter(gender == 'probability_male'), - start_y = start_year, end_y = end_year) + +iscb_pubmed_sum %>% + filter(gender == "probability_male") %>% + gam_and_ci( + df2 = iscb_pubmed %>% filter(gender == "probability_male"), + start_y = start_year, end_y = end_year + ) + theme(legend.position = c(0.88, 0.2)) ``` ## Hypothesis testing ```{r echo = F} -get_p <- function(inte, colu){ - broom::tidy(inte) %>% - filter(term == 'weighted_probs') %>% - pull(colu) %>% +get_p <- function(inte, colu) { + broom::tidy(inte) %>% + filter(term == "weighted_probs") %>% + pull(colu) %>% sprintf("%0.5g", .) } ``` ```{r} -iscb_lm <- iscb_pubmed %>% - filter(gender == 'probability_female', !is.na(weighted_probs)) %>% - mutate(type = as.factor(type)) %>% - mutate(type = relevel(type, ref = 'Pubmed authors'), - year = as.factor(year)) - -main_lm <- glm(type ~ year + weighted_probs, - data = iscb_lm, family = 'binomial') - -summary(main_lm) +iscb_lm <- iscb_pubmed %>% + filter(gender == "probability_female", !is.na(weighted_probs)) %>% + mutate(type = as.factor(type) %>% relevel(ref = "Pubmed authors")) ``` -The two groups of scientists did not have a significant association with the gender predicted from fore names (_P_ = `r get_p(main_lm, 'p.value')`). -Interaction terms do not predict `type` over and above the main effect of gender probability and year. - ```{r} -scaled_iscb <- iscb_lm +scaled_iscb <- iscb_lm %>% + filter(year(year) >= 2002) # scaled_iscb$s_prob <- scale(scaled_iscb$weighted_probs, scale = F) # scaled_iscb$s_year <- scale(scaled_iscb$year, scale = F) -main_lm <- glm(type ~ year + weighted_probs, - data = scaled_iscb %>% mutate(year = as.factor(year)), - family = 'binomial') -summary(main_lm) +main_lm <- glm(type ~ year + weighted_probs, + data = scaled_iscb, # %>% mutate(year = as.factor(year)) + family = "binomial" +) + +broom::tidy(main_lm) inte_lm <- glm( # type ~ scale(year, scale = F) * scale(weighted_probs, scale = F), - # type ~ s_year * s_prob, + # type ~ s_year * s_prob, type ~ year * weighted_probs, - data = scaled_iscb %>% mutate(year = as.factor(year)) - , - family = 'binomial') -summary(inte_lm) -anova(main_lm, inte_lm, test = 'Chisq') -mean(scaled_iscb$year) -mean(scaled_iscb$weighted_probs) + data = scaled_iscb, # %>% mutate(year = as.factor(year)) + family = "binomial" +) +broom::tidy(inte_lm) +anova(main_lm, inte_lm, test = "Chisq") +# mean(scaled_iscb$year) +# mean(scaled_iscb$weighted_probs) ``` -```{r} -# inte_lm <- glm(type ~ (year * weighted_probs), -# data = iscb_lm, +The two groups of scientists did not have a significant association with the gender predicted from fore names (_P_ = `r get_p(main_lm, 'p.value')`). +Interaction terms do not predict `type` over and above the main effect of gender probability and year. + +```{r include=FALSE, eval=FALSE} +# inte_lm <- glm(type ~ (year * weighted_probs), +# data = iscb_lm, # family = 'binomial') ``` diff --git a/11.visualize-name-origins.Rmd b/11.visualize-name-origins.Rmd index 4286182..719ef2f 100644 --- a/11.visualize-name-origins.Rmd +++ b/11.visualize-name-origins.Rmd @@ -6,7 +6,7 @@ title: "Representation analysis of name origins" library(tidyverse) library(lubridate) library(rnaturalearth) -source('utils/r-utils.R') +source("utils/r-utils.R") theme_set(theme_bw() + theme(legend.title = element_blank())) ``` @@ -15,17 +15,17 @@ See [093.summary-stats](docs/093.summary-stats.html) for more details. ```{r} alpha_threshold <- qnorm(0.975) -load('Rdata/raws.Rdata') +load("Rdata/raws.Rdata") pubmed_nat_df <- corr_authors %>% - filter(year(year) >= 2002) %>% - left_join(nationalize_df, by = c('fore_name', 'last_name')) %>% + filter(year(year) >= 2002) %>% + left_join(nationalize_df, by = c("fore_name", "last_name")) %>% group_by(pmid, journal, publication_date, year, adjusted_citations) %>% summarise_at(vars(African:SouthAsian), mean, na.rm = T) %>% ungroup() iscb_nat_df <- keynotes %>% - left_join(nationalize_df, by = c('fore_name', 'last_name')) + left_join(nationalize_df, by = c("fore_name", "last_name")) start_year <- 1992 end_year <- 2019 @@ -34,34 +34,38 @@ my_jours <- unique(pubmed_nat_df$journal) my_confs <- unique(iscb_nat_df$conference) n_jours <- length(my_jours) n_confs <- length(my_confs) -region_levels <- paste(c('Celtic/English', 'European', 'East Asian', 'Hispanic', 'South Asian', 'Arabic', 'Hebrew', 'African', 'Nordic', 'Greek'), 'names') +region_levels <- paste(c("Celtic/English", "European", "East Asian", "Hispanic", "South Asian", "Arabic", "Hebrew", "African", "Nordic", "Greek"), "names") region_levels_let <- toupper(letters[1:8]) -region_cols <- c('#ffffb3', '#fccde5', '#b3de69', '#fdb462', '#80b1d3', '#8dd3c7', '#bebada', '#fb8072', '#bc80bd', '#ccebc5') +region_cols <- c("#ffffb3", "#fccde5", "#b3de69", "#fdb462", "#80b1d3", "#8dd3c7", "#bebada", "#fb8072", "#bc80bd", "#ccebc5") ``` Names grouping: ```{r warning=FALSE, fig.height = 3} -our_country_map <- read_tsv('https://raw.githubusercontent.com/greenelab/wiki-nationality-estimate/7c22d0a5f661ce5aeb785215095deda40973ff17/data/country_to_region_NamePrism.tsv') %>% - rename('region' = Region) %>% +our_country_map <- read_tsv("https://raw.githubusercontent.com/greenelab/wiki-nationality-estimate/7c22d0a5f661ce5aeb785215095deda40973ff17/data/country_to_region_NamePrism.tsv") %>% + rename("region" = Region) %>% recode_region() my_world <- world %>% - select(- geometry) %>% - rename(Country = 'name') %>% - left_join(our_country_map, by = 'Country') + select(-geometry) %>% + rename(Country = "name") %>% + left_join(our_country_map, by = "Country") (gworld <- ggplot(data = my_world) + - geom_sf(aes(fill = fct_relevel(region, region_levels))) + - coord_sf(crs = "+proj=eqearth +wktext") + - scale_fill_manual(values = region_cols, - na.translate = FALSE) + - theme(panel.background = element_rect(fill = "azure"), - legend.title = element_blank(), - legend.position = 'bottom', - panel.border = element_rect(fill = NA))) - -ggsave('figs/2020-01-31_groupings.png', gworld, width = 7.2, height = 4.3) -ggsave('figs/2020-01-31_groupings.svg', gworld, width = 7.2, height = 4.3) + geom_sf(aes(fill = fct_relevel(region, region_levels))) + + coord_sf(crs = "+proj=eqearth +wktext") + + scale_fill_manual( + values = region_cols, + na.translate = FALSE + ) + + theme( + panel.background = element_rect(fill = "azure"), + legend.title = element_blank(), + legend.position = "bottom", + panel.border = element_rect(fill = NA) + )) + +ggsave("figs/2020-01-31_groupings.png", gworld, width = 7.2, height = 4.3) +ggsave("figs/2020-01-31_groupings.svg", gworld, width = 7.2, height = 4.3) ``` @@ -74,38 +78,41 @@ Prepare data frames for later analyses: ```{r} iscb_pubmed_oth <- iscb_nat_df %>% - rename('journal' = conference) %>% + rename("journal" = conference) %>% select(year, journal, African:SouthAsian, publication_date) %>% - mutate(type = 'Keynote speakers/Fellows', - adjusted_citations = 1, - pmid = -9999) %>% + mutate( + type = "Keynote speakers/Fellows", + adjusted_citations = 1, + pmid = -9999 + ) %>% bind_rows( pubmed_nat_df %>% select(pmid, year, journal, African:SouthAsian, publication_date, adjusted_citations) %>% - mutate(type = 'Pubmed authors') + mutate(type = "Pubmed authors") ) %>% mutate(OtherCategories = SouthAsian + Hispanic + Jewish + Muslim + Nordic + Greek + African) %>% pivot_longer(c(African:SouthAsian, OtherCategories), - names_to = 'region', - values_to = 'probabilities') %>% - filter(!is.na(probabilities)) %>% + names_to = "region", + values_to = "probabilities" + ) %>% + filter(!is.na(probabilities)) %>% group_by(type, year, region) %>% mutate( pmc_citations_year = mean(adjusted_citations), - weight = adjusted_citations/pmc_citations_year, - weighted_probs = probabilities*weight - ) + weight = adjusted_citations / pmc_citations_year, + weighted_probs = probabilities * weight + ) -iscb_pubmed_sum_oth <- iscb_pubmed_oth %>% +iscb_pubmed_sum_oth <- iscb_pubmed_oth %>% summarise( mean_prob = mean(weighted_probs), - se_prob = sqrt(var(probabilities) * sum(weight^2)/(sum(weight)^2)), + se_prob = sqrt(var(probabilities) * sum(weight^2) / (sum(weight)^2)), me_prob = alpha_threshold * se_prob, - .groups = 'drop' + .groups = "drop" ) iscb_pubmed_sum <- iscb_pubmed_sum_oth %>% - filter(region != 'OtherCategories') + filter(region != "OtherCategories") ``` ## Prepare data frames for analysis @@ -113,20 +120,19 @@ iscb_pubmed_sum <- iscb_pubmed_sum_oth %>% ### By conference keynotes/fellows ```{r fig.height=6} i <- 0 -iscb_nat <- vector('list', length = n_confs) +iscb_nat <- vector("list", length = n_confs) -for (conf in my_confs){ +for (conf in my_confs) { i <- i + 1 iscb_nat[[i]] <- iscb_pubmed_oth %>% - filter(region != 'OtherCategories', type != 'Pubmed authors' & journal == conf) %>% + filter(region != "OtherCategories", type != "Pubmed authors" & journal == conf) %>% group_by(type, year, region, journal) %>% - summarise(mean_prob = mean(weighted_probs), .groups = 'drop') %>% - {.} + summarise(mean_prob = mean(weighted_probs), .groups = "drop") } ``` ```{r} -save(my_world, iscb_pubmed_oth, iscb_nat, file = 'Rdata/iscb-pubmed_nat.Rdata') +save(my_world, iscb_pubmed_oth, iscb_nat, file = "Rdata/iscb-pubmed_nat.Rdata") ``` ## Figures for paper @@ -137,74 +143,80 @@ Compared to the name collection of Pubmed authors, honorees with Celtic/English ```{r fig.height=7, fig.width=9, warning=FALSE} fig_4a <- iscb_pubmed_sum %>% - filter(year < '2020-01-01') %>% - region_breakdown('main', region_levels, fct_rev(type)) + + filter(year < "2020-01-01") %>% + region_breakdown("main", region_levels, fct_rev(type)) + guides(fill = guide_legend(nrow = 2)) + - theme(legend.position = 'bottom') + theme(legend.position = "bottom") -large_regions <- c('CelticEnglish', 'EastAsian', 'European', 'OtherCategories') +large_regions <- c("CelticEnglish", "EastAsian", "European", "OtherCategories") ## Mean and standard deviation of predicted probabilities: fig_4b <- iscb_pubmed_sum_oth %>% filter(region %in% large_regions) %>% recode_region() %>% gam_and_ci( - df2 = iscb_pubmed_oth %>% + df2 = iscb_pubmed_oth %>% filter(region %in% large_regions) %>% recode_region(), - start_y = start_year, end_y = end_year) + - theme(legend.position = c(0.88, 0.83), - panel.grid.minor = element_blank(), - legend.margin = margin(-0.5, 0, 0, 0, unit='cm'), - legend.text = element_text(size = 7)) + + start_y = start_year, end_y = end_year + ) + + theme( + legend.position = c(0.88, 0.83), + panel.grid.minor = element_blank(), + legend.margin = margin(-0.5, 0, 0, 0, unit = "cm"), + legend.text = element_text(size = 7) + ) + facet_wrap(vars(fct_relevel(region, large_regions)), nrow = 1) -fig_4 <- cowplot::plot_grid(fig_4a, fig_4b, labels = 'AUTO', ncol = 1, rel_heights = c(1.3,1)) +fig_4 <- cowplot::plot_grid(fig_4a, fig_4b, labels = "AUTO", ncol = 1, rel_heights = c(1.3, 1)) fig_4 -ggsave('figs/region_breakdown.png', fig_4, width = 6.7, height = 5.5) -ggsave('figs/region_breakdown.svg', fig_4, width = 6.7, height = 5.5) +ggsave("figs/region_breakdown.png", fig_4, width = 6.7, height = 5.5) +ggsave("figs/region_breakdown.svg", fig_4, width = 6.7, height = 5.5) ``` ## Hypothesis testing ```{r} -iscb_lm <- iscb_pubmed_oth %>% - ungroup() %>% +iscb_lm <- iscb_pubmed_oth %>% + ungroup() %>% mutate( # year = c(scale(year(year))), - year = as.factor(year), - type = as.factor(type) %>% relevel(ref = 'Pubmed authors')) -main_lm <- function(regioni){ - glm(type ~ year + weighted_probs, - data = iscb_lm %>% - filter(region == regioni, !is.na(probabilities)) , - family = 'binomial') + # year = as.factor(year), + type = as.factor(type) %>% relevel(ref = "Pubmed authors") + ) +main_lm <- function(regioni) { + glm(type ~ year + weighted_probs, + data = iscb_lm %>% + filter(region == regioni, !is.na(probabilities), year(year) >= 2002), + family = "binomial" + ) } -inte_lm <- function(regioni){ - glm(type ~ year * weighted_probs, - data = iscb_lm %>% - filter(region == regioni, !is.na(weighted_probs)), - family = 'binomial') +inte_lm <- function(regioni) { + glm(type ~ year * weighted_probs, + data = iscb_lm %>% + filter(region == regioni, !is.na(weighted_probs), year(year) >= 2002), + family = "binomial" + ) } main_list <- lapply(large_regions, main_lm) names(main_list) <- large_regions -lapply(main_list, summary) +lapply(main_list, broom::tidy) inte_list <- lapply(large_regions, inte_lm) -lapply(inte_list, summary) -for (i in 1:4){ - print(anova(main_list[[i]], inte_list[[i]], test = 'Chisq')) +lapply(inte_list, broom::tidy) +for (i in 1:4) { + print(anova(main_list[[i]], inte_list[[i]], test = "Chisq")) } ``` Interaction terms do not predict `type` over and above the main effect of name origin probability and year (_p_ > 0.01). ```{r echo = F} -get_p <- function(i, colu){ - broom::tidy(main_list[[i]]) %>% - filter(term == 'weighted_probs') %>% - pull(colu) +get_p <- function(i, colu) { + broom::tidy(main_list[[i]]) %>% + filter(term == "weighted_probs") %>% + pull(colu) } print_p <- function(x) sprintf("%0.5g", x) @@ -215,25 +227,162 @@ A Celtic/English name has `r exp(get_p(1, 'estimate'))` the odds of being select An East Asian name has `r exp(get_p(2, 'estimate'))` the odds of being selected as an honoree, significantly lower than to other names ($\beta_\textrm{East Asian} =$ `r print_p(get_p(2, 'estimate'))`, _P_ = `r print_p(get_p(2, 'p.value'))`). The two groups of scientists did not have a significant association with names predicted to be European (_P_ = `r print_p(get_p(3, 'p.value'))`) or in Other categories (_P_ = `r print_p(get_p(4, 'p.value'))`). -### Supplementary Figure S5 {#sup_fig_s5} + +## Alternative approach +_Sincere thanks to the reviewers, Byron Smith and Katie Pollard, for their detailed suggestion with code._ + +The question of what unit one should use to perform this type of analyses is a difficult one. +We present here an alternative analysis that treats _names_ as units instead of _honors_ and _authorships_. +We caution that this approach does not distinguish scientists who were honored 4 times vs. one time +and hence may yield a conservative estimate of disparity. +Further, different authors may have the same names, +and to sum `adjusted_citations` across them may not be optimal. + +Nonetheless, the finding here is consistent with what we have seen above +where East Asian names are underrepresented in the honoree group. + +```{r} + +keynotes_post_2002 <- keynotes %>% + filter(year(year) >= 2002) %>% + separate_rows(afflcountries, sep = ",") %>% + filter(afflcountries == "United States") %>% + group_by(fore_name_simple, last_name_simple) %>% + summarise_at("year", n_distinct, na.rm = T) + +# nationalize_df was not unique, so the left join to corr_authors resulted +# in (mostly) duplicate rows. +# FIXME: I was getting occasional crashes on this line, and it's slow. +# TRANG: fixed on June 3, 2021 using distinct(). +# Also, the duplication was intentional. +# Please see our extensive discussion on the merge/join on full names vs +# fore_name and last_name here: +# + +distinct_nationalize_df <- nationalize_df %>% + distinct(fore_name_simple, last_name_simple, .keep_all = TRUE) + +# Calculate sum of adjusted citations for all publications for a first-name/ +# last-name pair in db since 2002 +# where the author countries include US. +authors <- corr_authors %>% + filter(year(year) >= 2002) %>% + separate_rows(countries, sep = ",") %>% + filter(countries == "US") %>% + group_by(fore_name_simple, last_name_simple) %>% + summarise_at(vars(adjusted_citations), sum, na.rm = T) %>% + left_join( + keynotes_post_2002[c("fore_name_simple", "last_name_simple", "year")], + by = c("fore_name_simple", "last_name_simple") + ) %>% + left_join(distinct_nationalize_df, by = c("fore_name_simple", "last_name_simple")) %>% + mutate(OtherCategories = SouthAsian + Hispanic + Jewish + Muslim + Nordic + Greek + African) + +for (large_region in large_regions) { + glm( + as.formula(paste("honoree ~ adjusted_citations +", large_region)), + data = authors %>% mutate(honoree = !is.na(year)), + family = "binomial", + control = list(epsilon = 1e-12, maxit = 55, trace = FALSE) + ) %>% + broom::tidy() %>% + print() +} +``` + + + + + + + + + +## Time lag + +In this section, we show that a 10-year lag model results in a similar result for East Asian scientists' names, +even though the effect size is less striking. +For example, if we assume that honors accrue 10 years after their most prolific year with respect to authorships, +the proportion of honor associated with East Asian name origins in 2019 is still substantially less than the proportion of senior authorships associated with East Asian names in 2009. + +```{r} +year_lag <- period(10, "years") +iscb_pubmed_oth_lag <- iscb_nat_df %>% + rename("journal" = conference) %>% + select(year, journal, African:SouthAsian, publication_date) %>% + mutate( + type = "Keynote speakers/Fellows", + adjusted_citations = 1, + pmid = -9999 + ) %>% + bind_rows( + pubmed_nat_df %>% + select(pmid, year, journal, African:SouthAsian, publication_date, adjusted_citations) %>% + mutate(type = "Pubmed authors", year = year + year_lag) + ) %>% + mutate(OtherCategories = SouthAsian + Hispanic + Jewish + Muslim + Nordic + Greek + African) %>% + pivot_longer(c(African:SouthAsian, OtherCategories), + names_to = "region", + values_to = "probabilities" + ) %>% + filter(!is.na(probabilities), year(year) >= 2002) %>% + group_by(type, year, region) %>% + mutate( + pmc_citations_year = mean(adjusted_citations), + weight = adjusted_citations / pmc_citations_year, + weighted_probs = probabilities * weight + ) + +iscb_lm_lag <- iscb_pubmed_oth_lag %>% + ungroup() %>% + mutate(type = as.factor(type) %>% relevel(ref = "Pubmed authors")) + +main_lm <- function(regioni) { + glm(type ~ year + weighted_probs, + data = iscb_lm_lag %>% + filter(region == regioni, !is.na(weighted_probs)), + family = "binomial" + ) +} + +main_list <- lapply(large_regions, main_lm) +names(main_list) <- large_regions +lapply(main_list, tidy::broom) +``` + +```{r include=FALSE, eval = FALSE} +checkdf <- iscb_lm %>% + filter( + year(year) == 2010, + adjusted_citations > 3.1, + adjusted_citations < 3.32, + region == "EastAsian", + probabilities > 0.5 + ) +``` + + +## Supplementary Figure S5 {#sup_fig_s5} It's difficult to come to a conclusion for other regions with so few data points and the imperfect accuracy of our prediction. There seems to be little difference between the proportion of keynote speakers of African, Arabic, South Asian and Hispanic origin than those in the field. However, just because a nationality isn't underrepresented against the field doesn't mean scientists from that nationality are appropriately represented. ```{r fig.height=6, warning=FALSE} -df2 <- iscb_pubmed_oth %>% - filter(region != 'OtherCategories') %>% +df2 <- iscb_pubmed_oth %>% + filter(region != "OtherCategories") %>% recode_region() fig_s5 <- iscb_pubmed_sum %>% recode_region() %>% - gam_and_ci(df2 = df2, - start_y = start_year, end_y = end_year) + + gam_and_ci( + df2 = df2, + start_y = start_year, end_y = end_year + ) + theme(legend.position = c(0.8, 0.1)) + facet_wrap(vars(fct_relevel(region, region_levels)), ncol = 3) fig_s5 -ggsave('figs/fig_s5.png', fig_s5, width = 6, height = 6) -ggsave('figs/fig_s5.svg', fig_s5, width = 6, height = 6) +ggsave("figs/fig_s5.png", fig_s5, width = 6, height = 6) +ggsave("figs/fig_s5.svg", fig_s5, width = 6, height = 6) ``` diff --git a/14.us-name-origin.Rmd b/14.us-name-origin.Rmd index 7e6b080..06ca206 100644 --- a/14.us-name-origin.Rmd +++ b/14.us-name-origin.Rmd @@ -5,7 +5,7 @@ title: "Representation analysis of name origin in the US" ```{r setup, include=FALSE} library(tidyverse) library(lubridate) -source('utils/r-utils.R') +source("utils/r-utils.R") theme_set(theme_bw() + theme(legend.title = element_blank())) ``` @@ -13,23 +13,23 @@ Only keep articles from 2002 because few authors had nationality predictions bef See [093.summary-stats](docs/093.summary-stats.html) for more details. ```{r} -load('Rdata/raws.Rdata') +load("Rdata/raws.Rdata") alpha_threshold <- qnorm(0.975) -pubmed_nat_df <- corr_authors %>% - filter(year(year) >= 2002) %>% - separate_rows(countries, sep = ',') %>% - filter(countries == 'US') %>% - left_join(nationalize_df, by = c('fore_name', 'last_name')) %>% +pubmed_nat_df <- corr_authors %>% + filter(year(year) >= 2002) %>% + separate_rows(countries, sep = ",") %>% + filter(countries == "US") %>% + left_join(nationalize_df, by = c("fore_name", "last_name")) %>% group_by(pmid, journal, publication_date, year, adjusted_citations) %>% summarise_at(vars(African:SouthAsian), mean, na.rm = T) %>% ungroup() iscb_nat_df <- keynotes %>% - separate_rows(afflcountries, sep = '\\|') %>% - filter(afflcountries == 'United States') %>% - left_join(nationalize_df, by = c('fore_name', 'last_name')) + separate_rows(afflcountries, sep = "\\|") %>% + filter(afflcountries == "United States") %>% + left_join(nationalize_df, by = c("fore_name", "last_name")) start_year <- 1992 end_year <- 2019 @@ -38,9 +38,9 @@ my_jours <- unique(pubmed_nat_df$journal) my_confs <- unique(iscb_nat_df$conference) n_jours <- length(my_jours) n_confs <- length(my_confs) -region_levels <- paste(c('Celtic/English', 'European', 'East Asian', 'Hispanic', 'South Asian', 'Arabic', 'Hebrew', 'African', 'Nordic', 'Greek'), 'names') +region_levels <- paste(c("Celtic/English", "European", "East Asian", "Hispanic", "South Asian", "Arabic", "Hebrew", "African", "Nordic", "Greek"), "names") -region_cols <- c('#ffffb3', '#fccde5', '#b3de69', '#fdb462', '#80b1d3', '#8dd3c7', '#bebada', '#fb8072', '#bc80bd', '#ccebc5') +region_cols <- c("#ffffb3", "#fccde5", "#b3de69", "#fdb462", "#80b1d3", "#8dd3c7", "#bebada", "#fb8072", "#bc80bd", "#ccebc5") ``` ## Organize data @@ -53,110 +53,120 @@ Prepare data frames for later analyses: ```{r} iscb_pubmed_oth <- iscb_nat_df %>% - rename('journal' = conference) %>% + rename("journal" = conference) %>% select(year, journal, African:SouthAsian, publication_date) %>% - mutate(type = 'Keynote speakers/Fellows', - adjusted_citations = 1) %>% + mutate( + type = "Keynote speakers/Fellows", + adjusted_citations = 1 + ) %>% bind_rows( pubmed_nat_df %>% select(year, journal, African:SouthAsian, publication_date, adjusted_citations) %>% - mutate(type = 'Pubmed authors') + mutate(type = "Pubmed authors") ) %>% mutate(OtherCategories = SouthAsian + Hispanic + Jewish + Muslim + Nordic + Greek + African) %>% pivot_longer(c(African:SouthAsian, OtherCategories), - names_to = 'region', - values_to = 'probabilities') %>% - filter(!is.na(probabilities)) %>% + names_to = "region", + values_to = "probabilities" + ) %>% + filter(!is.na(probabilities)) %>% group_by(type, year, region) %>% mutate( pmc_citations_year = mean(adjusted_citations), - weight = adjusted_citations/pmc_citations_year, - weighted_probs = probabilities*weight - ) + weight = adjusted_citations / pmc_citations_year, + weighted_probs = probabilities * weight + ) -iscb_pubmed_sum_oth <- iscb_pubmed_oth %>% +iscb_pubmed_sum_oth <- iscb_pubmed_oth %>% summarise( mean_prob = mean(weighted_probs), - se_prob = sqrt(var(probabilities) * sum(weight^2)/(sum(weight)^2)), + se_prob = sqrt(var(probabilities) * sum(weight^2) / (sum(weight)^2)), me_prob = alpha_threshold * se_prob, - .groups = 'drop' + .groups = "drop" ) iscb_pubmed_sum <- iscb_pubmed_sum_oth %>% - filter(region != 'OtherCategories') + filter(region != "OtherCategories") ``` ## Figures for paper ```{r fig.height=7, fig.width=9, warning=FALSE} fig_us_name_origina <- iscb_pubmed_sum %>% - filter(year < '2020-01-01') %>% - region_breakdown('main', region_levels, fct_rev(type)) + + filter(year < "2020-01-01") %>% + region_breakdown("main", region_levels, fct_rev(type)) + guides(fill = guide_legend(nrow = 2)) -large_regions <- c('CelticEnglish', 'EastAsian', 'European', 'OtherCategories') +large_regions <- c("CelticEnglish", "EastAsian", "European", "OtherCategories") ## Mean and standard deviation of predicted probabilities: fig_us_name_originb <- iscb_pubmed_sum_oth %>% filter(region %in% large_regions) %>% recode_region() %>% - gam_and_ci(df2 = iscb_pubmed_oth %>% - filter(region %in% large_regions) %>% - recode_region(), - start_y = start_year, end_y = end_year) + - theme(legend.position = c(0.88, 0.83), - panel.grid.minor = element_blank(), - legend.margin = margin(-0.5, 0, 0, 0, unit='cm'), - legend.text = element_text(size = 6)) + + gam_and_ci( + df2 = iscb_pubmed_oth %>% + filter(region %in% large_regions) %>% + recode_region(), + start_y = start_year, end_y = end_year + ) + + theme( + legend.position = c(0.88, 0.83), + panel.grid.minor = element_blank(), + legend.margin = margin(-0.5, 0, 0, 0, unit = "cm"), + legend.text = element_text(size = 6) + ) + facet_wrap(vars(fct_relevel(region, large_regions)), nrow = 1) -fig_us_name_origin <- cowplot::plot_grid(fig_us_name_origina, fig_us_name_originb, labels = 'AUTO', ncol = 1, rel_heights = c(1.3,1)) +fig_us_name_origin <- cowplot::plot_grid(fig_us_name_origina, fig_us_name_originb, labels = "AUTO", ncol = 1, rel_heights = c(1.3, 1)) fig_us_name_origin -ggsave('figs/us_name_origin.png', fig_us_name_origin, width = 6.5, height = 5.5) -ggsave('figs/us_name_origin.svg', fig_us_name_origin, width = 6.5, height = 5.5) +ggsave("figs/us_name_origin.png", fig_us_name_origin, width = 6.5, height = 5.5) +ggsave("figs/us_name_origin.svg", fig_us_name_origin, width = 6.5, height = 5.5) ``` ## Hypothesis testing ```{r} -iscb_lm <- iscb_pubmed_oth %>% - ungroup() %>% +iscb_lm <- iscb_pubmed_oth %>% + ungroup() %>% mutate( # year = c(scale(year)), - year = as.factor(year), - type = relevel(as.factor(type), ref = 'Pubmed authors')) -main_lm <- function(regioni){ - glm(type ~ year + weighted_probs, - data = iscb_lm %>% - filter(region == regioni, !is.na(weighted_probs)), - family = 'binomial') + # year = as.factor(year), + type = relevel(as.factor(type), ref = "Pubmed authors") + ) +main_lm <- function(regioni) { + glm(type ~ year + weighted_probs, + data = iscb_lm %>% + filter(region == regioni, !is.na(weighted_probs), year(year) >= 2002), + family = "binomial" + ) } -inte_lm <- function(regioni){ - glm(type ~ weighted_probs*year, - data = iscb_lm %>% - filter(region == regioni, !is.na(weighted_probs)), - family = 'binomial') +inte_lm <- function(regioni) { + glm(type ~ weighted_probs * year, + data = iscb_lm %>% + filter(region == regioni, !is.na(weighted_probs), year(year) >= 2002), + family = "binomial" + ) } main_list <- lapply(large_regions, main_lm) names(main_list) <- large_regions -lapply(main_list, summary) +lapply(main_list, broom::tidy) inte_list <- lapply(large_regions, inte_lm) -lapply(inte_list, summary) -for (i in 1:4){ - print(anova(main_list[[i]], inte_list[[i]], test = 'Chisq')) +lapply(inte_list, broom::tidy) +for (i in 1:4) { + print(anova(main_list[[i]], inte_list[[i]], test = "Chisq")) } ``` Interaction terms do not predict `type` over and above the main effect of name origin probability and year (_p_ > 0.01). ```{r echo = F} -get_exp <- function(i, colu){ - broom::tidy(main_list[[i]]) %>% - filter(term == 'weighted_probs') %>% - pull(colu) +get_exp <- function(i, colu) { + broom::tidy(main_list[[i]]) %>% + filter(term == "weighted_probs") %>% + pull(colu) } print_p <- function(x) sprintf("%0.5g", x) @@ -175,20 +185,22 @@ There seems to be little difference between the proportion of keynote speakers o However, just because a nationality isn't underrepresented against the field doesn't mean scientists from that nationality are appropriately represented. ```{r fig.height=6, warning=FALSE} -df2 <- iscb_pubmed_oth %>% - filter(region != 'OtherCategories') %>% +df2 <- iscb_pubmed_oth %>% + filter(region != "OtherCategories") %>% recode_region() fig_s7 <- iscb_pubmed_sum %>% recode_region() %>% - gam_and_ci(df2 = df2, - start_y = start_year, end_y = end_year) + + gam_and_ci( + df2 = df2, + start_y = start_year, end_y = end_year + ) + theme(legend.position = c(0.8, 0.1)) + facet_wrap(vars(fct_relevel(region, region_levels)), ncol = 3) - + fig_s7 -ggsave('figs/fig_s7.png', fig_s7, width = 6, height = 6) -ggsave('figs/fig_s7.svg', fig_s7, width = 6, height = 6) +ggsave("figs/fig_s7.png", fig_s7, width = 6, height = 6) +ggsave("figs/fig_s7.svg", fig_s7, width = 6, height = 6) ``` From 7a4ec7ce451a54807668fa1197e37063c2348c3d Mon Sep 17 00:00:00 2001 From: lelaboratoire Date: Thu, 3 Jun 2021 16:21:13 -0400 Subject: [PATCH 2/2] revised htmls --- 10.visualize-gender.Rmd | 3 +- 11.visualize-name-origins.Rmd | 32 +- docs/091.draw-roc.html | 44 +- docs/092.save-raws-to-Rdata.html | 19 +- docs/093.summary-stats.html | 13 +- docs/10.visualize-gender.html | 422 +++---- docs/11.visualize-name-origins.html | 1002 ++++++--------- docs/12.analyze-affiliation.html | 87 +- docs/13.us-race-analysis.html | 6 +- docs/14.us-name-origin.html | 785 +++--------- docs/15.analyze-2020.html | 82 +- figs/fig_s5.png | Bin 207401 -> 0 bytes figs/fig_s5.svg | 1768 +++++++++++++-------------- 13 files changed, 1744 insertions(+), 2519 deletions(-) diff --git a/10.visualize-gender.Rmd b/10.visualize-gender.Rmd index 9e520c6..a005ea7 100644 --- a/10.visualize-gender.Rmd +++ b/10.visualize-gender.Rmd @@ -182,7 +182,8 @@ get_p <- function(inte, colu) { ```{r} iscb_lm <- iscb_pubmed %>% filter(gender == "probability_female", !is.na(weighted_probs)) %>% - mutate(type = as.factor(type) %>% relevel(ref = "Pubmed authors")) + mutate(type = as.factor(type)) %>% + mutate(type = type %>% relevel(ref = "Pubmed authors")) ``` ```{r} diff --git a/11.visualize-name-origins.Rmd b/11.visualize-name-origins.Rmd index 719ef2f..2b9de29 100644 --- a/11.visualize-name-origins.Rmd +++ b/11.visualize-name-origins.Rmd @@ -347,7 +347,7 @@ main_lm <- function(regioni) { main_list <- lapply(large_regions, main_lm) names(main_list) <- large_regions -lapply(main_list, tidy::broom) +lapply(main_list, broom::tidy) ``` ```{r include=FALSE, eval = FALSE} @@ -368,21 +368,21 @@ There seems to be little difference between the proportion of keynote speakers o However, just because a nationality isn't underrepresented against the field doesn't mean scientists from that nationality are appropriately represented. ```{r fig.height=6, warning=FALSE} -df2 <- iscb_pubmed_oth %>% - filter(region != "OtherCategories") %>% - recode_region() - -fig_s5 <- iscb_pubmed_sum %>% - recode_region() %>% - gam_and_ci( - df2 = df2, - start_y = start_year, end_y = end_year - ) + - theme(legend.position = c(0.8, 0.1)) + - facet_wrap(vars(fct_relevel(region, region_levels)), ncol = 3) -fig_s5 -ggsave("figs/fig_s5.png", fig_s5, width = 6, height = 6) -ggsave("figs/fig_s5.svg", fig_s5, width = 6, height = 6) +# df2 <- iscb_pubmed_oth %>% +# filter(region != "OtherCategories") %>% +# recode_region() +# +# fig_s5 <- iscb_pubmed_sum %>% +# recode_region() %>% +# gam_and_ci( +# df2 = df2, +# start_y = start_year, end_y = end_year +# ) + +# theme(legend.position = c(0.8, 0.1)) + +# facet_wrap(vars(fct_relevel(region, region_levels)), ncol = 3) +# fig_s5 +# ggsave("figs/fig_s5.png", fig_s5, width = 6, height = 6) +# ggsave("figs/fig_s5.svg", fig_s5, width = 6, height = 6) ``` diff --git a/docs/091.draw-roc.html b/docs/091.draw-roc.html index c2826b5..524ce17 100644 --- a/docs/091.draw-roc.html +++ b/docs/091.draw-roc.html @@ -1742,12 +1742,12 @@

Plotting ROC curves

Name origin prediction method performance

library(tidyverse)
-
## ── Attaching packages ────────────────────────────────────────────────────────────── tidyverse 1.3.0 ──
+
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.0 ──
## ✓ ggplot2 3.3.2     ✓ purrr   0.3.4
 ## ✓ tibble  3.0.4     ✓ dplyr   1.0.2
 ## ✓ tidyr   1.1.2     ✓ stringr 1.4.0
 ## ✓ readr   1.4.0     ✓ forcats 0.5.0
-
## ── Conflicts ───────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
+
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
 ## x dplyr::filter() masks stats::filter()
 ## x dplyr::lag()    masks stats::lag()
# still need to install caret for the calibration function because tidymodels's 
@@ -1769,7 +1769,7 @@ 

Name origin prediction method performance

mutate(Sensitivity = tpr, Specificity = 1-fpr, dSens = c(abs(diff(1-tpr)), 0)) %>% ungroup()
## 
-## ── Column specification ───────────────────────────────────────────────────────────────────────────────
+## ── Column specification ────────────────────────────────────────────────────────
 ## cols(
 ##   fpr = col_double(),
 ##   tpr = col_double(),
@@ -1811,7 +1811,7 @@ 

Name origin prediction method performance

mutate(y_true = as.factor(truth)) %>% select(-truth)
## 
-## ── Column specification ───────────────────────────────────────────────────────────────────────────────
+## ── Column specification ────────────────────────────────────────────────────────
 ## cols(
 ##   African = col_double(),
 ##   CelticEnglish = col_double(),
@@ -1844,18 +1844,30 @@ 

Name origin prediction method performance

## ℹ See <https://tidyselect.r-lib.org/reference/faq-external-vector.html>. ## This message is displayed once per session.
cal_dfs$EastAsian
-
##    calibModelVar            bin   Percent      Lower     Upper Count  midpoint    region
-## 1           prob     [0,0.0909]  0.973038  0.9061138  1.043559   777  4.545455 EastAsian
-## 2           prob (0.0909,0.182] 12.715105 10.7555376 14.887108   133 13.636364 EastAsian
-## 3           prob  (0.182,0.273] 20.620843 16.9791523 24.652952    93 22.727273 EastAsian
-## 4           prob  (0.273,0.364] 29.924242 24.4643714 35.841394    79 31.818182 EastAsian
-## 5           prob  (0.364,0.455] 35.897436 29.7515540 42.405681    84 40.909091 EastAsian
-## 6           prob  (0.455,0.545] 38.536585 31.8402892 45.569554    79 50.000000 EastAsian
-## 7           prob  (0.545,0.636] 45.637584 37.4635833 53.988516    68 59.090909 EastAsian
-## 8           prob  (0.636,0.727] 56.953642 48.6544756 64.974492    86 68.181818 EastAsian
-## 9           prob  (0.727,0.818] 61.421320 54.2394760 68.253900   121 77.272727 EastAsian
-## 10          prob  (0.818,0.909] 71.764706 66.6571343 76.488532   244 86.363636 EastAsian
-## 11          prob      (0.909,1] 97.209555 96.8524649 97.536348  8953 95.454545 EastAsian
+
##    calibModelVar            bin   Percent      Lower     Upper Count  midpoint
+## 1           prob     [0,0.0909]  0.973038  0.9061138  1.043559   777  4.545455
+## 2           prob (0.0909,0.182] 12.715105 10.7555376 14.887108   133 13.636364
+## 3           prob  (0.182,0.273] 20.620843 16.9791523 24.652952    93 22.727273
+## 4           prob  (0.273,0.364] 29.924242 24.4643714 35.841394    79 31.818182
+## 5           prob  (0.364,0.455] 35.897436 29.7515540 42.405681    84 40.909091
+## 6           prob  (0.455,0.545] 38.536585 31.8402892 45.569554    79 50.000000
+## 7           prob  (0.545,0.636] 45.637584 37.4635833 53.988516    68 59.090909
+## 8           prob  (0.636,0.727] 56.953642 48.6544756 64.974492    86 68.181818
+## 9           prob  (0.727,0.818] 61.421320 54.2394760 68.253900   121 77.272727
+## 10          prob  (0.818,0.909] 71.764706 66.6571343 76.488532   244 86.363636
+## 11          prob      (0.909,1] 97.209555 96.8524649 97.536348  8953 95.454545
+##       region
+## 1  EastAsian
+## 2  EastAsian
+## 3  EastAsian
+## 4  EastAsian
+## 5  EastAsian
+## 6  EastAsian
+## 7  EastAsian
+## 8  EastAsian
+## 9  EastAsian
+## 10 EastAsian
+## 11 EastAsian
fig_3b <- bind_rows(cal_dfs) %>%
   recode_region() %>%
   ggplot(aes(x = midpoint/100, y = Percent/100, color = fct_relevel(region, as.character(auc_df$region)))) +
diff --git a/docs/092.save-raws-to-Rdata.html b/docs/092.save-raws-to-Rdata.html
index aad4c8d..6a6034e 100644
--- a/docs/092.save-raws-to-Rdata.html
+++ b/docs/092.save-raws-to-Rdata.html
@@ -4300,7 +4300,7 @@ 

Save raw data into .Rdata to be loaded in by analys

General data read-in

all_full_names <- readr::read_tsv('data/names/full-names.tsv.xz') %>% distinct()
## 
-## ── Column specification ───────────────────────────────────────────────────────────────────────────────
+## ── Column specification ────────────────────────────────────────────────────────
 ## cols(
 ##   fore_name = col_character(),
 ##   last_name = col_character(),
@@ -4334,7 +4334,7 @@ 

General data read-in

publication_date = ymd(publication_date, truncated = 2)) %>% filter(year(publication_date) < 2020)
## 
-## ── Column specification ───────────────────────────────────────────────────────────────────────────────
+## ── Column specification ────────────────────────────────────────────────────────
 ## cols(
 ##   pmid = col_double(),
 ##   pmcid = col_character(),
@@ -4358,7 +4358,7 @@ 

General data read-in

left_join(select(all_full_names, - full_name), by = c('fore_name', 'last_name')) %>% filter(year(year) < 2020, conference != 'PSB') # remove PSB, exclude ISCB Fellows and ISMB speakers in 2020 for now
## 
-## ── Column specification ───────────────────────────────────────────────────────────────────────────────
+## ── Column specification ────────────────────────────────────────────────────────
 ## cols(
 ##   year = col_double(),
 ##   full_name = col_character(),
@@ -4371,9 +4371,10 @@ 

General data read-in

## )
keynotes %>% filter(is.na(fore_name_simple))
## # A tibble: 0 x 11
-## # … with 11 variables: year <date>, full_name <chr>, fore_name <chr>, last_name <chr>,
-## #   conference <chr>, source <chr>, affiliations <chr>, afflcountries <chr>, publication_date <date>,
-## #   fore_name_simple <chr>, last_name_simple <chr>
+## # … with 11 variables: year <date>, full_name <chr>, fore_name <chr>, +## # last_name <chr>, conference <chr>, source <chr>, affiliations <chr>, +## # afflcountries <chr>, publication_date <date>, fore_name_simple <chr>, +## # last_name_simple <chr>
large_jours <- articles %>%
   count(journal, sort = T) %>% 
   head(10)
@@ -4384,7 +4385,7 @@ 

General data read-in

left_join(all_full_names, by = 'full_name')
## Warning: Missing column names filled in: 'X1' [1]
## 
-## ── Column specification ───────────────────────────────────────────────────────────────────────────────
+## ── Column specification ────────────────────────────────────────────────────────
 ## cols(
 ##   X1 = col_character(),
 ##   African = col_double(),
@@ -4405,8 +4406,8 @@ 

General data read-in

corr_authors %>% 
   count(year, name = 'Number of articles with last authors') %>% 
   DT::datatable(rownames = F)
-
- +
+

If we set a threshold at least 200 articles a year, we should only consider articles from 1998 on.

corr_authors <- corr_authors %>% 
   add_count(year, name = 'n_aut_yr') %>% 
diff --git a/docs/093.summary-stats.html b/docs/093.summary-stats.html
index 20df43e..54e91c6 100644
--- a/docs/093.summary-stats.html
+++ b/docs/093.summary-stats.html
@@ -4317,8 +4317,8 @@ 

Honorees

count(fore_name, last_name) %>% arrange(desc(n)) %>% DT::datatable()
-
- +
+

Number of keynote speakers/fellows across years:

keynotes %>%
   select(year, conference) %>% 
@@ -4364,7 +4364,7 @@ 

Authors

Gender analysis

gender_df <- read_tsv('data/gender/genderize.tsv')
## 
-## ── Column specification ───────────────────────────────────────────────────────────────────────────────
+## ── Column specification ────────────────────────────────────────────────────────
 ## cols(
 ##   fore_name_simple = col_character(),
 ##   n_authors = col_double(),
@@ -4412,7 +4412,8 @@ 

Gender analysis

pull(pred.asi) %>% mean(na.rm = T)
## [1] "Proceeding with surname-only predictions..."
-
## Warning in merge_surnames(voter.file, impute.missing = impute.missing): 1305 surnames were not matched.
+
## Warning in merge_surnames(voter.file, impute.missing = impute.missing): 1305
+## surnames were not matched.
## [1] 0.8174599

Honorees that didn’t receive a gender prediction: Chung-I Wu.

In summary, the NA predictions mostly include initials only, hyphenated names and perhaps names with accent marks.

@@ -4491,8 +4492,8 @@

Name origin analysis

## ℹ Unknown levels in `f`: OtherCategories ## ℹ Input `region` is `fct_recode(...)`.
## Warning: Unknown levels in `f`: OtherCategories
-
- +
+
 pubmed_nat_pmids %>% count(!is.na(African), is.na(fore_name_simple.x))
## # A tibble: 2 x 3
 ##   `!is.na(African)` `is.na(fore_name_simple.x)`      n
diff --git a/docs/10.visualize-gender.html b/docs/10.visualize-gender.html
index c8c3c08..1f524c3 100644
--- a/docs/10.visualize-gender.html
+++ b/docs/10.visualize-gender.html
@@ -1671,18 +1671,18 @@ 

Setups

library(lubridate) library(rnaturalearth) library(wru) -source('utils/r-utils.R') +source("utils/r-utils.R") theme_set(theme_bw() + theme(legend.title = element_blank()))

Load data

Only keep articles from 2002 because few authors had gender predictions before 2002. See 093.summary-stats for more details.

-
load('Rdata/raws.Rdata')
+
load("Rdata/raws.Rdata")
 
 alpha_threshold <- qnorm(0.975)
-gender_df <- read_tsv('data/gender/genderize.tsv')
+gender_df <- read_tsv("data/gender/genderize.tsv")
## 
-## ── Column specification ───────────────────────────────────────────────────────────────────────────────
+## ── Column specification ────────────────────────────────────────────────────────
 ## cols(
 ##   fore_name_simple = col_character(),
 ##   n_authors = col_double(),
@@ -1691,11 +1691,11 @@ 

Load data

## probability_male = col_double() ## )
pubmed_gender_df <- corr_authors %>%
-  filter(year(year) >= 2002) %>% 
-  left_join(gender_df, by = 'fore_name_simple')
+  filter(year(year) >= 2002) %>%
+  left_join(gender_df, by = "fore_name_simple")
 
-iscb_gender_df <- keynotes %>% 
-  left_join(gender_df, by = 'fore_name_simple')
+iscb_gender_df <- keynotes %>%
+  left_join(gender_df, by = "fore_name_simple")
 
 start_year <- 1993
 end_year <- 2019
@@ -1713,53 +1713,56 @@ 

Prepare data frames for later analyses

  • compute mean, sd, marginal error
  • iscb_pubmed <- iscb_gender_df %>%
    -  rename('journal' = conference) %>%
    +  rename("journal" = conference) %>%
       select(year, journal, probability_male, publication_date) %>%
    -  mutate(type = 'Keynote speakers/Fellows',
    -         adjusted_citations = 1) %>%
    +  mutate(
    +    type = "Keynote speakers/Fellows",
    +    adjusted_citations = 1
    +  ) %>%
       bind_rows(
         pubmed_gender_df %>%
           select(year, journal, probability_male, publication_date, adjusted_citations) %>%
    -      mutate(type = 'Pubmed authors')
    +      mutate(type = "Pubmed authors")
       ) %>%
    -  mutate(probability_female = 1 - probability_male) %>% 
    -  pivot_longer(contains('probability'),
    -               names_to = 'gender',
    -               values_to = 'probabilities') %>%
    -  filter(!is.na(probabilities)) %>% 
    +  mutate(probability_female = 1 - probability_male) %>%
    +  pivot_longer(contains("probability"),
    +    names_to = "gender",
    +    values_to = "probabilities"
    +  ) %>%
    +  filter(!is.na(probabilities)) %>%
       group_by(type, year, gender) %>%
       mutate(
         pmc_citations_year = mean(adjusted_citations),
    -    weight = adjusted_citations/pmc_citations_year,
    -    weighted_probs = probabilities*weight
    +    weight = adjusted_citations / pmc_citations_year,
    +    weighted_probs = probabilities * weight
         # weight = 1
    -    )
    +  )
     
    -iscb_pubmed_sum <- iscb_pubmed %>% 
    +iscb_pubmed_sum <- iscb_pubmed %>%
       summarise(
         # n = n(),
         mean_prob = mean(weighted_probs),
         # mean_prob = mean(probabilities, na.rm = T),
         # sd_prob = sd(probabilities, na.rm = T),
    -    se_prob = sqrt(var(probabilities) * sum(weight^2)/(sum(weight)^2)),
    +    se_prob = sqrt(var(probabilities) * sum(weight^2) / (sum(weight)^2)),
         # n = mean(n),
         me_prob = alpha_threshold * se_prob,
    -    .groups = 'drop'
    +    .groups = "drop"
       )
     # https://stats.stackexchange.com/questions/25895/computing-standard-error-in-weighted-mean-estimation
    # save(iscb_pubmed, file = 'Rdata/iscb-pubmed_gender.Rdata')

    Figures for paper

    -
    -

    Figure 1: ISCB Fellows and keynote speakers appear more evenly split between men and women than PubMed authors, but the proportion has not reached parity.

    +
    +

    Figure 2: ISCB Fellows and keynote speakers appear more evenly split between men and women than PubMed authors, but the proportion has not reached parity.

    fig_1 <- iscb_pubmed_sum %>%
       # group_by(year, type, gender) %>%
    -  gender_breakdown('main', fct_rev(type))
    +  gender_breakdown("main", fct_rev(type))
     fig_1

    -
    ggsave('figs/gender_breakdown.png', fig_1, width = 5, height = 2.5)
    -ggsave('figs/gender_breakdown.svg', fig_1, width = 5, height = 2.5)
    +
    ggsave("figs/gender_breakdown.png", fig_1, width = 5, height = 2.5)
    +ggsave("figs/gender_breakdown.svg", fig_1, width = 5, height = 2.5)
    ## `summarise()` ungrouping output (override with `.groups` argument)
    ## # A tibble: 2 x 2
     ##   type                     prob_female_avg
    @@ -1768,32 +1771,42 @@ 

    Figure 1: ISCB Fellows and keynote speakers appear more evenly split between ## 2 Pubmed authors 0.268

    -

    Supplementary Figure S1

    +

    Supplementary Figure S2

    Additional fig. 1 with separated keynote speakers and fellows

    -
    iscb_pubmed %>%
    -  ungroup() %>% 
    -  mutate(type2 = case_when(
    -    journal == 'ISCB Fellow' ~ 'ISCB Fellows',
    -    type == 'Keynote speakers/Fellows' ~ 'Keynote speakers',
    -    TRUE ~ 'Pubmed authors'
    -  )) %>% 
    -  group_by(type2, year, gender) %>% 
    +
    fig_1d <- iscb_pubmed %>%
    +  ungroup() %>%
    +  mutate(
    +    type2 = case_when(
    +      type == "Pubmed authors" ~ "Pubmed authors",
    +      journal == "ISCB Fellow" ~ "ISCB Fellows",
    +      type == "Keynote speakers/Fellows" ~ "Keynote speakers"
    +    )
    +  ) %>%
    +  group_by(type2, year, gender) %>%
       summarise(
         mean_prob = mean(weighted_probs),
    -    se_prob = sqrt(var(probabilities) * sum(weight^2)/(sum(weight)^2)),
    +    se_prob = sqrt(var(probabilities) * sum(weight^2) / (sum(weight)^2)),
         me_prob = alpha_threshold * se_prob,
    -    .groups = 'drop'
    -  ) %>% 
    -  gender_breakdown('main', fct_rev(type2))
    -

    + .groups = "drop" + ) %>% + gender_breakdown("main", fct_rev(type2)) + + scale_x_date( + labels = scales::date_format("'%y"), + expand = c(0, 0) + )
    +
    ## Scale for 'x' is already present. Adding another scale for 'x', which will
    +## replace the existing scale.

    Mean and standard deviation of predicted probabilities

    -
    iscb_pubmed_sum %>% filter(gender == 'probability_male') %>% 
    -  gam_and_ci(df2 = iscb_pubmed %>% filter(gender == 'probability_male'),
    -             start_y = start_year, end_y = end_year) +
    +
    iscb_pubmed_sum %>%
    +  filter(gender == "probability_male") %>%
    +  gam_and_ci(
    +    df2 = iscb_pubmed %>% filter(gender == "probability_male"),
    +    start_y = start_year, end_y = end_year
    +  ) +
       theme(legend.position = c(0.88, 0.2))
    ## `geom_smooth()` using formula 'y ~ s(x, bs = "cs")'
    ## Warning: Removed 13171 rows containing non-finite values (stat_smooth).
    @@ -1801,220 +1814,53 @@

    Mean and standard deviation of predicted probabilities

    Hypothesis testing

    -
    iscb_lm <- iscb_pubmed %>% 
    -       filter(gender == 'probability_female', !is.na(weighted_probs)) %>% 
    +
    iscb_lm <- iscb_pubmed %>%
    +  filter(gender == "probability_female", !is.na(weighted_probs)) %>%
       mutate(type = as.factor(type)) %>% 
    -  mutate(type = relevel(type, ref = 'Pubmed authors'),
    -         year = as.factor(year))
    -
    -main_lm <- glm(type ~ year + weighted_probs, 
    -     data = iscb_lm, family = 'binomial')
    -
    -summary(main_lm)
    -
    ## 
    -## Call:
    -## glm(formula = type ~ year + weighted_probs, family = "binomial", 
    -##     data = iscb_lm)
    -## 
    -## Deviance Residuals: 
    -##     Min       1Q   Median       3Q      Max  
    -## -0.2521  -0.0675  -0.0602  -0.0536   3.7156  
    -## 
    -## Coefficients:
    -##                  Estimate Std. Error z value Pr(>|z|)  
    -## (Intercept)     1.655e+01  1.385e+03   0.012   0.9905  
    -## year1994-01-01  8.750e-03  1.959e+03   0.000   1.0000  
    -## year1995-01-01 -3.840e-02  1.959e+03   0.000   1.0000  
    -## year1996-01-01  5.925e-03  1.833e+03   0.000   1.0000  
    -## year1997-01-01 -6.766e-03  1.537e+03   0.000   1.0000  
    -## year1998-01-01 -1.777e-03  1.549e+03   0.000   1.0000  
    -## year1999-01-01  8.430e-03  1.510e+03   0.000   1.0000  
    -## year2000-01-01 -1.929e-03  1.510e+03   0.000   1.0000  
    -## year2001-01-01 -1.254e-03  1.510e+03   0.000   1.0000  
    -## year2002-01-01 -2.118e+01  1.385e+03  -0.015   0.9878  
    -## year2003-01-01 -2.150e+01  1.385e+03  -0.016   0.9876  
    -## year2004-01-01 -2.191e+01  1.385e+03  -0.016   0.9874  
    -## year2005-01-01 -2.227e+01  1.385e+03  -0.016   0.9872  
    -## year2006-01-01 -2.244e+01  1.385e+03  -0.016   0.9871  
    -## year2007-01-01 -2.231e+01  1.385e+03  -0.016   0.9872  
    -## year2008-01-01 -2.264e+01  1.385e+03  -0.016   0.9870  
    -## year2009-01-01 -2.241e+01  1.385e+03  -0.016   0.9871  
    -## year2010-01-01 -2.277e+01  1.385e+03  -0.016   0.9869  
    -## year2011-01-01 -2.287e+01  1.385e+03  -0.017   0.9868  
    -## year2012-01-01 -2.287e+01  1.385e+03  -0.017   0.9868  
    -## year2013-01-01 -2.291e+01  1.385e+03  -0.017   0.9868  
    -## year2014-01-01 -2.310e+01  1.385e+03  -0.017   0.9867  
    -## year2015-01-01 -2.303e+01  1.385e+03  -0.017   0.9867  
    -## year2016-01-01 -2.280e+01  1.385e+03  -0.016   0.9869  
    -## year2017-01-01 -2.321e+01  1.385e+03  -0.017   0.9866  
    -## year2018-01-01 -2.321e+01  1.385e+03  -0.017   0.9866  
    -## year2019-01-01 -2.346e+01  1.385e+03  -0.017   0.9865  
    -## weighted_probs  1.548e-01  9.295e-02   1.665   0.0958 .
    -## ---
    -## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
    -## 
    -## (Dispersion parameter for binomial family taken to be 1)
    -## 
    -##     Null deviance: 5692.3  on 154030  degrees of freedom
    -## Residual deviance: 4566.8  on 154003  degrees of freedom
    -## AIC: 4622.8
    -## 
    -## Number of Fisher Scoring iterations: 15
    -

    The two groups of scientists did not have a significant association with the gender predicted from fore names (P = 0.095815). Interaction terms do not predict type over and above the main effect of gender probability and year.

    -
    scaled_iscb <- iscb_lm
    +  mutate(type = type %>% relevel(ref = "Pubmed authors"))
    +
    scaled_iscb <- iscb_lm %>%
    +  filter(year(year) >= 2002)
     # scaled_iscb$s_prob <- scale(scaled_iscb$weighted_probs, scale = F)
     # scaled_iscb$s_year <- scale(scaled_iscb$year, scale = F)
    -main_lm <- glm(type ~ year + weighted_probs, 
    -     data = scaled_iscb %>% mutate(year = as.factor(year)), 
    -     family = 'binomial')
     
    -summary(main_lm)
    -
    ## 
    -## Call:
    -## glm(formula = type ~ year + weighted_probs, family = "binomial", 
    -##     data = scaled_iscb %>% mutate(year = as.factor(year)))
    -## 
    -## Deviance Residuals: 
    -##     Min       1Q   Median       3Q      Max  
    -## -0.2521  -0.0675  -0.0602  -0.0536   3.7156  
    -## 
    -## Coefficients:
    -##                  Estimate Std. Error z value Pr(>|z|)  
    -## (Intercept)     1.655e+01  1.385e+03   0.012   0.9905  
    -## year1994-01-01  8.750e-03  1.959e+03   0.000   1.0000  
    -## year1995-01-01 -3.840e-02  1.959e+03   0.000   1.0000  
    -## year1996-01-01  5.925e-03  1.833e+03   0.000   1.0000  
    -## year1997-01-01 -6.766e-03  1.537e+03   0.000   1.0000  
    -## year1998-01-01 -1.777e-03  1.549e+03   0.000   1.0000  
    -## year1999-01-01  8.430e-03  1.510e+03   0.000   1.0000  
    -## year2000-01-01 -1.929e-03  1.510e+03   0.000   1.0000  
    -## year2001-01-01 -1.254e-03  1.510e+03   0.000   1.0000  
    -## year2002-01-01 -2.118e+01  1.385e+03  -0.015   0.9878  
    -## year2003-01-01 -2.150e+01  1.385e+03  -0.016   0.9876  
    -## year2004-01-01 -2.191e+01  1.385e+03  -0.016   0.9874  
    -## year2005-01-01 -2.227e+01  1.385e+03  -0.016   0.9872  
    -## year2006-01-01 -2.244e+01  1.385e+03  -0.016   0.9871  
    -## year2007-01-01 -2.231e+01  1.385e+03  -0.016   0.9872  
    -## year2008-01-01 -2.264e+01  1.385e+03  -0.016   0.9870  
    -## year2009-01-01 -2.241e+01  1.385e+03  -0.016   0.9871  
    -## year2010-01-01 -2.277e+01  1.385e+03  -0.016   0.9869  
    -## year2011-01-01 -2.287e+01  1.385e+03  -0.017   0.9868  
    -## year2012-01-01 -2.287e+01  1.385e+03  -0.017   0.9868  
    -## year2013-01-01 -2.291e+01  1.385e+03  -0.017   0.9868  
    -## year2014-01-01 -2.310e+01  1.385e+03  -0.017   0.9867  
    -## year2015-01-01 -2.303e+01  1.385e+03  -0.017   0.9867  
    -## year2016-01-01 -2.280e+01  1.385e+03  -0.016   0.9869  
    -## year2017-01-01 -2.321e+01  1.385e+03  -0.017   0.9866  
    -## year2018-01-01 -2.321e+01  1.385e+03  -0.017   0.9866  
    -## year2019-01-01 -2.346e+01  1.385e+03  -0.017   0.9865  
    -## weighted_probs  1.548e-01  9.295e-02   1.665   0.0958 .
    -## ---
    -## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
    -## 
    -## (Dispersion parameter for binomial family taken to be 1)
    -## 
    -##     Null deviance: 5692.3  on 154030  degrees of freedom
    -## Residual deviance: 4566.8  on 154003  degrees of freedom
    -## AIC: 4622.8
    -## 
    -## Number of Fisher Scoring iterations: 15
    +main_lm <- glm(type ~ year + weighted_probs, + data = scaled_iscb, # %>% mutate(year = as.factor(year)) + family = "binomial" +) + +broom::tidy(main_lm)
    +
    ## # A tibble: 3 x 5
    +##   term            estimate std.error statistic  p.value
    +##   <chr>              <dbl>     <dbl>     <dbl>    <dbl>
    +## 1 (Intercept)    -2.06     0.478         -4.30 1.67e- 5
    +## 2 year           -0.000271 0.0000320     -8.47 2.42e-17
    +## 3 weighted_probs  0.155    0.0921         1.69 9.19e- 2
    inte_lm <- glm(
       # type ~ scale(year, scale = F) * scale(weighted_probs, scale = F),
    -  # type ~ s_year * s_prob, 
    +  # type ~ s_year * s_prob,
       type ~ year * weighted_probs,
    -   data = scaled_iscb %>% mutate(year = as.factor(year))
    -   , 
    -   family = 'binomial')
    -summary(inte_lm)
    -
    ## 
    -## Call:
    -## glm(formula = type ~ year * weighted_probs, family = "binomial", 
    -##     data = scaled_iscb %>% mutate(year = as.factor(year)))
    -## 
    -## Deviance Residuals: 
    -##     Min       1Q   Median       3Q      Max  
    -## -0.4974  -0.0666  -0.0600  -0.0544   3.7730  
    -## 
    -## Coefficients:
    -##                                 Estimate Std. Error z value Pr(>|z|)
    -## (Intercept)                    1.657e+01  2.486e+03   0.007    0.995
    -## year1994-01-01                 1.785e-05  5.665e+03   0.000    1.000
    -## year1995-01-01                 1.785e-05  3.020e+03   0.000    1.000
    -## year1996-01-01                 1.785e-05  2.976e+03   0.000    1.000
    -## year1997-01-01                 1.785e-05  2.596e+03   0.000    1.000
    -## year1998-01-01                 1.785e-05  2.592e+03   0.000    1.000
    -## year1999-01-01                 1.785e-05  2.646e+03   0.000    1.000
    -## year2000-01-01                 1.785e-05  2.568e+03   0.000    1.000
    -## year2001-01-01                 1.785e-05  2.567e+03   0.000    1.000
    -## year2002-01-01                -2.101e+01  2.486e+03  -0.008    0.993
    -## year2003-01-01                -2.147e+01  2.486e+03  -0.009    0.993
    -## year2004-01-01                -2.195e+01  2.486e+03  -0.009    0.993
    -## year2005-01-01                -2.227e+01  2.486e+03  -0.009    0.993
    -## year2006-01-01                -2.237e+01  2.486e+03  -0.009    0.993
    -## year2007-01-01                -2.244e+01  2.486e+03  -0.009    0.993
    -## year2008-01-01                -2.268e+01  2.486e+03  -0.009    0.993
    -## year2009-01-01                -2.241e+01  2.486e+03  -0.009    0.993
    -## year2010-01-01                -2.274e+01  2.486e+03  -0.009    0.993
    -## year2011-01-01                -2.295e+01  2.486e+03  -0.009    0.993
    -## year2012-01-01                -2.288e+01  2.486e+03  -0.009    0.993
    -## year2013-01-01                -2.288e+01  2.486e+03  -0.009    0.993
    -## year2014-01-01                -2.294e+01  2.486e+03  -0.009    0.993
    -## year2015-01-01                -2.291e+01  2.486e+03  -0.009    0.993
    -## year2016-01-01                -2.288e+01  2.486e+03  -0.009    0.993
    -## year2017-01-01                -2.307e+01  2.486e+03  -0.009    0.993
    -## year2018-01-01                -2.332e+01  2.486e+03  -0.009    0.993
    -## year2019-01-01                -2.352e+01  2.486e+03  -0.009    0.992
    -## weighted_probs                 2.470e-04  2.815e+04   0.000    1.000
    -## year1994-01-01:weighted_probs -2.470e-04  2.952e+05   0.000    1.000
    -## year1995-01-01:weighted_probs -2.470e-04  2.831e+04   0.000    1.000
    -## year1996-01-01:weighted_probs -2.470e-04  4.246e+04   0.000    1.000
    -## year1997-01-01:weighted_probs -2.470e-04  2.829e+04   0.000    1.000
    -## year1998-01-01:weighted_probs -2.470e-04  2.828e+04   0.000    1.000
    -## year1999-01-01:weighted_probs -2.470e-04  4.592e+04   0.000    1.000
    -## year2000-01-01:weighted_probs -2.470e-04  2.827e+04   0.000    1.000
    -## year2001-01-01:weighted_probs -2.470e-04  2.827e+04   0.000    1.000
    -## year2002-01-01:weighted_probs -1.987e+00  2.815e+04   0.000    1.000
    -## year2003-01-01:weighted_probs -1.160e-01  2.815e+04   0.000    1.000
    -## year2004-01-01:weighted_probs  2.712e-01  2.815e+04   0.000    1.000
    -## year2005-01-01:weighted_probs  8.687e-02  2.815e+04   0.000    1.000
    -## year2006-01-01:weighted_probs -2.989e-01  2.815e+04   0.000    1.000
    -## year2007-01-01:weighted_probs  6.183e-01  2.815e+04   0.000    1.000
    -## year2008-01-01:weighted_probs  2.592e-01  2.815e+04   0.000    1.000
    -## year2009-01-01:weighted_probs  1.071e-01  2.815e+04   0.000    1.000
    -## year2010-01-01:weighted_probs -5.974e-02  2.815e+04   0.000    1.000
    -## year2011-01-01:weighted_probs  3.763e-01  2.815e+04   0.000    1.000
    -## year2012-01-01:weighted_probs  1.388e-01  2.815e+04   0.000    1.000
    -## year2013-01-01:weighted_probs  2.515e-02  2.815e+04   0.000    1.000
    -## year2014-01-01:weighted_probs -7.596e-01  2.815e+04   0.000    1.000
    -## year2015-01-01:weighted_probs -4.676e-01  2.815e+04   0.000    1.000
    -## year2016-01-01:weighted_probs  3.395e-01  2.815e+04   0.000    1.000
    -## year2017-01-01:weighted_probs -5.012e-01  2.815e+04   0.000    1.000
    -## year2018-01-01:weighted_probs  4.535e-01  2.815e+04   0.000    1.000
    -## year2019-01-01:weighted_probs  3.118e-01  2.815e+04   0.000    1.000
    -## 
    -## (Dispersion parameter for binomial family taken to be 1)
    -## 
    -##     Null deviance: 5692.3  on 154030  degrees of freedom
    -## Residual deviance: 4555.1  on 153977  degrees of freedom
    -## AIC: 4663.1
    -## 
    -## Number of Fisher Scoring iterations: 15
    -
    anova(main_lm, inte_lm, test = 'Chisq')
    + data = scaled_iscb, # %>% mutate(year = as.factor(year)) + family = "binomial" +) +broom::tidy(inte_lm)
    +
    ## # A tibble: 4 x 5
    +##   term                  estimate std.error statistic  p.value
    +##   <chr>                    <dbl>     <dbl>     <dbl>    <dbl>
    +## 1 (Intercept)         -1.91      0.523        -3.65  2.59e- 4
    +## 2 year                -0.000281  0.0000351    -7.99  1.30e-15
    +## 3 weighted_probs      -0.445     0.901        -0.494 6.21e- 1
    +## 4 year:weighted_probs  0.0000402 0.0000593     0.679 4.97e- 1
    +
    anova(main_lm, inte_lm, test = "Chisq")
    ## Analysis of Deviance Table
     ## 
     ## Model 1: type ~ year + weighted_probs
     ## Model 2: type ~ year * weighted_probs
     ##   Resid. Df Resid. Dev Df Deviance Pr(>Chi)
    -## 1    154003     4566.8                     
    -## 2    153977     4555.1 26   11.719   0.9926
    -
    mean(scaled_iscb$year)
    -
    ## Warning in mean.default(scaled_iscb$year): argument is not numeric or logical: returning NA
    -
    ## [1] NA
    -
    mean(scaled_iscb$weighted_probs)
    -
    ## [1] 0.2260815
    -
    # inte_lm <- glm(type ~ (year * weighted_probs), 
    -#    data = iscb_lm, 
    -#    family = 'binomial')
    +## 1 153942 4582.3 +## 2 153941 4581.8 1 0.47034 0.4928 +
    # mean(scaled_iscb$year)
    +# mean(scaled_iscb$weighted_probs)
    +

    The two groups of scientists did not have a significant association with the gender predicted from fore names (P = 0.091898). Interaction terms do not predict type over and above the main effect of gender probability and year.

    sessionInfo()
    ## R version 4.0.3 (2020-10-10)
     ## Platform: x86_64-pc-linux-gnu (64-bit)
    @@ -2024,51 +1870,63 @@ 

    Hypothesis testing

    ## BLAS/LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.8.so ## ## locale: -## [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8 -## [4] LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 LC_MESSAGES=C -## [7] LC_PAPER=en_US.UTF-8 LC_NAME=C LC_ADDRESS=C -## [10] LC_TELEPHONE=C LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C +## [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C +## [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 +## [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=C +## [7] LC_PAPER=en_US.UTF-8 LC_NAME=C +## [9] LC_ADDRESS=C LC_TELEPHONE=C +## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C ## ## attached base packages: ## [1] stats graphics grDevices utils datasets methods base ## ## other attached packages: -## [1] gdtools_0.2.2 wru_0.1-10 rnaturalearth_0.1.0 lubridate_1.7.9.2 -## [5] caret_6.0-86 lattice_0.20-41 forcats_0.5.0 stringr_1.4.0 -## [9] dplyr_1.0.2 purrr_0.3.4 readr_1.4.0 tidyr_1.1.2 +## [1] gdtools_0.2.2 wru_0.1-10 rnaturalearth_0.1.0 +## [4] lubridate_1.7.9.2 caret_6.0-86 lattice_0.20-41 +## [7] forcats_0.5.0 stringr_1.4.0 dplyr_1.0.2 +## [10] purrr_0.3.4 readr_1.4.0 tidyr_1.1.2 ## [13] tibble_3.0.4 ggplot2_3.3.2 tidyverse_1.3.0 ## ## loaded via a namespace (and not attached): -## [1] colorspace_2.0-0 ellipsis_0.3.1 class_7.3-17 rprojroot_1.3-2 -## [5] fs_1.5.0 rstudioapi_0.12 farver_2.0.3 remotes_2.2.0 -## [9] DT_0.16 prodlim_2019.11.13 fansi_0.4.1 xml2_1.3.2 -## [13] codetools_0.2-16 splines_4.0.3 knitr_1.30 pkgload_1.1.0 -## [17] jsonlite_1.7.1 pROC_1.16.2 broom_0.7.2 dbplyr_2.0.0 -## [21] rgeos_0.5-5 compiler_4.0.3 httr_1.4.2 backports_1.2.0 -## [25] assertthat_0.2.1 Matrix_1.2-18 cli_2.1.0 htmltools_0.5.0 -## [29] prettyunits_1.1.1 tools_4.0.3 gtable_0.3.0 glue_1.4.2 -## [33] rnaturalearthdata_0.1.0 reshape2_1.4.4 Rcpp_1.0.5 cellranger_1.1.0 -## [37] vctrs_0.3.4 svglite_1.2.3.2 nlme_3.1-149 iterators_1.0.13 -## [41] crosstalk_1.1.0.1 timeDate_3043.102 gower_0.2.2 xfun_0.19 -## [45] ps_1.4.0 testthat_3.0.0 rvest_0.3.6 lifecycle_0.2.0 -## [49] devtools_2.3.2 MASS_7.3-53 scales_1.1.1 ipred_0.9-9 -## [53] hms_0.5.3 RColorBrewer_1.1-2 yaml_2.2.1 curl_4.3 -## [57] memoise_1.1.0 rpart_4.1-15 stringi_1.5.3 desc_1.2.0 -## [61] foreach_1.5.1 e1071_1.7-4 pkgbuild_1.1.0 lava_1.6.8.1 -## [65] systemfonts_0.3.2 rlang_0.4.8 pkgconfig_2.0.3 evaluate_0.14 -## [69] sf_0.9-6 recipes_0.1.15 htmlwidgets_1.5.2 labeling_0.4.2 -## [73] cowplot_1.1.0 tidyselect_1.1.0 processx_3.4.4 plyr_1.8.6 -## [77] magrittr_1.5 R6_2.5.0 generics_0.1.0 DBI_1.1.0 -## [81] mgcv_1.8-33 pillar_1.4.6 haven_2.3.1 withr_2.3.0 -## [85] units_0.6-7 survival_3.2-7 sp_1.4-4 nnet_7.3-14 -## [89] modelr_0.1.8 crayon_1.3.4 KernSmooth_2.23-17 utf8_1.1.4 -## [93] rmarkdown_2.5 usethis_1.6.3 grid_4.0.3 readxl_1.3.1 -## [97] data.table_1.13.2 callr_3.5.1 ModelMetrics_1.2.2.2 reprex_0.3.0 -## [101] digest_0.6.27 classInt_0.4-3 stats4_4.0.3 munsell_0.5.0 -## [105] viridisLite_0.3.0 sessioninfo_1.1.1
    +## [1] colorspace_2.0-0 ellipsis_0.3.1 class_7.3-17 +## [4] rprojroot_1.3-2 fs_1.5.0 rstudioapi_0.12 +## [7] farver_2.0.3 remotes_2.2.0 DT_0.16 +## [10] prodlim_2019.11.13 fansi_0.4.1 xml2_1.3.2 +## [13] codetools_0.2-16 splines_4.0.3 knitr_1.30 +## [16] pkgload_1.1.0 jsonlite_1.7.1 pROC_1.16.2 +## [19] broom_0.7.2 dbplyr_2.0.0 rgeos_0.5-5 +## [22] compiler_4.0.3 httr_1.4.2 backports_1.2.0 +## [25] assertthat_0.2.1 Matrix_1.2-18 cli_2.1.0 +## [28] htmltools_0.5.0 prettyunits_1.1.1 tools_4.0.3 +## [31] gtable_0.3.0 glue_1.4.2 rnaturalearthdata_0.1.0 +## [34] reshape2_1.4.4 Rcpp_1.0.5 cellranger_1.1.0 +## [37] vctrs_0.3.4 svglite_1.2.3.2 nlme_3.1-149 +## [40] iterators_1.0.13 crosstalk_1.1.0.1 timeDate_3043.102 +## [43] gower_0.2.2 xfun_0.19 ps_1.4.0 +## [46] testthat_3.0.0 rvest_0.3.6 lifecycle_0.2.0 +## [49] devtools_2.3.2 MASS_7.3-53 scales_1.1.1 +## [52] ipred_0.9-9 hms_0.5.3 RColorBrewer_1.1-2 +## [55] yaml_2.2.1 curl_4.3 memoise_1.1.0 +## [58] rpart_4.1-15 stringi_1.5.3 desc_1.2.0 +## [61] foreach_1.5.1 e1071_1.7-4 pkgbuild_1.1.0 +## [64] lava_1.6.8.1 systemfonts_0.3.2 rlang_0.4.8 +## [67] pkgconfig_2.0.3 evaluate_0.14 sf_0.9-6 +## [70] recipes_0.1.15 htmlwidgets_1.5.2 labeling_0.4.2 +## [73] cowplot_1.1.0 tidyselect_1.1.0 processx_3.4.4 +## [76] plyr_1.8.6 magrittr_1.5 R6_2.5.0 +## [79] generics_0.1.0 DBI_1.1.0 mgcv_1.8-33 +## [82] pillar_1.4.6 haven_2.3.1 withr_2.3.0 +## [85] units_0.6-7 survival_3.2-7 sp_1.4-4 +## [88] nnet_7.3-14 modelr_0.1.8 crayon_1.3.4 +## [91] KernSmooth_2.23-17 utf8_1.1.4 rmarkdown_2.5 +## [94] usethis_1.6.3 grid_4.0.3 readxl_1.3.1 +## [97] data.table_1.13.2 callr_3.5.1 ModelMetrics_1.2.2.2 +## [100] reprex_0.3.0 digest_0.6.27 classInt_0.4-3 +## [103] stats4_4.0.3 munsell_0.5.0 viridisLite_0.3.0 +## [106] sessioninfo_1.1.1
    -
    LS0tCnRpdGxlOiAiUmVwcmVzZW50YXRpb24gYW5hbHlzaXMgb2YgZ2VuZGVyIgotLS0KCiMjIFNldHVwcwoKYGBge3IgbWVzc2FnZSA9IEYsIHdhcm5pbmc9Rn0KbGlicmFyeSh0aWR5dmVyc2UpCmxpYnJhcnkobHVicmlkYXRlKQpsaWJyYXJ5KHJuYXR1cmFsZWFydGgpCmxpYnJhcnkod3J1KQpzb3VyY2UoJ3V0aWxzL3ItdXRpbHMuUicpCnRoZW1lX3NldCh0aGVtZV9idygpICsgdGhlbWUobGVnZW5kLnRpdGxlID0gZWxlbWVudF9ibGFuaygpKSkKYGBgCgojIyBMb2FkIGRhdGEKCk9ubHkga2VlcCBhcnRpY2xlcyBmcm9tIDIwMDIgYmVjYXVzZSBmZXcgYXV0aG9ycyBoYWQgZ2VuZGVyIHByZWRpY3Rpb25zIGJlZm9yZSAyMDAyLgpTZWUgWzA5My5zdW1tYXJ5LXN0YXRzXShkb2NzLzA5My5zdW1tYXJ5LXN0YXRzLmh0bWwpIGZvciBtb3JlIGRldGFpbHMuCgpgYGB7cn0KbG9hZCgnUmRhdGEvcmF3cy5SZGF0YScpCgphbHBoYV90aHJlc2hvbGQgPC0gcW5vcm0oMC45NzUpCmdlbmRlcl9kZiA8LSByZWFkX3RzdignZGF0YS9nZW5kZXIvZ2VuZGVyaXplLnRzdicpCgpwdWJtZWRfZ2VuZGVyX2RmIDwtIGNvcnJfYXV0aG9ycyAlPiUKICBmaWx0ZXIoeWVhcih5ZWFyKSA+PSAyMDAyKSAlPiUgCiAgbGVmdF9qb2luKGdlbmRlcl9kZiwgYnkgPSAnZm9yZV9uYW1lX3NpbXBsZScpCgppc2NiX2dlbmRlcl9kZiA8LSBrZXlub3RlcyAlPiUgCiAgbGVmdF9qb2luKGdlbmRlcl9kZiwgYnkgPSAnZm9yZV9uYW1lX3NpbXBsZScpCgpzdGFydF95ZWFyIDwtIDE5OTMKZW5kX3llYXIgPC0gMjAxOQpuX3llYXJzIDwtIGVuZF95ZWFyIC0gc3RhcnRfeWVhcgpteV9qb3VycyA8LSB1bmlxdWUocHVibWVkX2dlbmRlcl9kZiRqb3VybmFsKQpteV9jb25mcyA8LSB1bmlxdWUoaXNjYl9nZW5kZXJfZGYkY29uZmVyZW5jZSkKbl9qb3VycyA8LSBsZW5ndGgobXlfam91cnMpCm5fY29uZnMgPC0gbGVuZ3RoKG15X2NvbmZzKQpgYGAKCiMjIFByZXBhcmUgZGF0YSBmcmFtZXMgZm9yIGxhdGVyIGFuYWx5c2VzCgotIHJiaW5kIHJlc3VsdHMgb2YgcmFjZSBwcmVkaWN0aW9ucyBpbiBpc2NiIGFuZCBQdWJtZWQKLSBwaXZvdCBsb25nCi0gY29tcHV0ZSBtZWFuLCBzZCwgbWFyZ2luYWwgZXJyb3IKCmBgYHtyfQppc2NiX3B1Ym1lZCA8LSBpc2NiX2dlbmRlcl9kZiAlPiUKICByZW5hbWUoJ2pvdXJuYWwnID0gY29uZmVyZW5jZSkgJT4lCiAgc2VsZWN0KHllYXIsIGpvdXJuYWwsIHByb2JhYmlsaXR5X21hbGUsIHB1YmxpY2F0aW9uX2RhdGUpICU+JQogIG11dGF0ZSh0eXBlID0gJ0tleW5vdGUgc3BlYWtlcnMvRmVsbG93cycsCiAgICAgICAgIGFkanVzdGVkX2NpdGF0aW9ucyA9IDEpICU+JQogIGJpbmRfcm93cygKICAgIHB1Ym1lZF9nZW5kZXJfZGYgJT4lCiAgICAgIHNlbGVjdCh5ZWFyLCBqb3VybmFsLCBwcm9iYWJpbGl0eV9tYWxlLCBwdWJsaWNhdGlvbl9kYXRlLCBhZGp1c3RlZF9jaXRhdGlvbnMpICU+JQogICAgICBtdXRhdGUodHlwZSA9ICdQdWJtZWQgYXV0aG9ycycpCiAgKSAlPiUKICBtdXRhdGUocHJvYmFiaWxpdHlfZmVtYWxlID0gMSAtIHByb2JhYmlsaXR5X21hbGUpICU+JSAKICBwaXZvdF9sb25nZXIoY29udGFpbnMoJ3Byb2JhYmlsaXR5JyksCiAgICAgICAgICAgICAgIG5hbWVzX3RvID0gJ2dlbmRlcicsCiAgICAgICAgICAgICAgIHZhbHVlc190byA9ICdwcm9iYWJpbGl0aWVzJykgJT4lCiAgZmlsdGVyKCFpcy5uYShwcm9iYWJpbGl0aWVzKSkgJT4lIAogIGdyb3VwX2J5KHR5cGUsIHllYXIsIGdlbmRlcikgJT4lCiAgbXV0YXRlKAogICAgcG1jX2NpdGF0aW9uc195ZWFyID0gbWVhbihhZGp1c3RlZF9jaXRhdGlvbnMpLAogICAgd2VpZ2h0ID0gYWRqdXN0ZWRfY2l0YXRpb25zL3BtY19jaXRhdGlvbnNfeWVhciwKICAgIHdlaWdodGVkX3Byb2JzID0gcHJvYmFiaWxpdGllcyp3ZWlnaHQKICAgICMgd2VpZ2h0ID0gMQogICAgKQoKaXNjYl9wdWJtZWRfc3VtIDwtIGlzY2JfcHVibWVkICU+JSAKICBzdW1tYXJpc2UoCiAgICAjIG4gPSBuKCksCiAgICBtZWFuX3Byb2IgPSBtZWFuKHdlaWdodGVkX3Byb2JzKSwKICAgICMgbWVhbl9wcm9iID0gbWVhbihwcm9iYWJpbGl0aWVzLCBuYS5ybSA9IFQpLAogICAgIyBzZF9wcm9iID0gc2QocHJvYmFiaWxpdGllcywgbmEucm0gPSBUKSwKICAgIHNlX3Byb2IgPSBzcXJ0KHZhcihwcm9iYWJpbGl0aWVzKSAqIHN1bSh3ZWlnaHReMikvKHN1bSh3ZWlnaHQpXjIpKSwKICAgICMgbiA9IG1lYW4obiksCiAgICBtZV9wcm9iID0gYWxwaGFfdGhyZXNob2xkICogc2VfcHJvYiwKICAgIC5ncm91cHMgPSAnZHJvcCcKICApCiMgaHR0cHM6Ly9zdGF0cy5zdGFja2V4Y2hhbmdlLmNvbS9xdWVzdGlvbnMvMjU4OTUvY29tcHV0aW5nLXN0YW5kYXJkLWVycm9yLWluLXdlaWdodGVkLW1lYW4tZXN0aW1hdGlvbgpgYGAKCgpgYGB7cn0KIyBzYXZlKGlzY2JfcHVibWVkLCBmaWxlID0gJ1JkYXRhL2lzY2ItcHVibWVkX2dlbmRlci5SZGF0YScpCmBgYAoKCiMjIEZpZ3VyZXMgZm9yIHBhcGVyCgojIyMgRmlndXJlIDE6IElTQ0IgRmVsbG93cyBhbmQga2V5bm90ZSBzcGVha2VycyBhcHBlYXIgbW9yZSBldmVubHkgc3BsaXQgYmV0d2VlbiBtZW4gYW5kIHdvbWVuIHRoYW4gUHViTWVkIGF1dGhvcnMsIGJ1dCB0aGUgcHJvcG9ydGlvbiBoYXMgbm90IHJlYWNoZWQgcGFyaXR5LgoKYGBge3IgZmlnLmhlaWdodD0zfQpmaWdfMSA8LSBpc2NiX3B1Ym1lZF9zdW0gJT4lCiAgIyBncm91cF9ieSh5ZWFyLCB0eXBlLCBnZW5kZXIpICU+JQogIGdlbmRlcl9icmVha2Rvd24oJ21haW4nLCBmY3RfcmV2KHR5cGUpKQpmaWdfMQpnZ3NhdmUoJ2ZpZ3MvZ2VuZGVyX2JyZWFrZG93bi5wbmcnLCBmaWdfMSwgd2lkdGggPSA1LCBoZWlnaHQgPSAyLjUpCmdnc2F2ZSgnZmlncy9nZW5kZXJfYnJlYWtkb3duLnN2ZycsIGZpZ18xLCB3aWR0aCA9IDUsIGhlaWdodCA9IDIuNSkKYGBgCgpgYGB7ciBlY2hvPUZBTFNFfQppc2NiX3B1Ym1lZF9zdW0gJT4lCiAgIyBncm91cF9ieSh5ZWFyLCB0eXBlLCBnZW5kZXIpICU+JQogICMgc3VtbWFyaXNlKG1lYW5fcHJvYiA9IG1lYW4ocHJvYmFiaWxpdGllcywgbmEucm0gPSBUKSwgLmdyb3VwcyA9ICdkcm9wJykgJT4lIAogIGZpbHRlcih5ZWFyKHllYXIpID4gMjAxNiwgZ3JlcGwoJ2ZlbWFsZScsIGdlbmRlcikpICU+JSAKICBncm91cF9ieSh0eXBlKSAlPiUgCiAgc3VtbWFyaXNlKHByb2JfZmVtYWxlX2F2ZyA9IG1lYW4obWVhbl9wcm9iKSkKYGBgCgojIyMgU3VwcGxlbWVudGFyeSBGaWd1cmUgUzEgeyNzdXBfZmlnX3MxfQoKQWRkaXRpb25hbCBmaWcuIDEgd2l0aCBzZXBhcmF0ZWQga2V5bm90ZSBzcGVha2VycyBhbmQgZmVsbG93cwoKYGBge3J9CmlzY2JfcHVibWVkICU+JQogIHVuZ3JvdXAoKSAlPiUgCiAgbXV0YXRlKHR5cGUyID0gY2FzZV93aGVuKAogICAgam91cm5hbCA9PSAnSVNDQiBGZWxsb3cnIH4gJ0lTQ0IgRmVsbG93cycsCiAgICB0eXBlID09ICdLZXlub3RlIHNwZWFrZXJzL0ZlbGxvd3MnIH4gJ0tleW5vdGUgc3BlYWtlcnMnLAogICAgVFJVRSB+ICdQdWJtZWQgYXV0aG9ycycKICApKSAlPiUgCiAgZ3JvdXBfYnkodHlwZTIsIHllYXIsIGdlbmRlcikgJT4lIAogIHN1bW1hcmlzZSgKICAgIG1lYW5fcHJvYiA9IG1lYW4od2VpZ2h0ZWRfcHJvYnMpLAogICAgc2VfcHJvYiA9IHNxcnQodmFyKHByb2JhYmlsaXRpZXMpICogc3VtKHdlaWdodF4yKS8oc3VtKHdlaWdodCleMikpLAogICAgbWVfcHJvYiA9IGFscGhhX3RocmVzaG9sZCAqIHNlX3Byb2IsCiAgICAuZ3JvdXBzID0gJ2Ryb3AnCiAgKSAlPiUgCiAgZ2VuZGVyX2JyZWFrZG93bignbWFpbicsIGZjdF9yZXYodHlwZTIpKQpgYGAKCjwhLS0gSW5jcmVhc2luZyB0cmVuZCBvZiBob25vcmVlcyB3aG8gd2VyZSB3b21lbiBpbiBlYWNoIGhvbm9yIGNhdGVnb3J5LCBlc3BlY2lhbGx5IGluIHRoZSBncm91cCBvZiBJU0NCIEZlbGxvd3MsIHdoaWNoIG1hcmtlZGx5IGluY3JlYXNlZCBhZnRlciAyMDE1LiAgLS0+CgpgYGB7ciBldmFsPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQojIEJ5IGNvbmZlcmVuY2U6CiMgZmlnXzFkIDwtIGJpbmRfcm93cyhpc2NiX2dlbmRlcikgJT4lCiMgICBnZW5kZXJfYnJlYWtkb3duKGNhdGVnb3J5ID0gJ3N1YicsIGpvdXJuYWwpICsKIyAgIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICdib3R0b20nKQoKIyBmaWdfMWQKIyBnZ3NhdmUoJ2ZpZ3MvZmlnX3MxLnBuZycsIGZpZ18xZCwgd2lkdGggPSA2LCBoZWlnaHQgPSAyKQojIGdnc2F2ZSgnZmlncy9maWdfczEuc3ZnJywgZmlnXzFkLCB3aWR0aCA9IDYsIGhlaWdodCA9IDIpCmBgYAoKIyMgTWVhbiBhbmQgc3RhbmRhcmQgZGV2aWF0aW9uIG9mIHByZWRpY3RlZCBwcm9iYWJpbGl0aWVzCgpgYGB7cn0KaXNjYl9wdWJtZWRfc3VtICU+JSBmaWx0ZXIoZ2VuZGVyID09ICdwcm9iYWJpbGl0eV9tYWxlJykgJT4lIAogIGdhbV9hbmRfY2koZGYyID0gaXNjYl9wdWJtZWQgJT4lIGZpbHRlcihnZW5kZXIgPT0gJ3Byb2JhYmlsaXR5X21hbGUnKSwKICAgICAgICAgICAgIHN0YXJ0X3kgPSBzdGFydF95ZWFyLCBlbmRfeSA9IGVuZF95ZWFyKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gYygwLjg4LCAwLjIpKQpgYGAKCiMjIEh5cG90aGVzaXMgdGVzdGluZwoKYGBge3IgZWNobyA9IEZ9CmdldF9wIDwtIGZ1bmN0aW9uKGludGUsIGNvbHUpewogIGJyb29tOjp0aWR5KGludGUpICU+JSAKICAgIGZpbHRlcih0ZXJtID09ICd3ZWlnaHRlZF9wcm9icycpICU+JSAKICAgIHB1bGwoY29sdSkgJT4lIAogICAgc3ByaW50ZigiJTAuNWciLCAuKQp9CmBgYAoKYGBge3J9CmlzY2JfbG0gPC0gaXNjYl9wdWJtZWQgJT4lIAogICAgICAgZmlsdGVyKGdlbmRlciA9PSAncHJvYmFiaWxpdHlfZmVtYWxlJywgIWlzLm5hKHdlaWdodGVkX3Byb2JzKSkgJT4lIAogIG11dGF0ZSh0eXBlID0gYXMuZmFjdG9yKHR5cGUpKSAlPiUgCiAgbXV0YXRlKHR5cGUgPSByZWxldmVsKHR5cGUsIHJlZiA9ICdQdWJtZWQgYXV0aG9ycycpLAogICAgICAgICB5ZWFyID0gYXMuZmFjdG9yKHllYXIpKQoKbWFpbl9sbSA8LSBnbG0odHlwZSB+IHllYXIgKyB3ZWlnaHRlZF9wcm9icywgCiAgICAgZGF0YSA9IGlzY2JfbG0sIGZhbWlseSA9ICdiaW5vbWlhbCcpCgpzdW1tYXJ5KG1haW5fbG0pCmBgYAoKVGhlIHR3byBncm91cHMgb2Ygc2NpZW50aXN0cyBkaWQgbm90IGhhdmUgYSBzaWduaWZpY2FudCBhc3NvY2lhdGlvbiB3aXRoIHRoZSBnZW5kZXIgcHJlZGljdGVkIGZyb20gZm9yZSBuYW1lcyAoX1BfID0gYHIgZ2V0X3AobWFpbl9sbSwgJ3AudmFsdWUnKWApLgpJbnRlcmFjdGlvbiB0ZXJtcyBkbyBub3QgcHJlZGljdCBgdHlwZWAgb3ZlciBhbmQgYWJvdmUgdGhlIG1haW4gZWZmZWN0IG9mIGdlbmRlciBwcm9iYWJpbGl0eSBhbmQgeWVhci4KCmBgYHtyfQpzY2FsZWRfaXNjYiA8LSBpc2NiX2xtCiMgc2NhbGVkX2lzY2Ikc19wcm9iIDwtIHNjYWxlKHNjYWxlZF9pc2NiJHdlaWdodGVkX3Byb2JzLCBzY2FsZSA9IEYpCiMgc2NhbGVkX2lzY2Ikc195ZWFyIDwtIHNjYWxlKHNjYWxlZF9pc2NiJHllYXIsIHNjYWxlID0gRikKbWFpbl9sbSA8LSBnbG0odHlwZSB+IHllYXIgKyB3ZWlnaHRlZF9wcm9icywgCiAgICAgZGF0YSA9IHNjYWxlZF9pc2NiICU+JSBtdXRhdGUoeWVhciA9IGFzLmZhY3Rvcih5ZWFyKSksIAogICAgIGZhbWlseSA9ICdiaW5vbWlhbCcpCgpzdW1tYXJ5KG1haW5fbG0pCmludGVfbG0gPC0gZ2xtKAogICMgdHlwZSB+IHNjYWxlKHllYXIsIHNjYWxlID0gRikgKiBzY2FsZSh3ZWlnaHRlZF9wcm9icywgc2NhbGUgPSBGKSwKICAjIHR5cGUgfiBzX3llYXIgKiBzX3Byb2IsIAogIHR5cGUgfiB5ZWFyICogd2VpZ2h0ZWRfcHJvYnMsCiAgIGRhdGEgPSBzY2FsZWRfaXNjYiAlPiUgbXV0YXRlKHllYXIgPSBhcy5mYWN0b3IoeWVhcikpCiAgICwgCiAgIGZhbWlseSA9ICdiaW5vbWlhbCcpCnN1bW1hcnkoaW50ZV9sbSkKYW5vdmEobWFpbl9sbSwgaW50ZV9sbSwgdGVzdCA9ICdDaGlzcScpCm1lYW4oc2NhbGVkX2lzY2IkeWVhcikKbWVhbihzY2FsZWRfaXNjYiR3ZWlnaHRlZF9wcm9icykKYGBgCgpgYGB7cn0KIyBpbnRlX2xtIDwtIGdsbSh0eXBlIH4gKHllYXIgKiB3ZWlnaHRlZF9wcm9icyksIAojICAgIGRhdGEgPSBpc2NiX2xtLCAKIyAgICBmYW1pbHkgPSAnYmlub21pYWwnKQpgYGAKCmBgYHtyfQpzZXNzaW9uSW5mbygpCmBgYAo=
    +
    LS0tCnRpdGxlOiAiUmVwcmVzZW50YXRpb24gYW5hbHlzaXMgb2YgZ2VuZGVyIgotLS0KCiMjIFNldHVwcwoKYGBge3IgbWVzc2FnZSA9IEYsIHdhcm5pbmc9Rn0KbGlicmFyeSh0aWR5dmVyc2UpCmxpYnJhcnkobHVicmlkYXRlKQpsaWJyYXJ5KHJuYXR1cmFsZWFydGgpCmxpYnJhcnkod3J1KQpzb3VyY2UoInV0aWxzL3ItdXRpbHMuUiIpCnRoZW1lX3NldCh0aGVtZV9idygpICsgdGhlbWUobGVnZW5kLnRpdGxlID0gZWxlbWVudF9ibGFuaygpKSkKYGBgCgojIyBMb2FkIGRhdGEKCk9ubHkga2VlcCBhcnRpY2xlcyBmcm9tIDIwMDIgYmVjYXVzZSBmZXcgYXV0aG9ycyBoYWQgZ2VuZGVyIHByZWRpY3Rpb25zIGJlZm9yZSAyMDAyLgpTZWUgWzA5My5zdW1tYXJ5LXN0YXRzXShkb2NzLzA5My5zdW1tYXJ5LXN0YXRzLmh0bWwpIGZvciBtb3JlIGRldGFpbHMuCgpgYGB7cn0KbG9hZCgiUmRhdGEvcmF3cy5SZGF0YSIpCgphbHBoYV90aHJlc2hvbGQgPC0gcW5vcm0oMC45NzUpCmdlbmRlcl9kZiA8LSByZWFkX3RzdigiZGF0YS9nZW5kZXIvZ2VuZGVyaXplLnRzdiIpCgpwdWJtZWRfZ2VuZGVyX2RmIDwtIGNvcnJfYXV0aG9ycyAlPiUKICBmaWx0ZXIoeWVhcih5ZWFyKSA+PSAyMDAyKSAlPiUKICBsZWZ0X2pvaW4oZ2VuZGVyX2RmLCBieSA9ICJmb3JlX25hbWVfc2ltcGxlIikKCmlzY2JfZ2VuZGVyX2RmIDwtIGtleW5vdGVzICU+JQogIGxlZnRfam9pbihnZW5kZXJfZGYsIGJ5ID0gImZvcmVfbmFtZV9zaW1wbGUiKQoKc3RhcnRfeWVhciA8LSAxOTkzCmVuZF95ZWFyIDwtIDIwMTkKbl95ZWFycyA8LSBlbmRfeWVhciAtIHN0YXJ0X3llYXIKbXlfam91cnMgPC0gdW5pcXVlKHB1Ym1lZF9nZW5kZXJfZGYkam91cm5hbCkKbXlfY29uZnMgPC0gdW5pcXVlKGlzY2JfZ2VuZGVyX2RmJGNvbmZlcmVuY2UpCm5fam91cnMgPC0gbGVuZ3RoKG15X2pvdXJzKQpuX2NvbmZzIDwtIGxlbmd0aChteV9jb25mcykKYGBgCgojIyBQcmVwYXJlIGRhdGEgZnJhbWVzIGZvciBsYXRlciBhbmFseXNlcwoKLSByYmluZCByZXN1bHRzIG9mIHJhY2UgcHJlZGljdGlvbnMgaW4gaXNjYiBhbmQgUHVibWVkCi0gcGl2b3QgbG9uZwotIGNvbXB1dGUgbWVhbiwgc2QsIG1hcmdpbmFsIGVycm9yCgpgYGB7cn0KaXNjYl9wdWJtZWQgPC0gaXNjYl9nZW5kZXJfZGYgJT4lCiAgcmVuYW1lKCJqb3VybmFsIiA9IGNvbmZlcmVuY2UpICU+JQogIHNlbGVjdCh5ZWFyLCBqb3VybmFsLCBwcm9iYWJpbGl0eV9tYWxlLCBwdWJsaWNhdGlvbl9kYXRlKSAlPiUKICBtdXRhdGUoCiAgICB0eXBlID0gIktleW5vdGUgc3BlYWtlcnMvRmVsbG93cyIsCiAgICBhZGp1c3RlZF9jaXRhdGlvbnMgPSAxCiAgKSAlPiUKICBiaW5kX3Jvd3MoCiAgICBwdWJtZWRfZ2VuZGVyX2RmICU+JQogICAgICBzZWxlY3QoeWVhciwgam91cm5hbCwgcHJvYmFiaWxpdHlfbWFsZSwgcHVibGljYXRpb25fZGF0ZSwgYWRqdXN0ZWRfY2l0YXRpb25zKSAlPiUKICAgICAgbXV0YXRlKHR5cGUgPSAiUHVibWVkIGF1dGhvcnMiKQogICkgJT4lCiAgbXV0YXRlKHByb2JhYmlsaXR5X2ZlbWFsZSA9IDEgLSBwcm9iYWJpbGl0eV9tYWxlKSAlPiUKICBwaXZvdF9sb25nZXIoY29udGFpbnMoInByb2JhYmlsaXR5IiksCiAgICBuYW1lc190byA9ICJnZW5kZXIiLAogICAgdmFsdWVzX3RvID0gInByb2JhYmlsaXRpZXMiCiAgKSAlPiUKICBmaWx0ZXIoIWlzLm5hKHByb2JhYmlsaXRpZXMpKSAlPiUKICBncm91cF9ieSh0eXBlLCB5ZWFyLCBnZW5kZXIpICU+JQogIG11dGF0ZSgKICAgIHBtY19jaXRhdGlvbnNfeWVhciA9IG1lYW4oYWRqdXN0ZWRfY2l0YXRpb25zKSwKICAgIHdlaWdodCA9IGFkanVzdGVkX2NpdGF0aW9ucyAvIHBtY19jaXRhdGlvbnNfeWVhciwKICAgIHdlaWdodGVkX3Byb2JzID0gcHJvYmFiaWxpdGllcyAqIHdlaWdodAogICAgIyB3ZWlnaHQgPSAxCiAgKQoKaXNjYl9wdWJtZWRfc3VtIDwtIGlzY2JfcHVibWVkICU+JQogIHN1bW1hcmlzZSgKICAgICMgbiA9IG4oKSwKICAgIG1lYW5fcHJvYiA9IG1lYW4od2VpZ2h0ZWRfcHJvYnMpLAogICAgIyBtZWFuX3Byb2IgPSBtZWFuKHByb2JhYmlsaXRpZXMsIG5hLnJtID0gVCksCiAgICAjIHNkX3Byb2IgPSBzZChwcm9iYWJpbGl0aWVzLCBuYS5ybSA9IFQpLAogICAgc2VfcHJvYiA9IHNxcnQodmFyKHByb2JhYmlsaXRpZXMpICogc3VtKHdlaWdodF4yKSAvIChzdW0od2VpZ2h0KV4yKSksCiAgICAjIG4gPSBtZWFuKG4pLAogICAgbWVfcHJvYiA9IGFscGhhX3RocmVzaG9sZCAqIHNlX3Byb2IsCiAgICAuZ3JvdXBzID0gImRyb3AiCiAgKQojIGh0dHBzOi8vc3RhdHMuc3RhY2tleGNoYW5nZS5jb20vcXVlc3Rpb25zLzI1ODk1L2NvbXB1dGluZy1zdGFuZGFyZC1lcnJvci1pbi13ZWlnaHRlZC1tZWFuLWVzdGltYXRpb24KYGBgCgoKYGBge3J9CiMgc2F2ZShpc2NiX3B1Ym1lZCwgZmlsZSA9ICdSZGF0YS9pc2NiLXB1Ym1lZF9nZW5kZXIuUmRhdGEnKQpgYGAKCgojIyBGaWd1cmVzIGZvciBwYXBlcgoKIyMjIEZpZ3VyZSAyOiBJU0NCIEZlbGxvd3MgYW5kIGtleW5vdGUgc3BlYWtlcnMgYXBwZWFyIG1vcmUgZXZlbmx5IHNwbGl0IGJldHdlZW4gbWVuIGFuZCB3b21lbiB0aGFuIFB1Yk1lZCBhdXRob3JzLCBidXQgdGhlIHByb3BvcnRpb24gaGFzIG5vdCByZWFjaGVkIHBhcml0eS4KCmBgYHtyIGZpZy5oZWlnaHQ9M30KZmlnXzEgPC0gaXNjYl9wdWJtZWRfc3VtICU+JQogICMgZ3JvdXBfYnkoeWVhciwgdHlwZSwgZ2VuZGVyKSAlPiUKICBnZW5kZXJfYnJlYWtkb3duKCJtYWluIiwgZmN0X3Jldih0eXBlKSkKZmlnXzEKZ2dzYXZlKCJmaWdzL2dlbmRlcl9icmVha2Rvd24ucG5nIiwgZmlnXzEsIHdpZHRoID0gNSwgaGVpZ2h0ID0gMi41KQpnZ3NhdmUoImZpZ3MvZ2VuZGVyX2JyZWFrZG93bi5zdmciLCBmaWdfMSwgd2lkdGggPSA1LCBoZWlnaHQgPSAyLjUpCmBgYAoKYGBge3IgZWNobz1GQUxTRX0KaXNjYl9wdWJtZWRfc3VtICU+JQogICMgZ3JvdXBfYnkoeWVhciwgdHlwZSwgZ2VuZGVyKSAlPiUKICAjIHN1bW1hcmlzZShtZWFuX3Byb2IgPSBtZWFuKHByb2JhYmlsaXRpZXMsIG5hLnJtID0gVCksIC5ncm91cHMgPSAnZHJvcCcpICU+JQogIGZpbHRlcih5ZWFyKHllYXIpID4gMjAxNiwgZ3JlcGwoImZlbWFsZSIsIGdlbmRlcikpICU+JQogIGdyb3VwX2J5KHR5cGUpICU+JQogIHN1bW1hcmlzZShwcm9iX2ZlbWFsZV9hdmcgPSBtZWFuKG1lYW5fcHJvYikpCmBgYAoKIyMjIFN1cHBsZW1lbnRhcnkgRmlndXJlIFMyIHsjc3VwX2ZpZ19zMX0KCkFkZGl0aW9uYWwgZmlnLiAxIHdpdGggc2VwYXJhdGVkIGtleW5vdGUgc3BlYWtlcnMgYW5kIGZlbGxvd3MKCmBgYHtyfQpmaWdfMWQgPC0gaXNjYl9wdWJtZWQgJT4lCiAgdW5ncm91cCgpICU+JQogIG11dGF0ZSgKICAgIHR5cGUyID0gY2FzZV93aGVuKAogICAgICB0eXBlID09ICJQdWJtZWQgYXV0aG9ycyIgfiAiUHVibWVkIGF1dGhvcnMiLAogICAgICBqb3VybmFsID09ICJJU0NCIEZlbGxvdyIgfiAiSVNDQiBGZWxsb3dzIiwKICAgICAgdHlwZSA9PSAiS2V5bm90ZSBzcGVha2Vycy9GZWxsb3dzIiB+ICJLZXlub3RlIHNwZWFrZXJzIgogICAgKQogICkgJT4lCiAgZ3JvdXBfYnkodHlwZTIsIHllYXIsIGdlbmRlcikgJT4lCiAgc3VtbWFyaXNlKAogICAgbWVhbl9wcm9iID0gbWVhbih3ZWlnaHRlZF9wcm9icyksCiAgICBzZV9wcm9iID0gc3FydCh2YXIocHJvYmFiaWxpdGllcykgKiBzdW0od2VpZ2h0XjIpIC8gKHN1bSh3ZWlnaHQpXjIpKSwKICAgIG1lX3Byb2IgPSBhbHBoYV90aHJlc2hvbGQgKiBzZV9wcm9iLAogICAgLmdyb3VwcyA9ICJkcm9wIgogICkgJT4lCiAgZ2VuZGVyX2JyZWFrZG93bigibWFpbiIsIGZjdF9yZXYodHlwZTIpKSArCiAgc2NhbGVfeF9kYXRlKAogICAgbGFiZWxzID0gc2NhbGVzOjpkYXRlX2Zvcm1hdCgiJyV5IiksCiAgICBleHBhbmQgPSBjKDAsIDApCiAgKQpgYGAKCjwhLS0gSW5jcmVhc2luZyB0cmVuZCBvZiBob25vcmVlcyB3aG8gd2VyZSB3b21lbiBpbiBlYWNoIGhvbm9yIGNhdGVnb3J5LCBlc3BlY2lhbGx5IGluIHRoZSBncm91cCBvZiBJU0NCIEZlbGxvd3MsIHdoaWNoIG1hcmtlZGx5IGluY3JlYXNlZCBhZnRlciAyMDE1LiAgLS0+CgpgYGB7ciBldmFsPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQojIEJ5IGNvbmZlcmVuY2U6CiMgZmlnXzFkIDwtIGJpbmRfcm93cyhpc2NiX2dlbmRlcikgJT4lCiMgICBnZW5kZXJfYnJlYWtkb3duKGNhdGVnb3J5ID0gJ3N1YicsIGpvdXJuYWwpICsKIyAgIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICdib3R0b20nKQoKIyBmaWdfMWQKZ2dzYXZlKCJmaWdzL2ZpZ19zMS5wbmciLCBmaWdfMWQsIHdpZHRoID0gNywgaGVpZ2h0ID0gMykKZ2dzYXZlKCJmaWdzL2ZpZ19zMS5zdmciLCBmaWdfMWQsIHdpZHRoID0gNywgaGVpZ2h0ID0gMykKYGBgCgojIyBNZWFuIGFuZCBzdGFuZGFyZCBkZXZpYXRpb24gb2YgcHJlZGljdGVkIHByb2JhYmlsaXRpZXMKCmBgYHtyfQppc2NiX3B1Ym1lZF9zdW0gJT4lCiAgZmlsdGVyKGdlbmRlciA9PSAicHJvYmFiaWxpdHlfbWFsZSIpICU+JQogIGdhbV9hbmRfY2koCiAgICBkZjIgPSBpc2NiX3B1Ym1lZCAlPiUgZmlsdGVyKGdlbmRlciA9PSAicHJvYmFiaWxpdHlfbWFsZSIpLAogICAgc3RhcnRfeSA9IHN0YXJ0X3llYXIsIGVuZF95ID0gZW5kX3llYXIKICApICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSBjKDAuODgsIDAuMikpCmBgYAoKIyMgSHlwb3RoZXNpcyB0ZXN0aW5nCgpgYGB7ciBlY2hvID0gRn0KZ2V0X3AgPC0gZnVuY3Rpb24oaW50ZSwgY29sdSkgewogIGJyb29tOjp0aWR5KGludGUpICU+JQogICAgZmlsdGVyKHRlcm0gPT0gIndlaWdodGVkX3Byb2JzIikgJT4lCiAgICBwdWxsKGNvbHUpICU+JQogICAgc3ByaW50ZigiJTAuNWciLCAuKQp9CmBgYAoKYGBge3J9CmlzY2JfbG0gPC0gaXNjYl9wdWJtZWQgJT4lCiAgZmlsdGVyKGdlbmRlciA9PSAicHJvYmFiaWxpdHlfZmVtYWxlIiwgIWlzLm5hKHdlaWdodGVkX3Byb2JzKSkgJT4lCiAgbXV0YXRlKHR5cGUgPSBhcy5mYWN0b3IodHlwZSkpICU+JSAKICBtdXRhdGUodHlwZSA9IHR5cGUgJT4lIHJlbGV2ZWwocmVmID0gIlB1Ym1lZCBhdXRob3JzIikpCmBgYAoKYGBge3J9CnNjYWxlZF9pc2NiIDwtIGlzY2JfbG0gJT4lCiAgZmlsdGVyKHllYXIoeWVhcikgPj0gMjAwMikKIyBzY2FsZWRfaXNjYiRzX3Byb2IgPC0gc2NhbGUoc2NhbGVkX2lzY2Ikd2VpZ2h0ZWRfcHJvYnMsIHNjYWxlID0gRikKIyBzY2FsZWRfaXNjYiRzX3llYXIgPC0gc2NhbGUoc2NhbGVkX2lzY2IkeWVhciwgc2NhbGUgPSBGKQoKbWFpbl9sbSA8LSBnbG0odHlwZSB+IHllYXIgKyB3ZWlnaHRlZF9wcm9icywKICBkYXRhID0gc2NhbGVkX2lzY2IsICMgJT4lIG11dGF0ZSh5ZWFyID0gYXMuZmFjdG9yKHllYXIpKQogIGZhbWlseSA9ICJiaW5vbWlhbCIKKQoKYnJvb206OnRpZHkobWFpbl9sbSkKaW50ZV9sbSA8LSBnbG0oCiAgIyB0eXBlIH4gc2NhbGUoeWVhciwgc2NhbGUgPSBGKSAqIHNjYWxlKHdlaWdodGVkX3Byb2JzLCBzY2FsZSA9IEYpLAogICMgdHlwZSB+IHNfeWVhciAqIHNfcHJvYiwKICB0eXBlIH4geWVhciAqIHdlaWdodGVkX3Byb2JzLAogIGRhdGEgPSBzY2FsZWRfaXNjYiwgIyAlPiUgbXV0YXRlKHllYXIgPSBhcy5mYWN0b3IoeWVhcikpCiAgZmFtaWx5ID0gImJpbm9taWFsIgopCmJyb29tOjp0aWR5KGludGVfbG0pCmFub3ZhKG1haW5fbG0sIGludGVfbG0sIHRlc3QgPSAiQ2hpc3EiKQojIG1lYW4oc2NhbGVkX2lzY2IkeWVhcikKIyBtZWFuKHNjYWxlZF9pc2NiJHdlaWdodGVkX3Byb2JzKQpgYGAKClRoZSB0d28gZ3JvdXBzIG9mIHNjaWVudGlzdHMgZGlkIG5vdCBoYXZlIGEgc2lnbmlmaWNhbnQgYXNzb2NpYXRpb24gd2l0aCB0aGUgZ2VuZGVyIHByZWRpY3RlZCBmcm9tIGZvcmUgbmFtZXMgKF9QXyA9IGByIGdldF9wKG1haW5fbG0sICdwLnZhbHVlJylgKS4KSW50ZXJhY3Rpb24gdGVybXMgZG8gbm90IHByZWRpY3QgYHR5cGVgIG92ZXIgYW5kIGFib3ZlIHRoZSBtYWluIGVmZmVjdCBvZiBnZW5kZXIgcHJvYmFiaWxpdHkgYW5kIHllYXIuCgpgYGB7ciBpbmNsdWRlPUZBTFNFLCBldmFsPUZBTFNFfQojIGludGVfbG0gPC0gZ2xtKHR5cGUgfiAoeWVhciAqIHdlaWdodGVkX3Byb2JzKSwKIyAgICBkYXRhID0gaXNjYl9sbSwKIyAgICBmYW1pbHkgPSAnYmlub21pYWwnKQpgYGAKCmBgYHtyfQpzZXNzaW9uSW5mbygpCmBgYAo=
    diff --git a/docs/11.visualize-name-origins.html b/docs/11.visualize-name-origins.html index 7f90e1d..34d453b 100644 --- a/docs/11.visualize-name-origins.html +++ b/docs/11.visualize-name-origins.html @@ -1667,17 +1667,17 @@

    Representation analysis of name origins

    Only keep articles from 2002 because few authors had nationality predictions before 2002 (mostly due to missing metadata). See 093.summary-stats for more details.

    alpha_threshold <- qnorm(0.975)
    -load('Rdata/raws.Rdata')
    +load("Rdata/raws.Rdata")
     
     pubmed_nat_df <- corr_authors %>%
    -  filter(year(year) >= 2002) %>% 
    -  left_join(nationalize_df, by = c('fore_name', 'last_name')) %>%
    +  filter(year(year) >= 2002) %>%
    +  left_join(nationalize_df, by = c("fore_name", "last_name")) %>%
       group_by(pmid, journal, publication_date, year, adjusted_citations) %>%
       summarise_at(vars(African:SouthAsian), mean, na.rm = T) %>%
       ungroup()
     
     iscb_nat_df <- keynotes %>%
    -  left_join(nationalize_df, by = c('fore_name', 'last_name'))
    +  left_join(nationalize_df, by = c("fore_name", "last_name"))
     
     start_year <- 1992
     end_year <- 2019
    @@ -1686,36 +1686,40 @@ 

    Representation analysis of name origins

    my_confs <- unique(iscb_nat_df$conference) n_jours <- length(my_jours) n_confs <- length(my_confs) -region_levels <- paste(c('Celtic/English', 'European', 'East Asian', 'Hispanic', 'South Asian', 'Arabic', 'Hebrew', 'African', 'Nordic', 'Greek'), 'names') +region_levels <- paste(c("Celtic/English", "European", "East Asian", "Hispanic", "South Asian", "Arabic", "Hebrew", "African", "Nordic", "Greek"), "names") region_levels_let <- toupper(letters[1:8]) -region_cols <- c('#ffffb3', '#fccde5', '#b3de69', '#fdb462', '#80b1d3', '#8dd3c7', '#bebada', '#fb8072', '#bc80bd', '#ccebc5')
    +region_cols <- c("#ffffb3", "#fccde5", "#b3de69", "#fdb462", "#80b1d3", "#8dd3c7", "#bebada", "#fb8072", "#bc80bd", "#ccebc5")

    Names grouping:

    -
    our_country_map <- read_tsv('https://raw.githubusercontent.com/greenelab/wiki-nationality-estimate/7c22d0a5f661ce5aeb785215095deda40973ff17/data/country_to_region_NamePrism.tsv') %>%
    -  rename('region' = Region) %>%
    +
    our_country_map <- read_tsv("https://raw.githubusercontent.com/greenelab/wiki-nationality-estimate/7c22d0a5f661ce5aeb785215095deda40973ff17/data/country_to_region_NamePrism.tsv") %>%
    +  rename("region" = Region) %>%
       recode_region()
    ## 
    -## ── Column specification ───────────────────────────────────────────────────────────────────────────────
    +## ── Column specification ────────────────────────────────────────────────────────
     ## cols(
     ##   Country = col_character(),
     ##   Region = col_character()
     ## )
    my_world <- world %>%
    -  select(- geometry) %>% 
    -  rename(Country = 'name') %>%
    -  left_join(our_country_map, by = 'Country')
    +  select(-geometry) %>%
    +  rename(Country = "name") %>%
    +  left_join(our_country_map, by = "Country")
     
     (gworld <- ggplot(data = my_world) +
    -    geom_sf(aes(fill = fct_relevel(region, region_levels))) +
    -    coord_sf(crs = "+proj=eqearth +wktext") +
    -    scale_fill_manual(values = region_cols,
    -                      na.translate = FALSE) +
    -    theme(panel.background = element_rect(fill = "azure"),
    -          legend.title = element_blank(),
    -          legend.position = 'bottom',
    -          panel.border = element_rect(fill = NA)))
    + geom_sf(aes(fill = fct_relevel(region, region_levels))) + + coord_sf(crs = "+proj=eqearth +wktext") + + scale_fill_manual( + values = region_cols, + na.translate = FALSE + ) + + theme( + panel.background = element_rect(fill = "azure"), + legend.title = element_blank(), + legend.position = "bottom", + panel.border = element_rect(fill = NA) + ))

    -
    ggsave('figs/2020-01-31_groupings.png', gworld, width = 7.2, height = 4.3)
    -ggsave('figs/2020-01-31_groupings.svg', gworld, width = 7.2, height = 4.3)
    +
    ggsave("figs/2020-01-31_groupings.png", gworld, width = 7.2, height = 4.3)
    +ggsave("figs/2020-01-31_groupings.svg", gworld, width = 7.2, height = 4.3)

    Descriptive statistics

    Prepare data frames for later analyses:

    @@ -1725,55 +1729,57 @@

    Descriptive statistics

  • compute mean, sd, marginal error
  • iscb_pubmed_oth <- iscb_nat_df %>%
    -  rename('journal' = conference) %>%
    +  rename("journal" = conference) %>%
       select(year, journal, African:SouthAsian, publication_date) %>%
    -  mutate(type = 'Keynote speakers/Fellows',
    -         adjusted_citations = 1,
    -         pmid = -9999) %>%
    +  mutate(
    +    type = "Keynote speakers/Fellows",
    +    adjusted_citations = 1,
    +    pmid = -9999
    +  ) %>%
       bind_rows(
         pubmed_nat_df %>%
           select(pmid, year, journal, African:SouthAsian, publication_date, adjusted_citations) %>%
    -      mutate(type = 'Pubmed authors')
    +      mutate(type = "Pubmed authors")
       ) %>%
       mutate(OtherCategories = SouthAsian + Hispanic + Jewish + Muslim + Nordic + Greek + African) %>%
       pivot_longer(c(African:SouthAsian, OtherCategories),
    -               names_to = 'region',
    -               values_to = 'probabilities') %>%
    -  filter(!is.na(probabilities)) %>% 
    +    names_to = "region",
    +    values_to = "probabilities"
    +  ) %>%
    +  filter(!is.na(probabilities)) %>%
       group_by(type, year, region) %>%
       mutate(
         pmc_citations_year = mean(adjusted_citations),
    -    weight = adjusted_citations/pmc_citations_year,
    -    weighted_probs = probabilities*weight
    -  ) 
    +    weight = adjusted_citations / pmc_citations_year,
    +    weighted_probs = probabilities * weight
    +  )
     
    -iscb_pubmed_sum_oth <- iscb_pubmed_oth %>% 
    +iscb_pubmed_sum_oth <- iscb_pubmed_oth %>%
       summarise(
         mean_prob = mean(weighted_probs),
    -    se_prob = sqrt(var(probabilities) * sum(weight^2)/(sum(weight)^2)),
    +    se_prob = sqrt(var(probabilities) * sum(weight^2) / (sum(weight)^2)),
         me_prob = alpha_threshold * se_prob,
    -    .groups = 'drop'
    +    .groups = "drop"
       )
     
     iscb_pubmed_sum <- iscb_pubmed_sum_oth %>%
    -  filter(region != 'OtherCategories')
    + filter(region != "OtherCategories")

    Prepare data frames for analysis

    By conference keynotes/fellows

    i <- 0
    -iscb_nat <- vector('list', length = n_confs)
    +iscb_nat <- vector("list", length = n_confs)
     
    -for (conf in my_confs){
    +for (conf in my_confs) {
       i <- i + 1
       iscb_nat[[i]] <- iscb_pubmed_oth %>%
    -    filter(region != 'OtherCategories', type != 'Pubmed authors' & journal == conf) %>%
    +    filter(region != "OtherCategories", type != "Pubmed authors" & journal == conf) %>%
         group_by(type, year, region, journal) %>%
    -    summarise(mean_prob = mean(weighted_probs), .groups = 'drop') %>%
    -    {.}
    +    summarise(mean_prob = mean(weighted_probs), .groups = "drop")
     }
    -
    save(my_world, iscb_pubmed_oth, iscb_nat, file = 'Rdata/iscb-pubmed_nat.Rdata')
    +
    save(my_world, iscb_pubmed_oth, iscb_nat, file = "Rdata/iscb-pubmed_nat.Rdata")
    @@ -1782,626 +1788,349 @@

    Figures for paper

    Figure 4

    Compared to the name collection of Pubmed authors, honorees with Celtic/English names are overrepresented while honorees with East Asian names are underrepresented.

    fig_4a <- iscb_pubmed_sum %>%
    -  filter(year < '2020-01-01') %>%
    -  region_breakdown('main', region_levels, fct_rev(type)) +
    +  filter(year < "2020-01-01") %>%
    +  region_breakdown("main", region_levels, fct_rev(type)) +
       guides(fill = guide_legend(nrow = 2)) +
    -  theme(legend.position = 'bottom')
    +  theme(legend.position = "bottom")
     
    -large_regions <- c('CelticEnglish', 'EastAsian', 'European', 'OtherCategories')
    +large_regions <- c("CelticEnglish", "EastAsian", "European", "OtherCategories")
     ## Mean and standard deviation of predicted probabilities:
     fig_4b <- iscb_pubmed_sum_oth %>%
       filter(region %in% large_regions) %>%
       recode_region() %>%
       gam_and_ci(
    -    df2 = iscb_pubmed_oth %>% 
    +    df2 = iscb_pubmed_oth %>%
           filter(region %in% large_regions) %>%
           recode_region(),
    -    start_y = start_year, end_y = end_year) + 
    -  theme(legend.position = c(0.88, 0.83),
    -        panel.grid.minor = element_blank(),
    -        legend.margin = margin(-0.5, 0, 0, 0, unit='cm'),
    -        legend.text = element_text(size = 7)) +
    +    start_y = start_year, end_y = end_year
    +  ) +
    +  theme(
    +    legend.position = c(0.88, 0.83),
    +    panel.grid.minor = element_blank(),
    +    legend.margin = margin(-0.5, 0, 0, 0, unit = "cm"),
    +    legend.text = element_text(size = 7)
    +  ) +
       facet_wrap(vars(fct_relevel(region, large_regions)), nrow = 1)
     
    -fig_4 <- cowplot::plot_grid(fig_4a, fig_4b, labels = 'AUTO', ncol = 1, rel_heights = c(1.3,1))
    +fig_4 <- cowplot::plot_grid(fig_4a, fig_4b, labels = "AUTO", ncol = 1, rel_heights = c(1.3, 1))
    ## `geom_smooth()` using formula 'y ~ s(x, bs = "cs")'
    fig_4

    -
    ggsave('figs/region_breakdown.png', fig_4, width = 6.7, height = 5.5)
    -ggsave('figs/region_breakdown.svg', fig_4, width = 6.7, height = 5.5)
    +
    ggsave("figs/region_breakdown.png", fig_4, width = 6.7, height = 5.5)
    +ggsave("figs/region_breakdown.svg", fig_4, width = 6.7, height = 5.5)

    Hypothesis testing

    -
    iscb_lm <- iscb_pubmed_oth %>% 
    -  ungroup() %>% 
    +
    iscb_lm <- iscb_pubmed_oth %>%
    +  ungroup() %>%
       mutate(
         # year = c(scale(year(year))),
    -    year = as.factor(year),
    -    type = as.factor(type) %>% relevel(ref = 'Pubmed authors'))
    -main_lm <- function(regioni){
    -  glm(type ~ year + weighted_probs, 
    -      data = iscb_lm %>% 
    -        filter(region == regioni, !is.na(probabilities)) ,
    -      family = 'binomial')
    +    # year = as.factor(year),
    +    type = as.factor(type) %>% relevel(ref = "Pubmed authors")
    +  )
    +main_lm <- function(regioni) {
    +  glm(type ~ year + weighted_probs,
    +    data = iscb_lm %>%
    +      filter(region == regioni, !is.na(probabilities), year(year) >= 2002),
    +    family = "binomial"
    +  )
     }
     
    -inte_lm <- function(regioni){
    -  glm(type ~ year * weighted_probs, 
    -      data = iscb_lm %>% 
    -        filter(region == regioni, !is.na(weighted_probs)),
    -      family = 'binomial')
    +inte_lm <- function(regioni) {
    +  glm(type ~ year * weighted_probs,
    +    data = iscb_lm %>%
    +      filter(region == regioni, !is.na(weighted_probs), year(year) >= 2002),
    +    family = "binomial"
    +  )
     }
     
     main_list <- lapply(large_regions, main_lm)
    ## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
    names(main_list) <- large_regions
    -lapply(main_list, summary)
    +lapply(main_list, broom::tidy)
    ## $CelticEnglish
    -## 
    -## Call:
    -## glm(formula = type ~ year + weighted_probs, family = "binomial", 
    -##     data = iscb_lm %>% filter(region == regioni, !is.na(probabilities)))
    -## 
    -## Deviance Residuals: 
    -##     Min       1Q   Median       3Q      Max  
    -## -0.6215  -0.0651  -0.0580  -0.0513   3.7315  
    -## 
    -## Coefficients:
    -##                  Estimate Std. Error z value Pr(>|z|)    
    -## (Intercept)     1.648e+01  1.385e+03   0.012 0.990508    
    -## year1994-01-01 -6.727e-02  1.959e+03   0.000 0.999973    
    -## year1995-01-01 -9.883e-02  1.959e+03   0.000 0.999960    
    -## year1996-01-01 -1.957e-02  1.832e+03   0.000 0.999991    
    -## year1997-01-01  7.983e-03  1.536e+03   0.000 0.999996    
    -## year1998-01-01  2.415e-02  1.548e+03   0.000 0.999988    
    -## year1999-01-01  1.437e-02  1.509e+03   0.000 0.999992    
    -## year2000-01-01  3.791e-02  1.509e+03   0.000 0.999980    
    -## year2001-01-01  1.267e-02  1.509e+03   0.000 0.999993    
    -## year2002-01-01 -2.118e+01  1.385e+03  -0.015 0.987800    
    -## year2003-01-01 -2.150e+01  1.385e+03  -0.016 0.987612    
    -## year2004-01-01 -2.191e+01  1.385e+03  -0.016 0.987380    
    -## year2005-01-01 -2.227e+01  1.385e+03  -0.016 0.987172    
    -## year2006-01-01 -2.244e+01  1.385e+03  -0.016 0.987073    
    -## year2007-01-01 -2.231e+01  1.385e+03  -0.016 0.987147    
    -## year2008-01-01 -2.263e+01  1.385e+03  -0.016 0.986961    
    -## year2009-01-01 -2.240e+01  1.385e+03  -0.016 0.987095    
    -## year2010-01-01 -2.277e+01  1.385e+03  -0.016 0.986881    
    -## year2011-01-01 -2.287e+01  1.385e+03  -0.017 0.986825    
    -## year2012-01-01 -2.287e+01  1.385e+03  -0.017 0.986825    
    -## year2013-01-01 -2.285e+01  1.385e+03  -0.017 0.986835    
    -## year2014-01-01 -2.310e+01  1.385e+03  -0.017 0.986692    
    -## year2015-01-01 -2.303e+01  1.385e+03  -0.017 0.986735    
    -## year2016-01-01 -2.279e+01  1.385e+03  -0.016 0.986870    
    -## year2017-01-01 -2.320e+01  1.385e+03  -0.017 0.986635    
    -## year2018-01-01 -2.319e+01  1.385e+03  -0.017 0.986640    
    -## year2019-01-01 -2.344e+01  1.385e+03  -0.017 0.986498    
    -## weighted_probs  1.921e-01  5.650e-02   3.400 0.000673 ***
    -## ---
    -## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
    -## 
    -## (Dispersion parameter for binomial family taken to be 1)
    -## 
    -##     Null deviance: 5755.8  on 163974  degrees of freedom
    -## Residual deviance: 4611.5  on 163947  degrees of freedom
    -## AIC: 4667.5
    -## 
    -## Number of Fisher Scoring iterations: 15
    -## 
    +## # A tibble: 3 x 5
    +##   term            estimate std.error statistic  p.value
    +##   <chr>              <dbl>     <dbl>     <dbl>    <dbl>
    +## 1 (Intercept)    -2.17     0.481         -4.52 6.06e- 6
    +## 2 year           -0.000268 0.0000320     -8.37 5.64e-17
    +## 3 weighted_probs  0.194    0.0561         3.46 5.46e- 4
     ## 
     ## $EastAsian
    -## 
    -## Call:
    -## glm(formula = type ~ year + weighted_probs, family = "binomial", 
    -##     data = iscb_lm %>% filter(region == regioni, !is.na(probabilities)))
    -## 
    -## Deviance Residuals: 
    -##     Min       1Q   Median       3Q      Max  
    -## -0.1463  -0.0682  -0.0594  -0.0507   4.0267  
    -## 
    -## Coefficients:
    -##                  Estimate Std. Error z value Pr(>|z|)    
    -## (Intercept)     1.658e+01  1.385e+03   0.012    0.990    
    -## year1994-01-01  6.665e-02  1.959e+03   0.000    1.000    
    -## year1995-01-01 -1.257e-02  1.959e+03   0.000    1.000    
    -## year1996-01-01 -2.152e-03  1.833e+03   0.000    1.000    
    -## year1997-01-01  6.364e-03  1.537e+03   0.000    1.000    
    -## year1998-01-01 -4.470e-03  1.549e+03   0.000    1.000    
    -## year1999-01-01  7.432e-03  1.510e+03   0.000    1.000    
    -## year2000-01-01  6.429e-01  1.502e+03   0.000    1.000    
    -## year2001-01-01 -5.036e-03  1.510e+03   0.000    1.000    
    -## year2002-01-01 -2.111e+01  1.385e+03  -0.015    0.988    
    -## year2003-01-01 -2.142e+01  1.385e+03  -0.015    0.988    
    -## year2004-01-01 -2.181e+01  1.385e+03  -0.016    0.987    
    -## year2005-01-01 -2.217e+01  1.385e+03  -0.016    0.987    
    -## year2006-01-01 -2.233e+01  1.385e+03  -0.016    0.987    
    -## year2007-01-01 -2.221e+01  1.385e+03  -0.016    0.987    
    -## year2008-01-01 -2.252e+01  1.385e+03  -0.016    0.987    
    -## year2009-01-01 -2.228e+01  1.385e+03  -0.016    0.987    
    -## year2010-01-01 -2.264e+01  1.385e+03  -0.016    0.987    
    -## year2011-01-01 -2.273e+01  1.385e+03  -0.016    0.987    
    -## year2012-01-01 -2.272e+01  1.385e+03  -0.016    0.987    
    -## year2013-01-01 -2.268e+01  1.385e+03  -0.016    0.987    
    -## year2014-01-01 -2.292e+01  1.385e+03  -0.017    0.987    
    -## year2015-01-01 -2.285e+01  1.385e+03  -0.016    0.987    
    -## year2016-01-01 -2.260e+01  1.385e+03  -0.016    0.987    
    -## year2017-01-01 -2.299e+01  1.385e+03  -0.017    0.987    
    -## year2018-01-01 -2.297e+01  1.385e+03  -0.017    0.987    
    -## year2019-01-01 -2.320e+01  1.385e+03  -0.017    0.987    
    -## weighted_probs -1.665e+00  2.861e-01  -5.820 5.89e-09 ***
    -## ---
    -## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
    -## 
    -## (Dispersion parameter for binomial family taken to be 1)
    -## 
    -##     Null deviance: 5755.8  on 163974  degrees of freedom
    -## Residual deviance: 4560.8  on 163947  degrees of freedom
    -## AIC: 4616.8
    -## 
    -## Number of Fisher Scoring iterations: 15
    -## 
    +## # A tibble: 3 x 5
    +##   term            estimate std.error statistic  p.value
    +##   <chr>              <dbl>     <dbl>     <dbl>    <dbl>
    +## 1 (Intercept)    -2.30     0.480         -4.80 1.58e- 6
    +## 2 year           -0.000242 0.0000321     -7.54 4.82e-14
    +## 3 weighted_probs -1.67     0.286         -5.82 6.02e- 9
     ## 
     ## $European
    -## 
    -## Call:
    -## glm(formula = type ~ year + weighted_probs, family = "binomial", 
    -##     data = iscb_lm %>% filter(region == regioni, !is.na(probabilities)))
    -## 
    -## Deviance Residuals: 
    -##     Min       1Q   Median       3Q      Max  
    -## -0.1960  -0.0638  -0.0588  -0.0509   3.7279  
    -## 
    -## Coefficients:
    -##                  Estimate Std. Error z value Pr(>|z|)
    -## (Intercept)     1.655e+01  1.385e+03   0.012    0.990
    -## year1994-01-01  1.671e-02  1.959e+03   0.000    1.000
    -## year1995-01-01  1.751e-02  1.959e+03   0.000    1.000
    -## year1996-01-01 -5.959e-03  1.833e+03   0.000    1.000
    -## year1997-01-01 -1.572e-03  1.537e+03   0.000    1.000
    -## year1998-01-01 -4.096e-03  1.549e+03   0.000    1.000
    -## year1999-01-01 -5.232e-03  1.510e+03   0.000    1.000
    -## year2000-01-01 -1.138e-03  1.510e+03   0.000    1.000
    -## year2001-01-01 -1.393e-02  1.510e+03   0.000    1.000
    -## year2002-01-01 -2.120e+01  1.385e+03  -0.015    0.988
    -## year2003-01-01 -2.153e+01  1.385e+03  -0.016    0.988
    -## year2004-01-01 -2.194e+01  1.385e+03  -0.016    0.987
    -## year2005-01-01 -2.230e+01  1.385e+03  -0.016    0.987
    -## year2006-01-01 -2.248e+01  1.385e+03  -0.016    0.987
    -## year2007-01-01 -2.235e+01  1.385e+03  -0.016    0.987
    -## year2008-01-01 -2.267e+01  1.385e+03  -0.016    0.987
    -## year2009-01-01 -2.244e+01  1.385e+03  -0.016    0.987
    -## year2010-01-01 -2.281e+01  1.385e+03  -0.016    0.987
    -## year2011-01-01 -2.291e+01  1.385e+03  -0.017    0.987
    -## year2012-01-01 -2.291e+01  1.385e+03  -0.017    0.987
    -## year2013-01-01 -2.290e+01  1.385e+03  -0.017    0.987
    -## year2014-01-01 -2.315e+01  1.385e+03  -0.017    0.987
    -## year2015-01-01 -2.307e+01  1.385e+03  -0.017    0.987
    -## year2016-01-01 -2.284e+01  1.385e+03  -0.016    0.987
    -## year2017-01-01 -2.325e+01  1.385e+03  -0.017    0.987
    -## year2018-01-01 -2.325e+01  1.385e+03  -0.017    0.987
    -## year2019-01-01 -2.350e+01  1.385e+03  -0.017    0.986
    -## weighted_probs  7.241e-02  8.237e-02   0.879    0.379
    -## 
    -## (Dispersion parameter for binomial family taken to be 1)
    -## 
    -##     Null deviance: 5755.8  on 163974  degrees of freedom
    -## Residual deviance: 4618.3  on 163947  degrees of freedom
    -## AIC: 4674.3
    -## 
    -## Number of Fisher Scoring iterations: 15
    -## 
    +## # A tibble: 3 x 5
    +##   term            estimate std.error statistic  p.value
    +##   <chr>              <dbl>     <dbl>     <dbl>    <dbl>
    +## 1 (Intercept)    -2.08     0.480        -4.32  1.53e- 5
    +## 2 year           -0.000272 0.0000319    -8.53  1.46e-17
    +## 3 weighted_probs  0.0713   0.0822        0.867 3.86e- 1
     ## 
     ## $OtherCategories
    -## 
    -## Call:
    -## glm(formula = type ~ year + weighted_probs, family = "binomial", 
    -##     data = iscb_lm %>% filter(region == regioni, !is.na(probabilities)))
    -## 
    -## Deviance Residuals: 
    -##     Min       1Q   Median       3Q      Max  
    -## -0.1628  -0.0636  -0.0589  -0.0508   3.7283  
    -## 
    -## Coefficients:
    -##                  Estimate Std. Error z value Pr(>|z|)
    -## (Intercept)     1.655e+01  1.385e+03   0.012    0.990
    -## year1994-01-01  1.077e-02  1.959e+03   0.000    1.000
    -## year1995-01-01  1.868e-02  1.959e+03   0.000    1.000
    -## year1996-01-01  1.373e-02  1.833e+03   0.000    1.000
    -## year1997-01-01 -1.182e-03  1.537e+03   0.000    1.000
    -## year1998-01-01 -5.156e-03  1.549e+03   0.000    1.000
    -## year1999-01-01  3.844e-04  1.510e+03   0.000    1.000
    -## year2000-01-01  4.700e-03  1.510e+03   0.000    1.000
    -## year2001-01-01  9.411e-03  1.510e+03   0.000    1.000
    -## year2002-01-01 -2.119e+01  1.385e+03  -0.015    0.988
    -## year2003-01-01 -2.152e+01  1.385e+03  -0.016    0.988
    -## year2004-01-01 -2.193e+01  1.385e+03  -0.016    0.987
    -## year2005-01-01 -2.230e+01  1.385e+03  -0.016    0.987
    -## year2006-01-01 -2.247e+01  1.385e+03  -0.016    0.987
    -## year2007-01-01 -2.234e+01  1.385e+03  -0.016    0.987
    -## year2008-01-01 -2.267e+01  1.385e+03  -0.016    0.987
    -## year2009-01-01 -2.244e+01  1.385e+03  -0.016    0.987
    -## year2010-01-01 -2.280e+01  1.385e+03  -0.016    0.987
    -## year2011-01-01 -2.291e+01  1.385e+03  -0.017    0.987
    -## year2012-01-01 -2.291e+01  1.385e+03  -0.017    0.987
    -## year2013-01-01 -2.290e+01  1.385e+03  -0.017    0.987
    -## year2014-01-01 -2.314e+01  1.385e+03  -0.017    0.987
    -## year2015-01-01 -2.307e+01  1.385e+03  -0.017    0.987
    -## year2016-01-01 -2.284e+01  1.385e+03  -0.016    0.987
    -## year2017-01-01 -2.325e+01  1.385e+03  -0.017    0.987
    -## year2018-01-01 -2.325e+01  1.385e+03  -0.017    0.987
    -## year2019-01-01 -2.350e+01  1.385e+03  -0.017    0.986
    -## weighted_probs  7.448e-02  9.548e-02   0.780    0.435
    -## 
    -## (Dispersion parameter for binomial family taken to be 1)
    -## 
    -##     Null deviance: 5755.8  on 163974  degrees of freedom
    -## Residual deviance: 4618.4  on 163947  degrees of freedom
    -## AIC: 4674.4
    -## 
    -## Number of Fisher Scoring iterations: 15
    +## # A tibble: 3 x 5 +## term estimate std.error statistic p.value +## <chr> <dbl> <dbl> <dbl> <dbl> +## 1 (Intercept) -2.06 0.479 -4.30 1.73e- 5 +## 2 year -0.000273 0.0000319 -8.57 1.03e-17 +## 3 weighted_probs 0.0724 0.0948 0.763 4.45e- 1
    inte_list <- lapply(large_regions, inte_lm)
    ## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
    -
    lapply(inte_list, summary)
    +
    lapply(inte_list, broom::tidy)
    ## [[1]]
    -## 
    -## Call:
    -## glm(formula = type ~ year * weighted_probs, family = "binomial", 
    -##     data = iscb_lm %>% filter(region == regioni, !is.na(weighted_probs)))
    -## 
    -## Deviance Residuals: 
    -##     Min       1Q   Median       3Q      Max  
    -## -0.5406  -0.0661  -0.0589  -0.0514   3.7625  
    -## 
    -## Coefficients:
    -##                                 Estimate Std. Error z value Pr(>|z|)
    -## (Intercept)                    1.657e+01  2.261e+03   0.007    0.994
    -## year1994-01-01                 1.551e-07  1.105e+04   0.000    1.000
    -## year1995-01-01                 1.703e-05  3.833e+05   0.000    1.000
    -## year1996-01-01                 1.549e-07  3.070e+03   0.000    1.000
    -## year1997-01-01                 1.551e-07  2.483e+03   0.000    1.000
    -## year1998-01-01                 1.547e-07  2.445e+03   0.000    1.000
    -## year1999-01-01                 1.550e-07  2.418e+03   0.000    1.000
    -## year2000-01-01                 1.547e-07  2.391e+03   0.000    1.000
    -## year2001-01-01                 1.548e-07  2.417e+03   0.000    1.000
    -## year2002-01-01                -2.120e+01  2.261e+03  -0.009    0.993
    -## year2003-01-01                -2.155e+01  2.261e+03  -0.010    0.992
    -## year2004-01-01                -2.202e+01  2.261e+03  -0.010    0.992
    -## year2005-01-01                -2.241e+01  2.261e+03  -0.010    0.992
    -## year2006-01-01                -2.251e+01  2.261e+03  -0.010    0.992
    -## year2007-01-01                -2.248e+01  2.261e+03  -0.010    0.992
    -## year2008-01-01                -2.269e+01  2.261e+03  -0.010    0.992
    -## year2009-01-01                -2.251e+01  2.261e+03  -0.010    0.992
    -## year2010-01-01                -2.283e+01  2.261e+03  -0.010    0.992
    -## year2011-01-01                -2.295e+01  2.261e+03  -0.010    0.992
    -## year2012-01-01                -2.290e+01  2.261e+03  -0.010    0.992
    -## year2013-01-01                -2.292e+01  2.261e+03  -0.010    0.992
    -## year2014-01-01                -2.320e+01  2.261e+03  -0.010    0.992
    -## year2015-01-01                -2.315e+01  2.261e+03  -0.010    0.992
    -## year2016-01-01                -2.290e+01  2.261e+03  -0.010    0.992
    -## year2017-01-01                -2.333e+01  2.261e+03  -0.010    0.992
    -## year2018-01-01                -2.335e+01  2.261e+03  -0.010    0.992
    -## year2019-01-01                -2.347e+01  2.261e+03  -0.010    0.992
    -## weighted_probs                 6.439e-07  3.794e+03   0.000    1.000
    -## year1994-01-01:weighted_probs -6.445e-07  1.374e+04   0.000    1.000
    -## year1995-01-01:weighted_probs -1.794e-05  3.928e+05   0.000    1.000
    -## year1996-01-01:weighted_probs -6.439e-07  4.804e+03   0.000    1.000
    -## year1997-01-01:weighted_probs -6.445e-07  4.207e+03   0.000    1.000
    -## year1998-01-01:weighted_probs -6.440e-07  4.197e+03   0.000    1.000
    -## year1999-01-01:weighted_probs -6.441e-07  4.092e+03   0.000    1.000
    -## year2000-01-01:weighted_probs -6.438e-07  4.207e+03   0.000    1.000
    -## year2001-01-01:weighted_probs -6.437e-07  4.076e+03   0.000    1.000
    -## year2002-01-01:weighted_probs  1.041e-02  3.794e+03   0.000    1.000
    -## year2003-01-01:weighted_probs  8.070e-02  3.794e+03   0.000    1.000
    -## year2004-01-01:weighted_probs  2.619e-01  3.794e+03   0.000    1.000
    -## year2005-01-01:weighted_probs  3.303e-01  3.794e+03   0.000    1.000
    -## year2006-01-01:weighted_probs  1.454e-01  3.794e+03   0.000    1.000
    -## year2007-01-01:weighted_probs  3.719e-01  3.794e+03   0.000    1.000
    -## year2008-01-01:weighted_probs  9.020e-02  3.794e+03   0.000    1.000
    -## year2009-01-01:weighted_probs  2.450e-01  3.794e+03   0.000    1.000
    -## year2010-01-01:weighted_probs  1.140e-01  3.794e+03   0.000    1.000
    -## year2011-01-01:weighted_probs  1.726e-01  3.794e+03   0.000    1.000
    -## year2012-01-01:weighted_probs -5.235e-02  3.794e+03   0.000    1.000
    -## year2013-01-01:weighted_probs  1.263e-01  3.794e+03   0.000    1.000
    -## year2014-01-01:weighted_probs  2.076e-01  3.794e+03   0.000    1.000
    -## year2015-01-01:weighted_probs  3.125e-01  3.794e+03   0.000    1.000
    -## year2016-01-01:weighted_probs  2.667e-01  3.794e+03   0.000    1.000
    -## year2017-01-01:weighted_probs  3.387e-01  3.794e+03   0.000    1.000
    -## year2018-01-01:weighted_probs  4.747e-01  3.794e+03   0.000    1.000
    -## year2019-01-01:weighted_probs -1.915e-01  3.794e+03   0.000    1.000
    -## 
    -## (Dispersion parameter for binomial family taken to be 1)
    -## 
    -##     Null deviance: 5755.8  on 163974  degrees of freedom
    -## Residual deviance: 4607.9  on 163921  degrees of freedom
    -## AIC: 4715.9
    -## 
    -## Number of Fisher Scoring iterations: 15
    -## 
    +## # A tibble: 4 x 5
    +##   term                  estimate std.error statistic  p.value
    +##   <chr>                    <dbl>     <dbl>     <dbl>    <dbl>
    +## 1 (Intercept)         -2.11      0.507      -4.17    3.06e- 5
    +## 2 year                -0.000272  0.0000338  -8.05    8.48e-16
    +## 3 weighted_probs       0.00264   0.525       0.00502 9.96e- 1
    +## 4 year:weighted_probs  0.0000131 0.0000353   0.370   7.11e- 1
     ## 
     ## [[2]]
    -## 
    -## Call:
    -## glm(formula = type ~ year * weighted_probs, family = "binomial", 
    -##     data = iscb_lm %>% filter(region == regioni, !is.na(weighted_probs)))
    -## 
    -## Deviance Residuals: 
    -##     Min       1Q   Median       3Q      Max  
    -## -0.1634  -0.0704  -0.0618  -0.0518   4.1800  
    -## 
    -## Coefficients:
    -##                                 Estimate Std. Error z value Pr(>|z|)
    -## (Intercept)                    1.657e+01  1.839e+03   0.009    0.993
    -## year1994-01-01                 5.534e-06  2.678e+03   0.000    1.000
    -## year1995-01-01                 5.534e-06  3.525e+03   0.000    1.000
    -## year1996-01-01                 5.534e-06  2.371e+03   0.000    1.000
    -## year1997-01-01                 5.534e-06  2.011e+03   0.000    1.000
    -## year1998-01-01                 5.534e-06  2.058e+03   0.000    1.000
    -## year1999-01-01                 5.534e-06  1.966e+03   0.000    1.000
    -## year2000-01-01                 5.534e-06  1.967e+03   0.000    1.000
    -## year2001-01-01                 5.534e-06  2.002e+03   0.000    1.000
    -## year2002-01-01                -2.113e+01  1.839e+03  -0.011    0.991
    -## year2003-01-01                -2.147e+01  1.839e+03  -0.012    0.991
    -## year2004-01-01                -2.165e+01  1.839e+03  -0.012    0.991
    -## year2005-01-01                -2.218e+01  1.839e+03  -0.012    0.990
    -## year2006-01-01                -2.222e+01  1.839e+03  -0.012    0.990
    -## year2007-01-01                -2.229e+01  1.839e+03  -0.012    0.990
    -## year2008-01-01                -2.272e+01  1.839e+03  -0.012    0.990
    -## year2009-01-01                -2.210e+01  1.839e+03  -0.012    0.990
    -## year2010-01-01                -2.249e+01  1.839e+03  -0.012    0.990
    -## year2011-01-01                -2.272e+01  1.839e+03  -0.012    0.990
    -## year2012-01-01                -2.258e+01  1.839e+03  -0.012    0.990
    -## year2013-01-01                -2.291e+01  1.839e+03  -0.012    0.990
    -## year2014-01-01                -2.265e+01  1.839e+03  -0.012    0.990
    -## year2015-01-01                -2.271e+01  1.839e+03  -0.012    0.990
    -## year2016-01-01                -2.250e+01  1.839e+03  -0.012    0.990
    -## year2017-01-01                -2.304e+01  1.839e+03  -0.013    0.990
    -## year2018-01-01                -2.283e+01  1.839e+03  -0.012    0.990
    -## year2019-01-01                -2.312e+01  1.839e+03  -0.013    0.990
    -## weighted_probs                 5.664e-04  1.271e+05   0.000    1.000
    -## year1994-01-01:weighted_probs -5.664e-04  1.303e+05   0.000    1.000
    -## year1995-01-01:weighted_probs -5.665e-04  1.316e+06   0.000    1.000
    -## year1996-01-01:weighted_probs -5.664e-04  1.673e+05   0.000    1.000
    -## year1997-01-01:weighted_probs -5.664e-04  1.320e+05   0.000    1.000
    -## year1998-01-01:weighted_probs -5.664e-04  1.552e+05   0.000    1.000
    -## year1999-01-01:weighted_probs -5.664e-04  1.297e+05   0.000    1.000
    -## year2000-01-01:weighted_probs -5.664e-04  1.271e+05   0.000    1.000
    -## year2001-01-01:weighted_probs -5.664e-04  1.496e+05   0.000    1.000
    -## year2002-01-01:weighted_probs -9.616e-01  1.271e+05   0.000    1.000
    -## year2003-01-01:weighted_probs -4.927e-01  1.271e+05   0.000    1.000
    -## year2004-01-01:weighted_probs -1.039e+01  1.271e+05   0.000    1.000
    -## year2005-01-01:weighted_probs -1.171e+00  1.271e+05   0.000    1.000
    -## year2006-01-01:weighted_probs -4.484e+00  1.271e+05   0.000    1.000
    -## year2007-01-01:weighted_probs -4.192e-01  1.271e+05   0.000    1.000
    -## year2008-01-01:weighted_probs  2.439e-01  1.271e+05   0.000    1.000
    -## year2009-01-01:weighted_probs -1.025e+01  1.271e+05   0.000    1.000
    -## year2010-01-01:weighted_probs -7.067e+00  1.271e+05   0.000    1.000
    -## year2011-01-01:weighted_probs -1.600e+00  1.271e+05   0.000    1.000
    -## year2012-01-01:weighted_probs -5.715e+00  1.271e+05   0.000    1.000
    -## year2013-01-01:weighted_probs  7.159e-02  1.271e+05   0.000    1.000
    -## year2014-01-01:weighted_probs -2.094e+01  1.271e+05   0.000    1.000
    -## year2015-01-01:weighted_probs -4.384e+00  1.271e+05   0.000    1.000
    -## year2016-01-01:weighted_probs -3.331e+00  1.271e+05   0.000    1.000
    -## year2017-01-01:weighted_probs -1.043e+00  1.271e+05   0.000    1.000
    -## year2018-01-01:weighted_probs -4.340e+00  1.271e+05   0.000    1.000
    -## year2019-01-01:weighted_probs -2.436e+00  1.271e+05   0.000    1.000
    -## 
    -## (Dispersion parameter for binomial family taken to be 1)
    -## 
    -##     Null deviance: 5755.8  on 163974  degrees of freedom
    -## Residual deviance: 4516.4  on 163921  degrees of freedom
    -## AIC: 4624.4
    -## 
    -## Number of Fisher Scoring iterations: 15
    -## 
    +## # A tibble: 4 x 5
    +##   term                 estimate std.error statistic  p.value
    +##   <chr>                   <dbl>     <dbl>     <dbl>    <dbl>
    +## 1 (Intercept)         -2.53     0.506        -5.01  5.54e- 7
    +## 2 year                -0.000227 0.0000338    -6.71  1.94e-11
    +## 3 weighted_probs       1.96     2.45          0.800 4.24e- 1
    +## 4 year:weighted_probs -0.000239 0.000164     -1.46  1.44e- 1
     ## 
     ## [[3]]
    -## 
    -## Call:
    -## glm(formula = type ~ year * weighted_probs, family = "binomial", 
    -##     data = iscb_lm %>% filter(region == regioni, !is.na(weighted_probs)))
    -## 
    -## Deviance Residuals: 
    -##     Min       1Q   Median       3Q      Max  
    -## -0.4562  -0.0634  -0.0575  -0.0511   3.7671  
    -## 
    -## Coefficients:
    -##                                 Estimate Std. Error z value Pr(>|z|)
    -## (Intercept)                    1.657e+01  1.727e+03   0.010    0.992
    -## year1994-01-01                 7.478e-08  2.308e+04   0.000    1.000
    -## year1995-01-01                -5.512e-08  5.655e+04   0.000    1.000
    -## year1996-01-01                 8.130e-08  2.388e+03   0.000    1.000
    -## year1997-01-01                 8.129e-08  1.961e+03   0.000    1.000
    -## year1998-01-01                 8.110e-08  1.966e+03   0.000    1.000
    -## year1999-01-01                 8.127e-08  1.905e+03   0.000    1.000
    -## year2000-01-01                 8.109e-08  1.885e+03   0.000    1.000
    -## year2001-01-01                 8.096e-08  1.945e+03   0.000    1.000
    -## year2002-01-01                -2.120e+01  1.727e+03  -0.012    0.990
    -## year2003-01-01                -2.155e+01  1.727e+03  -0.012    0.990
    -## year2004-01-01                -2.190e+01  1.727e+03  -0.013    0.990
    -## year2005-01-01                -2.232e+01  1.727e+03  -0.013    0.990
    -## year2006-01-01                -2.258e+01  1.727e+03  -0.013    0.990
    -## year2007-01-01                -2.217e+01  1.727e+03  -0.013    0.990
    -## year2008-01-01                -2.247e+01  1.727e+03  -0.013    0.990
    -## year2009-01-01                -2.245e+01  1.727e+03  -0.013    0.990
    -## year2010-01-01                -2.278e+01  1.727e+03  -0.013    0.989
    -## year2011-01-01                -2.297e+01  1.727e+03  -0.013    0.989
    -## year2012-01-01                -2.298e+01  1.727e+03  -0.013    0.989
    -## year2013-01-01                -2.286e+01  1.727e+03  -0.013    0.989
    -## year2014-01-01                -2.304e+01  1.727e+03  -0.013    0.989
    -## year2015-01-01                -2.312e+01  1.727e+03  -0.013    0.989
    -## year2016-01-01                -2.291e+01  1.727e+03  -0.013    0.989
    -## year2017-01-01                -2.321e+01  1.727e+03  -0.013    0.989
    -## year2018-01-01                -2.332e+01  1.727e+03  -0.014    0.989
    -## year2019-01-01                -2.366e+01  1.727e+03  -0.014    0.989
    -## weighted_probs                 1.938e-06  4.121e+03   0.000    1.000
    -## year1994-01-01:weighted_probs -1.570e-06  1.402e+06   0.000    1.000
    -## year1995-01-01:weighted_probs  2.381e-05  1.069e+07   0.000    1.000
    -## year1996-01-01:weighted_probs -1.939e-06  5.341e+03   0.000    1.000
    -## year1997-01-01:weighted_probs -1.938e-06  4.763e+03   0.000    1.000
    -## year1998-01-01:weighted_probs -1.938e-06  4.612e+03   0.000    1.000
    -## year1999-01-01:weighted_probs -1.938e-06  4.443e+03   0.000    1.000
    -## year2000-01-01:weighted_probs -1.938e-06  4.469e+03   0.000    1.000
    -## year2001-01-01:weighted_probs -1.938e-06  4.384e+03   0.000    1.000
    -## year2002-01-01:weighted_probs  3.218e-02  4.121e+03   0.000    1.000
    -## year2003-01-01:weighted_probs  8.794e-02  4.121e+03   0.000    1.000
    -## year2004-01-01:weighted_probs -9.221e-02  4.121e+03   0.000    1.000
    -## year2005-01-01:weighted_probs  5.542e-02  4.121e+03   0.000    1.000
    -## year2006-01-01:weighted_probs  2.826e-01  4.121e+03   0.000    1.000
    -## year2007-01-01:weighted_probs -7.673e-01  4.121e+03   0.000    1.000
    -## year2008-01-01:weighted_probs -8.470e-01  4.121e+03   0.000    1.000
    -## year2009-01-01:weighted_probs  3.223e-02  4.121e+03   0.000    1.000
    -## year2010-01-01:weighted_probs -8.737e-02  4.121e+03   0.000    1.000
    -## year2011-01-01:weighted_probs  1.924e-01  4.121e+03   0.000    1.000
    -## year2012-01-01:weighted_probs  2.004e-01  4.121e+03   0.000    1.000
    -## year2013-01-01:weighted_probs -1.344e-01  4.121e+03   0.000    1.000
    -## year2014-01-01:weighted_probs -4.055e-01  4.121e+03   0.000    1.000
    -## year2015-01-01:weighted_probs  1.523e-01  4.121e+03   0.000    1.000
    -## year2016-01-01:weighted_probs  2.242e-01  4.121e+03   0.000    1.000
    -## year2017-01-01:weighted_probs -1.849e-01  4.121e+03   0.000    1.000
    -## year2018-01-01:weighted_probs  2.411e-01  4.121e+03   0.000    1.000
    -## year2019-01-01:weighted_probs  4.947e-01  4.121e+03   0.000    1.000
    -## 
    -## (Dispersion parameter for binomial family taken to be 1)
    -## 
    -##     Null deviance: 5755.8  on 163974  degrees of freedom
    -## Residual deviance: 4609.4  on 163921  degrees of freedom
    -## AIC: 4717.4
    -## 
    -## Number of Fisher Scoring iterations: 15
    -## 
    +## # A tibble: 4 x 5
    +##   term                  estimate std.error statistic  p.value
    +##   <chr>                    <dbl>     <dbl>     <dbl>    <dbl>
    +## 1 (Intercept)         -1.87      0.538        -3.47  5.20e- 4
    +## 2 year                -0.000286  0.0000358    -8.01  1.19e-15
    +## 3 weighted_probs      -0.587     0.779        -0.753 4.51e- 1
    +## 4 year:weighted_probs  0.0000441 0.0000511     0.862 3.89e- 1
     ## 
     ## [[4]]
    -## 
    -## Call:
    -## glm(formula = type ~ year * weighted_probs, family = "binomial", 
    -##     data = iscb_lm %>% filter(region == regioni, !is.na(weighted_probs)))
    -## 
    -## Deviance Residuals: 
    -##     Min       1Q   Median       3Q      Max  
    -## -0.3124  -0.0638  -0.0592  -0.0506   3.7349  
    -## 
    -## Coefficients:
    -##                                 Estimate Std. Error z value Pr(>|z|)
    -## (Intercept)                    1.657e+01  2.111e+03   0.008    0.994
    -## year1994-01-01                 7.554e-07  3.745e+03   0.000    1.000
    -## year1995-01-01                 7.562e-07  6.822e+03   0.000    1.000
    -## year1996-01-01                 7.560e-07  2.790e+03   0.000    1.000
    -## year1997-01-01                 7.560e-07  2.296e+03   0.000    1.000
    -## year1998-01-01                 7.562e-07  2.334e+03   0.000    1.000
    -## year1999-01-01                 7.563e-07  2.246e+03   0.000    1.000
    -## year2000-01-01                 7.562e-07  2.256e+03   0.000    1.000
    -## year2001-01-01                 7.561e-07  2.238e+03   0.000    1.000
    -## year2002-01-01                -2.124e+01  2.111e+03  -0.010    0.992
    -## year2003-01-01                -2.147e+01  2.111e+03  -0.010    0.992
    -## year2004-01-01                -2.195e+01  2.111e+03  -0.010    0.992
    -## year2005-01-01                -2.220e+01  2.111e+03  -0.011    0.992
    -## year2006-01-01                -2.232e+01  2.111e+03  -0.011    0.992
    -## year2007-01-01                -2.224e+01  2.111e+03  -0.011    0.992
    -## year2008-01-01                -2.272e+01  2.111e+03  -0.011    0.991
    -## year2009-01-01                -2.248e+01  2.111e+03  -0.011    0.992
    -## year2010-01-01                -2.289e+01  2.111e+03  -0.011    0.991
    -## year2011-01-01                -2.288e+01  2.111e+03  -0.011    0.991
    -## year2012-01-01                -2.293e+01  2.111e+03  -0.011    0.991
    -## year2013-01-01                -2.287e+01  2.111e+03  -0.011    0.991
    -## year2014-01-01                -2.322e+01  2.111e+03  -0.011    0.991
    -## year2015-01-01                -2.311e+01  2.111e+03  -0.011    0.991
    -## year2016-01-01                -2.286e+01  2.111e+03  -0.011    0.991
    -## year2017-01-01                -2.333e+01  2.111e+03  -0.011    0.991
    -## year2018-01-01                -2.335e+01  2.111e+03  -0.011    0.991
    -## year2019-01-01                -2.354e+01  2.111e+03  -0.011    0.991
    -## weighted_probs                 2.123e-06  5.917e+03   0.000    1.000
    -## year1994-01-01:weighted_probs -2.119e-06  2.323e+04   0.000    1.000
    -## year1995-01-01:weighted_probs -2.134e-06  3.764e+05   0.000    1.000
    -## year1996-01-01:weighted_probs -2.121e-06  1.749e+04   0.000    1.000
    -## year1997-01-01:weighted_probs -2.123e-06  6.287e+03   0.000    1.000
    -## year1998-01-01:weighted_probs -2.124e-06  6.281e+03   0.000    1.000
    -## year1999-01-01:weighted_probs -2.124e-06  6.185e+03   0.000    1.000
    -## year2000-01-01:weighted_probs -2.124e-06  6.436e+03   0.000    1.000
    -## year2001-01-01:weighted_probs -2.123e-06  6.679e+03   0.000    1.000
    -## year2002-01-01:weighted_probs  1.885e-01  5.917e+03   0.000    1.000
    -## year2003-01-01:weighted_probs -2.208e-01  5.917e+03   0.000    1.000
    -## year2004-01-01:weighted_probs  6.477e-02  5.917e+03   0.000    1.000
    -## year2005-01-01:weighted_probs -4.335e-01  5.917e+03   0.000    1.000
    -## year2006-01-01:weighted_probs -7.937e-01  5.917e+03   0.000    1.000
    -## year2007-01-01:weighted_probs -5.026e-01  5.917e+03   0.000    1.000
    -## year2008-01-01:weighted_probs  1.947e-01  5.917e+03   0.000    1.000
    -## year2009-01-01:weighted_probs  1.551e-01  5.917e+03   0.000    1.000
    -## year2010-01-01:weighted_probs  2.730e-01  5.917e+03   0.000    1.000
    -## year2011-01-01:weighted_probs -9.967e-02  5.917e+03   0.000    1.000
    -## year2012-01-01:weighted_probs  6.868e-02  5.917e+03   0.000    1.000
    -## year2013-01-01:weighted_probs -1.147e-01  5.917e+03   0.000    1.000
    -## year2014-01-01:weighted_probs  2.779e-01  5.917e+03   0.000    1.000
    -## year2015-01-01:weighted_probs  1.308e-01  5.917e+03   0.000    1.000
    -## year2016-01-01:weighted_probs  9.547e-02  5.917e+03   0.000    1.000
    -## year2017-01-01:weighted_probs  2.577e-01  5.917e+03   0.000    1.000
    -## year2018-01-01:weighted_probs  3.356e-01  5.917e+03   0.000    1.000
    -## year2019-01-01:weighted_probs  1.585e-01  5.917e+03   0.000    1.000
    -## 
    -## (Dispersion parameter for binomial family taken to be 1)
    -## 
    -##     Null deviance: 5755.8  on 163974  degrees of freedom
    -## Residual deviance: 4613.5  on 163921  degrees of freedom
    -## AIC: 4721.5
    -## 
    -## Number of Fisher Scoring iterations: 15
    -
    for (i in 1:4){
    -  print(anova(main_list[[i]], inte_list[[i]], test = 'Chisq'))
    +## # A tibble: 4 x 5
    +##   term                  estimate std.error statistic  p.value
    +##   <chr>                    <dbl>     <dbl>     <dbl>    <dbl>
    +## 1 (Intercept)         -1.80      0.527         -3.42 6.25e- 4
    +## 2 year                -0.000290  0.0000351     -8.29 1.17e-16
    +## 3 weighted_probs      -0.880     0.849         -1.04 3.00e- 1
    +## 4 year:weighted_probs  0.0000628 0.0000544      1.15 2.48e- 1
    +
    for (i in 1:4) {
    +  print(anova(main_list[[i]], inte_list[[i]], test = "Chisq"))
     }
    ## Analysis of Deviance Table
     ## 
     ## Model 1: type ~ year + weighted_probs
     ## Model 2: type ~ year * weighted_probs
     ##   Resid. Df Resid. Dev Df Deviance Pr(>Chi)
    -## 1    163947     4611.5                     
    -## 2    163921     4607.9 26   3.6735        1
    +## 1    163886     4627.2                     
    +## 2    163885     4627.1  1  0.14187   0.7064
     ## Analysis of Deviance Table
     ## 
     ## Model 1: type ~ year + weighted_probs
     ## Model 2: type ~ year * weighted_probs
    -##   Resid. Df Resid. Dev Df Deviance Pr(>Chi)  
    -## 1    163947     4560.8                       
    -## 2    163921     4516.4 26   44.388  0.01373 *
    -## ---
    -## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
    +##   Resid. Df Resid. Dev Df Deviance Pr(>Chi)
    +## 1    163886     4576.6                     
    +## 2    163885     4574.6  1   2.0829    0.149
     ## Analysis of Deviance Table
     ## 
     ## Model 1: type ~ year + weighted_probs
     ## Model 2: type ~ year * weighted_probs
     ##   Resid. Df Resid. Dev Df Deviance Pr(>Chi)
    -## 1    163947     4618.3                     
    -## 2    163921     4609.4 26   8.8572   0.9993
    +## 1    163886     4634.1                     
    +## 2    163885     4633.4  1  0.74565   0.3879
     ## Analysis of Deviance Table
     ## 
     ## Model 1: type ~ year + weighted_probs
     ## Model 2: type ~ year * weighted_probs
     ##   Resid. Df Resid. Dev Df Deviance Pr(>Chi)
    -## 1    163947     4618.4                     
    -## 2    163921     4613.5 26   4.9708        1
    +## 1 163886 4634.3 +## 2 163885 4633.1 1 1.2103 0.2713

    Interaction terms do not predict type over and above the main effect of name origin probability and year (p > 0.01).

    Conclusion

    -

    A Celtic/English name has 1.2117973 the odds of being selected as an honoree, significantly higher compared to other names (\(\beta_\textrm{Celtic/English} =\) 0.1921, P = 0.00067307). An East Asian name has 0.1891745 the odds of being selected as an honoree, significantly lower than to other names (\(\beta_\textrm{East Asian} =\) -1.6651, P = 5.89e-09). The two groups of scientists did not have a significant association with names predicted to be European (P = 0.37934) or in Other categories (P = 0.43538).

    -
    -

    Supplementary Figure S5

    -

    It’s difficult to come to a conclusion for other regions with so few data points and the imperfect accuracy of our prediction. There seems to be little difference between the proportion of keynote speakers of African, Arabic, South Asian and Hispanic origin than those in the field. However, just because a nationality isn’t underrepresented against the field doesn’t mean scientists from that nationality are appropriately represented.

    -
    df2 <- iscb_pubmed_oth %>% 
    -  filter(region != 'OtherCategories') %>% 
    -  recode_region()
    +

    A Celtic/English name has 1.2141832 the odds of being selected as an honoree, significantly higher compared to other names (\(\beta_\textrm{Celtic/English} =\) 0.19407, P = 0.00054646). An East Asian name has 0.1889996 the odds of being selected as an honoree, significantly lower than to other names (\(\beta_\textrm{East Asian} =\) -1.666, P = 6.0164e-09). The two groups of scientists did not have a significant association with names predicted to be European (P = 0.38583) or in Other categories (P = 0.44544).

    +
    +
    +

    Alternative approach

    +

    Sincere thanks to the reviewers, Byron Smith and Katie Pollard, for their detailed suggestion with code.

    +

    The question of what unit one should use to perform this type of analyses is a difficult one. We present here an alternative analysis that treats names as units instead of honors and authorships. We caution that this approach does not distinguish scientists who were honored 4 times vs. one time and hence may yield a conservative estimate of disparity. Further, different authors may have the same names, and to sum adjusted_citations across them may not be optimal.

    +

    Nonetheless, the finding here is consistent with what we have seen above where East Asian names are underrepresented in the honoree group.

    +
    keynotes_post_2002 <- keynotes %>%
    +  filter(year(year) >= 2002) %>%
    +  separate_rows(afflcountries, sep = ",") %>%
    +  filter(afflcountries == "United States") %>%
    +  group_by(fore_name_simple, last_name_simple) %>%
    +  summarise_at("year", n_distinct, na.rm = T)
    +
    +# nationalize_df was not unique, so the left join to corr_authors resulted
    +# in (mostly) duplicate rows.
    +# FIXME: I was getting occasional crashes on this line, and it's slow.
    +# TRANG: fixed on June 3, 2021 using distinct().
    +# Also, the duplication was intentional.
    +# Please see our extensive discussion on the merge/join on full names vs
    +# fore_name and last_name here:
    +# <https://github.com/greenelab/iscb-diversity/issues/6>
    +
    +distinct_nationalize_df <- nationalize_df %>%
    +  distinct(fore_name_simple, last_name_simple, .keep_all = TRUE)
    +
    +# Calculate sum of adjusted citations for all publications for a first-name/
    +# last-name pair in db since 2002
    +# where the author countries include US.
    +authors <- corr_authors %>%
    +  filter(year(year) >= 2002) %>%
    +  separate_rows(countries, sep = ",") %>%
    +  filter(countries == "US") %>%
    +  group_by(fore_name_simple, last_name_simple) %>%
    +  summarise_at(vars(adjusted_citations), sum, na.rm = T) %>%
    +  left_join(
    +    keynotes_post_2002[c("fore_name_simple", "last_name_simple", "year")],
    +    by = c("fore_name_simple", "last_name_simple")
    +  ) %>%
    +  left_join(distinct_nationalize_df, by = c("fore_name_simple", "last_name_simple")) %>%
    +  mutate(OtherCategories = SouthAsian + Hispanic + Jewish + Muslim + Nordic + Greek + African)
    +
    +for (large_region in large_regions) {
    +  glm(
    +    as.formula(paste("honoree ~ adjusted_citations +", large_region)),
    +    data = authors %>% mutate(honoree = !is.na(year)),
    +    family = "binomial",
    +    control = list(epsilon = 1e-12, maxit = 55, trace = FALSE)
    +  ) %>%
    +    broom::tidy() %>%
    +    print()
    +}
    +
    ## # A tibble: 3 x 5
    +##   term               estimate std.error statistic   p.value
    +##   <chr>                 <dbl>     <dbl>     <dbl>     <dbl>
    +## 1 (Intercept)         -5.79     0.160      -36.2  2.15e-286
    +## 2 adjusted_citations   0.0555   0.00426     13.0  8.68e- 39
    +## 3 CelticEnglish        0.453    0.272        1.66 9.65e-  2
    +## # A tibble: 3 x 5
    +##   term               estimate std.error statistic  p.value
    +##   <chr>                 <dbl>     <dbl>     <dbl>    <dbl>
    +## 1 (Intercept)         -5.42     0.130      -41.5  0.      
    +## 2 adjusted_citations   0.0566   0.00446     12.7  7.36e-37
    +## 3 EastAsian           -3.18     1.02        -3.10 1.91e- 3
    +## # A tibble: 3 x 5
    +##   term               estimate std.error statistic   p.value
    +##   <chr>                 <dbl>     <dbl>     <dbl>     <dbl>
    +## 1 (Intercept)         -5.75     0.154      -37.3  6.30e-304
    +## 2 adjusted_citations   0.0560   0.00423     13.2  5.74e- 40
    +## 3 European             0.393    0.294        1.33 1.82e-  1
    +## # A tibble: 3 x 5
    +##   term               estimate std.error statistic   p.value
    +##   <chr>                 <dbl>     <dbl>     <dbl>     <dbl>
    +## 1 (Intercept)         -5.76     0.163      -35.2  6.52e-272
    +## 2 adjusted_citations   0.0563   0.00425     13.3  3.70e- 40
    +## 3 OtherCategories      0.357    0.299        1.19 2.33e-  1
    + + + + + + +
    +
    +

    Time lag

    +

    In this section, we show that a 10-year lag model results in a similar result for East Asian scientists’ names, even though the effect size is less striking. For example, if we assume that honors accrue 10 years after their most prolific year with respect to authorships, the proportion of honor associated with East Asian name origins in 2019 is still substantially less than the proportion of senior authorships associated with East Asian names in 2009.

    +
    year_lag <- period(10, "years")
    +iscb_pubmed_oth_lag <- iscb_nat_df %>%
    +  rename("journal" = conference) %>%
    +  select(year, journal, African:SouthAsian, publication_date) %>%
    +  mutate(
    +    type = "Keynote speakers/Fellows",
    +    adjusted_citations = 1,
    +    pmid = -9999
    +  ) %>%
    +  bind_rows(
    +    pubmed_nat_df %>%
    +      select(pmid, year, journal, African:SouthAsian, publication_date, adjusted_citations) %>%
    +      mutate(type = "Pubmed authors", year = year + year_lag)
    +  ) %>%
    +  mutate(OtherCategories = SouthAsian + Hispanic + Jewish + Muslim + Nordic + Greek + African) %>%
    +  pivot_longer(c(African:SouthAsian, OtherCategories),
    +    names_to = "region",
    +    values_to = "probabilities"
    +  ) %>%
    +  filter(!is.na(probabilities), year(year) >= 2002) %>%
    +  group_by(type, year, region) %>%
    +  mutate(
    +    pmc_citations_year = mean(adjusted_citations),
    +    weight = adjusted_citations / pmc_citations_year,
    +    weighted_probs = probabilities * weight
    +  )
     
    -fig_s5 <- iscb_pubmed_sum %>%
    -  recode_region() %>%
    -  gam_and_ci(df2 = df2,
    -             start_y = start_year, end_y = end_year) +
    -  theme(legend.position = c(0.8, 0.1)) +
    -  facet_wrap(vars(fct_relevel(region, region_levels)), ncol = 3)
    -fig_s5
    -
    ## `geom_smooth()` using formula 'y ~ s(x, bs = "cs")'
    -

    -
    ggsave('figs/fig_s5.png', fig_s5, width = 6, height = 6)
    -
    ## `geom_smooth()` using formula 'y ~ s(x, bs = "cs")'
    -
    ggsave('figs/fig_s5.svg', fig_s5, width = 6, height = 6)
    -
    ## `geom_smooth()` using formula 'y ~ s(x, bs = "cs")'
    +iscb_lm_lag <- iscb_pubmed_oth_lag %>% + ungroup() %>% + mutate(type = as.factor(type) %>% relevel(ref = "Pubmed authors")) + +main_lm <- function(regioni) { + glm(type ~ year + weighted_probs, + data = iscb_lm_lag %>% + filter(region == regioni, !is.na(weighted_probs)), + family = "binomial" + ) +} + +main_list <- lapply(large_regions, main_lm) +names(main_list) <- large_regions +lapply(main_list, broom::tidy)
    +
    ## $CelticEnglish
    +## # A tibble: 3 x 5
    +##   term           estimate std.error statistic   p.value
    +##   <chr>             <dbl>     <dbl>     <dbl>     <dbl>
    +## 1 (Intercept)    29.1     1.18         24.7   2.46e-134
    +## 2 year           -0.00210 0.0000749   -28.0   2.09e-172
    +## 3 weighted_probs  0.0199  0.102         0.196 8.45e-  1
    +## 
    +## $EastAsian
    +## # A tibble: 3 x 5
    +##   term           estimate std.error statistic   p.value
    +##   <chr>             <dbl>     <dbl>     <dbl>     <dbl>
    +## 1 (Intercept)    29.0     1.18          24.6  5.89e-134
    +## 2 year           -0.00209 0.0000749    -27.8  1.41e-170
    +## 3 weighted_probs -0.708   0.292         -2.43 1.52e-  2
    +## 
    +## $European
    +## # A tibble: 3 x 5
    +##   term           estimate std.error statistic   p.value
    +##   <chr>             <dbl>     <dbl>     <dbl>     <dbl>
    +## 1 (Intercept)    29.1     1.18        24.7    4.84e-135
    +## 2 year           -0.00210 0.0000748  -28.0    7.61e-173
    +## 3 weighted_probs  0.00832 0.106        0.0788 9.37e-  1
    +## 
    +## $OtherCategories
    +## # A tibble: 3 x 5
    +##   term           estimate std.error statistic   p.value
    +##   <chr>             <dbl>     <dbl>     <dbl>     <dbl>
    +## 1 (Intercept)    29.1     1.18          24.7  3.41e-135
    +## 2 year           -0.00210 0.0000748    -28.1  3.25e-173
    +## 3 weighted_probs  0.170   0.106          1.60 1.09e-  1
    +
    +
    +

    Supplementary Figure S5

    +

    It’s difficult to come to a conclusion for other regions with so few data points and the imperfect accuracy of our prediction. There seems to be little difference between the proportion of keynote speakers of African, Arabic, South Asian and Hispanic origin than those in the field. However, just because a nationality isn’t underrepresented against the field doesn’t mean scientists from that nationality are appropriately represented.

    +
    # df2 <- iscb_pubmed_oth %>%
    +#   filter(region != "OtherCategories") %>%
    +#   recode_region()
    +# 
    +# fig_s5 <- iscb_pubmed_sum %>%
    +#   recode_region() %>%
    +#   gam_and_ci(
    +#     df2 = df2,
    +#     start_y = start_year, end_y = end_year
    +#   ) +
    +#   theme(legend.position = c(0.8, 0.1)) +
    +#   facet_wrap(vars(fct_relevel(region, region_levels)), ncol = 3)
    +# fig_s5
    +# ggsave("figs/fig_s5.png", fig_s5, width = 6, height = 6)
    +# ggsave("figs/fig_s5.svg", fig_s5, width = 6, height = 6)
    sessionInfo()
    ## R version 4.0.3 (2020-10-10)
     ## Platform: x86_64-pc-linux-gnu (64-bit)
    @@ -2411,52 +2140,63 @@ 

    Supplementary Figure S5

    ## BLAS/LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.8.so ## ## locale: -## [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8 -## [4] LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 LC_MESSAGES=C -## [7] LC_PAPER=en_US.UTF-8 LC_NAME=C LC_ADDRESS=C -## [10] LC_TELEPHONE=C LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C +## [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C +## [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 +## [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=C +## [7] LC_PAPER=en_US.UTF-8 LC_NAME=C +## [9] LC_ADDRESS=C LC_TELEPHONE=C +## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C ## ## attached base packages: ## [1] stats graphics grDevices utils datasets methods base ## ## other attached packages: -## [1] gdtools_0.2.2 wru_0.1-10 rnaturalearth_0.1.0 lubridate_1.7.9.2 -## [5] caret_6.0-86 lattice_0.20-41 forcats_0.5.0 stringr_1.4.0 -## [9] dplyr_1.0.2 purrr_0.3.4 readr_1.4.0 tidyr_1.1.2 +## [1] gdtools_0.2.2 wru_0.1-10 rnaturalearth_0.1.0 +## [4] lubridate_1.7.9.2 caret_6.0-86 lattice_0.20-41 +## [7] forcats_0.5.0 stringr_1.4.0 dplyr_1.0.2 +## [10] purrr_0.3.4 readr_1.4.0 tidyr_1.1.2 ## [13] tibble_3.0.4 ggplot2_3.3.2 tidyverse_1.3.0 ## ## loaded via a namespace (and not attached): -## [1] colorspace_2.0-0 ellipsis_0.3.1 class_7.3-17 rprojroot_1.3-2 -## [5] fs_1.5.0 rstudioapi_0.12 farver_2.0.3 remotes_2.2.0 -## [9] DT_0.16 prodlim_2019.11.13 fansi_0.4.1 xml2_1.3.2 -## [13] codetools_0.2-16 splines_4.0.3 knitr_1.30 pkgload_1.1.0 -## [17] jsonlite_1.7.1 pROC_1.16.2 broom_0.7.2 dbplyr_2.0.0 -## [21] rgeos_0.5-5 compiler_4.0.3 httr_1.4.2 backports_1.2.0 -## [25] assertthat_0.2.1 Matrix_1.2-18 cli_2.1.0 htmltools_0.5.0 -## [29] prettyunits_1.1.1 tools_4.0.3 gtable_0.3.0 glue_1.4.2 -## [33] rnaturalearthdata_0.1.0 reshape2_1.4.4 Rcpp_1.0.5 cellranger_1.1.0 -## [37] vctrs_0.3.4 svglite_1.2.3.2 nlme_3.1-149 iterators_1.0.13 -## [41] crosstalk_1.1.0.1 timeDate_3043.102 gower_0.2.2 xfun_0.19 -## [45] ps_1.4.0 testthat_3.0.0 rvest_0.3.6 lifecycle_0.2.0 -## [49] devtools_2.3.2 MASS_7.3-53 scales_1.1.1 ipred_0.9-9 -## [53] hms_0.5.3 RColorBrewer_1.1-2 yaml_2.2.1 curl_4.3 -## [57] memoise_1.1.0 rpart_4.1-15 stringi_1.5.3 desc_1.2.0 -## [61] foreach_1.5.1 e1071_1.7-4 pkgbuild_1.1.0 lava_1.6.8.1 -## [65] systemfonts_0.3.2 rlang_0.4.8 pkgconfig_2.0.3 evaluate_0.14 -## [69] sf_0.9-6 recipes_0.1.15 htmlwidgets_1.5.2 labeling_0.4.2 -## [73] cowplot_1.1.0 tidyselect_1.1.0 processx_3.4.4 plyr_1.8.6 -## [77] magrittr_1.5 R6_2.5.0 generics_0.1.0 DBI_1.1.0 -## [81] mgcv_1.8-33 pillar_1.4.6 haven_2.3.1 withr_2.3.0 -## [85] units_0.6-7 survival_3.2-7 sp_1.4-4 nnet_7.3-14 -## [89] modelr_0.1.8 crayon_1.3.4 KernSmooth_2.23-17 utf8_1.1.4 -## [93] rmarkdown_2.5 usethis_1.6.3 grid_4.0.3 readxl_1.3.1 -## [97] data.table_1.13.2 callr_3.5.1 ModelMetrics_1.2.2.2 reprex_0.3.0 -## [101] digest_0.6.27 classInt_0.4-3 stats4_4.0.3 munsell_0.5.0 -## [105] viridisLite_0.3.0 sessioninfo_1.1.1
    -
    +## [1] colorspace_2.0-0 ellipsis_0.3.1 class_7.3-17 +## [4] rprojroot_1.3-2 fs_1.5.0 rstudioapi_0.12 +## [7] farver_2.0.3 remotes_2.2.0 DT_0.16 +## [10] prodlim_2019.11.13 fansi_0.4.1 xml2_1.3.2 +## [13] codetools_0.2-16 splines_4.0.3 knitr_1.30 +## [16] pkgload_1.1.0 jsonlite_1.7.1 pROC_1.16.2 +## [19] broom_0.7.2 dbplyr_2.0.0 rgeos_0.5-5 +## [22] compiler_4.0.3 httr_1.4.2 backports_1.2.0 +## [25] assertthat_0.2.1 Matrix_1.2-18 cli_2.1.0 +## [28] htmltools_0.5.0 prettyunits_1.1.1 tools_4.0.3 +## [31] gtable_0.3.0 glue_1.4.2 rnaturalearthdata_0.1.0 +## [34] reshape2_1.4.4 Rcpp_1.0.5 cellranger_1.1.0 +## [37] vctrs_0.3.4 svglite_1.2.3.2 nlme_3.1-149 +## [40] iterators_1.0.13 crosstalk_1.1.0.1 timeDate_3043.102 +## [43] gower_0.2.2 xfun_0.19 ps_1.4.0 +## [46] testthat_3.0.0 rvest_0.3.6 lifecycle_0.2.0 +## [49] devtools_2.3.2 MASS_7.3-53 scales_1.1.1 +## [52] ipred_0.9-9 hms_0.5.3 RColorBrewer_1.1-2 +## [55] yaml_2.2.1 curl_4.3 memoise_1.1.0 +## [58] rpart_4.1-15 stringi_1.5.3 desc_1.2.0 +## [61] foreach_1.5.1 e1071_1.7-4 pkgbuild_1.1.0 +## [64] lava_1.6.8.1 systemfonts_0.3.2 rlang_0.4.8 +## [67] pkgconfig_2.0.3 evaluate_0.14 sf_0.9-6 +## [70] recipes_0.1.15 htmlwidgets_1.5.2 labeling_0.4.2 +## [73] cowplot_1.1.0 tidyselect_1.1.0 processx_3.4.4 +## [76] plyr_1.8.6 magrittr_1.5 R6_2.5.0 +## [79] generics_0.1.0 DBI_1.1.0 mgcv_1.8-33 +## [82] pillar_1.4.6 haven_2.3.1 withr_2.3.0 +## [85] units_0.6-7 survival_3.2-7 sp_1.4-4 +## [88] nnet_7.3-14 modelr_0.1.8 crayon_1.3.4 +## [91] KernSmooth_2.23-17 utf8_1.1.4 rmarkdown_2.5 +## [94] usethis_1.6.3 grid_4.0.3 readxl_1.3.1 +## [97] data.table_1.13.2 callr_3.5.1 ModelMetrics_1.2.2.2 +## [100] reprex_0.3.0 digest_0.6.27 classInt_0.4-3 +## [103] stats4_4.0.3 munsell_0.5.0 viridisLite_0.3.0 +## [106] sessioninfo_1.1.1
    -
    LS0tCnRpdGxlOiAiUmVwcmVzZW50YXRpb24gYW5hbHlzaXMgb2YgbmFtZSBvcmlnaW5zIgotLS0KCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeShsdWJyaWRhdGUpCmxpYnJhcnkocm5hdHVyYWxlYXJ0aCkKc291cmNlKCd1dGlscy9yLXV0aWxzLlInKQp0aGVtZV9zZXQodGhlbWVfYncoKSArIHRoZW1lKGxlZ2VuZC50aXRsZSA9IGVsZW1lbnRfYmxhbmsoKSkpCmBgYAoKT25seSBrZWVwIGFydGljbGVzIGZyb20gMjAwMiBiZWNhdXNlIGZldyBhdXRob3JzIGhhZCBuYXRpb25hbGl0eSBwcmVkaWN0aW9ucyBiZWZvcmUgMjAwMiAobW9zdGx5IGR1ZSB0byBtaXNzaW5nIG1ldGFkYXRhKS4KU2VlIFswOTMuc3VtbWFyeS1zdGF0c10oZG9jcy8wOTMuc3VtbWFyeS1zdGF0cy5odG1sKSBmb3IgbW9yZSBkZXRhaWxzLgoKYGBge3J9CmFscGhhX3RocmVzaG9sZCA8LSBxbm9ybSgwLjk3NSkKbG9hZCgnUmRhdGEvcmF3cy5SZGF0YScpCgpwdWJtZWRfbmF0X2RmIDwtIGNvcnJfYXV0aG9ycyAlPiUKICBmaWx0ZXIoeWVhcih5ZWFyKSA+PSAyMDAyKSAlPiUgCiAgbGVmdF9qb2luKG5hdGlvbmFsaXplX2RmLCBieSA9IGMoJ2ZvcmVfbmFtZScsICdsYXN0X25hbWUnKSkgJT4lCiAgZ3JvdXBfYnkocG1pZCwgam91cm5hbCwgcHVibGljYXRpb25fZGF0ZSwgeWVhciwgYWRqdXN0ZWRfY2l0YXRpb25zKSAlPiUKICBzdW1tYXJpc2VfYXQodmFycyhBZnJpY2FuOlNvdXRoQXNpYW4pLCBtZWFuLCBuYS5ybSA9IFQpICU+JQogIHVuZ3JvdXAoKQoKaXNjYl9uYXRfZGYgPC0ga2V5bm90ZXMgJT4lCiAgbGVmdF9qb2luKG5hdGlvbmFsaXplX2RmLCBieSA9IGMoJ2ZvcmVfbmFtZScsICdsYXN0X25hbWUnKSkKCnN0YXJ0X3llYXIgPC0gMTk5MgplbmRfeWVhciA8LSAyMDE5Cm5feWVhcnMgPC0gZW5kX3llYXIgLSBzdGFydF95ZWFyCm15X2pvdXJzIDwtIHVuaXF1ZShwdWJtZWRfbmF0X2RmJGpvdXJuYWwpCm15X2NvbmZzIDwtIHVuaXF1ZShpc2NiX25hdF9kZiRjb25mZXJlbmNlKQpuX2pvdXJzIDwtIGxlbmd0aChteV9qb3VycykKbl9jb25mcyA8LSBsZW5ndGgobXlfY29uZnMpCnJlZ2lvbl9sZXZlbHMgPC0gcGFzdGUoYygnQ2VsdGljL0VuZ2xpc2gnLCAnRXVyb3BlYW4nLCAnRWFzdCBBc2lhbicsICdIaXNwYW5pYycsICdTb3V0aCBBc2lhbicsICdBcmFiaWMnLCAnSGVicmV3JywgJ0FmcmljYW4nLCAnTm9yZGljJywgJ0dyZWVrJyksICduYW1lcycpCnJlZ2lvbl9sZXZlbHNfbGV0IDwtIHRvdXBwZXIobGV0dGVyc1sxOjhdKQpyZWdpb25fY29scyA8LSBjKCcjZmZmZmIzJywgJyNmY2NkZTUnLCAnI2IzZGU2OScsICcjZmRiNDYyJywgJyM4MGIxZDMnLCAnIzhkZDNjNycsICcjYmViYWRhJywgJyNmYjgwNzInLCAnI2JjODBiZCcsICcjY2NlYmM1JykKYGBgCgpOYW1lcyBncm91cGluZzoKYGBge3Igd2FybmluZz1GQUxTRSwgZmlnLmhlaWdodCA9IDN9Cm91cl9jb3VudHJ5X21hcCA8LSByZWFkX3RzdignaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2dyZWVuZWxhYi93aWtpLW5hdGlvbmFsaXR5LWVzdGltYXRlLzdjMjJkMGE1ZjY2MWNlNWFlYjc4NTIxNTA5NWRlZGE0MDk3M2ZmMTcvZGF0YS9jb3VudHJ5X3RvX3JlZ2lvbl9OYW1lUHJpc20udHN2JykgJT4lCiAgcmVuYW1lKCdyZWdpb24nID0gUmVnaW9uKSAlPiUKICByZWNvZGVfcmVnaW9uKCkKCm15X3dvcmxkIDwtIHdvcmxkICU+JQogIHNlbGVjdCgtIGdlb21ldHJ5KSAlPiUgCiAgcmVuYW1lKENvdW50cnkgPSAnbmFtZScpICU+JQogIGxlZnRfam9pbihvdXJfY291bnRyeV9tYXAsIGJ5ID0gJ0NvdW50cnknKQoKKGd3b3JsZCA8LSBnZ3Bsb3QoZGF0YSA9IG15X3dvcmxkKSArCiAgICBnZW9tX3NmKGFlcyhmaWxsID0gZmN0X3JlbGV2ZWwocmVnaW9uLCByZWdpb25fbGV2ZWxzKSkpICsKICAgIGNvb3JkX3NmKGNycyA9ICIrcHJvaj1lcWVhcnRoICt3a3RleHQiKSArCiAgICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSByZWdpb25fY29scywKICAgICAgICAgICAgICAgICAgICAgIG5hLnRyYW5zbGF0ZSA9IEZBTFNFKSArCiAgICB0aGVtZShwYW5lbC5iYWNrZ3JvdW5kID0gZWxlbWVudF9yZWN0KGZpbGwgPSAiYXp1cmUiKSwKICAgICAgICAgIGxlZ2VuZC50aXRsZSA9IGVsZW1lbnRfYmxhbmsoKSwKICAgICAgICAgIGxlZ2VuZC5wb3NpdGlvbiA9ICdib3R0b20nLAogICAgICAgICAgcGFuZWwuYm9yZGVyID0gZWxlbWVudF9yZWN0KGZpbGwgPSBOQSkpKQoKZ2dzYXZlKCdmaWdzLzIwMjAtMDEtMzFfZ3JvdXBpbmdzLnBuZycsIGd3b3JsZCwgd2lkdGggPSA3LjIsIGhlaWdodCA9IDQuMykKZ2dzYXZlKCdmaWdzLzIwMjAtMDEtMzFfZ3JvdXBpbmdzLnN2ZycsIGd3b3JsZCwgd2lkdGggPSA3LjIsIGhlaWdodCA9IDQuMykKYGBgCgoKIyMgRGVzY3JpcHRpdmUgc3RhdGlzdGljcwpQcmVwYXJlIGRhdGEgZnJhbWVzIGZvciBsYXRlciBhbmFseXNlczoKCi0gcmJpbmQgcmVzdWx0cyBvZiByYWNlIHByZWRpY3Rpb25zIGluIGlzY2IgYW5kIFB1Ym1lZAotIHBpdm90IGxvbmcKLSBjb21wdXRlIG1lYW4sIHNkLCBtYXJnaW5hbCBlcnJvcgoKYGBge3J9CmlzY2JfcHVibWVkX290aCA8LSBpc2NiX25hdF9kZiAlPiUKICByZW5hbWUoJ2pvdXJuYWwnID0gY29uZmVyZW5jZSkgJT4lCiAgc2VsZWN0KHllYXIsIGpvdXJuYWwsIEFmcmljYW46U291dGhBc2lhbiwgcHVibGljYXRpb25fZGF0ZSkgJT4lCiAgbXV0YXRlKHR5cGUgPSAnS2V5bm90ZSBzcGVha2Vycy9GZWxsb3dzJywKICAgICAgICAgYWRqdXN0ZWRfY2l0YXRpb25zID0gMSwKICAgICAgICAgcG1pZCA9IC05OTk5KSAlPiUKICBiaW5kX3Jvd3MoCiAgICBwdWJtZWRfbmF0X2RmICU+JQogICAgICBzZWxlY3QocG1pZCwgeWVhciwgam91cm5hbCwgQWZyaWNhbjpTb3V0aEFzaWFuLCBwdWJsaWNhdGlvbl9kYXRlLCBhZGp1c3RlZF9jaXRhdGlvbnMpICU+JQogICAgICBtdXRhdGUodHlwZSA9ICdQdWJtZWQgYXV0aG9ycycpCiAgKSAlPiUKICBtdXRhdGUoT3RoZXJDYXRlZ29yaWVzID0gU291dGhBc2lhbiArIEhpc3BhbmljICsgSmV3aXNoICsgTXVzbGltICsgTm9yZGljICsgR3JlZWsgKyBBZnJpY2FuKSAlPiUKICBwaXZvdF9sb25nZXIoYyhBZnJpY2FuOlNvdXRoQXNpYW4sIE90aGVyQ2F0ZWdvcmllcyksCiAgICAgICAgICAgICAgIG5hbWVzX3RvID0gJ3JlZ2lvbicsCiAgICAgICAgICAgICAgIHZhbHVlc190byA9ICdwcm9iYWJpbGl0aWVzJykgJT4lCiAgZmlsdGVyKCFpcy5uYShwcm9iYWJpbGl0aWVzKSkgJT4lIAogIGdyb3VwX2J5KHR5cGUsIHllYXIsIHJlZ2lvbikgJT4lCiAgbXV0YXRlKAogICAgcG1jX2NpdGF0aW9uc195ZWFyID0gbWVhbihhZGp1c3RlZF9jaXRhdGlvbnMpLAogICAgd2VpZ2h0ID0gYWRqdXN0ZWRfY2l0YXRpb25zL3BtY19jaXRhdGlvbnNfeWVhciwKICAgIHdlaWdodGVkX3Byb2JzID0gcHJvYmFiaWxpdGllcyp3ZWlnaHQKICApIAoKaXNjYl9wdWJtZWRfc3VtX290aCA8LSBpc2NiX3B1Ym1lZF9vdGggJT4lIAogIHN1bW1hcmlzZSgKICAgIG1lYW5fcHJvYiA9IG1lYW4od2VpZ2h0ZWRfcHJvYnMpLAogICAgc2VfcHJvYiA9IHNxcnQodmFyKHByb2JhYmlsaXRpZXMpICogc3VtKHdlaWdodF4yKS8oc3VtKHdlaWdodCleMikpLAogICAgbWVfcHJvYiA9IGFscGhhX3RocmVzaG9sZCAqIHNlX3Byb2IsCiAgICAuZ3JvdXBzID0gJ2Ryb3AnCiAgKQoKaXNjYl9wdWJtZWRfc3VtIDwtIGlzY2JfcHVibWVkX3N1bV9vdGggJT4lCiAgZmlsdGVyKHJlZ2lvbiAhPSAnT3RoZXJDYXRlZ29yaWVzJykKYGBgCgojIyBQcmVwYXJlIGRhdGEgZnJhbWVzIGZvciBhbmFseXNpcwoKIyMjIEJ5IGNvbmZlcmVuY2Uga2V5bm90ZXMvZmVsbG93cwpgYGB7ciBmaWcuaGVpZ2h0PTZ9CmkgPC0gMAppc2NiX25hdCA8LSB2ZWN0b3IoJ2xpc3QnLCBsZW5ndGggPSBuX2NvbmZzKQoKZm9yIChjb25mIGluIG15X2NvbmZzKXsKICBpIDwtIGkgKyAxCiAgaXNjYl9uYXRbW2ldXSA8LSBpc2NiX3B1Ym1lZF9vdGggJT4lCiAgICBmaWx0ZXIocmVnaW9uICE9ICdPdGhlckNhdGVnb3JpZXMnLCB0eXBlICE9ICdQdWJtZWQgYXV0aG9ycycgJiBqb3VybmFsID09IGNvbmYpICU+JQogICAgZ3JvdXBfYnkodHlwZSwgeWVhciwgcmVnaW9uLCBqb3VybmFsKSAlPiUKICAgIHN1bW1hcmlzZShtZWFuX3Byb2IgPSBtZWFuKHdlaWdodGVkX3Byb2JzKSwgLmdyb3VwcyA9ICdkcm9wJykgJT4lCiAgICB7Ln0KfQpgYGAKCmBgYHtyfQpzYXZlKG15X3dvcmxkLCBpc2NiX3B1Ym1lZF9vdGgsIGlzY2JfbmF0LCBmaWxlID0gJ1JkYXRhL2lzY2ItcHVibWVkX25hdC5SZGF0YScpCmBgYAoKIyMgRmlndXJlcyBmb3IgcGFwZXIKCiMjIyBGaWd1cmUgNAoKQ29tcGFyZWQgdG8gdGhlIG5hbWUgY29sbGVjdGlvbiBvZiBQdWJtZWQgYXV0aG9ycywgaG9ub3JlZXMgd2l0aCBDZWx0aWMvRW5nbGlzaCBuYW1lcyBhcmUgb3ZlcnJlcHJlc2VudGVkIHdoaWxlIGhvbm9yZWVzIHdpdGggRWFzdCBBc2lhbiBuYW1lcyBhcmUgdW5kZXJyZXByZXNlbnRlZC4KCmBgYHtyIGZpZy5oZWlnaHQ9NywgZmlnLndpZHRoPTksIHdhcm5pbmc9RkFMU0V9CmZpZ180YSA8LSBpc2NiX3B1Ym1lZF9zdW0gJT4lCiAgZmlsdGVyKHllYXIgPCAnMjAyMC0wMS0wMScpICU+JQogIHJlZ2lvbl9icmVha2Rvd24oJ21haW4nLCByZWdpb25fbGV2ZWxzLCBmY3RfcmV2KHR5cGUpKSArCiAgZ3VpZGVzKGZpbGwgPSBndWlkZV9sZWdlbmQobnJvdyA9IDIpKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gJ2JvdHRvbScpCgpsYXJnZV9yZWdpb25zIDwtIGMoJ0NlbHRpY0VuZ2xpc2gnLCAnRWFzdEFzaWFuJywgJ0V1cm9wZWFuJywgJ090aGVyQ2F0ZWdvcmllcycpCiMjIE1lYW4gYW5kIHN0YW5kYXJkIGRldmlhdGlvbiBvZiBwcmVkaWN0ZWQgcHJvYmFiaWxpdGllczoKZmlnXzRiIDwtIGlzY2JfcHVibWVkX3N1bV9vdGggJT4lCiAgZmlsdGVyKHJlZ2lvbiAlaW4lIGxhcmdlX3JlZ2lvbnMpICU+JQogIHJlY29kZV9yZWdpb24oKSAlPiUKICBnYW1fYW5kX2NpKAogICAgZGYyID0gaXNjYl9wdWJtZWRfb3RoICU+JSAKICAgICAgZmlsdGVyKHJlZ2lvbiAlaW4lIGxhcmdlX3JlZ2lvbnMpICU+JQogICAgICByZWNvZGVfcmVnaW9uKCksCiAgICBzdGFydF95ID0gc3RhcnRfeWVhciwgZW5kX3kgPSBlbmRfeWVhcikgKyAKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSBjKDAuODgsIDAuODMpLAogICAgICAgIHBhbmVsLmdyaWQubWlub3IgPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgbGVnZW5kLm1hcmdpbiA9IG1hcmdpbigtMC41LCAwLCAwLCAwLCB1bml0PSdjbScpLAogICAgICAgIGxlZ2VuZC50ZXh0ID0gZWxlbWVudF90ZXh0KHNpemUgPSA3KSkgKwogIGZhY2V0X3dyYXAodmFycyhmY3RfcmVsZXZlbChyZWdpb24sIGxhcmdlX3JlZ2lvbnMpKSwgbnJvdyA9IDEpCgpmaWdfNCA8LSBjb3dwbG90OjpwbG90X2dyaWQoZmlnXzRhLCBmaWdfNGIsIGxhYmVscyA9ICdBVVRPJywgbmNvbCA9IDEsIHJlbF9oZWlnaHRzID0gYygxLjMsMSkpCmZpZ180Cmdnc2F2ZSgnZmlncy9yZWdpb25fYnJlYWtkb3duLnBuZycsIGZpZ180LCB3aWR0aCA9IDYuNywgaGVpZ2h0ID0gNS41KQpnZ3NhdmUoJ2ZpZ3MvcmVnaW9uX2JyZWFrZG93bi5zdmcnLCBmaWdfNCwgd2lkdGggPSA2LjcsIGhlaWdodCA9IDUuNSkKYGBgCgoKIyMgSHlwb3RoZXNpcyB0ZXN0aW5nCgpgYGB7cn0KaXNjYl9sbSA8LSBpc2NiX3B1Ym1lZF9vdGggJT4lIAogIHVuZ3JvdXAoKSAlPiUgCiAgbXV0YXRlKAogICAgIyB5ZWFyID0gYyhzY2FsZSh5ZWFyKHllYXIpKSksCiAgICB5ZWFyID0gYXMuZmFjdG9yKHllYXIpLAogICAgdHlwZSA9IGFzLmZhY3Rvcih0eXBlKSAlPiUgcmVsZXZlbChyZWYgPSAnUHVibWVkIGF1dGhvcnMnKSkKbWFpbl9sbSA8LSBmdW5jdGlvbihyZWdpb25pKXsKICBnbG0odHlwZSB+IHllYXIgKyB3ZWlnaHRlZF9wcm9icywgCiAgICAgIGRhdGEgPSBpc2NiX2xtICU+JSAKICAgICAgICBmaWx0ZXIocmVnaW9uID09IHJlZ2lvbmksICFpcy5uYShwcm9iYWJpbGl0aWVzKSkgLAogICAgICBmYW1pbHkgPSAnYmlub21pYWwnKQp9CgppbnRlX2xtIDwtIGZ1bmN0aW9uKHJlZ2lvbmkpewogIGdsbSh0eXBlIH4geWVhciAqIHdlaWdodGVkX3Byb2JzLCAKICAgICAgZGF0YSA9IGlzY2JfbG0gJT4lIAogICAgICAgIGZpbHRlcihyZWdpb24gPT0gcmVnaW9uaSwgIWlzLm5hKHdlaWdodGVkX3Byb2JzKSksCiAgICAgIGZhbWlseSA9ICdiaW5vbWlhbCcpCn0KCm1haW5fbGlzdCA8LSBsYXBwbHkobGFyZ2VfcmVnaW9ucywgbWFpbl9sbSkKbmFtZXMobWFpbl9saXN0KSA8LSBsYXJnZV9yZWdpb25zCmxhcHBseShtYWluX2xpc3QsIHN1bW1hcnkpCgppbnRlX2xpc3QgPC0gbGFwcGx5KGxhcmdlX3JlZ2lvbnMsIGludGVfbG0pCmxhcHBseShpbnRlX2xpc3QsIHN1bW1hcnkpCmZvciAoaSBpbiAxOjQpewogIHByaW50KGFub3ZhKG1haW5fbGlzdFtbaV1dLCBpbnRlX2xpc3RbW2ldXSwgdGVzdCA9ICdDaGlzcScpKQp9CmBgYApJbnRlcmFjdGlvbiB0ZXJtcyBkbyBub3QgcHJlZGljdCBgdHlwZWAgb3ZlciBhbmQgYWJvdmUgdGhlIG1haW4gZWZmZWN0IG9mIG5hbWUgb3JpZ2luIHByb2JhYmlsaXR5IGFuZCB5ZWFyIChfcF8gPiAwLjAxKS4KCmBgYHtyIGVjaG8gPSBGfQpnZXRfcCA8LSBmdW5jdGlvbihpLCBjb2x1KXsKICBicm9vbTo6dGlkeShtYWluX2xpc3RbW2ldXSkgJT4lIAogICAgZmlsdGVyKHRlcm0gPT0gJ3dlaWdodGVkX3Byb2JzJykgJT4lIAogICAgcHVsbChjb2x1KSAKfQoKcHJpbnRfcCA8LSBmdW5jdGlvbih4KSBzcHJpbnRmKCIlMC41ZyIsIHgpCmBgYAoKIyMgQ29uY2x1c2lvbgpBIENlbHRpYy9FbmdsaXNoIG5hbWUgaGFzIGByIGV4cChnZXRfcCgxLCAnZXN0aW1hdGUnKSlgIHRoZSBvZGRzIG9mIGJlaW5nIHNlbGVjdGVkIGFzIGFuIGhvbm9yZWUsIHNpZ25pZmljYW50bHkgaGlnaGVyIGNvbXBhcmVkIHRvIG90aGVyIG5hbWVzICgkXGJldGFfXHRleHRybXtDZWx0aWMvRW5nbGlzaH0gPSQgYHIgcHJpbnRfcChnZXRfcCgxLCAnZXN0aW1hdGUnKSlgLCBfUF8gPSBgciBwcmludF9wKGdldF9wKDEsICdwLnZhbHVlJykpYCkuCkFuIEVhc3QgQXNpYW4gbmFtZSBoYXMgYHIgZXhwKGdldF9wKDIsICdlc3RpbWF0ZScpKWAgdGhlIG9kZHMgb2YgYmVpbmcgc2VsZWN0ZWQgYXMgYW4gaG9ub3JlZSwgc2lnbmlmaWNhbnRseSBsb3dlciB0aGFuIHRvIG90aGVyIG5hbWVzICgkXGJldGFfXHRleHRybXtFYXN0IEFzaWFufSA9JCBgciBwcmludF9wKGdldF9wKDIsICdlc3RpbWF0ZScpKWAsIF9QXyA9IGByIHByaW50X3AoZ2V0X3AoMiwgJ3AudmFsdWUnKSlgKS4KVGhlIHR3byBncm91cHMgb2Ygc2NpZW50aXN0cyBkaWQgbm90IGhhdmUgYSBzaWduaWZpY2FudCBhc3NvY2lhdGlvbiB3aXRoIG5hbWVzIHByZWRpY3RlZCB0byBiZSBFdXJvcGVhbiAoX1BfID0gYHIgcHJpbnRfcChnZXRfcCgzLCAncC52YWx1ZScpKWApIG9yIGluIE90aGVyIGNhdGVnb3JpZXMgKF9QXyA9IGByIHByaW50X3AoZ2V0X3AoNCwgJ3AudmFsdWUnKSlgKS4KCiMjIyBTdXBwbGVtZW50YXJ5IEZpZ3VyZSBTNSB7I3N1cF9maWdfczV9Ckl0J3MgZGlmZmljdWx0IHRvIGNvbWUgdG8gYSBjb25jbHVzaW9uIGZvciBvdGhlciByZWdpb25zIHdpdGggc28gZmV3IGRhdGEgcG9pbnRzIGFuZCB0aGUgaW1wZXJmZWN0IGFjY3VyYWN5IG9mIG91ciBwcmVkaWN0aW9uLgpUaGVyZSBzZWVtcyB0byBiZSBsaXR0bGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBwcm9wb3J0aW9uIG9mIGtleW5vdGUgc3BlYWtlcnMgb2YgQWZyaWNhbiwgQXJhYmljLCBTb3V0aCBBc2lhbiBhbmQgSGlzcGFuaWMgb3JpZ2luIHRoYW4gdGhvc2UgaW4gdGhlIGZpZWxkLgpIb3dldmVyLCBqdXN0IGJlY2F1c2UgYSBuYXRpb25hbGl0eSBpc24ndCB1bmRlcnJlcHJlc2VudGVkIGFnYWluc3QgdGhlIGZpZWxkIGRvZXNuJ3QgbWVhbiBzY2llbnRpc3RzIGZyb20gdGhhdCBuYXRpb25hbGl0eSBhcmUgYXBwcm9wcmlhdGVseSByZXByZXNlbnRlZC4KCmBgYHtyIGZpZy5oZWlnaHQ9Niwgd2FybmluZz1GQUxTRX0KZGYyIDwtIGlzY2JfcHVibWVkX290aCAlPiUgCiAgZmlsdGVyKHJlZ2lvbiAhPSAnT3RoZXJDYXRlZ29yaWVzJykgJT4lIAogIHJlY29kZV9yZWdpb24oKQoKZmlnX3M1IDwtIGlzY2JfcHVibWVkX3N1bSAlPiUKICByZWNvZGVfcmVnaW9uKCkgJT4lCiAgZ2FtX2FuZF9jaShkZjIgPSBkZjIsCiAgICAgICAgICAgICBzdGFydF95ID0gc3RhcnRfeWVhciwgZW5kX3kgPSBlbmRfeWVhcikgKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9IGMoMC44LCAwLjEpKSArCiAgZmFjZXRfd3JhcCh2YXJzKGZjdF9yZWxldmVsKHJlZ2lvbiwgcmVnaW9uX2xldmVscykpLCBuY29sID0gMykKZmlnX3M1Cmdnc2F2ZSgnZmlncy9maWdfczUucG5nJywgZmlnX3M1LCB3aWR0aCA9IDYsIGhlaWdodCA9IDYpCmdnc2F2ZSgnZmlncy9maWdfczUuc3ZnJywgZmlnX3M1LCB3aWR0aCA9IDYsIGhlaWdodCA9IDYpCmBgYAoKCmBgYHtyfQpzZXNzaW9uSW5mbygpCmBgYAo=
    +
    LS0tCnRpdGxlOiAiUmVwcmVzZW50YXRpb24gYW5hbHlzaXMgb2YgbmFtZSBvcmlnaW5zIgotLS0KCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeShsdWJyaWRhdGUpCmxpYnJhcnkocm5hdHVyYWxlYXJ0aCkKc291cmNlKCJ1dGlscy9yLXV0aWxzLlIiKQp0aGVtZV9zZXQodGhlbWVfYncoKSArIHRoZW1lKGxlZ2VuZC50aXRsZSA9IGVsZW1lbnRfYmxhbmsoKSkpCmBgYAoKT25seSBrZWVwIGFydGljbGVzIGZyb20gMjAwMiBiZWNhdXNlIGZldyBhdXRob3JzIGhhZCBuYXRpb25hbGl0eSBwcmVkaWN0aW9ucyBiZWZvcmUgMjAwMiAobW9zdGx5IGR1ZSB0byBtaXNzaW5nIG1ldGFkYXRhKS4KU2VlIFswOTMuc3VtbWFyeS1zdGF0c10oZG9jcy8wOTMuc3VtbWFyeS1zdGF0cy5odG1sKSBmb3IgbW9yZSBkZXRhaWxzLgoKYGBge3J9CmFscGhhX3RocmVzaG9sZCA8LSBxbm9ybSgwLjk3NSkKbG9hZCgiUmRhdGEvcmF3cy5SZGF0YSIpCgpwdWJtZWRfbmF0X2RmIDwtIGNvcnJfYXV0aG9ycyAlPiUKICBmaWx0ZXIoeWVhcih5ZWFyKSA+PSAyMDAyKSAlPiUKICBsZWZ0X2pvaW4obmF0aW9uYWxpemVfZGYsIGJ5ID0gYygiZm9yZV9uYW1lIiwgImxhc3RfbmFtZSIpKSAlPiUKICBncm91cF9ieShwbWlkLCBqb3VybmFsLCBwdWJsaWNhdGlvbl9kYXRlLCB5ZWFyLCBhZGp1c3RlZF9jaXRhdGlvbnMpICU+JQogIHN1bW1hcmlzZV9hdCh2YXJzKEFmcmljYW46U291dGhBc2lhbiksIG1lYW4sIG5hLnJtID0gVCkgJT4lCiAgdW5ncm91cCgpCgppc2NiX25hdF9kZiA8LSBrZXlub3RlcyAlPiUKICBsZWZ0X2pvaW4obmF0aW9uYWxpemVfZGYsIGJ5ID0gYygiZm9yZV9uYW1lIiwgImxhc3RfbmFtZSIpKQoKc3RhcnRfeWVhciA8LSAxOTkyCmVuZF95ZWFyIDwtIDIwMTkKbl95ZWFycyA8LSBlbmRfeWVhciAtIHN0YXJ0X3llYXIKbXlfam91cnMgPC0gdW5pcXVlKHB1Ym1lZF9uYXRfZGYkam91cm5hbCkKbXlfY29uZnMgPC0gdW5pcXVlKGlzY2JfbmF0X2RmJGNvbmZlcmVuY2UpCm5fam91cnMgPC0gbGVuZ3RoKG15X2pvdXJzKQpuX2NvbmZzIDwtIGxlbmd0aChteV9jb25mcykKcmVnaW9uX2xldmVscyA8LSBwYXN0ZShjKCJDZWx0aWMvRW5nbGlzaCIsICJFdXJvcGVhbiIsICJFYXN0IEFzaWFuIiwgIkhpc3BhbmljIiwgIlNvdXRoIEFzaWFuIiwgIkFyYWJpYyIsICJIZWJyZXciLCAiQWZyaWNhbiIsICJOb3JkaWMiLCAiR3JlZWsiKSwgIm5hbWVzIikKcmVnaW9uX2xldmVsc19sZXQgPC0gdG91cHBlcihsZXR0ZXJzWzE6OF0pCnJlZ2lvbl9jb2xzIDwtIGMoIiNmZmZmYjMiLCAiI2ZjY2RlNSIsICIjYjNkZTY5IiwgIiNmZGI0NjIiLCAiIzgwYjFkMyIsICIjOGRkM2M3IiwgIiNiZWJhZGEiLCAiI2ZiODA3MiIsICIjYmM4MGJkIiwgIiNjY2ViYzUiKQpgYGAKCk5hbWVzIGdyb3VwaW5nOgpgYGB7ciB3YXJuaW5nPUZBTFNFLCBmaWcuaGVpZ2h0ID0gM30Kb3VyX2NvdW50cnlfbWFwIDwtIHJlYWRfdHN2KCJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vZ3JlZW5lbGFiL3dpa2ktbmF0aW9uYWxpdHktZXN0aW1hdGUvN2MyMmQwYTVmNjYxY2U1YWViNzg1MjE1MDk1ZGVkYTQwOTczZmYxNy9kYXRhL2NvdW50cnlfdG9fcmVnaW9uX05hbWVQcmlzbS50c3YiKSAlPiUKICByZW5hbWUoInJlZ2lvbiIgPSBSZWdpb24pICU+JQogIHJlY29kZV9yZWdpb24oKQoKbXlfd29ybGQgPC0gd29ybGQgJT4lCiAgc2VsZWN0KC1nZW9tZXRyeSkgJT4lCiAgcmVuYW1lKENvdW50cnkgPSAibmFtZSIpICU+JQogIGxlZnRfam9pbihvdXJfY291bnRyeV9tYXAsIGJ5ID0gIkNvdW50cnkiKQoKKGd3b3JsZCA8LSBnZ3Bsb3QoZGF0YSA9IG15X3dvcmxkKSArCiAgZ2VvbV9zZihhZXMoZmlsbCA9IGZjdF9yZWxldmVsKHJlZ2lvbiwgcmVnaW9uX2xldmVscykpKSArCiAgY29vcmRfc2YoY3JzID0gIitwcm9qPWVxZWFydGggK3drdGV4dCIpICsKICBzY2FsZV9maWxsX21hbnVhbCgKICAgIHZhbHVlcyA9IHJlZ2lvbl9jb2xzLAogICAgbmEudHJhbnNsYXRlID0gRkFMU0UKICApICsKICB0aGVtZSgKICAgIHBhbmVsLmJhY2tncm91bmQgPSBlbGVtZW50X3JlY3QoZmlsbCA9ICJhenVyZSIpLAogICAgbGVnZW5kLnRpdGxlID0gZWxlbWVudF9ibGFuaygpLAogICAgbGVnZW5kLnBvc2l0aW9uID0gImJvdHRvbSIsCiAgICBwYW5lbC5ib3JkZXIgPSBlbGVtZW50X3JlY3QoZmlsbCA9IE5BKQogICkpCgpnZ3NhdmUoImZpZ3MvMjAyMC0wMS0zMV9ncm91cGluZ3MucG5nIiwgZ3dvcmxkLCB3aWR0aCA9IDcuMiwgaGVpZ2h0ID0gNC4zKQpnZ3NhdmUoImZpZ3MvMjAyMC0wMS0zMV9ncm91cGluZ3Muc3ZnIiwgZ3dvcmxkLCB3aWR0aCA9IDcuMiwgaGVpZ2h0ID0gNC4zKQpgYGAKCgojIyBEZXNjcmlwdGl2ZSBzdGF0aXN0aWNzClByZXBhcmUgZGF0YSBmcmFtZXMgZm9yIGxhdGVyIGFuYWx5c2VzOgoKLSByYmluZCByZXN1bHRzIG9mIHJhY2UgcHJlZGljdGlvbnMgaW4gaXNjYiBhbmQgUHVibWVkCi0gcGl2b3QgbG9uZwotIGNvbXB1dGUgbWVhbiwgc2QsIG1hcmdpbmFsIGVycm9yCgpgYGB7cn0KaXNjYl9wdWJtZWRfb3RoIDwtIGlzY2JfbmF0X2RmICU+JQogIHJlbmFtZSgiam91cm5hbCIgPSBjb25mZXJlbmNlKSAlPiUKICBzZWxlY3QoeWVhciwgam91cm5hbCwgQWZyaWNhbjpTb3V0aEFzaWFuLCBwdWJsaWNhdGlvbl9kYXRlKSAlPiUKICBtdXRhdGUoCiAgICB0eXBlID0gIktleW5vdGUgc3BlYWtlcnMvRmVsbG93cyIsCiAgICBhZGp1c3RlZF9jaXRhdGlvbnMgPSAxLAogICAgcG1pZCA9IC05OTk5CiAgKSAlPiUKICBiaW5kX3Jvd3MoCiAgICBwdWJtZWRfbmF0X2RmICU+JQogICAgICBzZWxlY3QocG1pZCwgeWVhciwgam91cm5hbCwgQWZyaWNhbjpTb3V0aEFzaWFuLCBwdWJsaWNhdGlvbl9kYXRlLCBhZGp1c3RlZF9jaXRhdGlvbnMpICU+JQogICAgICBtdXRhdGUodHlwZSA9ICJQdWJtZWQgYXV0aG9ycyIpCiAgKSAlPiUKICBtdXRhdGUoT3RoZXJDYXRlZ29yaWVzID0gU291dGhBc2lhbiArIEhpc3BhbmljICsgSmV3aXNoICsgTXVzbGltICsgTm9yZGljICsgR3JlZWsgKyBBZnJpY2FuKSAlPiUKICBwaXZvdF9sb25nZXIoYyhBZnJpY2FuOlNvdXRoQXNpYW4sIE90aGVyQ2F0ZWdvcmllcyksCiAgICBuYW1lc190byA9ICJyZWdpb24iLAogICAgdmFsdWVzX3RvID0gInByb2JhYmlsaXRpZXMiCiAgKSAlPiUKICBmaWx0ZXIoIWlzLm5hKHByb2JhYmlsaXRpZXMpKSAlPiUKICBncm91cF9ieSh0eXBlLCB5ZWFyLCByZWdpb24pICU+JQogIG11dGF0ZSgKICAgIHBtY19jaXRhdGlvbnNfeWVhciA9IG1lYW4oYWRqdXN0ZWRfY2l0YXRpb25zKSwKICAgIHdlaWdodCA9IGFkanVzdGVkX2NpdGF0aW9ucyAvIHBtY19jaXRhdGlvbnNfeWVhciwKICAgIHdlaWdodGVkX3Byb2JzID0gcHJvYmFiaWxpdGllcyAqIHdlaWdodAogICkKCmlzY2JfcHVibWVkX3N1bV9vdGggPC0gaXNjYl9wdWJtZWRfb3RoICU+JQogIHN1bW1hcmlzZSgKICAgIG1lYW5fcHJvYiA9IG1lYW4od2VpZ2h0ZWRfcHJvYnMpLAogICAgc2VfcHJvYiA9IHNxcnQodmFyKHByb2JhYmlsaXRpZXMpICogc3VtKHdlaWdodF4yKSAvIChzdW0od2VpZ2h0KV4yKSksCiAgICBtZV9wcm9iID0gYWxwaGFfdGhyZXNob2xkICogc2VfcHJvYiwKICAgIC5ncm91cHMgPSAiZHJvcCIKICApCgppc2NiX3B1Ym1lZF9zdW0gPC0gaXNjYl9wdWJtZWRfc3VtX290aCAlPiUKICBmaWx0ZXIocmVnaW9uICE9ICJPdGhlckNhdGVnb3JpZXMiKQpgYGAKCiMjIFByZXBhcmUgZGF0YSBmcmFtZXMgZm9yIGFuYWx5c2lzCgojIyMgQnkgY29uZmVyZW5jZSBrZXlub3Rlcy9mZWxsb3dzCmBgYHtyIGZpZy5oZWlnaHQ9Nn0KaSA8LSAwCmlzY2JfbmF0IDwtIHZlY3RvcigibGlzdCIsIGxlbmd0aCA9IG5fY29uZnMpCgpmb3IgKGNvbmYgaW4gbXlfY29uZnMpIHsKICBpIDwtIGkgKyAxCiAgaXNjYl9uYXRbW2ldXSA8LSBpc2NiX3B1Ym1lZF9vdGggJT4lCiAgICBmaWx0ZXIocmVnaW9uICE9ICJPdGhlckNhdGVnb3JpZXMiLCB0eXBlICE9ICJQdWJtZWQgYXV0aG9ycyIgJiBqb3VybmFsID09IGNvbmYpICU+JQogICAgZ3JvdXBfYnkodHlwZSwgeWVhciwgcmVnaW9uLCBqb3VybmFsKSAlPiUKICAgIHN1bW1hcmlzZShtZWFuX3Byb2IgPSBtZWFuKHdlaWdodGVkX3Byb2JzKSwgLmdyb3VwcyA9ICJkcm9wIikKfQpgYGAKCmBgYHtyfQpzYXZlKG15X3dvcmxkLCBpc2NiX3B1Ym1lZF9vdGgsIGlzY2JfbmF0LCBmaWxlID0gIlJkYXRhL2lzY2ItcHVibWVkX25hdC5SZGF0YSIpCmBgYAoKIyMgRmlndXJlcyBmb3IgcGFwZXIKCiMjIyBGaWd1cmUgNAoKQ29tcGFyZWQgdG8gdGhlIG5hbWUgY29sbGVjdGlvbiBvZiBQdWJtZWQgYXV0aG9ycywgaG9ub3JlZXMgd2l0aCBDZWx0aWMvRW5nbGlzaCBuYW1lcyBhcmUgb3ZlcnJlcHJlc2VudGVkIHdoaWxlIGhvbm9yZWVzIHdpdGggRWFzdCBBc2lhbiBuYW1lcyBhcmUgdW5kZXJyZXByZXNlbnRlZC4KCmBgYHtyIGZpZy5oZWlnaHQ9NywgZmlnLndpZHRoPTksIHdhcm5pbmc9RkFMU0V9CmZpZ180YSA8LSBpc2NiX3B1Ym1lZF9zdW0gJT4lCiAgZmlsdGVyKHllYXIgPCAiMjAyMC0wMS0wMSIpICU+JQogIHJlZ2lvbl9icmVha2Rvd24oIm1haW4iLCByZWdpb25fbGV2ZWxzLCBmY3RfcmV2KHR5cGUpKSArCiAgZ3VpZGVzKGZpbGwgPSBndWlkZV9sZWdlbmQobnJvdyA9IDIpKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gImJvdHRvbSIpCgpsYXJnZV9yZWdpb25zIDwtIGMoIkNlbHRpY0VuZ2xpc2giLCAiRWFzdEFzaWFuIiwgIkV1cm9wZWFuIiwgIk90aGVyQ2F0ZWdvcmllcyIpCiMjIE1lYW4gYW5kIHN0YW5kYXJkIGRldmlhdGlvbiBvZiBwcmVkaWN0ZWQgcHJvYmFiaWxpdGllczoKZmlnXzRiIDwtIGlzY2JfcHVibWVkX3N1bV9vdGggJT4lCiAgZmlsdGVyKHJlZ2lvbiAlaW4lIGxhcmdlX3JlZ2lvbnMpICU+JQogIHJlY29kZV9yZWdpb24oKSAlPiUKICBnYW1fYW5kX2NpKAogICAgZGYyID0gaXNjYl9wdWJtZWRfb3RoICU+JQogICAgICBmaWx0ZXIocmVnaW9uICVpbiUgbGFyZ2VfcmVnaW9ucykgJT4lCiAgICAgIHJlY29kZV9yZWdpb24oKSwKICAgIHN0YXJ0X3kgPSBzdGFydF95ZWFyLCBlbmRfeSA9IGVuZF95ZWFyCiAgKSArCiAgdGhlbWUoCiAgICBsZWdlbmQucG9zaXRpb24gPSBjKDAuODgsIDAuODMpLAogICAgcGFuZWwuZ3JpZC5taW5vciA9IGVsZW1lbnRfYmxhbmsoKSwKICAgIGxlZ2VuZC5tYXJnaW4gPSBtYXJnaW4oLTAuNSwgMCwgMCwgMCwgdW5pdCA9ICJjbSIpLAogICAgbGVnZW5kLnRleHQgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDcpCiAgKSArCiAgZmFjZXRfd3JhcCh2YXJzKGZjdF9yZWxldmVsKHJlZ2lvbiwgbGFyZ2VfcmVnaW9ucykpLCBucm93ID0gMSkKCmZpZ180IDwtIGNvd3Bsb3Q6OnBsb3RfZ3JpZChmaWdfNGEsIGZpZ180YiwgbGFiZWxzID0gIkFVVE8iLCBuY29sID0gMSwgcmVsX2hlaWdodHMgPSBjKDEuMywgMSkpCmZpZ180Cmdnc2F2ZSgiZmlncy9yZWdpb25fYnJlYWtkb3duLnBuZyIsIGZpZ180LCB3aWR0aCA9IDYuNywgaGVpZ2h0ID0gNS41KQpnZ3NhdmUoImZpZ3MvcmVnaW9uX2JyZWFrZG93bi5zdmciLCBmaWdfNCwgd2lkdGggPSA2LjcsIGhlaWdodCA9IDUuNSkKYGBgCgoKIyMgSHlwb3RoZXNpcyB0ZXN0aW5nCgpgYGB7cn0KaXNjYl9sbSA8LSBpc2NiX3B1Ym1lZF9vdGggJT4lCiAgdW5ncm91cCgpICU+JQogIG11dGF0ZSgKICAgICMgeWVhciA9IGMoc2NhbGUoeWVhcih5ZWFyKSkpLAogICAgIyB5ZWFyID0gYXMuZmFjdG9yKHllYXIpLAogICAgdHlwZSA9IGFzLmZhY3Rvcih0eXBlKSAlPiUgcmVsZXZlbChyZWYgPSAiUHVibWVkIGF1dGhvcnMiKQogICkKbWFpbl9sbSA8LSBmdW5jdGlvbihyZWdpb25pKSB7CiAgZ2xtKHR5cGUgfiB5ZWFyICsgd2VpZ2h0ZWRfcHJvYnMsCiAgICBkYXRhID0gaXNjYl9sbSAlPiUKICAgICAgZmlsdGVyKHJlZ2lvbiA9PSByZWdpb25pLCAhaXMubmEocHJvYmFiaWxpdGllcyksIHllYXIoeWVhcikgPj0gMjAwMiksCiAgICBmYW1pbHkgPSAiYmlub21pYWwiCiAgKQp9CgppbnRlX2xtIDwtIGZ1bmN0aW9uKHJlZ2lvbmkpIHsKICBnbG0odHlwZSB+IHllYXIgKiB3ZWlnaHRlZF9wcm9icywKICAgIGRhdGEgPSBpc2NiX2xtICU+JQogICAgICBmaWx0ZXIocmVnaW9uID09IHJlZ2lvbmksICFpcy5uYSh3ZWlnaHRlZF9wcm9icyksIHllYXIoeWVhcikgPj0gMjAwMiksCiAgICBmYW1pbHkgPSAiYmlub21pYWwiCiAgKQp9CgptYWluX2xpc3QgPC0gbGFwcGx5KGxhcmdlX3JlZ2lvbnMsIG1haW5fbG0pCm5hbWVzKG1haW5fbGlzdCkgPC0gbGFyZ2VfcmVnaW9ucwpsYXBwbHkobWFpbl9saXN0LCBicm9vbTo6dGlkeSkKCmludGVfbGlzdCA8LSBsYXBwbHkobGFyZ2VfcmVnaW9ucywgaW50ZV9sbSkKbGFwcGx5KGludGVfbGlzdCwgYnJvb206OnRpZHkpCmZvciAoaSBpbiAxOjQpIHsKICBwcmludChhbm92YShtYWluX2xpc3RbW2ldXSwgaW50ZV9saXN0W1tpXV0sIHRlc3QgPSAiQ2hpc3EiKSkKfQpgYGAKSW50ZXJhY3Rpb24gdGVybXMgZG8gbm90IHByZWRpY3QgYHR5cGVgIG92ZXIgYW5kIGFib3ZlIHRoZSBtYWluIGVmZmVjdCBvZiBuYW1lIG9yaWdpbiBwcm9iYWJpbGl0eSBhbmQgeWVhciAoX3BfID4gMC4wMSkuCgpgYGB7ciBlY2hvID0gRn0KZ2V0X3AgPC0gZnVuY3Rpb24oaSwgY29sdSkgewogIGJyb29tOjp0aWR5KG1haW5fbGlzdFtbaV1dKSAlPiUKICAgIGZpbHRlcih0ZXJtID09ICJ3ZWlnaHRlZF9wcm9icyIpICU+JQogICAgcHVsbChjb2x1KQp9CgpwcmludF9wIDwtIGZ1bmN0aW9uKHgpIHNwcmludGYoIiUwLjVnIiwgeCkKYGBgCgojIyBDb25jbHVzaW9uCkEgQ2VsdGljL0VuZ2xpc2ggbmFtZSBoYXMgYHIgZXhwKGdldF9wKDEsICdlc3RpbWF0ZScpKWAgdGhlIG9kZHMgb2YgYmVpbmcgc2VsZWN0ZWQgYXMgYW4gaG9ub3JlZSwgc2lnbmlmaWNhbnRseSBoaWdoZXIgY29tcGFyZWQgdG8gb3RoZXIgbmFtZXMgKCRcYmV0YV9cdGV4dHJte0NlbHRpYy9FbmdsaXNofSA9JCBgciBwcmludF9wKGdldF9wKDEsICdlc3RpbWF0ZScpKWAsIF9QXyA9IGByIHByaW50X3AoZ2V0X3AoMSwgJ3AudmFsdWUnKSlgKS4KQW4gRWFzdCBBc2lhbiBuYW1lIGhhcyBgciBleHAoZ2V0X3AoMiwgJ2VzdGltYXRlJykpYCB0aGUgb2RkcyBvZiBiZWluZyBzZWxlY3RlZCBhcyBhbiBob25vcmVlLCBzaWduaWZpY2FudGx5IGxvd2VyIHRoYW4gdG8gb3RoZXIgbmFtZXMgKCRcYmV0YV9cdGV4dHJte0Vhc3QgQXNpYW59ID0kIGByIHByaW50X3AoZ2V0X3AoMiwgJ2VzdGltYXRlJykpYCwgX1BfID0gYHIgcHJpbnRfcChnZXRfcCgyLCAncC52YWx1ZScpKWApLgpUaGUgdHdvIGdyb3VwcyBvZiBzY2llbnRpc3RzIGRpZCBub3QgaGF2ZSBhIHNpZ25pZmljYW50IGFzc29jaWF0aW9uIHdpdGggbmFtZXMgcHJlZGljdGVkIHRvIGJlIEV1cm9wZWFuIChfUF8gPSBgciBwcmludF9wKGdldF9wKDMsICdwLnZhbHVlJykpYCkgb3IgaW4gT3RoZXIgY2F0ZWdvcmllcyAoX1BfID0gYHIgcHJpbnRfcChnZXRfcCg0LCAncC52YWx1ZScpKWApLgoKCiMjIEFsdGVybmF0aXZlIGFwcHJvYWNoCl9TaW5jZXJlIHRoYW5rcyB0byB0aGUgcmV2aWV3ZXJzLCBCeXJvbiBTbWl0aCBhbmQgS2F0aWUgUG9sbGFyZCwgZm9yIHRoZWlyIGRldGFpbGVkIHN1Z2dlc3Rpb24gd2l0aCBjb2RlLl8KClRoZSBxdWVzdGlvbiBvZiB3aGF0IHVuaXQgb25lIHNob3VsZCB1c2UgdG8gcGVyZm9ybSB0aGlzIHR5cGUgb2YgYW5hbHlzZXMgaXMgYSBkaWZmaWN1bHQgb25lLgpXZSBwcmVzZW50IGhlcmUgYW4gYWx0ZXJuYXRpdmUgYW5hbHlzaXMgdGhhdCB0cmVhdHMgX25hbWVzXyBhcyB1bml0cyBpbnN0ZWFkIG9mIF9ob25vcnNfIGFuZCBfYXV0aG9yc2hpcHNfLgpXZSBjYXV0aW9uIHRoYXQgdGhpcyBhcHByb2FjaCBkb2VzIG5vdCBkaXN0aW5ndWlzaCBzY2llbnRpc3RzIHdobyB3ZXJlIGhvbm9yZWQgNCB0aW1lcyB2cy4gb25lIHRpbWUKYW5kIGhlbmNlIG1heSB5aWVsZCBhIGNvbnNlcnZhdGl2ZSBlc3RpbWF0ZSBvZiBkaXNwYXJpdHkuCkZ1cnRoZXIsIGRpZmZlcmVudCBhdXRob3JzIG1heSBoYXZlIHRoZSBzYW1lIG5hbWVzLCAKYW5kIHRvIHN1bSBgYWRqdXN0ZWRfY2l0YXRpb25zYCBhY3Jvc3MgdGhlbSBtYXkgbm90IGJlIG9wdGltYWwuCgpOb25ldGhlbGVzcywgdGhlIGZpbmRpbmcgaGVyZSBpcyBjb25zaXN0ZW50IHdpdGggd2hhdCB3ZSBoYXZlIHNlZW4gYWJvdmUKd2hlcmUgRWFzdCBBc2lhbiBuYW1lcyBhcmUgdW5kZXJyZXByZXNlbnRlZCBpbiB0aGUgaG9ub3JlZSBncm91cC4KCmBgYHtyfQoKa2V5bm90ZXNfcG9zdF8yMDAyIDwtIGtleW5vdGVzICU+JQogIGZpbHRlcih5ZWFyKHllYXIpID49IDIwMDIpICU+JQogIHNlcGFyYXRlX3Jvd3MoYWZmbGNvdW50cmllcywgc2VwID0gIiwiKSAlPiUKICBmaWx0ZXIoYWZmbGNvdW50cmllcyA9PSAiVW5pdGVkIFN0YXRlcyIpICU+JQogIGdyb3VwX2J5KGZvcmVfbmFtZV9zaW1wbGUsIGxhc3RfbmFtZV9zaW1wbGUpICU+JQogIHN1bW1hcmlzZV9hdCgieWVhciIsIG5fZGlzdGluY3QsIG5hLnJtID0gVCkKCiMgbmF0aW9uYWxpemVfZGYgd2FzIG5vdCB1bmlxdWUsIHNvIHRoZSBsZWZ0IGpvaW4gdG8gY29ycl9hdXRob3JzIHJlc3VsdGVkCiMgaW4gKG1vc3RseSkgZHVwbGljYXRlIHJvd3MuCiMgRklYTUU6IEkgd2FzIGdldHRpbmcgb2NjYXNpb25hbCBjcmFzaGVzIG9uIHRoaXMgbGluZSwgYW5kIGl0J3Mgc2xvdy4KIyBUUkFORzogZml4ZWQgb24gSnVuZSAzLCAyMDIxIHVzaW5nIGRpc3RpbmN0KCkuCiMgQWxzbywgdGhlIGR1cGxpY2F0aW9uIHdhcyBpbnRlbnRpb25hbC4KIyBQbGVhc2Ugc2VlIG91ciBleHRlbnNpdmUgZGlzY3Vzc2lvbiBvbiB0aGUgbWVyZ2Uvam9pbiBvbiBmdWxsIG5hbWVzIHZzCiMgZm9yZV9uYW1lIGFuZCBsYXN0X25hbWUgaGVyZToKIyA8aHR0cHM6Ly9naXRodWIuY29tL2dyZWVuZWxhYi9pc2NiLWRpdmVyc2l0eS9pc3N1ZXMvNj4KCmRpc3RpbmN0X25hdGlvbmFsaXplX2RmIDwtIG5hdGlvbmFsaXplX2RmICU+JQogIGRpc3RpbmN0KGZvcmVfbmFtZV9zaW1wbGUsIGxhc3RfbmFtZV9zaW1wbGUsIC5rZWVwX2FsbCA9IFRSVUUpCgojIENhbGN1bGF0ZSBzdW0gb2YgYWRqdXN0ZWQgY2l0YXRpb25zIGZvciBhbGwgcHVibGljYXRpb25zIGZvciBhIGZpcnN0LW5hbWUvCiMgbGFzdC1uYW1lIHBhaXIgaW4gZGIgc2luY2UgMjAwMgojIHdoZXJlIHRoZSBhdXRob3IgY291bnRyaWVzIGluY2x1ZGUgVVMuCmF1dGhvcnMgPC0gY29ycl9hdXRob3JzICU+JQogIGZpbHRlcih5ZWFyKHllYXIpID49IDIwMDIpICU+JQogIHNlcGFyYXRlX3Jvd3MoY291bnRyaWVzLCBzZXAgPSAiLCIpICU+JQogIGZpbHRlcihjb3VudHJpZXMgPT0gIlVTIikgJT4lCiAgZ3JvdXBfYnkoZm9yZV9uYW1lX3NpbXBsZSwgbGFzdF9uYW1lX3NpbXBsZSkgJT4lCiAgc3VtbWFyaXNlX2F0KHZhcnMoYWRqdXN0ZWRfY2l0YXRpb25zKSwgc3VtLCBuYS5ybSA9IFQpICU+JQogIGxlZnRfam9pbigKICAgIGtleW5vdGVzX3Bvc3RfMjAwMltjKCJmb3JlX25hbWVfc2ltcGxlIiwgImxhc3RfbmFtZV9zaW1wbGUiLCAieWVhciIpXSwKICAgIGJ5ID0gYygiZm9yZV9uYW1lX3NpbXBsZSIsICJsYXN0X25hbWVfc2ltcGxlIikKICApICU+JQogIGxlZnRfam9pbihkaXN0aW5jdF9uYXRpb25hbGl6ZV9kZiwgYnkgPSBjKCJmb3JlX25hbWVfc2ltcGxlIiwgImxhc3RfbmFtZV9zaW1wbGUiKSkgJT4lCiAgbXV0YXRlKE90aGVyQ2F0ZWdvcmllcyA9IFNvdXRoQXNpYW4gKyBIaXNwYW5pYyArIEpld2lzaCArIE11c2xpbSArIE5vcmRpYyArIEdyZWVrICsgQWZyaWNhbikKCmZvciAobGFyZ2VfcmVnaW9uIGluIGxhcmdlX3JlZ2lvbnMpIHsKICBnbG0oCiAgICBhcy5mb3JtdWxhKHBhc3RlKCJob25vcmVlIH4gYWRqdXN0ZWRfY2l0YXRpb25zICsiLCBsYXJnZV9yZWdpb24pKSwKICAgIGRhdGEgPSBhdXRob3JzICU+JSBtdXRhdGUoaG9ub3JlZSA9ICFpcy5uYSh5ZWFyKSksCiAgICBmYW1pbHkgPSAiYmlub21pYWwiLAogICAgY29udHJvbCA9IGxpc3QoZXBzaWxvbiA9IDFlLTEyLCBtYXhpdCA9IDU1LCB0cmFjZSA9IEZBTFNFKQogICkgJT4lCiAgICBicm9vbTo6dGlkeSgpICU+JQogICAgcHJpbnQoKQp9CmBgYAoKPCEtLSBXZSBhcmd1ZSB0aGF0IGhvbm9ycyBhbmQgYXV0aG9yc2hpcHMgYXJlIHRoZSBhcHByb3ByaWF0ZSB1bml0cy4gLS0+CjwhLS0gQWx0aG91Z2ggdGhpcyBhcHByb2FjaCBtYXkgbm90IHNhdGlzZnkgdGhlIGluZGVwZW5kZW50IGFuZCBpZGVudGljYWxseSBkaXN0cmlidXRlZCBhc3N1bXB0aW9uIC0tPgoKPCEtLSBob25vciB2cyBub3QgaG9ub3JlZC4gLS0+CjwhLS0gQnV0IHRoZW4gdGhpcyBpcyBjb25zaWRlcmluZyBzY2llbnRpc3RzIHdobyBoYXZlIDQgcm93cyBvZiBob25vcmVlcyBhcyBvbmUgIC0tPgo8IS0tIElzIHRoaXMgZmFpcj8gLS0+CjwhLS0gMTk1IHJvd3MvaG9ub3JzIG9mIGtleW5vdGVzIHBvc3QgMjAwMiB0byAxNDUgbmFtZXMvc2NpZW50aXN0cy4gLS0+CgojIyBUaW1lIGxhZwoKSW4gdGhpcyBzZWN0aW9uLCB3ZSBzaG93IHRoYXQgYSAxMC15ZWFyIGxhZyBtb2RlbCByZXN1bHRzIGluIGEgc2ltaWxhciByZXN1bHQgZm9yIEVhc3QgQXNpYW4gc2NpZW50aXN0cycgbmFtZXMsCmV2ZW4gdGhvdWdoIHRoZSBlZmZlY3Qgc2l6ZSBpcyBsZXNzIHN0cmlraW5nLgpGb3IgZXhhbXBsZSwgaWYgd2UgYXNzdW1lIHRoYXQgaG9ub3JzIGFjY3J1ZSAxMCB5ZWFycyBhZnRlciB0aGVpciBtb3N0IHByb2xpZmljIHllYXIgd2l0aCByZXNwZWN0IHRvIGF1dGhvcnNoaXBzLCAKdGhlIHByb3BvcnRpb24gb2YgaG9ub3IgYXNzb2NpYXRlZCB3aXRoIEVhc3QgQXNpYW4gbmFtZSBvcmlnaW5zIGluIDIwMTkgaXMgc3RpbGwgc3Vic3RhbnRpYWxseSBsZXNzIHRoYW4gdGhlIHByb3BvcnRpb24gb2Ygc2VuaW9yIGF1dGhvcnNoaXBzIGFzc29jaWF0ZWQgd2l0aCBFYXN0IEFzaWFuIG5hbWVzIGluIDIwMDkuCgpgYGB7cn0KeWVhcl9sYWcgPC0gcGVyaW9kKDEwLCAieWVhcnMiKQppc2NiX3B1Ym1lZF9vdGhfbGFnIDwtIGlzY2JfbmF0X2RmICU+JQogIHJlbmFtZSgiam91cm5hbCIgPSBjb25mZXJlbmNlKSAlPiUKICBzZWxlY3QoeWVhciwgam91cm5hbCwgQWZyaWNhbjpTb3V0aEFzaWFuLCBwdWJsaWNhdGlvbl9kYXRlKSAlPiUKICBtdXRhdGUoCiAgICB0eXBlID0gIktleW5vdGUgc3BlYWtlcnMvRmVsbG93cyIsCiAgICBhZGp1c3RlZF9jaXRhdGlvbnMgPSAxLAogICAgcG1pZCA9IC05OTk5CiAgKSAlPiUKICBiaW5kX3Jvd3MoCiAgICBwdWJtZWRfbmF0X2RmICU+JQogICAgICBzZWxlY3QocG1pZCwgeWVhciwgam91cm5hbCwgQWZyaWNhbjpTb3V0aEFzaWFuLCBwdWJsaWNhdGlvbl9kYXRlLCBhZGp1c3RlZF9jaXRhdGlvbnMpICU+JQogICAgICBtdXRhdGUodHlwZSA9ICJQdWJtZWQgYXV0aG9ycyIsIHllYXIgPSB5ZWFyICsgeWVhcl9sYWcpCiAgKSAlPiUKICBtdXRhdGUoT3RoZXJDYXRlZ29yaWVzID0gU291dGhBc2lhbiArIEhpc3BhbmljICsgSmV3aXNoICsgTXVzbGltICsgTm9yZGljICsgR3JlZWsgKyBBZnJpY2FuKSAlPiUKICBwaXZvdF9sb25nZXIoYyhBZnJpY2FuOlNvdXRoQXNpYW4sIE90aGVyQ2F0ZWdvcmllcyksCiAgICBuYW1lc190byA9ICJyZWdpb24iLAogICAgdmFsdWVzX3RvID0gInByb2JhYmlsaXRpZXMiCiAgKSAlPiUKICBmaWx0ZXIoIWlzLm5hKHByb2JhYmlsaXRpZXMpLCB5ZWFyKHllYXIpID49IDIwMDIpICU+JQogIGdyb3VwX2J5KHR5cGUsIHllYXIsIHJlZ2lvbikgJT4lCiAgbXV0YXRlKAogICAgcG1jX2NpdGF0aW9uc195ZWFyID0gbWVhbihhZGp1c3RlZF9jaXRhdGlvbnMpLAogICAgd2VpZ2h0ID0gYWRqdXN0ZWRfY2l0YXRpb25zIC8gcG1jX2NpdGF0aW9uc195ZWFyLAogICAgd2VpZ2h0ZWRfcHJvYnMgPSBwcm9iYWJpbGl0aWVzICogd2VpZ2h0CiAgKQoKaXNjYl9sbV9sYWcgPC0gaXNjYl9wdWJtZWRfb3RoX2xhZyAlPiUKICB1bmdyb3VwKCkgJT4lCiAgbXV0YXRlKHR5cGUgPSBhcy5mYWN0b3IodHlwZSkgJT4lIHJlbGV2ZWwocmVmID0gIlB1Ym1lZCBhdXRob3JzIikpCgptYWluX2xtIDwtIGZ1bmN0aW9uKHJlZ2lvbmkpIHsKICBnbG0odHlwZSB+IHllYXIgKyB3ZWlnaHRlZF9wcm9icywKICAgIGRhdGEgPSBpc2NiX2xtX2xhZyAlPiUKICAgICAgZmlsdGVyKHJlZ2lvbiA9PSByZWdpb25pLCAhaXMubmEod2VpZ2h0ZWRfcHJvYnMpKSwKICAgIGZhbWlseSA9ICJiaW5vbWlhbCIKICApCn0KCm1haW5fbGlzdCA8LSBsYXBwbHkobGFyZ2VfcmVnaW9ucywgbWFpbl9sbSkKbmFtZXMobWFpbl9saXN0KSA8LSBsYXJnZV9yZWdpb25zCmxhcHBseShtYWluX2xpc3QsIGJyb29tOjp0aWR5KQpgYGAKCmBgYHtyIGluY2x1ZGU9RkFMU0UsIGV2YWwgPSBGQUxTRX0KY2hlY2tkZiA8LSBpc2NiX2xtICU+JQogIGZpbHRlcigKICAgIHllYXIoeWVhcikgPT0gMjAxMCwKICAgIGFkanVzdGVkX2NpdGF0aW9ucyA+IDMuMSwgCiAgICBhZGp1c3RlZF9jaXRhdGlvbnMgPCAzLjMyLCAKICAgIHJlZ2lvbiA9PSAiRWFzdEFzaWFuIiwgCiAgICBwcm9iYWJpbGl0aWVzID4gMC41CiAgKQpgYGAKCgojIyBTdXBwbGVtZW50YXJ5IEZpZ3VyZSBTNSB7I3N1cF9maWdfczV9Ckl0J3MgZGlmZmljdWx0IHRvIGNvbWUgdG8gYSBjb25jbHVzaW9uIGZvciBvdGhlciByZWdpb25zIHdpdGggc28gZmV3IGRhdGEgcG9pbnRzIGFuZCB0aGUgaW1wZXJmZWN0IGFjY3VyYWN5IG9mIG91ciBwcmVkaWN0aW9uLgpUaGVyZSBzZWVtcyB0byBiZSBsaXR0bGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBwcm9wb3J0aW9uIG9mIGtleW5vdGUgc3BlYWtlcnMgb2YgQWZyaWNhbiwgQXJhYmljLCBTb3V0aCBBc2lhbiBhbmQgSGlzcGFuaWMgb3JpZ2luIHRoYW4gdGhvc2UgaW4gdGhlIGZpZWxkLgpIb3dldmVyLCBqdXN0IGJlY2F1c2UgYSBuYXRpb25hbGl0eSBpc24ndCB1bmRlcnJlcHJlc2VudGVkIGFnYWluc3QgdGhlIGZpZWxkIGRvZXNuJ3QgbWVhbiBzY2llbnRpc3RzIGZyb20gdGhhdCBuYXRpb25hbGl0eSBhcmUgYXBwcm9wcmlhdGVseSByZXByZXNlbnRlZC4KCmBgYHtyIGZpZy5oZWlnaHQ9Niwgd2FybmluZz1GQUxTRX0KIyBkZjIgPC0gaXNjYl9wdWJtZWRfb3RoICU+JQojICAgZmlsdGVyKHJlZ2lvbiAhPSAiT3RoZXJDYXRlZ29yaWVzIikgJT4lCiMgICByZWNvZGVfcmVnaW9uKCkKIyAKIyBmaWdfczUgPC0gaXNjYl9wdWJtZWRfc3VtICU+JQojICAgcmVjb2RlX3JlZ2lvbigpICU+JQojICAgZ2FtX2FuZF9jaSgKIyAgICAgZGYyID0gZGYyLAojICAgICBzdGFydF95ID0gc3RhcnRfeWVhciwgZW5kX3kgPSBlbmRfeWVhcgojICAgKSArCiMgICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSBjKDAuOCwgMC4xKSkgKwojICAgZmFjZXRfd3JhcCh2YXJzKGZjdF9yZWxldmVsKHJlZ2lvbiwgcmVnaW9uX2xldmVscykpLCBuY29sID0gMykKIyBmaWdfczUKIyBnZ3NhdmUoImZpZ3MvZmlnX3M1LnBuZyIsIGZpZ19zNSwgd2lkdGggPSA2LCBoZWlnaHQgPSA2KQojIGdnc2F2ZSgiZmlncy9maWdfczUuc3ZnIiwgZmlnX3M1LCB3aWR0aCA9IDYsIGhlaWdodCA9IDYpCmBgYAoKCmBgYHtyfQpzZXNzaW9uSW5mbygpCmBgYAo=
    diff --git a/docs/12.analyze-affiliation.html b/docs/12.analyze-affiliation.html index 10092e1..9f5c206 100644 --- a/docs/12.analyze-affiliation.html +++ b/docs/12.analyze-affiliation.html @@ -4338,8 +4338,8 @@

    Country enrichment table

    formatPercentage('Author proportion', 2) %>% formatRound(c('Observed', 'Expected', 'Observed - Expected', 'Enrichment', 'Log2(enrichment)'), 1)
    -
    - +
    +

    Compute enrichment from proportion comparisons

    Adapted from epitools::riskratio().

    @@ -4444,49 +4444,60 @@

    Log enrichment figure

    ## BLAS/LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.8.so ## ## locale: -## [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8 -## [4] LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 LC_MESSAGES=C -## [7] LC_PAPER=en_US.UTF-8 LC_NAME=C LC_ADDRESS=C -## [10] LC_TELEPHONE=C LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C +## [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C +## [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 +## [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=C +## [7] LC_PAPER=en_US.UTF-8 LC_NAME=C +## [9] LC_ADDRESS=C LC_TELEPHONE=C +## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C ## ## attached base packages: ## [1] stats graphics grDevices utils datasets methods base ## ## other attached packages: -## [1] DT_0.16 epitools_0.5-10.1 gdtools_0.2.2 wru_0.1-10 -## [5] rnaturalearth_0.1.0 lubridate_1.7.9.2 caret_6.0-86 lattice_0.20-41 -## [9] forcats_0.5.0 stringr_1.4.0 dplyr_1.0.2 purrr_0.3.4 -## [13] readr_1.4.0 tidyr_1.1.2 tibble_3.0.4 ggplot2_3.3.2 -## [17] tidyverse_1.3.0 +## [1] DT_0.16 epitools_0.5-10.1 gdtools_0.2.2 +## [4] wru_0.1-10 rnaturalearth_0.1.0 lubridate_1.7.9.2 +## [7] caret_6.0-86 lattice_0.20-41 forcats_0.5.0 +## [10] stringr_1.4.0 dplyr_1.0.2 purrr_0.3.4 +## [13] readr_1.4.0 tidyr_1.1.2 tibble_3.0.4 +## [16] ggplot2_3.3.2 tidyverse_1.3.0 ## ## loaded via a namespace (and not attached): -## [1] colorspace_2.0-0 ellipsis_0.3.1 class_7.3-17 rprojroot_1.3-2 -## [5] fs_1.5.0 rstudioapi_0.12 farver_2.0.3 remotes_2.2.0 -## [9] prodlim_2019.11.13 fansi_0.4.1 xml2_1.3.2 codetools_0.2-16 -## [13] splines_4.0.3 knitr_1.30 pkgload_1.1.0 jsonlite_1.7.1 -## [17] pROC_1.16.2 broom_0.7.2 dbplyr_2.0.0 rgeos_0.5-5 -## [21] compiler_4.0.3 httr_1.4.2 backports_1.2.0 assertthat_0.2.1 -## [25] Matrix_1.2-18 cli_2.1.0 htmltools_0.5.0 prettyunits_1.1.1 -## [29] tools_4.0.3 gtable_0.3.0 glue_1.4.2 rnaturalearthdata_0.1.0 -## [33] reshape2_1.4.4 Rcpp_1.0.5 cellranger_1.1.0 vctrs_0.3.4 -## [37] svglite_1.2.3.2 nlme_3.1-149 iterators_1.0.13 crosstalk_1.1.0.1 -## [41] timeDate_3043.102 gower_0.2.2 xfun_0.19 ps_1.4.0 -## [45] testthat_3.0.0 rvest_0.3.6 lifecycle_0.2.0 devtools_2.3.2 -## [49] MASS_7.3-53 scales_1.1.1 ipred_0.9-9 hms_0.5.3 -## [53] RColorBrewer_1.1-2 yaml_2.2.1 curl_4.3 memoise_1.1.0 -## [57] rpart_4.1-15 stringi_1.5.3 desc_1.2.0 foreach_1.5.1 -## [61] e1071_1.7-4 pkgbuild_1.1.0 lava_1.6.8.1 systemfonts_0.3.2 -## [65] rlang_0.4.8 pkgconfig_2.0.3 evaluate_0.14 sf_0.9-6 -## [69] recipes_0.1.15 htmlwidgets_1.5.2 labeling_0.4.2 cowplot_1.1.0 -## [73] tidyselect_1.1.0 processx_3.4.4 plyr_1.8.6 magrittr_1.5 -## [77] R6_2.5.0 generics_0.1.0 DBI_1.1.0 mgcv_1.8-33 -## [81] pillar_1.4.6 haven_2.3.1 withr_2.3.0 units_0.6-7 -## [85] survival_3.2-7 sp_1.4-4 nnet_7.3-14 modelr_0.1.8 -## [89] crayon_1.3.4 KernSmooth_2.23-17 utf8_1.1.4 rmarkdown_2.5 -## [93] usethis_1.6.3 grid_4.0.3 readxl_1.3.1 data.table_1.13.2 -## [97] callr_3.5.1 ModelMetrics_1.2.2.2 reprex_0.3.0 digest_0.6.27 -## [101] classInt_0.4-3 stats4_4.0.3 munsell_0.5.0 viridisLite_0.3.0 -## [105] sessioninfo_1.1.1 +## [1] colorspace_2.0-0 ellipsis_0.3.1 class_7.3-17 +## [4] rprojroot_1.3-2 fs_1.5.0 rstudioapi_0.12 +## [7] farver_2.0.3 remotes_2.2.0 prodlim_2019.11.13 +## [10] fansi_0.4.1 xml2_1.3.2 codetools_0.2-16 +## [13] splines_4.0.3 knitr_1.30 pkgload_1.1.0 +## [16] jsonlite_1.7.1 pROC_1.16.2 broom_0.7.2 +## [19] dbplyr_2.0.0 rgeos_0.5-5 compiler_4.0.3 +## [22] httr_1.4.2 backports_1.2.0 assertthat_0.2.1 +## [25] Matrix_1.2-18 cli_2.1.0 htmltools_0.5.0 +## [28] prettyunits_1.1.1 tools_4.0.3 gtable_0.3.0 +## [31] glue_1.4.2 rnaturalearthdata_0.1.0 reshape2_1.4.4 +## [34] Rcpp_1.0.5 cellranger_1.1.0 vctrs_0.3.4 +## [37] svglite_1.2.3.2 nlme_3.1-149 iterators_1.0.13 +## [40] crosstalk_1.1.0.1 timeDate_3043.102 gower_0.2.2 +## [43] xfun_0.19 ps_1.4.0 testthat_3.0.0 +## [46] rvest_0.3.6 lifecycle_0.2.0 devtools_2.3.2 +## [49] MASS_7.3-53 scales_1.1.1 ipred_0.9-9 +## [52] hms_0.5.3 RColorBrewer_1.1-2 yaml_2.2.1 +## [55] curl_4.3 memoise_1.1.0 rpart_4.1-15 +## [58] stringi_1.5.3 desc_1.2.0 foreach_1.5.1 +## [61] e1071_1.7-4 pkgbuild_1.1.0 lava_1.6.8.1 +## [64] systemfonts_0.3.2 rlang_0.4.8 pkgconfig_2.0.3 +## [67] evaluate_0.14 sf_0.9-6 recipes_0.1.15 +## [70] htmlwidgets_1.5.2 labeling_0.4.2 cowplot_1.1.0 +## [73] tidyselect_1.1.0 processx_3.4.4 plyr_1.8.6 +## [76] magrittr_1.5 R6_2.5.0 generics_0.1.0 +## [79] DBI_1.1.0 mgcv_1.8-33 pillar_1.4.6 +## [82] haven_2.3.1 withr_2.3.0 units_0.6-7 +## [85] survival_3.2-7 sp_1.4-4 nnet_7.3-14 +## [88] modelr_0.1.8 crayon_1.3.4 KernSmooth_2.23-17 +## [91] utf8_1.1.4 rmarkdown_2.5 usethis_1.6.3 +## [94] grid_4.0.3 readxl_1.3.1 data.table_1.13.2 +## [97] callr_3.5.1 ModelMetrics_1.2.2.2 reprex_0.3.0 +## [100] digest_0.6.27 classInt_0.4-3 stats4_4.0.3 +## [103] munsell_0.5.0 viridisLite_0.3.0 sessioninfo_1.1.1
    diff --git a/docs/13.us-race-analysis.html b/docs/13.us-race-analysis.html index 6c6b8ca..50c5b40 100644 --- a/docs/13.us-race-analysis.html +++ b/docs/13.us-race-analysis.html @@ -1674,7 +1674,8 @@

    Race/ethnicity predictions

    rename('surname' = last_name_simple) %>% predict_race(surname.only = T, impute.missing = F)
    ## [1] "Proceeding with surname-only predictions..."
    -
    ## Warning in merge_surnames(voter.file, impute.missing = impute.missing): 5166 surnames were not matched.
    +
    ## Warning in merge_surnames(voter.file, impute.missing = impute.missing): 5166
    +## surnames were not matched.
    pubmed_us_race <- pubmed_race_pmids %>% 
       group_by(pmid, journal, publication_date, year, adjusted_citations) %>% 
       summarise_at(vars(contains('pred.')), mean, na.rm = T, .groups = 'drop') %>% 
    @@ -1684,7 +1685,8 @@ 

    Race/ethnicity predictions

    rename('surname' = last_name_simple) %>% predict_race(surname.only = T, impute.missing = F)
    ## [1] "Proceeding with surname-only predictions..."
    -
    ## Warning in merge_surnames(voter.file, impute.missing = impute.missing): 100 surnames were not matched.
    +
    ## Warning in merge_surnames(voter.file, impute.missing = impute.missing): 100
    +## surnames were not matched.
    my_jours <- unique(pubmed_us_race$journal)
     my_confs <- unique(iscb_us_race$conference)
     n_jours <- length(my_jours)
    diff --git a/docs/14.us-name-origin.html b/docs/14.us-name-origin.html
    index f88475f..c71358d 100644
    --- a/docs/14.us-name-origin.html
    +++ b/docs/14.us-name-origin.html
    @@ -1666,23 +1666,23 @@ 

    Representation analysis of name origin in the USOnly keep articles from 2002 because few authors had nationality predictions before 2002 (mostly due to missing metadata). See 093.summary-stats for more details.

    -
    load('Rdata/raws.Rdata')
    +
    load("Rdata/raws.Rdata")
     
     alpha_threshold <- qnorm(0.975)
     
    -pubmed_nat_df <-  corr_authors %>%
    -  filter(year(year) >= 2002) %>% 
    -  separate_rows(countries, sep = ',') %>% 
    -  filter(countries == 'US') %>% 
    -  left_join(nationalize_df, by = c('fore_name', 'last_name')) %>%
    +pubmed_nat_df <- corr_authors %>%
    +  filter(year(year) >= 2002) %>%
    +  separate_rows(countries, sep = ",") %>%
    +  filter(countries == "US") %>%
    +  left_join(nationalize_df, by = c("fore_name", "last_name")) %>%
       group_by(pmid, journal, publication_date, year, adjusted_citations) %>%
       summarise_at(vars(African:SouthAsian), mean, na.rm = T) %>%
       ungroup()
     
     iscb_nat_df <- keynotes %>%
    -  separate_rows(afflcountries, sep = '\\|') %>% 
    -  filter(afflcountries == 'United States') %>% 
    -  left_join(nationalize_df, by = c('fore_name', 'last_name'))
    +  separate_rows(afflcountries, sep = "\\|") %>%
    +  filter(afflcountries == "United States") %>%
    +  left_join(nationalize_df, by = c("fore_name", "last_name"))
     
     start_year <- 1992
     end_year <- 2019
    @@ -1691,9 +1691,9 @@ 

    Representation analysis of name origin in the US

    +region_cols <- c("#ffffb3", "#fccde5", "#b3de69", "#fdb462", "#80b1d3", "#8dd3c7", "#bebada", "#fb8072", "#bc80bd", "#ccebc5")

    Organize data

    Prepare data frames for later analyses:

    @@ -1703,658 +1703,233 @@

    Organize data

  • compute mean, sd, marginal error
  • iscb_pubmed_oth <- iscb_nat_df %>%
    -  rename('journal' = conference) %>%
    +  rename("journal" = conference) %>%
       select(year, journal, African:SouthAsian, publication_date) %>%
    -  mutate(type = 'Keynote speakers/Fellows',
    -         adjusted_citations = 1) %>%
    +  mutate(
    +    type = "Keynote speakers/Fellows",
    +    adjusted_citations = 1
    +  ) %>%
       bind_rows(
         pubmed_nat_df %>%
           select(year, journal, African:SouthAsian, publication_date, adjusted_citations) %>%
    -      mutate(type = 'Pubmed authors')
    +      mutate(type = "Pubmed authors")
       ) %>%
       mutate(OtherCategories = SouthAsian + Hispanic + Jewish + Muslim + Nordic + Greek + African) %>%
       pivot_longer(c(African:SouthAsian, OtherCategories),
    -               names_to = 'region',
    -               values_to = 'probabilities') %>%
    -  filter(!is.na(probabilities)) %>% 
    +    names_to = "region",
    +    values_to = "probabilities"
    +  ) %>%
    +  filter(!is.na(probabilities)) %>%
       group_by(type, year, region) %>%
       mutate(
         pmc_citations_year = mean(adjusted_citations),
    -    weight = adjusted_citations/pmc_citations_year,
    -    weighted_probs = probabilities*weight
    -  ) 
    +    weight = adjusted_citations / pmc_citations_year,
    +    weighted_probs = probabilities * weight
    +  )
     
    -iscb_pubmed_sum_oth <- iscb_pubmed_oth %>% 
    +iscb_pubmed_sum_oth <- iscb_pubmed_oth %>%
       summarise(
         mean_prob = mean(weighted_probs),
    -    se_prob = sqrt(var(probabilities) * sum(weight^2)/(sum(weight)^2)),
    +    se_prob = sqrt(var(probabilities) * sum(weight^2) / (sum(weight)^2)),
         me_prob = alpha_threshold * se_prob,
    -    .groups = 'drop'
    +    .groups = "drop"
       )
     
     iscb_pubmed_sum <- iscb_pubmed_sum_oth %>%
    -  filter(region != 'OtherCategories')
    + filter(region != "OtherCategories")

    Figures for paper

    fig_us_name_origina <- iscb_pubmed_sum %>%
    -  filter(year < '2020-01-01') %>%
    -  region_breakdown('main', region_levels, fct_rev(type)) +
    +  filter(year < "2020-01-01") %>%
    +  region_breakdown("main", region_levels, fct_rev(type)) +
       guides(fill = guide_legend(nrow = 2))
     
    -large_regions <- c('CelticEnglish', 'EastAsian', 'European', 'OtherCategories')
    +large_regions <- c("CelticEnglish", "EastAsian", "European", "OtherCategories")
     
     ## Mean and standard deviation of predicted probabilities:
     fig_us_name_originb <- iscb_pubmed_sum_oth %>%
       filter(region %in% large_regions) %>%
       recode_region() %>%
    -  gam_and_ci(df2 = iscb_pubmed_oth %>%
    -               filter(region %in% large_regions) %>%
    -               recode_region(),
    -             start_y = start_year, end_y = end_year) + 
    -  theme(legend.position = c(0.88, 0.83),
    -        panel.grid.minor = element_blank(),
    -        legend.margin = margin(-0.5, 0, 0, 0, unit='cm'),
    -        legend.text = element_text(size = 6)) +
    +  gam_and_ci(
    +    df2 = iscb_pubmed_oth %>%
    +      filter(region %in% large_regions) %>%
    +      recode_region(),
    +    start_y = start_year, end_y = end_year
    +  ) +
    +  theme(
    +    legend.position = c(0.88, 0.83),
    +    panel.grid.minor = element_blank(),
    +    legend.margin = margin(-0.5, 0, 0, 0, unit = "cm"),
    +    legend.text = element_text(size = 6)
    +  ) +
       facet_wrap(vars(fct_relevel(region, large_regions)), nrow = 1)
     
    -fig_us_name_origin <- cowplot::plot_grid(fig_us_name_origina, fig_us_name_originb, labels = 'AUTO', ncol = 1, rel_heights = c(1.3,1))
    +fig_us_name_origin <- cowplot::plot_grid(fig_us_name_origina, fig_us_name_originb, labels = "AUTO", ncol = 1, rel_heights = c(1.3, 1))
    ## `geom_smooth()` using formula 'y ~ s(x, bs = "cs")'
    fig_us_name_origin

    -
    ggsave('figs/us_name_origin.png', fig_us_name_origin, width = 6.5, height = 5.5)
    -ggsave('figs/us_name_origin.svg', fig_us_name_origin, width = 6.5, height = 5.5)
    +
    ggsave("figs/us_name_origin.png", fig_us_name_origin, width = 6.5, height = 5.5)
    +ggsave("figs/us_name_origin.svg", fig_us_name_origin, width = 6.5, height = 5.5)

    Hypothesis testing

    -
    iscb_lm <- iscb_pubmed_oth %>% 
    -  ungroup() %>% 
    +
    iscb_lm <- iscb_pubmed_oth %>%
    +  ungroup() %>%
       mutate(
         # year = c(scale(year)),
    -    year = as.factor(year),
    -    type = relevel(as.factor(type), ref = 'Pubmed authors'))
    -main_lm <- function(regioni){
    -  glm(type ~ year + weighted_probs, 
    -      data = iscb_lm %>% 
    -        filter(region == regioni, !is.na(weighted_probs)),
    -      family = 'binomial')
    +    # year = as.factor(year),
    +    type = relevel(as.factor(type), ref = "Pubmed authors")
    +  )
    +main_lm <- function(regioni) {
    +  glm(type ~ year + weighted_probs,
    +    data = iscb_lm %>%
    +      filter(region == regioni, !is.na(weighted_probs), year(year) >= 2002),
    +    family = "binomial"
    +  )
     }
     
    -inte_lm <- function(regioni){
    -  glm(type ~ weighted_probs*year, 
    -      data = iscb_lm %>% 
    -  filter(region == regioni, !is.na(weighted_probs)),
    -      family = 'binomial')
    +inte_lm <- function(regioni) {
    +  glm(type ~ weighted_probs * year,
    +    data = iscb_lm %>%
    +      filter(region == regioni, !is.na(weighted_probs), year(year) >= 2002),
    +    family = "binomial"
    +  )
     }
     
     main_list <- lapply(large_regions, main_lm)
     
     names(main_list) <- large_regions
    -lapply(main_list, summary)
    +lapply(main_list, broom::tidy)
    ## $CelticEnglish
    -## 
    -## Call:
    -## glm(formula = type ~ year + weighted_probs, family = "binomial", 
    -##     data = iscb_lm %>% filter(region == regioni, !is.na(weighted_probs)))
    -## 
    -## Deviance Residuals: 
    -##     Min       1Q   Median       3Q      Max  
    -## -0.5719  -0.0867  -0.0759  -0.0676   3.4967  
    -## 
    -## Coefficients:
    -##                  Estimate Std. Error z value Pr(>|z|)
    -## (Intercept)     1.655e+01  1.385e+03   0.012    0.990
    -## year1994-01-01 -1.409e-02  1.959e+03   0.000    1.000
    -## year1995-01-01 -2.093e-02  2.771e+03   0.000    1.000
    -## year1996-01-01 -7.601e-03  1.959e+03   0.000    1.000
    -## year1997-01-01  1.080e-02  2.190e+03   0.000    1.000
    -## year1998-01-01 -1.349e-02  2.771e+03   0.000    1.000
    -## year1999-01-01 -4.707e-03  1.656e+03   0.000    1.000
    -## year2000-01-01  1.478e-03  1.580e+03   0.000    1.000
    -## year2001-01-01 -1.299e-03  1.563e+03   0.000    1.000
    -## year2002-01-01 -1.903e+01  1.385e+03  -0.014    0.989
    -## year2003-01-01 -1.992e+01  1.385e+03  -0.014    0.989
    -## year2004-01-01 -1.946e+01  1.385e+03  -0.014    0.989
    -## year2005-01-01 -1.970e+01  1.385e+03  -0.014    0.989
    -## year2006-01-01 -2.004e+01  1.385e+03  -0.014    0.988
    -## year2007-01-01 -1.967e+01  1.385e+03  -0.014    0.989
    -## year2008-01-01 -2.009e+01  1.385e+03  -0.015    0.988
    -## year2009-01-01 -1.939e+01  1.385e+03  -0.014    0.989
    -## year2010-01-01 -1.941e+01  1.385e+03  -0.014    0.989
    -## year2011-01-01 -2.010e+01  1.385e+03  -0.015    0.988
    -## year2012-01-01 -1.993e+01  1.385e+03  -0.014    0.989
    -## year2013-01-01 -2.030e+01  1.385e+03  -0.015    0.988
    -## year2014-01-01 -2.202e+01  1.385e+03  -0.016    0.987
    -## year2015-01-01 -2.266e+01  1.385e+03  -0.016    0.987
    -## year2016-01-01 -2.215e+01  1.385e+03  -0.016    0.987
    -## year2017-01-01 -2.239e+01  1.385e+03  -0.016    0.987
    -## year2018-01-01 -2.263e+01  1.385e+03  -0.016    0.987
    -## year2019-01-01 -2.264e+01  1.385e+03  -0.016    0.987
    -## weighted_probs  4.104e-02  8.128e-02   0.505    0.614
    -## 
    -## (Dispersion parameter for binomial family taken to be 1)
    -## 
    -##     Null deviance: 2725.4  on 26441  degrees of freedom
    -## Residual deviance: 1994.0  on 26414  degrees of freedom
    -## AIC: 2050
    -## 
    -## Number of Fisher Scoring iterations: 15
    -## 
    +## # A tibble: 3 x 5
    +##   term            estimate std.error statistic  p.value
    +##   <chr>              <dbl>     <dbl>     <dbl>    <dbl>
    +## 1 (Intercept)     4.91     0.523         9.39  6.14e-21
    +## 2 year           -0.000616 0.0000346   -17.8   6.39e-71
    +## 3 weighted_probs  0.0434   0.0837        0.519 6.04e- 1
     ## 
     ## $EastAsian
    -## 
    -## Call:
    -## glm(formula = type ~ year + weighted_probs, family = "binomial", 
    -##     data = iscb_lm %>% filter(region == regioni, !is.na(weighted_probs)))
    -## 
    -## Deviance Residuals: 
    -##     Min       1Q   Median       3Q      Max  
    -## -0.4162  -0.0942  -0.0743  -0.0721   3.8535  
    -## 
    -## Coefficients:
    -##                  Estimate Std. Error z value Pr(>|z|)    
    -## (Intercept)     1.658e+01  1.385e+03   0.012 0.990450    
    -## year1994-01-01  6.836e-02  1.959e+03   0.000 0.999972    
    -## year1995-01-01 -1.480e-02  2.771e+03   0.000 0.999996    
    -## year1996-01-01 -1.319e-02  1.959e+03   0.000 0.999995    
    -## year1997-01-01  3.151e-02  2.190e+03   0.000 0.999989    
    -## year1998-01-01  9.420e-03  2.771e+03   0.000 0.999997    
    -## year1999-01-01  2.774e-04  1.656e+03   0.000 1.000000    
    -## year2000-01-01  1.432e-03  1.580e+03   0.000 0.999999    
    -## year2001-01-01 -2.079e-03  1.563e+03   0.000 0.999999    
    -## year2002-01-01 -1.899e+01  1.385e+03  -0.014 0.989066    
    -## year2003-01-01 -1.988e+01  1.385e+03  -0.014 0.988552    
    -## year2004-01-01 -1.941e+01  1.385e+03  -0.014 0.988823    
    -## year2005-01-01 -1.961e+01  1.385e+03  -0.014 0.988706    
    -## year2006-01-01 -1.995e+01  1.385e+03  -0.014 0.988512    
    -## year2007-01-01 -1.960e+01  1.385e+03  -0.014 0.988711    
    -## year2008-01-01 -2.000e+01  1.385e+03  -0.014 0.988480    
    -## year2009-01-01 -1.931e+01  1.385e+03  -0.014 0.988877    
    -## year2010-01-01 -1.932e+01  1.385e+03  -0.014 0.988874    
    -## year2011-01-01 -2.003e+01  1.385e+03  -0.014 0.988463    
    -## year2012-01-01 -1.982e+01  1.385e+03  -0.014 0.988583    
    -## year2013-01-01 -2.017e+01  1.385e+03  -0.015 0.988382    
    -## year2014-01-01 -2.187e+01  1.385e+03  -0.016 0.987402    
    -## year2015-01-01 -2.252e+01  1.385e+03  -0.016 0.987033    
    -## year2016-01-01 -2.199e+01  1.385e+03  -0.016 0.987335    
    -## year2017-01-01 -2.223e+01  1.385e+03  -0.016 0.987197    
    -## year2018-01-01 -2.247e+01  1.385e+03  -0.016 0.987061    
    -## year2019-01-01 -2.248e+01  1.385e+03  -0.016 0.987055    
    -## weighted_probs -1.705e+00  5.005e-01  -3.407 0.000657 ***
    -## ---
    -## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
    -## 
    -## (Dispersion parameter for binomial family taken to be 1)
    -## 
    -##     Null deviance: 2725.4  on 26441  degrees of freedom
    -## Residual deviance: 1972.6  on 26414  degrees of freedom
    -## AIC: 2028.6
    -## 
    -## Number of Fisher Scoring iterations: 15
    -## 
    +## # A tibble: 3 x 5
    +##   term            estimate std.error statistic  p.value
    +##   <chr>              <dbl>     <dbl>     <dbl>    <dbl>
    +## 1 (Intercept)     4.75     0.520          9.13 6.68e-20
    +## 2 year           -0.000595 0.0000347    -17.2  5.24e-66
    +## 3 weighted_probs -1.77     0.501         -3.52 4.28e- 4
     ## 
     ## $European
    -## 
    -## Call:
    -## glm(formula = type ~ year + weighted_probs, family = "binomial", 
    -##     data = iscb_lm %>% filter(region == regioni, !is.na(weighted_probs)))
    -## 
    -## Deviance Residuals: 
    -##     Min       1Q   Median       3Q      Max  
    -## -0.6484  -0.0877  -0.0748  -0.0665   3.5052  
    -## 
    -## Coefficients:
    -##                  Estimate Std. Error z value Pr(>|z|)
    -## (Intercept)     1.652e+01  1.385e+03   0.012    0.990
    -## year1994-01-01  3.895e-02  1.959e+03   0.000    1.000
    -## year1995-01-01  4.088e-02  2.771e+03   0.000    1.000
    -## year1996-01-01 -6.996e-03  1.959e+03   0.000    1.000
    -## year1997-01-01  1.329e-02  2.190e+03   0.000    1.000
    -## year1998-01-01  2.411e-02  2.771e+03   0.000    1.000
    -## year1999-01-01 -1.664e-02  1.656e+03   0.000    1.000
    -## year2000-01-01 -9.510e-03  1.579e+03   0.000    1.000
    -## year2001-01-01 -6.537e-03  1.563e+03   0.000    1.000
    -## year2002-01-01 -1.903e+01  1.385e+03  -0.014    0.989
    -## year2003-01-01 -1.994e+01  1.385e+03  -0.014    0.989
    -## year2004-01-01 -1.947e+01  1.385e+03  -0.014    0.989
    -## year2005-01-01 -1.971e+01  1.385e+03  -0.014    0.989
    -## year2006-01-01 -2.005e+01  1.385e+03  -0.014    0.988
    -## year2007-01-01 -1.969e+01  1.385e+03  -0.014    0.989
    -## year2008-01-01 -2.010e+01  1.385e+03  -0.015    0.988
    -## year2009-01-01 -1.941e+01  1.385e+03  -0.014    0.989
    -## year2010-01-01 -1.942e+01  1.385e+03  -0.014    0.989
    -## year2011-01-01 -2.011e+01  1.385e+03  -0.015    0.988
    -## year2012-01-01 -1.994e+01  1.385e+03  -0.014    0.989
    -## year2013-01-01 -2.031e+01  1.385e+03  -0.015    0.988
    -## year2014-01-01 -2.203e+01  1.385e+03  -0.016    0.987
    -## year2015-01-01 -2.267e+01  1.385e+03  -0.016    0.987
    -## year2016-01-01 -2.216e+01  1.385e+03  -0.016    0.987
    -## year2017-01-01 -2.240e+01  1.385e+03  -0.016    0.987
    -## year2018-01-01 -2.264e+01  1.385e+03  -0.016    0.987
    -## year2019-01-01 -2.265e+01  1.385e+03  -0.016    0.987
    -## weighted_probs  1.719e-01  1.118e-01   1.537    0.124
    -## 
    -## (Dispersion parameter for binomial family taken to be 1)
    -## 
    -##     Null deviance: 2725.4  on 26441  degrees of freedom
    -## Residual deviance: 1992.2  on 26414  degrees of freedom
    -## AIC: 2048.2
    -## 
    -## Number of Fisher Scoring iterations: 15
    -## 
    +## # A tibble: 3 x 5
    +##   term            estimate std.error statistic  p.value
    +##   <chr>              <dbl>     <dbl>     <dbl>    <dbl>
    +## 1 (Intercept)     4.88     0.521          9.36 7.82e-21
    +## 2 year           -0.000616 0.0000345    -17.8  3.48e-71
    +## 3 weighted_probs  0.173    0.109          1.58 1.14e- 1
     ## 
     ## $OtherCategories
    -## 
    -## Call:
    -## glm(formula = type ~ year + weighted_probs, family = "binomial", 
    -##     data = iscb_lm %>% filter(region == regioni, !is.na(weighted_probs)))
    -## 
    -## Deviance Residuals: 
    -##     Min       1Q   Median       3Q      Max  
    -## -0.4441  -0.0868  -0.0759  -0.0675   3.4965  
    -## 
    -## Coefficients:
    -##                  Estimate Std. Error z value Pr(>|z|)
    -## (Intercept)     1.655e+01  1.385e+03   0.012    0.990
    -## year1994-01-01  6.888e-03  1.959e+03   0.000    1.000
    -## year1995-01-01  1.202e-02  2.771e+03   0.000    1.000
    -## year1996-01-01  1.050e-02  1.959e+03   0.000    1.000
    -## year1997-01-01 -1.567e-02  2.190e+03   0.000    1.000
    -## year1998-01-01  8.719e-03  2.771e+03   0.000    1.000
    -## year1999-01-01  1.000e-02  1.656e+03   0.000    1.000
    -## year2000-01-01  9.243e-04  1.580e+03   0.000    1.000
    -## year2001-01-01  3.158e-03  1.563e+03   0.000    1.000
    -## year2002-01-01 -1.902e+01  1.385e+03  -0.014    0.989
    -## year2003-01-01 -1.992e+01  1.385e+03  -0.014    0.989
    -## year2004-01-01 -1.946e+01  1.385e+03  -0.014    0.989
    -## year2005-01-01 -1.970e+01  1.385e+03  -0.014    0.989
    -## year2006-01-01 -2.004e+01  1.385e+03  -0.014    0.988
    -## year2007-01-01 -1.968e+01  1.385e+03  -0.014    0.989
    -## year2008-01-01 -2.010e+01  1.385e+03  -0.015    0.988
    -## year2009-01-01 -1.940e+01  1.385e+03  -0.014    0.989
    -## year2010-01-01 -1.941e+01  1.385e+03  -0.014    0.989
    -## year2011-01-01 -2.010e+01  1.385e+03  -0.015    0.988
    -## year2012-01-01 -1.993e+01  1.385e+03  -0.014    0.989
    -## year2013-01-01 -2.031e+01  1.385e+03  -0.015    0.988
    -## year2014-01-01 -2.203e+01  1.385e+03  -0.016    0.987
    -## year2015-01-01 -2.267e+01  1.385e+03  -0.016    0.987
    -## year2016-01-01 -2.216e+01  1.385e+03  -0.016    0.987
    -## year2017-01-01 -2.240e+01  1.385e+03  -0.016    0.987
    -## year2018-01-01 -2.264e+01  1.385e+03  -0.016    0.987
    -## year2019-01-01 -2.265e+01  1.385e+03  -0.016    0.987
    -## weighted_probs  4.746e-02  1.309e-01   0.363    0.717
    -## 
    -## (Dispersion parameter for binomial family taken to be 1)
    -## 
    -##     Null deviance: 2725.4  on 26441  degrees of freedom
    -## Residual deviance: 1994.1  on 26414  degrees of freedom
    -## AIC: 2050.1
    -## 
    -## Number of Fisher Scoring iterations: 15
    -
    inte_list <- lapply(large_regions, inte_lm)
    -
    ## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
    -
    lapply(inte_list, summary)
    +## # A tibble: 3 x 5 +## term estimate std.error statistic p.value +## <chr> <dbl> <dbl> <dbl> <dbl> +## 1 (Intercept) 4.94 0.519 9.52 1.79e-21 +## 2 year -0.000618 0.0000345 -17.9 1.17e-71 +## 3 weighted_probs 0.0518 0.136 0.381 7.03e- 1 +
    inte_list <- lapply(large_regions, inte_lm)
    +lapply(inte_list, broom::tidy)
    ## [[1]]
    -## 
    -## Call:
    -## glm(formula = type ~ weighted_probs * year, family = "binomial", 
    -##     data = iscb_lm %>% filter(region == regioni, !is.na(weighted_probs)))
    -## 
    -## Deviance Residuals: 
    -##     Min       1Q   Median       3Q      Max  
    -## -0.9159  -0.0866  -0.0745  -0.0664   3.5838  
    -## 
    -## Coefficients: (2 not defined because of singularities)
    -##                                 Estimate Std. Error z value Pr(>|z|)
    -## (Intercept)                    1.657e+01  2.261e+03   0.007    0.994
    -## weighted_probs                 3.033e-07  3.794e+03   0.000    1.000
    -## year1994-01-01                 1.785e-07  1.105e+04   0.000    1.000
    -## year1995-01-01                -1.181e-07  3.375e+03   0.000    1.000
    -## year1996-01-01                 1.791e-07  3.361e+03   0.000    1.000
    -## year1997-01-01                 1.793e-07  3.340e+03   0.000    1.000
    -## year1998-01-01                -6.301e-08  3.035e+03   0.000    1.000
    -## year1999-01-01                 1.792e-07  2.836e+03   0.000    1.000
    -## year2000-01-01                 1.792e-07  2.596e+03   0.000    1.000
    -## year2001-01-01                 1.791e-07  2.567e+03   0.000    1.000
    -## year2002-01-01                -1.883e+01  2.261e+03  -0.008    0.993
    -## year2003-01-01                -2.016e+01  2.261e+03  -0.009    0.993
    -## year2004-01-01                -1.951e+01  2.261e+03  -0.009    0.993
    -## year2005-01-01                -1.974e+01  2.261e+03  -0.009    0.993
    -## year2006-01-01                -2.010e+01  2.261e+03  -0.009    0.993
    -## year2007-01-01                -2.004e+01  2.261e+03  -0.009    0.993
    -## year2008-01-01                -2.013e+01  2.261e+03  -0.009    0.993
    -## year2009-01-01                -1.952e+01  2.261e+03  -0.009    0.993
    -## year2010-01-01                -1.939e+01  2.261e+03  -0.009    0.993
    -## year2011-01-01                -2.007e+01  2.261e+03  -0.009    0.993
    -## year2012-01-01                -1.977e+01  2.261e+03  -0.009    0.993
    -## year2013-01-01                -2.029e+01  2.261e+03  -0.009    0.993
    -## year2014-01-01                -2.215e+01  2.261e+03  -0.010    0.992
    -## year2015-01-01                -2.270e+01  2.261e+03  -0.010    0.992
    -## year2016-01-01                -2.222e+01  2.261e+03  -0.010    0.992
    -## year2017-01-01                -2.232e+01  2.261e+03  -0.010    0.992
    -## year2018-01-01                -2.272e+01  2.261e+03  -0.010    0.992
    -## year2019-01-01                -2.255e+01  2.261e+03  -0.010    0.992
    -## weighted_probs:year1994-01-01 -3.027e-07  1.374e+04   0.000    1.000
    -## weighted_probs:year1995-01-01         NA         NA      NA       NA
    -## weighted_probs:year1996-01-01 -3.035e-07  4.926e+03   0.000    1.000
    -## weighted_probs:year1997-01-01 -3.037e-07  9.415e+03   0.000    1.000
    -## weighted_probs:year1998-01-01         NA         NA      NA       NA
    -## weighted_probs:year1999-01-01 -3.035e-07  4.532e+03   0.000    1.000
    -## weighted_probs:year2000-01-01 -3.035e-07  4.466e+03   0.000    1.000
    -## weighted_probs:year2001-01-01 -3.035e-07  4.262e+03   0.000    1.000
    -## weighted_probs:year2002-01-01 -6.572e-01  3.794e+03   0.000    1.000
    -## weighted_probs:year2003-01-01  5.211e-01  3.794e+03   0.000    1.000
    -## weighted_probs:year2004-01-01  1.002e-01  3.794e+03   0.000    1.000
    -## weighted_probs:year2005-01-01  1.119e-01  3.794e+03   0.000    1.000
    -## weighted_probs:year2006-01-01  1.729e-01  3.794e+03   0.000    1.000
    -## weighted_probs:year2007-01-01  7.828e-01  3.794e+03   0.000    1.000
    -## weighted_probs:year2008-01-01  9.151e-02  3.794e+03   0.000    1.000
    -## weighted_probs:year2009-01-01  3.593e-01  3.794e+03   0.000    1.000
    -## weighted_probs:year2010-01-01 -5.646e-02  3.794e+03   0.000    1.000
    -## weighted_probs:year2011-01-01 -9.107e-02  3.794e+03   0.000    1.000
    -## weighted_probs:year2012-01-01 -6.291e-01  3.794e+03   0.000    1.000
    -## weighted_probs:year2013-01-01 -6.333e-02  3.794e+03   0.000    1.000
    -## weighted_probs:year2014-01-01  3.413e-01  3.794e+03   0.000    1.000
    -## weighted_probs:year2015-01-01  9.374e-02  3.794e+03   0.000    1.000
    -## weighted_probs:year2016-01-01  2.007e-01  3.794e+03   0.000    1.000
    -## weighted_probs:year2017-01-01 -3.198e-01  3.794e+03   0.000    1.000
    -## weighted_probs:year2018-01-01  2.793e-01  3.794e+03   0.000    1.000
    -## weighted_probs:year2019-01-01 -4.811e-01  3.794e+03   0.000    1.000
    -## 
    -## (Dispersion parameter for binomial family taken to be 1)
    -## 
    -##     Null deviance: 2725.4  on 26441  degrees of freedom
    -## Residual deviance: 1985.6  on 26390  degrees of freedom
    -## AIC: 2089.6
    -## 
    -## Number of Fisher Scoring iterations: 15
    -## 
    +## # A tibble: 4 x 5
    +##   term                  estimate std.error statistic  p.value
    +##   <chr>                    <dbl>     <dbl>     <dbl>    <dbl>
    +## 1 (Intercept)          5.01      0.563         8.89  5.91e-19
    +## 2 weighted_probs      -0.228     0.591        -0.386 7.00e- 1
    +## 3 year                -0.000623  0.0000377   -16.5   2.45e-61
    +## 4 weighted_probs:year  0.0000201 0.0000425     0.473 6.36e- 1
     ## 
     ## [[2]]
    -## 
    -## Call:
    -## glm(formula = type ~ weighted_probs * year, family = "binomial", 
    -##     data = iscb_lm %>% filter(region == regioni, !is.na(weighted_probs)))
    -## 
    -## Deviance Residuals: 
    -##     Min       1Q   Median       3Q      Max  
    -## -0.4447  -0.0949  -0.0758  -0.0713   3.7045  
    -## 
    -## Coefficients: (2 not defined because of singularities)
    -##                                 Estimate Std. Error z value Pr(>|z|)
    -## (Intercept)                    1.657e+01  1.839e+03   0.009    0.993
    -## weighted_probs                 9.566e-05  1.271e+05   0.000    1.000
    -## year1994-01-01                 8.884e-07  2.678e+03   0.000    1.000
    -## year1995-01-01                 8.009e-07  2.979e+03   0.000    1.000
    -## year1996-01-01                 8.886e-07  4.288e+03   0.000    1.000
    -## year1997-01-01                 8.884e-07  3.087e+03   0.000    1.000
    -## year1998-01-01                -5.577e-07  2.861e+03   0.000    1.000
    -## year1999-01-01                 8.883e-07  2.141e+03   0.000    1.000
    -## year2000-01-01                 8.883e-07  2.228e+03   0.000    1.000
    -## year2001-01-01                 8.884e-07  2.102e+03   0.000    1.000
    -## year2002-01-01                -1.903e+01  1.839e+03  -0.010    0.992
    -## year2003-01-01                -1.977e+01  1.839e+03  -0.011    0.991
    -## year2004-01-01                -1.930e+01  1.839e+03  -0.010    0.992
    -## year2005-01-01                -1.935e+01  1.839e+03  -0.011    0.992
    -## year2006-01-01                -1.974e+01  1.839e+03  -0.011    0.991
    -## year2007-01-01                -1.967e+01  1.839e+03  -0.011    0.991
    -## year2008-01-01                -2.008e+01  1.839e+03  -0.011    0.991
    -## year2009-01-01                -1.918e+01  1.839e+03  -0.010    0.992
    -## year2010-01-01                -1.921e+01  1.839e+03  -0.010    0.992
    -## year2011-01-01                -1.986e+01  1.839e+03  -0.011    0.991
    -## year2012-01-01                -1.966e+01  1.839e+03  -0.011    0.991
    -## year2013-01-01                -2.022e+01  1.839e+03  -0.011    0.991
    -## year2014-01-01                -2.148e+01  1.839e+03  -0.012    0.991
    -## year2015-01-01                -2.239e+01  1.839e+03  -0.012    0.990
    -## year2016-01-01                -2.195e+01  1.839e+03  -0.012    0.990
    -## year2017-01-01                -2.230e+01  1.839e+03  -0.012    0.990
    -## year2018-01-01                -2.241e+01  1.839e+03  -0.012    0.990
    -## year2019-01-01                -2.251e+01  1.839e+03  -0.012    0.990
    -## weighted_probs:year1994-01-01 -9.567e-05  1.303e+05   0.000    1.000
    -## weighted_probs:year1995-01-01         NA         NA      NA       NA
    -## weighted_probs:year1996-01-01 -9.576e-05  1.950e+06   0.000    1.000
    -## weighted_probs:year1997-01-01 -9.567e-05  1.430e+05   0.000    1.000
    -## weighted_probs:year1998-01-01         NA         NA      NA       NA
    -## weighted_probs:year1999-01-01 -9.567e-05  1.424e+05   0.000    1.000
    -## weighted_probs:year2000-01-01 -9.565e-05  1.597e+05   0.000    1.000
    -## weighted_probs:year2001-01-01 -9.566e-05  1.536e+05   0.000    1.000
    -## weighted_probs:year2002-01-01  1.380e-01  1.271e+05   0.000    1.000
    -## weighted_probs:year2003-01-01 -9.030e+00  1.271e+05   0.000    1.000
    -## weighted_probs:year2004-01-01 -8.390e+00  1.271e+05   0.000    1.000
    -## weighted_probs:year2005-01-01 -2.229e+01  1.271e+05   0.000    1.000
    -## weighted_probs:year2006-01-01 -1.632e+01  1.271e+05   0.000    1.000
    -## weighted_probs:year2007-01-01 -9.985e-02  1.271e+05   0.000    1.000
    -## weighted_probs:year2008-01-01 -1.389e-01  1.271e+05   0.000    1.000
    -## weighted_probs:year2009-01-01 -9.254e+00  1.271e+05   0.000    1.000
    -## weighted_probs:year2010-01-01 -5.983e+00  1.271e+05   0.000    1.000
    -## weighted_probs:year2011-01-01 -1.351e+01  1.271e+05   0.000    1.000
    -## weighted_probs:year2012-01-01 -9.074e+00  1.271e+05   0.000    1.000
    -## weighted_probs:year2013-01-01 -6.626e-01  1.271e+05   0.000    1.000
    -## weighted_probs:year2014-01-01 -4.322e+01  1.271e+05   0.000    1.000
    -## weighted_probs:year2015-01-01 -5.494e+00  1.271e+05   0.000    1.000
    -## weighted_probs:year2016-01-01 -2.295e+00  1.271e+05   0.000    1.000
    -## weighted_probs:year2017-01-01 -6.581e-01  1.271e+05   0.000    1.000
    -## weighted_probs:year2018-01-01 -2.467e+00  1.271e+05   0.000    1.000
    -## weighted_probs:year2019-01-01 -1.020e+00  1.271e+05   0.000    1.000
    -## 
    -## (Dispersion parameter for binomial family taken to be 1)
    -## 
    -##     Null deviance: 2725.4  on 26441  degrees of freedom
    -## Residual deviance: 1953.1  on 26390  degrees of freedom
    -## AIC: 2057.1
    -## 
    -## Number of Fisher Scoring iterations: 15
    -## 
    +## # A tibble: 4 x 5
    +##   term                  estimate std.error statistic  p.value
    +##   <chr>                    <dbl>     <dbl>     <dbl>    <dbl>
    +## 1 (Intercept)          4.70      0.540         8.72  2.89e-18
    +## 2 weighted_probs      -0.524     4.08         -0.128 8.98e- 1
    +## 3 year                -0.000592  0.0000359   -16.5   6.46e-61
    +## 4 weighted_probs:year -0.0000794 0.000261     -0.304 7.61e- 1
     ## 
     ## [[3]]
    -## 
    -## Call:
    -## glm(formula = type ~ weighted_probs * year, family = "binomial", 
    -##     data = iscb_lm %>% filter(region == regioni, !is.na(weighted_probs)))
    -## 
    -## Deviance Residuals: 
    -##     Min       1Q   Median       3Q      Max  
    -## -0.7432  -0.0882  -0.0752  -0.0649   3.5346  
    -## 
    -## Coefficients: (2 not defined because of singularities)
    -##                                 Estimate Std. Error z value Pr(>|z|)
    -## (Intercept)                    1.657e+01  1.727e+03   0.010    0.992
    -## weighted_probs                -2.147e-07  4.121e+03   0.000    1.000
    -## year1994-01-01                -6.953e-08  2.308e+04   0.000    1.000
    -## year1995-01-01                -7.042e-08  2.949e+03   0.000    1.000
    -## year1996-01-01                -7.179e-08  2.437e+03   0.000    1.000
    -## year1997-01-01                -7.194e-08  4.360e+03   0.000    1.000
    -## year1998-01-01                -4.958e-08  2.837e+03   0.000    1.000
    -## year1999-01-01                -7.177e-08  2.161e+03   0.000    1.000
    -## year2000-01-01                -7.156e-08  2.008e+03   0.000    1.000
    -## year2001-01-01                -7.128e-08  2.002e+03   0.000    1.000
    -## year2002-01-01                -1.925e+01  1.727e+03  -0.011    0.991
    -## year2003-01-01                -1.998e+01  1.727e+03  -0.012    0.991
    -## year2004-01-01                -1.946e+01  1.727e+03  -0.011    0.991
    -## year2005-01-01                -1.973e+01  1.727e+03  -0.011    0.991
    -## year2006-01-01                -2.016e+01  1.727e+03  -0.012    0.991
    -## year2007-01-01                -1.947e+01  1.727e+03  -0.011    0.991
    -## year2008-01-01                -2.003e+01  1.727e+03  -0.012    0.991
    -## year2009-01-01                -1.937e+01  1.727e+03  -0.011    0.991
    -## year2010-01-01                -1.949e+01  1.727e+03  -0.011    0.991
    -## year2011-01-01                -2.032e+01  1.727e+03  -0.012    0.991
    -## year2012-01-01                -2.020e+01  1.727e+03  -0.012    0.991
    -## year2013-01-01                -2.033e+01  1.727e+03  -0.012    0.991
    -## year2014-01-01                -2.200e+01  1.727e+03  -0.013    0.990
    -## year2015-01-01                -2.273e+01  1.727e+03  -0.013    0.990
    -## year2016-01-01                -2.224e+01  1.727e+03  -0.013    0.990
    -## year2017-01-01                -2.244e+01  1.727e+03  -0.013    0.990
    -## year2018-01-01                -2.276e+01  1.727e+03  -0.013    0.989
    -## year2019-01-01                -2.281e+01  1.727e+03  -0.013    0.989
    -## weighted_probs:year1994-01-01  8.770e-08  1.402e+06   0.000    1.000
    -## weighted_probs:year1995-01-01         NA         NA      NA       NA
    -## weighted_probs:year1996-01-01  2.151e-07  5.382e+03   0.000    1.000
    -## weighted_probs:year1997-01-01  2.173e-07  2.223e+04   0.000    1.000
    -## weighted_probs:year1998-01-01         NA         NA      NA       NA
    -## weighted_probs:year1999-01-01  2.147e-07  4.917e+03   0.000    1.000
    -## weighted_probs:year2000-01-01  2.148e-07  4.695e+03   0.000    1.000
    -## weighted_probs:year2001-01-01  2.143e-07  4.808e+03   0.000    1.000
    -## weighted_probs:year2002-01-01  7.054e-01  4.121e+03   0.000    1.000
    -## weighted_probs:year2003-01-01  1.685e-01  4.121e+03   0.000    1.000
    -## weighted_probs:year2004-01-01 -2.523e-02  4.121e+03   0.000    1.000
    -## weighted_probs:year2005-01-01  8.222e-02  4.121e+03   0.000    1.000
    -## weighted_probs:year2006-01-01  3.867e-01  4.121e+03   0.000    1.000
    -## weighted_probs:year2007-01-01 -1.298e+00  4.121e+03   0.000    1.000
    -## weighted_probs:year2008-01-01 -3.182e-01  4.121e+03   0.000    1.000
    -## weighted_probs:year2009-01-01 -8.382e-02  4.121e+03   0.000    1.000
    -## weighted_probs:year2010-01-01  2.568e-01  4.121e+03   0.000    1.000
    -## weighted_probs:year2011-01-01  6.134e-01  4.121e+03   0.000    1.000
    -## weighted_probs:year2012-01-01  7.233e-01  4.121e+03   0.000    1.000
    -## weighted_probs:year2013-01-01  9.890e-02  4.121e+03   0.000    1.000
    -## weighted_probs:year2014-01-01 -1.283e-01  4.121e+03   0.000    1.000
    -## weighted_probs:year2015-01-01  2.281e-01  4.121e+03   0.000    1.000
    -## weighted_probs:year2016-01-01  3.110e-01  4.121e+03   0.000    1.000
    -## weighted_probs:year2017-01-01  1.407e-01  4.121e+03   0.000    1.000
    -## weighted_probs:year2018-01-01  4.559e-01  4.121e+03   0.000    1.000
    -## weighted_probs:year2019-01-01  5.439e-01  4.121e+03   0.000    1.000
    -## 
    -## (Dispersion parameter for binomial family taken to be 1)
    -## 
    -##     Null deviance: 2725.4  on 26441  degrees of freedom
    -## Residual deviance: 1985.0  on 26390  degrees of freedom
    -## AIC: 2089
    -## 
    -## Number of Fisher Scoring iterations: 15
    -## 
    +## # A tibble: 4 x 5
    +##   term                  estimate std.error statistic  p.value
    +##   <chr>                    <dbl>     <dbl>     <dbl>    <dbl>
    +## 1 (Intercept)          5.07      0.573         8.85  9.11e-19
    +## 2 weighted_probs      -0.462     0.821        -0.563 5.73e- 1
    +## 3 year                -0.000629  0.0000382   -16.5   7.11e-61
    +## 4 weighted_probs:year  0.0000437 0.0000549     0.796 4.26e- 1
     ## 
     ## [[4]]
    -## 
    -## Call:
    -## glm(formula = type ~ weighted_probs * year, family = "binomial", 
    -##     data = iscb_lm %>% filter(region == regioni, !is.na(weighted_probs)))
    -## 
    -## Deviance Residuals: 
    -##     Min       1Q   Median       3Q      Max  
    -## -1.1945  -0.0876  -0.0720  -0.0671   3.5058  
    -## 
    -## Coefficients: (2 not defined because of singularities)
    -##                                 Estimate Std. Error z value Pr(>|z|)
    -## (Intercept)                    1.657e+01  2.111e+03   0.008    0.994
    -## weighted_probs                -1.127e-07  5.917e+03   0.000    1.000
    -## year1994-01-01                -6.732e-08  3.745e+03   0.000    1.000
    -## year1995-01-01                -6.591e-08  3.153e+03   0.000    1.000
    -## year1996-01-01                -6.759e-08  2.965e+03   0.000    1.000
    -## year1997-01-01                -6.714e-08  4.337e+03   0.000    1.000
    -## year1998-01-01                -5.799e-08  2.978e+03   0.000    1.000
    -## year1999-01-01                -6.742e-08  2.720e+03   0.000    1.000
    -## year2000-01-01                -6.735e-08  2.449e+03   0.000    1.000
    -## year2001-01-01                -6.752e-08  2.341e+03   0.000    1.000
    -## year2002-01-01                -1.925e+01  2.111e+03  -0.009    0.993
    -## year2003-01-01                -1.956e+01  2.111e+03  -0.009    0.993
    -## year2004-01-01                -1.936e+01  2.111e+03  -0.009    0.993
    -## year2005-01-01                -1.976e+01  2.111e+03  -0.009    0.993
    -## year2006-01-01                -1.996e+01  2.111e+03  -0.009    0.992
    -## year2007-01-01                -1.939e+01  2.111e+03  -0.009    0.993
    -## year2008-01-01                -2.014e+01  2.111e+03  -0.010    0.992
    -## year2009-01-01                -1.941e+01  2.111e+03  -0.009    0.993
    -## year2010-01-01                -1.963e+01  2.111e+03  -0.009    0.993
    -## year2011-01-01                -1.998e+01  2.111e+03  -0.009    0.992
    -## year2012-01-01                -1.991e+01  2.111e+03  -0.009    0.992
    -## year2013-01-01                -2.041e+01  2.111e+03  -0.010    0.992
    -## year2014-01-01                -2.210e+01  2.111e+03  -0.010    0.992
    -## year2015-01-01                -2.271e+01  2.111e+03  -0.011    0.991
    -## year2016-01-01                -2.213e+01  2.111e+03  -0.010    0.992
    -## year2017-01-01                -2.252e+01  2.111e+03  -0.011    0.991
    -## year2018-01-01                -2.261e+01  2.111e+03  -0.011    0.991
    -## year2019-01-01                -2.270e+01  2.111e+03  -0.011    0.991
    -## weighted_probs:year1994-01-01  1.113e-07  2.323e+04   0.000    1.000
    -## weighted_probs:year1995-01-01         NA         NA      NA       NA
    -## weighted_probs:year1996-01-01  1.154e-07  3.364e+04   0.000    1.000
    -## weighted_probs:year1997-01-01  1.126e-07  8.179e+03   0.000    1.000
    -## weighted_probs:year1998-01-01         NA         NA      NA       NA
    -## weighted_probs:year1999-01-01  1.121e-07  2.601e+04   0.000    1.000
    -## weighted_probs:year2000-01-01  1.127e-07  7.110e+03   0.000    1.000
    -## weighted_probs:year2001-01-01  1.125e-07  6.870e+03   0.000    1.000
    -## weighted_probs:year2002-01-01  9.966e-01  5.917e+03   0.000    1.000
    -## weighted_probs:year2003-01-01 -2.696e+00  5.917e+03   0.000    1.000
    -## weighted_probs:year2004-01-01 -4.243e-01  5.917e+03   0.000    1.000
    -## weighted_probs:year2005-01-01  1.989e-01  5.917e+03   0.000    1.000
    -## weighted_probs:year2006-01-01 -3.199e-01  5.917e+03   0.000    1.000
    -## weighted_probs:year2007-01-01 -1.480e+00  5.917e+03   0.000    1.000
    -## weighted_probs:year2008-01-01  1.422e-01  5.917e+03   0.000    1.000
    -## weighted_probs:year2009-01-01  5.110e-02  5.917e+03   0.000    1.000
    -## weighted_probs:year2010-01-01  8.824e-01  5.917e+03   0.000    1.000
    -## weighted_probs:year2011-01-01 -5.120e-01  5.917e+03   0.000    1.000
    -## weighted_probs:year2012-01-01 -7.207e-02  5.917e+03   0.000    1.000
    -## weighted_probs:year2013-01-01  3.531e-01  5.917e+03   0.000    1.000
    -## weighted_probs:year2014-01-01  2.293e-01  5.917e+03   0.000    1.000
    -## weighted_probs:year2015-01-01  1.584e-01  5.917e+03   0.000    1.000
    -## weighted_probs:year2016-01-01 -1.152e-01  5.917e+03   0.000    1.000
    -## weighted_probs:year2017-01-01  3.618e-01  5.917e+03   0.000    1.000
    -## weighted_probs:year2018-01-01 -1.096e-01  5.917e+03   0.000    1.000
    -## weighted_probs:year2019-01-01  1.475e-01  5.917e+03   0.000    1.000
    -## 
    -## (Dispersion parameter for binomial family taken to be 1)
    -## 
    -##     Null deviance: 2725.4  on 26441  degrees of freedom
    -## Residual deviance: 1984.7  on 26390  degrees of freedom
    -## AIC: 2088.7
    -## 
    -## Number of Fisher Scoring iterations: 15
    -
    for (i in 1:4){
    -  print(anova(main_list[[i]], inte_list[[i]], test = 'Chisq'))
    +## # A tibble: 4 x 5
    +##   term                  estimate std.error statistic  p.value
    +##   <chr>                    <dbl>     <dbl>     <dbl>    <dbl>
    +## 1 (Intercept)          5.04      0.587         8.58  9.33e-18
    +## 2 weighted_probs      -0.320     1.04         -0.308 7.58e- 1
    +## 3 year                -0.000625  0.0000393   -15.9   6.63e-57
    +## 4 weighted_probs:year  0.0000251 0.0000690     0.364 7.16e- 1
    +
    for (i in 1:4) {
    +  print(anova(main_list[[i]], inte_list[[i]], test = "Chisq"))
     }
    ## Analysis of Deviance Table
     ## 
     ## Model 1: type ~ year + weighted_probs
     ## Model 2: type ~ weighted_probs * year
     ##   Resid. Df Resid. Dev Df Deviance Pr(>Chi)
    -## 1     26414     1994.0                     
    -## 2     26390     1985.6 24   8.3858   0.9986
    +## 1     26398     2066.7                     
    +## 2     26397     2066.5  1   0.2267    0.634
     ## Analysis of Deviance Table
     ## 
     ## Model 1: type ~ year + weighted_probs
     ## Model 2: type ~ weighted_probs * year
     ##   Resid. Df Resid. Dev Df Deviance Pr(>Chi)
    -## 1     26414     1972.6                     
    -## 2     26390     1953.1 24   19.504   0.7246
    +## 1     26398     2043.8                     
    +## 2     26397     2043.7  1 0.089951   0.7642
     ## Analysis of Deviance Table
     ## 
     ## Model 1: type ~ year + weighted_probs
     ## Model 2: type ~ weighted_probs * year
     ##   Resid. Df Resid. Dev Df Deviance Pr(>Chi)
    -## 1     26414     1992.2                     
    -## 2     26390     1985.0 24   7.1976   0.9996
    +## 1     26398     2064.9                     
    +## 2     26397     2064.2  1  0.63868   0.4242
     ## Analysis of Deviance Table
     ## 
     ## Model 1: type ~ year + weighted_probs
     ## Model 2: type ~ weighted_probs * year
     ##   Resid. Df Resid. Dev Df Deviance Pr(>Chi)
    -## 1     26414     1994.1                     
    -## 2     26390     1984.7 24   9.3931   0.9966
    +## 1 26398 2066.8 +## 2 26397 2066.7 1 0.13195 0.7164

    Interaction terms do not predict type over and above the main effect of name origin probability and year (p > 0.01).

    Conclusion

    -

    An East Asian name has 0.1817074 the odds of being selected as an honoree, significantly lower compared to other names (\(\beta_\textrm{East Asian} =\) -1.7054, P = 0.00065666). The two groups of scientists did not have a significant association with names predicted to be Celtic/English (P = 0.61364), European (P = 0.12421), or in Other categories (P = 0.71685).

    +

    An East Asian name has 0.1709525 the odds of being selected as an honoree, significantly lower compared to other names (\(\beta_\textrm{East Asian} =\) -1.7664, P = 0.00042758). The two groups of scientists did not have a significant association with names predicted to be Celtic/English (P = 0.60355), European (P = 0.11373), or in Other categories (P = 0.70348).

    Supplement

    Supplementary Figure S7

    It’s difficult to come to a conclusion for other regions with so few data points and the imperfect accuracy of our prediction. There seems to be little difference between the proportion of keynote speakers of African, Arabic, South Asian and Hispanic origin than those in the field. However, just because a nationality isn’t underrepresented against the field doesn’t mean scientists from that nationality are appropriately represented.

    -
    df2 <- iscb_pubmed_oth %>% 
    -  filter(region != 'OtherCategories') %>% 
    +
    df2 <- iscb_pubmed_oth %>%
    +  filter(region != "OtherCategories") %>%
       recode_region()
     
     fig_s7 <- iscb_pubmed_sum %>%
       recode_region() %>%
    -  gam_and_ci(df2 = df2,
    -             start_y = start_year, end_y = end_year) +
    +  gam_and_ci(
    +    df2 = df2,
    +    start_y = start_year, end_y = end_year
    +  ) +
       theme(legend.position = c(0.8, 0.1)) +
       facet_wrap(vars(fct_relevel(region, region_levels)), ncol = 3)
    -  
    +
     fig_s7
    ## `geom_smooth()` using formula 'y ~ s(x, bs = "cs")'

    -
    ggsave('figs/fig_s7.png', fig_s7, width = 6, height = 6)
    +
    ggsave("figs/fig_s7.png", fig_s7, width = 6, height = 6)
    ## `geom_smooth()` using formula 'y ~ s(x, bs = "cs")'
    -
    ggsave('figs/fig_s7.svg', fig_s7, width = 6, height = 6)
    +
    ggsave("figs/fig_s7.svg", fig_s7, width = 6, height = 6)
    ## `geom_smooth()` using formula 'y ~ s(x, bs = "cs")'
    sessionInfo()
    ## R version 4.0.3 (2020-10-10)
    @@ -2365,52 +1940,64 @@ 

    Supplementary Figure S7

    ## BLAS/LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.8.so ## ## locale: -## [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8 -## [4] LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 LC_MESSAGES=C -## [7] LC_PAPER=en_US.UTF-8 LC_NAME=C LC_ADDRESS=C -## [10] LC_TELEPHONE=C LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C +## [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C +## [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 +## [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=C +## [7] LC_PAPER=en_US.UTF-8 LC_NAME=C +## [9] LC_ADDRESS=C LC_TELEPHONE=C +## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C ## ## attached base packages: ## [1] stats graphics grDevices utils datasets methods base ## ## other attached packages: -## [1] broom_0.7.2 DT_0.16 epitools_0.5-10.1 gdtools_0.2.2 -## [5] wru_0.1-10 rnaturalearth_0.1.0 lubridate_1.7.9.2 caret_6.0-86 -## [9] lattice_0.20-41 forcats_0.5.0 stringr_1.4.0 dplyr_1.0.2 -## [13] purrr_0.3.4 readr_1.4.0 tidyr_1.1.2 tibble_3.0.4 -## [17] ggplot2_3.3.2 tidyverse_1.3.0 +## [1] broom_0.7.2 DT_0.16 epitools_0.5-10.1 +## [4] gdtools_0.2.2 wru_0.1-10 rnaturalearth_0.1.0 +## [7] lubridate_1.7.9.2 caret_6.0-86 lattice_0.20-41 +## [10] forcats_0.5.0 stringr_1.4.0 dplyr_1.0.2 +## [13] purrr_0.3.4 readr_1.4.0 tidyr_1.1.2 +## [16] tibble_3.0.4 ggplot2_3.3.2 tidyverse_1.3.0 ## ## loaded via a namespace (and not attached): -## [1] colorspace_2.0-0 ellipsis_0.3.1 class_7.3-17 rprojroot_1.3-2 -## [5] fs_1.5.0 rstudioapi_0.12 farver_2.0.3 remotes_2.2.0 -## [9] prodlim_2019.11.13 fansi_0.4.1 xml2_1.3.2 codetools_0.2-16 -## [13] splines_4.0.3 knitr_1.30 pkgload_1.1.0 jsonlite_1.7.1 -## [17] pROC_1.16.2 dbplyr_2.0.0 rgeos_0.5-5 compiler_4.0.3 -## [21] httr_1.4.2 backports_1.2.0 assertthat_0.2.1 Matrix_1.2-18 -## [25] cli_2.1.0 htmltools_0.5.0 prettyunits_1.1.1 tools_4.0.3 -## [29] gtable_0.3.0 glue_1.4.2 rnaturalearthdata_0.1.0 reshape2_1.4.4 -## [33] Rcpp_1.0.5 cellranger_1.1.0 vctrs_0.3.4 svglite_1.2.3.2 -## [37] nlme_3.1-149 iterators_1.0.13 crosstalk_1.1.0.1 timeDate_3043.102 -## [41] gower_0.2.2 xfun_0.19 ps_1.4.0 testthat_3.0.0 -## [45] rvest_0.3.6 lifecycle_0.2.0 devtools_2.3.2 MASS_7.3-53 -## [49] scales_1.1.1 ipred_0.9-9 hms_0.5.3 RColorBrewer_1.1-2 -## [53] yaml_2.2.1 curl_4.3 memoise_1.1.0 rpart_4.1-15 -## [57] stringi_1.5.3 desc_1.2.0 foreach_1.5.1 e1071_1.7-4 -## [61] pkgbuild_1.1.0 lava_1.6.8.1 systemfonts_0.3.2 rlang_0.4.8 -## [65] pkgconfig_2.0.3 evaluate_0.14 sf_0.9-6 recipes_0.1.15 -## [69] htmlwidgets_1.5.2 labeling_0.4.2 cowplot_1.1.0 tidyselect_1.1.0 -## [73] processx_3.4.4 plyr_1.8.6 magrittr_1.5 R6_2.5.0 -## [77] generics_0.1.0 DBI_1.1.0 mgcv_1.8-33 pillar_1.4.6 -## [81] haven_2.3.1 withr_2.3.0 units_0.6-7 survival_3.2-7 -## [85] sp_1.4-4 nnet_7.3-14 modelr_0.1.8 crayon_1.3.4 -## [89] KernSmooth_2.23-17 utf8_1.1.4 rmarkdown_2.5 usethis_1.6.3 -## [93] grid_4.0.3 readxl_1.3.1 data.table_1.13.2 callr_3.5.1 -## [97] ModelMetrics_1.2.2.2 reprex_0.3.0 digest_0.6.27 classInt_0.4-3 -## [101] stats4_4.0.3 munsell_0.5.0 viridisLite_0.3.0 sessioninfo_1.1.1
    +## [1] colorspace_2.0-0 ellipsis_0.3.1 class_7.3-17 +## [4] rprojroot_1.3-2 fs_1.5.0 rstudioapi_0.12 +## [7] farver_2.0.3 remotes_2.2.0 prodlim_2019.11.13 +## [10] fansi_0.4.1 xml2_1.3.2 codetools_0.2-16 +## [13] splines_4.0.3 knitr_1.30 pkgload_1.1.0 +## [16] jsonlite_1.7.1 pROC_1.16.2 dbplyr_2.0.0 +## [19] rgeos_0.5-5 compiler_4.0.3 httr_1.4.2 +## [22] backports_1.2.0 assertthat_0.2.1 Matrix_1.2-18 +## [25] cli_2.1.0 htmltools_0.5.0 prettyunits_1.1.1 +## [28] tools_4.0.3 gtable_0.3.0 glue_1.4.2 +## [31] rnaturalearthdata_0.1.0 reshape2_1.4.4 Rcpp_1.0.5 +## [34] cellranger_1.1.0 vctrs_0.3.4 svglite_1.2.3.2 +## [37] nlme_3.1-149 iterators_1.0.13 crosstalk_1.1.0.1 +## [40] timeDate_3043.102 gower_0.2.2 xfun_0.19 +## [43] ps_1.4.0 testthat_3.0.0 rvest_0.3.6 +## [46] lifecycle_0.2.0 devtools_2.3.2 MASS_7.3-53 +## [49] scales_1.1.1 ipred_0.9-9 hms_0.5.3 +## [52] RColorBrewer_1.1-2 yaml_2.2.1 curl_4.3 +## [55] memoise_1.1.0 rpart_4.1-15 stringi_1.5.3 +## [58] desc_1.2.0 foreach_1.5.1 e1071_1.7-4 +## [61] pkgbuild_1.1.0 lava_1.6.8.1 systemfonts_0.3.2 +## [64] rlang_0.4.8 pkgconfig_2.0.3 evaluate_0.14 +## [67] sf_0.9-6 recipes_0.1.15 htmlwidgets_1.5.2 +## [70] labeling_0.4.2 cowplot_1.1.0 tidyselect_1.1.0 +## [73] processx_3.4.4 plyr_1.8.6 magrittr_1.5 +## [76] R6_2.5.0 generics_0.1.0 DBI_1.1.0 +## [79] mgcv_1.8-33 pillar_1.4.6 haven_2.3.1 +## [82] withr_2.3.0 units_0.6-7 survival_3.2-7 +## [85] sp_1.4-4 nnet_7.3-14 modelr_0.1.8 +## [88] crayon_1.3.4 KernSmooth_2.23-17 utf8_1.1.4 +## [91] rmarkdown_2.5 usethis_1.6.3 grid_4.0.3 +## [94] readxl_1.3.1 data.table_1.13.2 callr_3.5.1 +## [97] ModelMetrics_1.2.2.2 reprex_0.3.0 digest_0.6.27 +## [100] classInt_0.4-3 stats4_4.0.3 munsell_0.5.0 +## [103] viridisLite_0.3.0 sessioninfo_1.1.1
    -
    LS0tCnRpdGxlOiAiUmVwcmVzZW50YXRpb24gYW5hbHlzaXMgb2YgbmFtZSBvcmlnaW4gaW4gdGhlIFVTIgotLS0KCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeShsdWJyaWRhdGUpCnNvdXJjZSgndXRpbHMvci11dGlscy5SJykKdGhlbWVfc2V0KHRoZW1lX2J3KCkgKyB0aGVtZShsZWdlbmQudGl0bGUgPSBlbGVtZW50X2JsYW5rKCkpKQpgYGAKCk9ubHkga2VlcCBhcnRpY2xlcyBmcm9tIDIwMDIgYmVjYXVzZSBmZXcgYXV0aG9ycyBoYWQgbmF0aW9uYWxpdHkgcHJlZGljdGlvbnMgYmVmb3JlIDIwMDIgKG1vc3RseSBkdWUgdG8gbWlzc2luZyBtZXRhZGF0YSkuClNlZSBbMDkzLnN1bW1hcnktc3RhdHNdKGRvY3MvMDkzLnN1bW1hcnktc3RhdHMuaHRtbCkgZm9yIG1vcmUgZGV0YWlscy4KCmBgYHtyfQpsb2FkKCdSZGF0YS9yYXdzLlJkYXRhJykKCmFscGhhX3RocmVzaG9sZCA8LSBxbm9ybSgwLjk3NSkKCnB1Ym1lZF9uYXRfZGYgPC0gIGNvcnJfYXV0aG9ycyAlPiUKICBmaWx0ZXIoeWVhcih5ZWFyKSA+PSAyMDAyKSAlPiUgCiAgc2VwYXJhdGVfcm93cyhjb3VudHJpZXMsIHNlcCA9ICcsJykgJT4lIAogIGZpbHRlcihjb3VudHJpZXMgPT0gJ1VTJykgJT4lIAogIGxlZnRfam9pbihuYXRpb25hbGl6ZV9kZiwgYnkgPSBjKCdmb3JlX25hbWUnLCAnbGFzdF9uYW1lJykpICU+JQogIGdyb3VwX2J5KHBtaWQsIGpvdXJuYWwsIHB1YmxpY2F0aW9uX2RhdGUsIHllYXIsIGFkanVzdGVkX2NpdGF0aW9ucykgJT4lCiAgc3VtbWFyaXNlX2F0KHZhcnMoQWZyaWNhbjpTb3V0aEFzaWFuKSwgbWVhbiwgbmEucm0gPSBUKSAlPiUKICB1bmdyb3VwKCkKCmlzY2JfbmF0X2RmIDwtIGtleW5vdGVzICU+JQogIHNlcGFyYXRlX3Jvd3MoYWZmbGNvdW50cmllcywgc2VwID0gJ1xcfCcpICU+JSAKICBmaWx0ZXIoYWZmbGNvdW50cmllcyA9PSAnVW5pdGVkIFN0YXRlcycpICU+JSAKICBsZWZ0X2pvaW4obmF0aW9uYWxpemVfZGYsIGJ5ID0gYygnZm9yZV9uYW1lJywgJ2xhc3RfbmFtZScpKQoKc3RhcnRfeWVhciA8LSAxOTkyCmVuZF95ZWFyIDwtIDIwMTkKbl95ZWFycyA8LSBlbmRfeWVhciAtIHN0YXJ0X3llYXIKbXlfam91cnMgPC0gdW5pcXVlKHB1Ym1lZF9uYXRfZGYkam91cm5hbCkKbXlfY29uZnMgPC0gdW5pcXVlKGlzY2JfbmF0X2RmJGNvbmZlcmVuY2UpCm5fam91cnMgPC0gbGVuZ3RoKG15X2pvdXJzKQpuX2NvbmZzIDwtIGxlbmd0aChteV9jb25mcykKcmVnaW9uX2xldmVscyA8LSBwYXN0ZShjKCdDZWx0aWMvRW5nbGlzaCcsICdFdXJvcGVhbicsICdFYXN0IEFzaWFuJywgJ0hpc3BhbmljJywgJ1NvdXRoIEFzaWFuJywgJ0FyYWJpYycsICdIZWJyZXcnLCAnQWZyaWNhbicsICdOb3JkaWMnLCAnR3JlZWsnKSwgJ25hbWVzJykKCnJlZ2lvbl9jb2xzIDwtIGMoJyNmZmZmYjMnLCAnI2ZjY2RlNScsICcjYjNkZTY5JywgJyNmZGI0NjInLCAnIzgwYjFkMycsICcjOGRkM2M3JywgJyNiZWJhZGEnLCAnI2ZiODA3MicsICcjYmM4MGJkJywgJyNjY2ViYzUnKQpgYGAKCiMjIE9yZ2FuaXplIGRhdGEKClByZXBhcmUgZGF0YSBmcmFtZXMgZm9yIGxhdGVyIGFuYWx5c2VzOgoKLSByYmluZCByZXN1bHRzIG9mIHJhY2UgcHJlZGljdGlvbnMgaW4gaXNjYiBhbmQgUHVibWVkCi0gcGl2b3QgbG9uZwotIGNvbXB1dGUgbWVhbiwgc2QsIG1hcmdpbmFsIGVycm9yCgpgYGB7cn0KaXNjYl9wdWJtZWRfb3RoIDwtIGlzY2JfbmF0X2RmICU+JQogIHJlbmFtZSgnam91cm5hbCcgPSBjb25mZXJlbmNlKSAlPiUKICBzZWxlY3QoeWVhciwgam91cm5hbCwgQWZyaWNhbjpTb3V0aEFzaWFuLCBwdWJsaWNhdGlvbl9kYXRlKSAlPiUKICBtdXRhdGUodHlwZSA9ICdLZXlub3RlIHNwZWFrZXJzL0ZlbGxvd3MnLAogICAgICAgICBhZGp1c3RlZF9jaXRhdGlvbnMgPSAxKSAlPiUKICBiaW5kX3Jvd3MoCiAgICBwdWJtZWRfbmF0X2RmICU+JQogICAgICBzZWxlY3QoeWVhciwgam91cm5hbCwgQWZyaWNhbjpTb3V0aEFzaWFuLCBwdWJsaWNhdGlvbl9kYXRlLCBhZGp1c3RlZF9jaXRhdGlvbnMpICU+JQogICAgICBtdXRhdGUodHlwZSA9ICdQdWJtZWQgYXV0aG9ycycpCiAgKSAlPiUKICBtdXRhdGUoT3RoZXJDYXRlZ29yaWVzID0gU291dGhBc2lhbiArIEhpc3BhbmljICsgSmV3aXNoICsgTXVzbGltICsgTm9yZGljICsgR3JlZWsgKyBBZnJpY2FuKSAlPiUKICBwaXZvdF9sb25nZXIoYyhBZnJpY2FuOlNvdXRoQXNpYW4sIE90aGVyQ2F0ZWdvcmllcyksCiAgICAgICAgICAgICAgIG5hbWVzX3RvID0gJ3JlZ2lvbicsCiAgICAgICAgICAgICAgIHZhbHVlc190byA9ICdwcm9iYWJpbGl0aWVzJykgJT4lCiAgZmlsdGVyKCFpcy5uYShwcm9iYWJpbGl0aWVzKSkgJT4lIAogIGdyb3VwX2J5KHR5cGUsIHllYXIsIHJlZ2lvbikgJT4lCiAgbXV0YXRlKAogICAgcG1jX2NpdGF0aW9uc195ZWFyID0gbWVhbihhZGp1c3RlZF9jaXRhdGlvbnMpLAogICAgd2VpZ2h0ID0gYWRqdXN0ZWRfY2l0YXRpb25zL3BtY19jaXRhdGlvbnNfeWVhciwKICAgIHdlaWdodGVkX3Byb2JzID0gcHJvYmFiaWxpdGllcyp3ZWlnaHQKICApIAoKaXNjYl9wdWJtZWRfc3VtX290aCA8LSBpc2NiX3B1Ym1lZF9vdGggJT4lIAogIHN1bW1hcmlzZSgKICAgIG1lYW5fcHJvYiA9IG1lYW4od2VpZ2h0ZWRfcHJvYnMpLAogICAgc2VfcHJvYiA9IHNxcnQodmFyKHByb2JhYmlsaXRpZXMpICogc3VtKHdlaWdodF4yKS8oc3VtKHdlaWdodCleMikpLAogICAgbWVfcHJvYiA9IGFscGhhX3RocmVzaG9sZCAqIHNlX3Byb2IsCiAgICAuZ3JvdXBzID0gJ2Ryb3AnCiAgKQoKaXNjYl9wdWJtZWRfc3VtIDwtIGlzY2JfcHVibWVkX3N1bV9vdGggJT4lCiAgZmlsdGVyKHJlZ2lvbiAhPSAnT3RoZXJDYXRlZ29yaWVzJykKYGBgCgojIyBGaWd1cmVzIGZvciBwYXBlcgoKYGBge3IgZmlnLmhlaWdodD03LCBmaWcud2lkdGg9OSwgd2FybmluZz1GQUxTRX0KZmlnX3VzX25hbWVfb3JpZ2luYSA8LSBpc2NiX3B1Ym1lZF9zdW0gJT4lCiAgZmlsdGVyKHllYXIgPCAnMjAyMC0wMS0wMScpICU+JQogIHJlZ2lvbl9icmVha2Rvd24oJ21haW4nLCByZWdpb25fbGV2ZWxzLCBmY3RfcmV2KHR5cGUpKSArCiAgZ3VpZGVzKGZpbGwgPSBndWlkZV9sZWdlbmQobnJvdyA9IDIpKQoKbGFyZ2VfcmVnaW9ucyA8LSBjKCdDZWx0aWNFbmdsaXNoJywgJ0Vhc3RBc2lhbicsICdFdXJvcGVhbicsICdPdGhlckNhdGVnb3JpZXMnKQoKIyMgTWVhbiBhbmQgc3RhbmRhcmQgZGV2aWF0aW9uIG9mIHByZWRpY3RlZCBwcm9iYWJpbGl0aWVzOgpmaWdfdXNfbmFtZV9vcmlnaW5iIDwtIGlzY2JfcHVibWVkX3N1bV9vdGggJT4lCiAgZmlsdGVyKHJlZ2lvbiAlaW4lIGxhcmdlX3JlZ2lvbnMpICU+JQogIHJlY29kZV9yZWdpb24oKSAlPiUKICBnYW1fYW5kX2NpKGRmMiA9IGlzY2JfcHVibWVkX290aCAlPiUKICAgICAgICAgICAgICAgZmlsdGVyKHJlZ2lvbiAlaW4lIGxhcmdlX3JlZ2lvbnMpICU+JQogICAgICAgICAgICAgICByZWNvZGVfcmVnaW9uKCksCiAgICAgICAgICAgICBzdGFydF95ID0gc3RhcnRfeWVhciwgZW5kX3kgPSBlbmRfeWVhcikgKyAKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSBjKDAuODgsIDAuODMpLAogICAgICAgIHBhbmVsLmdyaWQubWlub3IgPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgbGVnZW5kLm1hcmdpbiA9IG1hcmdpbigtMC41LCAwLCAwLCAwLCB1bml0PSdjbScpLAogICAgICAgIGxlZ2VuZC50ZXh0ID0gZWxlbWVudF90ZXh0KHNpemUgPSA2KSkgKwogIGZhY2V0X3dyYXAodmFycyhmY3RfcmVsZXZlbChyZWdpb24sIGxhcmdlX3JlZ2lvbnMpKSwgbnJvdyA9IDEpCgpmaWdfdXNfbmFtZV9vcmlnaW4gPC0gY293cGxvdDo6cGxvdF9ncmlkKGZpZ191c19uYW1lX29yaWdpbmEsIGZpZ191c19uYW1lX29yaWdpbmIsIGxhYmVscyA9ICdBVVRPJywgbmNvbCA9IDEsIHJlbF9oZWlnaHRzID0gYygxLjMsMSkpCmZpZ191c19uYW1lX29yaWdpbgpnZ3NhdmUoJ2ZpZ3MvdXNfbmFtZV9vcmlnaW4ucG5nJywgZmlnX3VzX25hbWVfb3JpZ2luLCB3aWR0aCA9IDYuNSwgaGVpZ2h0ID0gNS41KQpnZ3NhdmUoJ2ZpZ3MvdXNfbmFtZV9vcmlnaW4uc3ZnJywgZmlnX3VzX25hbWVfb3JpZ2luLCB3aWR0aCA9IDYuNSwgaGVpZ2h0ID0gNS41KQpgYGAKCiMjIEh5cG90aGVzaXMgdGVzdGluZwoKYGBge3J9CmlzY2JfbG0gPC0gaXNjYl9wdWJtZWRfb3RoICU+JSAKICB1bmdyb3VwKCkgJT4lIAogIG11dGF0ZSgKICAgICMgeWVhciA9IGMoc2NhbGUoeWVhcikpLAogICAgeWVhciA9IGFzLmZhY3Rvcih5ZWFyKSwKICAgIHR5cGUgPSByZWxldmVsKGFzLmZhY3Rvcih0eXBlKSwgcmVmID0gJ1B1Ym1lZCBhdXRob3JzJykpCm1haW5fbG0gPC0gZnVuY3Rpb24ocmVnaW9uaSl7CiAgZ2xtKHR5cGUgfiB5ZWFyICsgd2VpZ2h0ZWRfcHJvYnMsIAogICAgICBkYXRhID0gaXNjYl9sbSAlPiUgCiAgICAgICAgZmlsdGVyKHJlZ2lvbiA9PSByZWdpb25pLCAhaXMubmEod2VpZ2h0ZWRfcHJvYnMpKSwKICAgICAgZmFtaWx5ID0gJ2Jpbm9taWFsJykKfQoKaW50ZV9sbSA8LSBmdW5jdGlvbihyZWdpb25pKXsKICBnbG0odHlwZSB+IHdlaWdodGVkX3Byb2JzKnllYXIsIAogICAgICBkYXRhID0gaXNjYl9sbSAlPiUgCiAgZmlsdGVyKHJlZ2lvbiA9PSByZWdpb25pLCAhaXMubmEod2VpZ2h0ZWRfcHJvYnMpKSwKICAgICAgZmFtaWx5ID0gJ2Jpbm9taWFsJykKfQoKbWFpbl9saXN0IDwtIGxhcHBseShsYXJnZV9yZWdpb25zLCBtYWluX2xtKQoKbmFtZXMobWFpbl9saXN0KSA8LSBsYXJnZV9yZWdpb25zCmxhcHBseShtYWluX2xpc3QsIHN1bW1hcnkpCgppbnRlX2xpc3QgPC0gbGFwcGx5KGxhcmdlX3JlZ2lvbnMsIGludGVfbG0pCmxhcHBseShpbnRlX2xpc3QsIHN1bW1hcnkpCmZvciAoaSBpbiAxOjQpewogIHByaW50KGFub3ZhKG1haW5fbGlzdFtbaV1dLCBpbnRlX2xpc3RbW2ldXSwgdGVzdCA9ICdDaGlzcScpKQp9CmBgYApJbnRlcmFjdGlvbiB0ZXJtcyBkbyBub3QgcHJlZGljdCBgdHlwZWAgb3ZlciBhbmQgYWJvdmUgdGhlIG1haW4gZWZmZWN0IG9mIG5hbWUgb3JpZ2luIHByb2JhYmlsaXR5IGFuZCB5ZWFyIChfcF8gPiAwLjAxKS4KCmBgYHtyIGVjaG8gPSBGfQpnZXRfZXhwIDwtIGZ1bmN0aW9uKGksIGNvbHUpewogIGJyb29tOjp0aWR5KG1haW5fbGlzdFtbaV1dKSAlPiUgCiAgICBmaWx0ZXIodGVybSA9PSAnd2VpZ2h0ZWRfcHJvYnMnKSAlPiUgCiAgICBwdWxsKGNvbHUpIAp9CgpwcmludF9wIDwtIGZ1bmN0aW9uKHgpIHNwcmludGYoIiUwLjVnIiwgeCkKYGBgCgojIyBDb25jbHVzaW9uCgpBbiBFYXN0IEFzaWFuIG5hbWUgaGFzIGByIGV4cChnZXRfZXhwKDIsICdlc3RpbWF0ZScpKWAgdGhlIG9kZHMgb2YgYmVpbmcgc2VsZWN0ZWQgYXMgYW4gaG9ub3JlZSwgc2lnbmlmaWNhbnRseSBsb3dlciBjb21wYXJlZCB0byBvdGhlciBuYW1lcyAoJFxiZXRhX1x0ZXh0cm17RWFzdCBBc2lhbn0gPSQgYHIgcHJpbnRfcChnZXRfZXhwKDIsICdlc3RpbWF0ZScpKWAsIF9QXyA9IGByIHByaW50X3AoZ2V0X2V4cCgyLCAncC52YWx1ZScpKWApLgpUaGUgdHdvIGdyb3VwcyBvZiBzY2llbnRpc3RzIGRpZCBub3QgaGF2ZSBhIHNpZ25pZmljYW50IGFzc29jaWF0aW9uIHdpdGggbmFtZXMgcHJlZGljdGVkIHRvIGJlIENlbHRpYy9FbmdsaXNoIChfUF8gPSBgciBwcmludF9wKGdldF9leHAoMSwgJ3AudmFsdWUnKSlgKSwgRXVyb3BlYW4gKF9QXyA9IGByIHByaW50X3AoZ2V0X2V4cCgzLCAncC52YWx1ZScpKWApLCBvciBpbiBPdGhlciBjYXRlZ29yaWVzIChfUF8gPSBgciBwcmludF9wKGdldF9leHAoNCwgJ3AudmFsdWUnKSlgKS4KCiMjIFN1cHBsZW1lbnQKCiMjIyBTdXBwbGVtZW50YXJ5IEZpZ3VyZSBTNyB7I3N1cF9maWdfczd9Ckl0J3MgZGlmZmljdWx0IHRvIGNvbWUgdG8gYSBjb25jbHVzaW9uIGZvciBvdGhlciByZWdpb25zIHdpdGggc28gZmV3IGRhdGEgcG9pbnRzIGFuZCB0aGUgaW1wZXJmZWN0IGFjY3VyYWN5IG9mIG91ciBwcmVkaWN0aW9uLgpUaGVyZSBzZWVtcyB0byBiZSBsaXR0bGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBwcm9wb3J0aW9uIG9mIGtleW5vdGUgc3BlYWtlcnMgb2YgQWZyaWNhbiwgQXJhYmljLCBTb3V0aCBBc2lhbiBhbmQgSGlzcGFuaWMgb3JpZ2luIHRoYW4gdGhvc2UgaW4gdGhlIGZpZWxkLgpIb3dldmVyLCBqdXN0IGJlY2F1c2UgYSBuYXRpb25hbGl0eSBpc24ndCB1bmRlcnJlcHJlc2VudGVkIGFnYWluc3QgdGhlIGZpZWxkIGRvZXNuJ3QgbWVhbiBzY2llbnRpc3RzIGZyb20gdGhhdCBuYXRpb25hbGl0eSBhcmUgYXBwcm9wcmlhdGVseSByZXByZXNlbnRlZC4KCmBgYHtyIGZpZy5oZWlnaHQ9Niwgd2FybmluZz1GQUxTRX0KZGYyIDwtIGlzY2JfcHVibWVkX290aCAlPiUgCiAgZmlsdGVyKHJlZ2lvbiAhPSAnT3RoZXJDYXRlZ29yaWVzJykgJT4lIAogIHJlY29kZV9yZWdpb24oKQoKZmlnX3M3IDwtIGlzY2JfcHVibWVkX3N1bSAlPiUKICByZWNvZGVfcmVnaW9uKCkgJT4lCiAgZ2FtX2FuZF9jaShkZjIgPSBkZjIsCiAgICAgICAgICAgICBzdGFydF95ID0gc3RhcnRfeWVhciwgZW5kX3kgPSBlbmRfeWVhcikgKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9IGMoMC44LCAwLjEpKSArCiAgZmFjZXRfd3JhcCh2YXJzKGZjdF9yZWxldmVsKHJlZ2lvbiwgcmVnaW9uX2xldmVscykpLCBuY29sID0gMykKICAKZmlnX3M3Cmdnc2F2ZSgnZmlncy9maWdfczcucG5nJywgZmlnX3M3LCB3aWR0aCA9IDYsIGhlaWdodCA9IDYpCmdnc2F2ZSgnZmlncy9maWdfczcuc3ZnJywgZmlnX3M3LCB3aWR0aCA9IDYsIGhlaWdodCA9IDYpCmBgYAoKCmBgYHtyfQpzZXNzaW9uSW5mbygpCmBgYAo=
    +
    LS0tCnRpdGxlOiAiUmVwcmVzZW50YXRpb24gYW5hbHlzaXMgb2YgbmFtZSBvcmlnaW4gaW4gdGhlIFVTIgotLS0KCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeShsdWJyaWRhdGUpCnNvdXJjZSgidXRpbHMvci11dGlscy5SIikKdGhlbWVfc2V0KHRoZW1lX2J3KCkgKyB0aGVtZShsZWdlbmQudGl0bGUgPSBlbGVtZW50X2JsYW5rKCkpKQpgYGAKCk9ubHkga2VlcCBhcnRpY2xlcyBmcm9tIDIwMDIgYmVjYXVzZSBmZXcgYXV0aG9ycyBoYWQgbmF0aW9uYWxpdHkgcHJlZGljdGlvbnMgYmVmb3JlIDIwMDIgKG1vc3RseSBkdWUgdG8gbWlzc2luZyBtZXRhZGF0YSkuClNlZSBbMDkzLnN1bW1hcnktc3RhdHNdKGRvY3MvMDkzLnN1bW1hcnktc3RhdHMuaHRtbCkgZm9yIG1vcmUgZGV0YWlscy4KCmBgYHtyfQpsb2FkKCJSZGF0YS9yYXdzLlJkYXRhIikKCmFscGhhX3RocmVzaG9sZCA8LSBxbm9ybSgwLjk3NSkKCnB1Ym1lZF9uYXRfZGYgPC0gY29ycl9hdXRob3JzICU+JQogIGZpbHRlcih5ZWFyKHllYXIpID49IDIwMDIpICU+JQogIHNlcGFyYXRlX3Jvd3MoY291bnRyaWVzLCBzZXAgPSAiLCIpICU+JQogIGZpbHRlcihjb3VudHJpZXMgPT0gIlVTIikgJT4lCiAgbGVmdF9qb2luKG5hdGlvbmFsaXplX2RmLCBieSA9IGMoImZvcmVfbmFtZSIsICJsYXN0X25hbWUiKSkgJT4lCiAgZ3JvdXBfYnkocG1pZCwgam91cm5hbCwgcHVibGljYXRpb25fZGF0ZSwgeWVhciwgYWRqdXN0ZWRfY2l0YXRpb25zKSAlPiUKICBzdW1tYXJpc2VfYXQodmFycyhBZnJpY2FuOlNvdXRoQXNpYW4pLCBtZWFuLCBuYS5ybSA9IFQpICU+JQogIHVuZ3JvdXAoKQoKaXNjYl9uYXRfZGYgPC0ga2V5bm90ZXMgJT4lCiAgc2VwYXJhdGVfcm93cyhhZmZsY291bnRyaWVzLCBzZXAgPSAiXFx8IikgJT4lCiAgZmlsdGVyKGFmZmxjb3VudHJpZXMgPT0gIlVuaXRlZCBTdGF0ZXMiKSAlPiUKICBsZWZ0X2pvaW4obmF0aW9uYWxpemVfZGYsIGJ5ID0gYygiZm9yZV9uYW1lIiwgImxhc3RfbmFtZSIpKQoKc3RhcnRfeWVhciA8LSAxOTkyCmVuZF95ZWFyIDwtIDIwMTkKbl95ZWFycyA8LSBlbmRfeWVhciAtIHN0YXJ0X3llYXIKbXlfam91cnMgPC0gdW5pcXVlKHB1Ym1lZF9uYXRfZGYkam91cm5hbCkKbXlfY29uZnMgPC0gdW5pcXVlKGlzY2JfbmF0X2RmJGNvbmZlcmVuY2UpCm5fam91cnMgPC0gbGVuZ3RoKG15X2pvdXJzKQpuX2NvbmZzIDwtIGxlbmd0aChteV9jb25mcykKcmVnaW9uX2xldmVscyA8LSBwYXN0ZShjKCJDZWx0aWMvRW5nbGlzaCIsICJFdXJvcGVhbiIsICJFYXN0IEFzaWFuIiwgIkhpc3BhbmljIiwgIlNvdXRoIEFzaWFuIiwgIkFyYWJpYyIsICJIZWJyZXciLCAiQWZyaWNhbiIsICJOb3JkaWMiLCAiR3JlZWsiKSwgIm5hbWVzIikKCnJlZ2lvbl9jb2xzIDwtIGMoIiNmZmZmYjMiLCAiI2ZjY2RlNSIsICIjYjNkZTY5IiwgIiNmZGI0NjIiLCAiIzgwYjFkMyIsICIjOGRkM2M3IiwgIiNiZWJhZGEiLCAiI2ZiODA3MiIsICIjYmM4MGJkIiwgIiNjY2ViYzUiKQpgYGAKCiMjIE9yZ2FuaXplIGRhdGEKClByZXBhcmUgZGF0YSBmcmFtZXMgZm9yIGxhdGVyIGFuYWx5c2VzOgoKLSByYmluZCByZXN1bHRzIG9mIHJhY2UgcHJlZGljdGlvbnMgaW4gaXNjYiBhbmQgUHVibWVkCi0gcGl2b3QgbG9uZwotIGNvbXB1dGUgbWVhbiwgc2QsIG1hcmdpbmFsIGVycm9yCgpgYGB7cn0KaXNjYl9wdWJtZWRfb3RoIDwtIGlzY2JfbmF0X2RmICU+JQogIHJlbmFtZSgiam91cm5hbCIgPSBjb25mZXJlbmNlKSAlPiUKICBzZWxlY3QoeWVhciwgam91cm5hbCwgQWZyaWNhbjpTb3V0aEFzaWFuLCBwdWJsaWNhdGlvbl9kYXRlKSAlPiUKICBtdXRhdGUoCiAgICB0eXBlID0gIktleW5vdGUgc3BlYWtlcnMvRmVsbG93cyIsCiAgICBhZGp1c3RlZF9jaXRhdGlvbnMgPSAxCiAgKSAlPiUKICBiaW5kX3Jvd3MoCiAgICBwdWJtZWRfbmF0X2RmICU+JQogICAgICBzZWxlY3QoeWVhciwgam91cm5hbCwgQWZyaWNhbjpTb3V0aEFzaWFuLCBwdWJsaWNhdGlvbl9kYXRlLCBhZGp1c3RlZF9jaXRhdGlvbnMpICU+JQogICAgICBtdXRhdGUodHlwZSA9ICJQdWJtZWQgYXV0aG9ycyIpCiAgKSAlPiUKICBtdXRhdGUoT3RoZXJDYXRlZ29yaWVzID0gU291dGhBc2lhbiArIEhpc3BhbmljICsgSmV3aXNoICsgTXVzbGltICsgTm9yZGljICsgR3JlZWsgKyBBZnJpY2FuKSAlPiUKICBwaXZvdF9sb25nZXIoYyhBZnJpY2FuOlNvdXRoQXNpYW4sIE90aGVyQ2F0ZWdvcmllcyksCiAgICBuYW1lc190byA9ICJyZWdpb24iLAogICAgdmFsdWVzX3RvID0gInByb2JhYmlsaXRpZXMiCiAgKSAlPiUKICBmaWx0ZXIoIWlzLm5hKHByb2JhYmlsaXRpZXMpKSAlPiUKICBncm91cF9ieSh0eXBlLCB5ZWFyLCByZWdpb24pICU+JQogIG11dGF0ZSgKICAgIHBtY19jaXRhdGlvbnNfeWVhciA9IG1lYW4oYWRqdXN0ZWRfY2l0YXRpb25zKSwKICAgIHdlaWdodCA9IGFkanVzdGVkX2NpdGF0aW9ucyAvIHBtY19jaXRhdGlvbnNfeWVhciwKICAgIHdlaWdodGVkX3Byb2JzID0gcHJvYmFiaWxpdGllcyAqIHdlaWdodAogICkKCmlzY2JfcHVibWVkX3N1bV9vdGggPC0gaXNjYl9wdWJtZWRfb3RoICU+JQogIHN1bW1hcmlzZSgKICAgIG1lYW5fcHJvYiA9IG1lYW4od2VpZ2h0ZWRfcHJvYnMpLAogICAgc2VfcHJvYiA9IHNxcnQodmFyKHByb2JhYmlsaXRpZXMpICogc3VtKHdlaWdodF4yKSAvIChzdW0od2VpZ2h0KV4yKSksCiAgICBtZV9wcm9iID0gYWxwaGFfdGhyZXNob2xkICogc2VfcHJvYiwKICAgIC5ncm91cHMgPSAiZHJvcCIKICApCgppc2NiX3B1Ym1lZF9zdW0gPC0gaXNjYl9wdWJtZWRfc3VtX290aCAlPiUKICBmaWx0ZXIocmVnaW9uICE9ICJPdGhlckNhdGVnb3JpZXMiKQpgYGAKCiMjIEZpZ3VyZXMgZm9yIHBhcGVyCgpgYGB7ciBmaWcuaGVpZ2h0PTcsIGZpZy53aWR0aD05LCB3YXJuaW5nPUZBTFNFfQpmaWdfdXNfbmFtZV9vcmlnaW5hIDwtIGlzY2JfcHVibWVkX3N1bSAlPiUKICBmaWx0ZXIoeWVhciA8ICIyMDIwLTAxLTAxIikgJT4lCiAgcmVnaW9uX2JyZWFrZG93bigibWFpbiIsIHJlZ2lvbl9sZXZlbHMsIGZjdF9yZXYodHlwZSkpICsKICBndWlkZXMoZmlsbCA9IGd1aWRlX2xlZ2VuZChucm93ID0gMikpCgpsYXJnZV9yZWdpb25zIDwtIGMoIkNlbHRpY0VuZ2xpc2giLCAiRWFzdEFzaWFuIiwgIkV1cm9wZWFuIiwgIk90aGVyQ2F0ZWdvcmllcyIpCgojIyBNZWFuIGFuZCBzdGFuZGFyZCBkZXZpYXRpb24gb2YgcHJlZGljdGVkIHByb2JhYmlsaXRpZXM6CmZpZ191c19uYW1lX29yaWdpbmIgPC0gaXNjYl9wdWJtZWRfc3VtX290aCAlPiUKICBmaWx0ZXIocmVnaW9uICVpbiUgbGFyZ2VfcmVnaW9ucykgJT4lCiAgcmVjb2RlX3JlZ2lvbigpICU+JQogIGdhbV9hbmRfY2koCiAgICBkZjIgPSBpc2NiX3B1Ym1lZF9vdGggJT4lCiAgICAgIGZpbHRlcihyZWdpb24gJWluJSBsYXJnZV9yZWdpb25zKSAlPiUKICAgICAgcmVjb2RlX3JlZ2lvbigpLAogICAgc3RhcnRfeSA9IHN0YXJ0X3llYXIsIGVuZF95ID0gZW5kX3llYXIKICApICsKICB0aGVtZSgKICAgIGxlZ2VuZC5wb3NpdGlvbiA9IGMoMC44OCwgMC44MyksCiAgICBwYW5lbC5ncmlkLm1pbm9yID0gZWxlbWVudF9ibGFuaygpLAogICAgbGVnZW5kLm1hcmdpbiA9IG1hcmdpbigtMC41LCAwLCAwLCAwLCB1bml0ID0gImNtIiksCiAgICBsZWdlbmQudGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID0gNikKICApICsKICBmYWNldF93cmFwKHZhcnMoZmN0X3JlbGV2ZWwocmVnaW9uLCBsYXJnZV9yZWdpb25zKSksIG5yb3cgPSAxKQoKZmlnX3VzX25hbWVfb3JpZ2luIDwtIGNvd3Bsb3Q6OnBsb3RfZ3JpZChmaWdfdXNfbmFtZV9vcmlnaW5hLCBmaWdfdXNfbmFtZV9vcmlnaW5iLCBsYWJlbHMgPSAiQVVUTyIsIG5jb2wgPSAxLCByZWxfaGVpZ2h0cyA9IGMoMS4zLCAxKSkKZmlnX3VzX25hbWVfb3JpZ2luCmdnc2F2ZSgiZmlncy91c19uYW1lX29yaWdpbi5wbmciLCBmaWdfdXNfbmFtZV9vcmlnaW4sIHdpZHRoID0gNi41LCBoZWlnaHQgPSA1LjUpCmdnc2F2ZSgiZmlncy91c19uYW1lX29yaWdpbi5zdmciLCBmaWdfdXNfbmFtZV9vcmlnaW4sIHdpZHRoID0gNi41LCBoZWlnaHQgPSA1LjUpCmBgYAoKIyMgSHlwb3RoZXNpcyB0ZXN0aW5nCgpgYGB7cn0KaXNjYl9sbSA8LSBpc2NiX3B1Ym1lZF9vdGggJT4lCiAgdW5ncm91cCgpICU+JQogIG11dGF0ZSgKICAgICMgeWVhciA9IGMoc2NhbGUoeWVhcikpLAogICAgIyB5ZWFyID0gYXMuZmFjdG9yKHllYXIpLAogICAgdHlwZSA9IHJlbGV2ZWwoYXMuZmFjdG9yKHR5cGUpLCByZWYgPSAiUHVibWVkIGF1dGhvcnMiKQogICkKbWFpbl9sbSA8LSBmdW5jdGlvbihyZWdpb25pKSB7CiAgZ2xtKHR5cGUgfiB5ZWFyICsgd2VpZ2h0ZWRfcHJvYnMsCiAgICBkYXRhID0gaXNjYl9sbSAlPiUKICAgICAgZmlsdGVyKHJlZ2lvbiA9PSByZWdpb25pLCAhaXMubmEod2VpZ2h0ZWRfcHJvYnMpLCB5ZWFyKHllYXIpID49IDIwMDIpLAogICAgZmFtaWx5ID0gImJpbm9taWFsIgogICkKfQoKaW50ZV9sbSA8LSBmdW5jdGlvbihyZWdpb25pKSB7CiAgZ2xtKHR5cGUgfiB3ZWlnaHRlZF9wcm9icyAqIHllYXIsCiAgICBkYXRhID0gaXNjYl9sbSAlPiUKICAgICAgZmlsdGVyKHJlZ2lvbiA9PSByZWdpb25pLCAhaXMubmEod2VpZ2h0ZWRfcHJvYnMpLCB5ZWFyKHllYXIpID49IDIwMDIpLAogICAgZmFtaWx5ID0gImJpbm9taWFsIgogICkKfQoKbWFpbl9saXN0IDwtIGxhcHBseShsYXJnZV9yZWdpb25zLCBtYWluX2xtKQoKbmFtZXMobWFpbl9saXN0KSA8LSBsYXJnZV9yZWdpb25zCmxhcHBseShtYWluX2xpc3QsIGJyb29tOjp0aWR5KQoKaW50ZV9saXN0IDwtIGxhcHBseShsYXJnZV9yZWdpb25zLCBpbnRlX2xtKQpsYXBwbHkoaW50ZV9saXN0LCBicm9vbTo6dGlkeSkKZm9yIChpIGluIDE6NCkgewogIHByaW50KGFub3ZhKG1haW5fbGlzdFtbaV1dLCBpbnRlX2xpc3RbW2ldXSwgdGVzdCA9ICJDaGlzcSIpKQp9CmBgYApJbnRlcmFjdGlvbiB0ZXJtcyBkbyBub3QgcHJlZGljdCBgdHlwZWAgb3ZlciBhbmQgYWJvdmUgdGhlIG1haW4gZWZmZWN0IG9mIG5hbWUgb3JpZ2luIHByb2JhYmlsaXR5IGFuZCB5ZWFyIChfcF8gPiAwLjAxKS4KCmBgYHtyIGVjaG8gPSBGfQpnZXRfZXhwIDwtIGZ1bmN0aW9uKGksIGNvbHUpIHsKICBicm9vbTo6dGlkeShtYWluX2xpc3RbW2ldXSkgJT4lCiAgICBmaWx0ZXIodGVybSA9PSAid2VpZ2h0ZWRfcHJvYnMiKSAlPiUKICAgIHB1bGwoY29sdSkKfQoKcHJpbnRfcCA8LSBmdW5jdGlvbih4KSBzcHJpbnRmKCIlMC41ZyIsIHgpCmBgYAoKIyMgQ29uY2x1c2lvbgoKQW4gRWFzdCBBc2lhbiBuYW1lIGhhcyBgciBleHAoZ2V0X2V4cCgyLCAnZXN0aW1hdGUnKSlgIHRoZSBvZGRzIG9mIGJlaW5nIHNlbGVjdGVkIGFzIGFuIGhvbm9yZWUsIHNpZ25pZmljYW50bHkgbG93ZXIgY29tcGFyZWQgdG8gb3RoZXIgbmFtZXMgKCRcYmV0YV9cdGV4dHJte0Vhc3QgQXNpYW59ID0kIGByIHByaW50X3AoZ2V0X2V4cCgyLCAnZXN0aW1hdGUnKSlgLCBfUF8gPSBgciBwcmludF9wKGdldF9leHAoMiwgJ3AudmFsdWUnKSlgKS4KVGhlIHR3byBncm91cHMgb2Ygc2NpZW50aXN0cyBkaWQgbm90IGhhdmUgYSBzaWduaWZpY2FudCBhc3NvY2lhdGlvbiB3aXRoIG5hbWVzIHByZWRpY3RlZCB0byBiZSBDZWx0aWMvRW5nbGlzaCAoX1BfID0gYHIgcHJpbnRfcChnZXRfZXhwKDEsICdwLnZhbHVlJykpYCksIEV1cm9wZWFuIChfUF8gPSBgciBwcmludF9wKGdldF9leHAoMywgJ3AudmFsdWUnKSlgKSwgb3IgaW4gT3RoZXIgY2F0ZWdvcmllcyAoX1BfID0gYHIgcHJpbnRfcChnZXRfZXhwKDQsICdwLnZhbHVlJykpYCkuCgojIyBTdXBwbGVtZW50CgojIyMgU3VwcGxlbWVudGFyeSBGaWd1cmUgUzcgeyNzdXBfZmlnX3M3fQpJdCdzIGRpZmZpY3VsdCB0byBjb21lIHRvIGEgY29uY2x1c2lvbiBmb3Igb3RoZXIgcmVnaW9ucyB3aXRoIHNvIGZldyBkYXRhIHBvaW50cyBhbmQgdGhlIGltcGVyZmVjdCBhY2N1cmFjeSBvZiBvdXIgcHJlZGljdGlvbi4KVGhlcmUgc2VlbXMgdG8gYmUgbGl0dGxlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgcHJvcG9ydGlvbiBvZiBrZXlub3RlIHNwZWFrZXJzIG9mIEFmcmljYW4sIEFyYWJpYywgU291dGggQXNpYW4gYW5kIEhpc3BhbmljIG9yaWdpbiB0aGFuIHRob3NlIGluIHRoZSBmaWVsZC4KSG93ZXZlciwganVzdCBiZWNhdXNlIGEgbmF0aW9uYWxpdHkgaXNuJ3QgdW5kZXJyZXByZXNlbnRlZCBhZ2FpbnN0IHRoZSBmaWVsZCBkb2Vzbid0IG1lYW4gc2NpZW50aXN0cyBmcm9tIHRoYXQgbmF0aW9uYWxpdHkgYXJlIGFwcHJvcHJpYXRlbHkgcmVwcmVzZW50ZWQuCgpgYGB7ciBmaWcuaGVpZ2h0PTYsIHdhcm5pbmc9RkFMU0V9CmRmMiA8LSBpc2NiX3B1Ym1lZF9vdGggJT4lCiAgZmlsdGVyKHJlZ2lvbiAhPSAiT3RoZXJDYXRlZ29yaWVzIikgJT4lCiAgcmVjb2RlX3JlZ2lvbigpCgpmaWdfczcgPC0gaXNjYl9wdWJtZWRfc3VtICU+JQogIHJlY29kZV9yZWdpb24oKSAlPiUKICBnYW1fYW5kX2NpKAogICAgZGYyID0gZGYyLAogICAgc3RhcnRfeSA9IHN0YXJ0X3llYXIsIGVuZF95ID0gZW5kX3llYXIKICApICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSBjKDAuOCwgMC4xKSkgKwogIGZhY2V0X3dyYXAodmFycyhmY3RfcmVsZXZlbChyZWdpb24sIHJlZ2lvbl9sZXZlbHMpKSwgbmNvbCA9IDMpCgpmaWdfczcKZ2dzYXZlKCJmaWdzL2ZpZ19zNy5wbmciLCBmaWdfczcsIHdpZHRoID0gNiwgaGVpZ2h0ID0gNikKZ2dzYXZlKCJmaWdzL2ZpZ19zNy5zdmciLCBmaWdfczcsIHdpZHRoID0gNiwgaGVpZ2h0ID0gNikKYGBgCgoKYGBge3J9CnNlc3Npb25JbmZvKCkKYGBgCg==
    diff --git a/docs/15.analyze-2020.html b/docs/15.analyze-2020.html index 92a096f..237c854 100644 --- a/docs/15.analyze-2020.html +++ b/docs/15.analyze-2020.html @@ -1795,48 +1795,60 @@

    Name origins

    ## BLAS/LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.8.so ## ## locale: -## [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8 -## [4] LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 LC_MESSAGES=C -## [7] LC_PAPER=en_US.UTF-8 LC_NAME=C LC_ADDRESS=C -## [10] LC_TELEPHONE=C LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C +## [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C +## [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 +## [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=C +## [7] LC_PAPER=en_US.UTF-8 LC_NAME=C +## [9] LC_ADDRESS=C LC_TELEPHONE=C +## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C ## ## attached base packages: ## [1] stats graphics grDevices utils datasets methods base ## ## other attached packages: -## [1] broom_0.7.2 DT_0.16 epitools_0.5-10.1 gdtools_0.2.2 -## [5] wru_0.1-10 rnaturalearth_0.1.0 lubridate_1.7.9.2 caret_6.0-86 -## [9] lattice_0.20-41 forcats_0.5.0 stringr_1.4.0 dplyr_1.0.2 -## [13] purrr_0.3.4 readr_1.4.0 tidyr_1.1.2 tibble_3.0.4 -## [17] ggplot2_3.3.2 tidyverse_1.3.0 +## [1] broom_0.7.2 DT_0.16 epitools_0.5-10.1 +## [4] gdtools_0.2.2 wru_0.1-10 rnaturalearth_0.1.0 +## [7] lubridate_1.7.9.2 caret_6.0-86 lattice_0.20-41 +## [10] forcats_0.5.0 stringr_1.4.0 dplyr_1.0.2 +## [13] purrr_0.3.4 readr_1.4.0 tidyr_1.1.2 +## [16] tibble_3.0.4 ggplot2_3.3.2 tidyverse_1.3.0 ## ## loaded via a namespace (and not attached): -## [1] colorspace_2.0-0 ellipsis_0.3.1 class_7.3-17 rprojroot_1.3-2 -## [5] fs_1.5.0 rstudioapi_0.12 farver_2.0.3 remotes_2.2.0 -## [9] prodlim_2019.11.13 fansi_0.4.1 xml2_1.3.2 codetools_0.2-16 -## [13] splines_4.0.3 knitr_1.30 pkgload_1.1.0 jsonlite_1.7.1 -## [17] pROC_1.16.2 dbplyr_2.0.0 rgeos_0.5-5 compiler_4.0.3 -## [21] httr_1.4.2 backports_1.2.0 assertthat_0.2.1 Matrix_1.2-18 -## [25] cli_2.1.0 htmltools_0.5.0 prettyunits_1.1.1 tools_4.0.3 -## [29] gtable_0.3.0 glue_1.4.2 rnaturalearthdata_0.1.0 reshape2_1.4.4 -## [33] Rcpp_1.0.5 cellranger_1.1.0 vctrs_0.3.4 svglite_1.2.3.2 -## [37] nlme_3.1-149 iterators_1.0.13 crosstalk_1.1.0.1 timeDate_3043.102 -## [41] gower_0.2.2 xfun_0.19 ps_1.4.0 testthat_3.0.0 -## [45] rvest_0.3.6 lifecycle_0.2.0 devtools_2.3.2 MASS_7.3-53 -## [49] scales_1.1.1 ipred_0.9-9 hms_0.5.3 RColorBrewer_1.1-2 -## [53] yaml_2.2.1 curl_4.3 memoise_1.1.0 rpart_4.1-15 -## [57] stringi_1.5.3 desc_1.2.0 foreach_1.5.1 e1071_1.7-4 -## [61] pkgbuild_1.1.0 lava_1.6.8.1 systemfonts_0.3.2 rlang_0.4.8 -## [65] pkgconfig_2.0.3 evaluate_0.14 sf_0.9-6 recipes_0.1.15 -## [69] htmlwidgets_1.5.2 labeling_0.4.2 cowplot_1.1.0 tidyselect_1.1.0 -## [73] processx_3.4.4 plyr_1.8.6 magrittr_1.5 R6_2.5.0 -## [77] generics_0.1.0 DBI_1.1.0 mgcv_1.8-33 pillar_1.4.6 -## [81] haven_2.3.1 withr_2.3.0 units_0.6-7 survival_3.2-7 -## [85] sp_1.4-4 nnet_7.3-14 modelr_0.1.8 crayon_1.3.4 -## [89] KernSmooth_2.23-17 utf8_1.1.4 rmarkdown_2.5 usethis_1.6.3 -## [93] grid_4.0.3 readxl_1.3.1 data.table_1.13.2 callr_3.5.1 -## [97] ModelMetrics_1.2.2.2 reprex_0.3.0 digest_0.6.27 classInt_0.4-3 -## [101] stats4_4.0.3 munsell_0.5.0 viridisLite_0.3.0 sessioninfo_1.1.1 +## [1] colorspace_2.0-0 ellipsis_0.3.1 class_7.3-17 +## [4] rprojroot_1.3-2 fs_1.5.0 rstudioapi_0.12 +## [7] farver_2.0.3 remotes_2.2.0 prodlim_2019.11.13 +## [10] fansi_0.4.1 xml2_1.3.2 codetools_0.2-16 +## [13] splines_4.0.3 knitr_1.30 pkgload_1.1.0 +## [16] jsonlite_1.7.1 pROC_1.16.2 dbplyr_2.0.0 +## [19] rgeos_0.5-5 compiler_4.0.3 httr_1.4.2 +## [22] backports_1.2.0 assertthat_0.2.1 Matrix_1.2-18 +## [25] cli_2.1.0 htmltools_0.5.0 prettyunits_1.1.1 +## [28] tools_4.0.3 gtable_0.3.0 glue_1.4.2 +## [31] rnaturalearthdata_0.1.0 reshape2_1.4.4 Rcpp_1.0.5 +## [34] cellranger_1.1.0 vctrs_0.3.4 svglite_1.2.3.2 +## [37] nlme_3.1-149 iterators_1.0.13 crosstalk_1.1.0.1 +## [40] timeDate_3043.102 gower_0.2.2 xfun_0.19 +## [43] ps_1.4.0 testthat_3.0.0 rvest_0.3.6 +## [46] lifecycle_0.2.0 devtools_2.3.2 MASS_7.3-53 +## [49] scales_1.1.1 ipred_0.9-9 hms_0.5.3 +## [52] RColorBrewer_1.1-2 yaml_2.2.1 curl_4.3 +## [55] memoise_1.1.0 rpart_4.1-15 stringi_1.5.3 +## [58] desc_1.2.0 foreach_1.5.1 e1071_1.7-4 +## [61] pkgbuild_1.1.0 lava_1.6.8.1 systemfonts_0.3.2 +## [64] rlang_0.4.8 pkgconfig_2.0.3 evaluate_0.14 +## [67] sf_0.9-6 recipes_0.1.15 htmlwidgets_1.5.2 +## [70] labeling_0.4.2 cowplot_1.1.0 tidyselect_1.1.0 +## [73] processx_3.4.4 plyr_1.8.6 magrittr_1.5 +## [76] R6_2.5.0 generics_0.1.0 DBI_1.1.0 +## [79] mgcv_1.8-33 pillar_1.4.6 haven_2.3.1 +## [82] withr_2.3.0 units_0.6-7 survival_3.2-7 +## [85] sp_1.4-4 nnet_7.3-14 modelr_0.1.8 +## [88] crayon_1.3.4 KernSmooth_2.23-17 utf8_1.1.4 +## [91] rmarkdown_2.5 usethis_1.6.3 grid_4.0.3 +## [94] readxl_1.3.1 data.table_1.13.2 callr_3.5.1 +## [97] ModelMetrics_1.2.2.2 reprex_0.3.0 digest_0.6.27 +## [100] classInt_0.4-3 stats4_4.0.3 munsell_0.5.0 +## [103] viridisLite_0.3.0 sessioninfo_1.1.1
    LS0tCnRpdGxlOiAiQW5hbHl6aW5nIDIwMjAgZGF0YTogSVNDQiBGZWxsb3dzIGFuZCBJU01CIFNwZWFrZXJzIgpvdXRwdXQ6IGh0bWxfZG9jdW1lbnQKLS0tCgpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0KbGlicmFyeSh0aWR5dmVyc2UpCmxpYnJhcnkobHVicmlkYXRlKQpzb3VyY2UoJ3V0aWxzL3ItdXRpbHMuUicpCmxvYWQoJ1JkYXRhL3Jhd3MuUmRhdGEnKQp0aGVtZV9zZXQodGhlbWVfYncoKSArIHRoZW1lKGxlZ2VuZC50aXRsZSA9IGVsZW1lbnRfYmxhbmsoKSkpCmBgYAoKIyMgR2VuZGVyCgpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQphbHBoYV90aHJlc2hvbGQgPC0gcW5vcm0oMC45NzUpCgphbGxfZnVsbF9uYW1lcyA8LSByZWFkX3RzdignZGF0YS9uYW1lcy9mdWxsLW5hbWVzLnRzdi54eicpICU+JSBkaXN0aW5jdCgpCmdlbmRlcl9kZiA8LSByZWFkX3RzdignZGF0YS9nZW5kZXIvZ2VuZGVyaXplLnRzdicpCgojIHdvcmxkIDwtIG5lX2NvdW50cmllcyhzY2FsZT0nbWVkaXVtJyxyZXR1cm5jbGFzcyA9ICdzZicpIApuYXRfdG9fcmVnIDwtIHdvcmxkICU+JSAKICBzZWxlY3QoaXNvX2EyLCBuYW1lLCByZWdpb25fd2IpICU+JQogIHJlbmFtZSgnY291bnRyaWVzJyA9IGlzb19hMiwKICAgICAgICAgJ2NvdW50cnlfbmFtZScgPSBuYW1lLAogICAgICAgICAncmVnaW9uJyA9IHJlZ2lvbl93YikKCmlzY2JfZ2VuZGVyX2RmIDwtIHJlYWRfdHN2KCdkYXRhL2lzY2Iva2V5bm90ZXMudHN2JykgJT4lCiAgbXV0YXRlKHB1YmxpY2F0aW9uX2RhdGUgPSB5bWQoeWVhciwgdHJ1bmNhdGVkID0gMiksCiAgICAgICAgIHllYXIgPSB5bWQoeWVhciwgdHJ1bmNhdGVkID0gMikpICU+JSAKICBsZWZ0X2pvaW4oYWxsX2Z1bGxfbmFtZXMsIGJ5ID0gYygnZm9yZV9uYW1lJywgJ2xhc3RfbmFtZScpKSAlPiUgCiAgbGVmdF9qb2luKGdlbmRlcl9kZiwgYnkgPSAnZm9yZV9uYW1lX3NpbXBsZScpICU+JSAKICBmaWx0ZXIoY29uZmVyZW5jZSAhPSAnUFNCJywgeWVhciA9PSAnMjAyMC0wMS0wMScpIAoKc3RhcnRfeWVhciA8LSAxOTkzCmVuZF95ZWFyIDwtIDIwMTkKbl95ZWFycyA8LSBlbmRfeWVhciAtIHN0YXJ0X3llYXIKbXlfY29uZnMgPC0gdW5pcXVlKGlzY2JfZ2VuZGVyX2RmJGNvbmZlcmVuY2UpCm5fY29uZnMgPC0gbGVuZ3RoKG15X2NvbmZzKQoKYGBgCgoKYGBge3J9CnRhYmxlKGlzY2JfZ2VuZGVyX2RmJGFmZmxjb3VudHJpZXMpCm1lYW4oaXNjYl9nZW5kZXJfZGYkcHJvYmFiaWxpdHlfbWFsZSwgbmEucm0gPSBUKQpgYGAKClByb3BvcnRpb24gb2YgVVMgYWZmaWxpYXRpb246IDc2LjQ3XCUuCk1lYW4gcHJvYmFiaWxpdHkgb2YgYmVpbmcgbWFsZTogNTguNDRcJS4KCiMjIE5hbWUgb3JpZ2lucwoKYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KbmF0aW9uYWxpemVfZGYgPC0gcmVhZF90c3YoJ2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9ncmVlbmVsYWIvd2lraS1uYXRpb25hbGl0eS1lc3RpbWF0ZS83YzIyZDBhNWY2NjFjZTVhZWI3ODUyMTUwOTVkZWRhNDA5NzNmZjE3L2RhdGEvTmFtZVByaXNtX3Jlc3VsdHNfYXV0aG9ycy50c3YnKSAlPiUKICByZW5hbWUoJ2Z1bGxfbmFtZScgPSBYMSkgJT4lCiAgZGlzdGluY3QoZnVsbF9uYW1lLCAua2VlcF9hbGwgPSBUKSAlPiUKICBsZWZ0X2pvaW4oYWxsX2Z1bGxfbmFtZXMsIGJ5ID0gJ2Z1bGxfbmFtZScpCgppc2NiX25hdF9kZiA8LSByZWFkX3RzdignZGF0YS9pc2NiL2tleW5vdGVzLnRzdicpICU+JQogIG11dGF0ZShwdWJsaWNhdGlvbl9kYXRlID0geW1kKHllYXIsIHRydW5jYXRlZCA9IDIpLAogICAgICAgICB5ZWFyID0geW1kKHllYXIsIHRydW5jYXRlZCA9IDIpKSAlPiUKICBsZWZ0X2pvaW4oYWxsX2Z1bGxfbmFtZXMsIGJ5ID0gYygnZm9yZV9uYW1lJywgJ2xhc3RfbmFtZScpKSAlPiUKICBsZWZ0X2pvaW4obmF0aW9uYWxpemVfZGYsIGJ5ID0gYygnZm9yZV9uYW1lJywgJ2xhc3RfbmFtZV9zaW1wbGUnKSkgJT4lIAogIGZpbHRlcihjb25mZXJlbmNlICE9ICdQU0InLCB5ZWFyID09ICcyMDIwLTAxLTAxJykgCiAgIyByZW1vdmUgUFNCLCBleGNsdWRlIElTQ0IgRmVsbG93cyBhbmQgSVNNQiBzcGVha2VycyBpbiAyMDIwIGZvciBub3cKCm15X2NvbmZzIDwtIHVuaXF1ZShpc2NiX25hdF9kZiRjb25mZXJlbmNlKQpuX2NvbmZzIDwtIGxlbmd0aChteV9jb25mcykKcmVnaW9uX2xldmVscyA8LSBwYXN0ZShjKCdDZWx0aWMvRW5nbGlzaCcsICdFdXJvcGVhbicsICdFYXN0IEFzaWFuJywgJ0hpc3BhbmljJywgJ1NvdXRoIEFzaWFuJywgJ0FyYWJpYycsICdIZWJyZXcnLCAnQWZyaWNhbicsICdOb3JkaWMnLCAnR3JlZWsnKSwgJ25hbWVzJykKYGBgCgoKYGBge3J9CmlzY2JfbmF0X2RmICU+JQogIHNlbGVjdChBZnJpY2FuOlNvdXRoQXNpYW4sIHB1YmxpY2F0aW9uX2RhdGUpICU+JQogIHBpdm90X2xvbmdlcihBZnJpY2FuOlNvdXRoQXNpYW4sCiAgICAgICAgICAgICAgIG5hbWVzX3RvID0gJ3JlZ2lvbicsCiAgICAgICAgICAgICAgIHZhbHVlc190byA9ICdwcm9iYWJpbGl0aWVzJykgJT4lCiAgZmlsdGVyKCFpcy5uYShwcm9iYWJpbGl0aWVzKSkgJT4lIAogIGdyb3VwX2J5KHJlZ2lvbikgJT4lCiAgYWRkX2NvdW50KCkgJT4lCiAgc3VtbWFyaXNlKAogICAgbWVhbl9wcm9iID0gbWVhbihwcm9iYWJpbGl0aWVzLCBuYS5ybSA9IFQpLAogICAgc2RfcHJvYiA9IHNkKHByb2JhYmlsaXRpZXMsIG5hLnJtID0gVCksCiAgICBuID0gbWVhbihuKSwKICAgIG1lX3Byb2IgPSBhbHBoYV90aHJlc2hvbGQgKiBzZF9wcm9iIC8gc3FydChuKQogICkgJT4lCiAgdW5ncm91cCgpICU+JQogIHJlY29kZV9yZWdpb24oKSAlPiUgCiAgYXJyYW5nZShkZXNjKG1lYW5fcHJvYikpCmBgYAoKPCEtLSAjIyBSYWNlIC0tPgo8IS0tIEFtb25nIFVTLWFmZmlsaWF0ZWQgaG9ub3JlZXM6IC0tPgoKPCEtLSBgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfSAtLT4KPCEtLSBpc2NiX3VzX3JhY2UgPC0gcmVhZF90c3YoJ2RhdGEvaXNjYi9rZXlub3Rlcy50c3YnKSAlPiUgLS0+CjwhLS0gICBtdXRhdGUocHVibGljYXRpb25fZGF0ZSA9IHltZCh5ZWFyLCB0cnVuY2F0ZWQgPSAyKSwgLS0+CjwhLS0gICAgICAgICAgeWVhciA9IHltZCh5ZWFyLCB0cnVuY2F0ZWQgPSAyKSkgJT4lICAtLT4KPCEtLSAgIHNlcGFyYXRlX3Jvd3MoYWZmbGNvdW50cmllcywgc2VwID0gJ1xcfCcpICU+JSAgLS0+CjwhLS0gICBmaWx0ZXIoYWZmbGNvdW50cmllcyA9PSAnVW5pdGVkIFN0YXRlcycpICU+JSAtLT4KPCEtLSAgIGxlZnRfam9pbihhbGxfZnVsbF9uYW1lcywgYnkgPSBjKCdmb3JlX25hbWUnLCAnbGFzdF9uYW1lJykpICU+JSAtLT4KPCEtLSAgIHJlbmFtZSgnc3VybmFtZScgPSBsYXN0X25hbWVfc2ltcGxlKSAlPiUgLS0+CjwhLS0gICBwcmVkaWN0X3JhY2Uoc3VybmFtZS5vbmx5ID0gVCwgaW1wdXRlLm1pc3NpbmcgPSBGKSAlPiUgIC0tPgo8IS0tICAgZmlsdGVyKGNvbmZlcmVuY2UgIT0gJ1BTQicsIHllYXIgPT0gJzIwMjAtMDEtMDEnKSAgLS0+Cgo8IS0tIG15X2NvbmZzIDwtIHVuaXF1ZShpc2NiX3VzX3JhY2UkY29uZmVyZW5jZSkgLS0+CjwhLS0gbl9jb25mcyA8LSBsZW5ndGgobXlfY29uZnMpIC0tPgo8IS0tIHN1bShpcy5uYShpc2NiX3VzX3JhY2UkcHJlZC53aGkpKSAtLT4KPCEtLSBgYGAgLS0+Cgo8IS0tIDQgb3V0IG9mIDEzIGRvIG5vdCBoYXZlIGEgcmFjZSBwcmVkaWN0aW9uLiAtLT4KCgo8IS0tIGBgYHtyfSAtLT4KPCEtLSBpc2NiX3VzX3JhY2UgJT4lIC0tPgo8IS0tICAgcGl2b3RfbG9uZ2VyKGNvbnRhaW5zKCdwcmVkJyksIC0tPgo8IS0tICAgICAgICAgICAgICAgIG5hbWVzX3RvID0gJ1JhY2UnLCAtLT4KPCEtLSAgICAgICAgICAgICAgICB2YWx1ZXNfdG8gPSAncHJvYmFiaWxpdGllcycpICU+JSAtLT4KPCEtLSAgIHJlY29kZV9yYWNlKCkgJT4lIC0tPgo8IS0tICAgZmlsdGVyKCFpcy5uYShwcm9iYWJpbGl0aWVzKSkgJT4lICAtLT4KPCEtLSAgIGdyb3VwX2J5KFJhY2UpICU+JSAtLT4KPCEtLSAgIGFkZF9jb3VudCgpICU+JSAtLT4KPCEtLSAgIHN1bW1hcmlzZSggLS0+CjwhLS0gICAgIG1lYW5fcHJvYiA9IG1lYW4ocHJvYmFiaWxpdGllcywgbmEucm0gPSBUKSwgLS0+CjwhLS0gICAgIHNkX3Byb2IgPSBzZChwcm9iYWJpbGl0aWVzLCBuYS5ybSA9IFQpLCAtLT4KPCEtLSAgICAgbiA9IG1lYW4obiksIC0tPgo8IS0tICAgICBtZV9wcm9iID0gYWxwaGFfdGhyZXNob2xkICogc2RfcHJvYiAvIHNxcnQobikgLS0+CjwhLS0gICApICU+JSAtLT4KPCEtLSAgIHVuZ3JvdXAoKSAgLS0+CjwhLS0gYGBgIC0tPgoKCmBgYHtyfQpzZXNzaW9uSW5mbygpCmBgYAo=
    diff --git a/figs/fig_s5.png b/figs/fig_s5.png index 9ab2fcadac911b5b2bb42d641733c047da3a7eee..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 GIT binary patch literal 0 HcmV?d00001 literal 207401 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%0DP(FzfDQG3|bH9Dx?Sxcp@VrW`O>4 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

    =yhpzP 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 - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + @@ -598,254 +598,254 @@ - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + @@ -854,20 +854,20 @@ - - + + - -Arab/Turk/Pers names + +Arab/Turk/Pers names - - + + @@ -876,8 +876,8 @@ - - + + @@ -886,206 +886,206 @@ - - + + - -African names + +African names - - + + - -Nordic names + +Nordic names - - + + - -Greek names + +Greek names - - + + - -Hispanic names + +Hispanic names - - + + - -South Asian names + +South Asian names - - + + - -Hebrew names + +Hebrew names - - + + - -Celtic/English names + +Celtic/English names - - + + - -European names + +European names - - + + - -East Asian names + +East Asian names - - - - - - -'95 -'00 -'05 -'10 -'15 -'20 - - - - - - -'95 -'00 -'05 -'10 -'15 -'20 - - - - - - -'95 -'00 -'05 -'10 -'15 -'20 -0% -20% -40% -60% -80% -100% - - - - - - -0% -20% -40% -60% -80% -100% - - - - - - -0% -20% -40% -60% -80% -100% - - - - - - -0% -20% -40% -60% -80% -100% - - - - - - -Estimated composition - - - - -Pubmed authors - - - - -Keynote speakers/Fellows + + + + + + +'95 +'00 +'05 +'10 +'15 +'20 + + + + + + +'95 +'00 +'05 +'10 +'15 +'20 + + + + + + +'95 +'00 +'05 +'10 +'15 +'20 +0% +20% +40% +60% +80% +100% + + + + + + +0% +20% +40% +60% +80% +100% + + + + + + +0% +20% +40% +60% +80% +100% + + + + + + +0% +20% +40% +60% +80% +100% + + + + + + +Estimated composition + + + + +Pubmed authors + + + + +Keynote speakers/Fellows