th_ph_ord = th_ph_filt[order(abs(th_ph_filt$ANI_Difference) , decreasing = T),]
summary_tbl <- th_ph_filt %>%
filter(!is.na(Species)) %>%
group_by(Species) %>%
summarise(
N_hits = n(),
Top_adj_p_beta = min(p_adjust, na.rm = TRUE),
Top_coef_beta = coefficient[which.min(p_adjust)],
Top_se_beta = std_error[which.min(p_adjust)],
Top_contig_beta = Contig_name[which.min(p_adjust)],
Top_adj_p_ZI = min(zi_p_adjust, na.rm = TRUE),
Top_coef_ZI = zi_coefficient[which.min(zi_p_adjust)],
Top_se_ZI = zi_std_error[which.min(zi_p_adjust)],
Top_contig_ZI = Contig_name[which.min(zi_p_adjust)],
.groups = "drop"
) %>%
mutate(
Min_adj_p = pmin(Top_adj_p_beta, Top_adj_p_ZI, na.rm = TRUE),
Dominant_component = ifelse(Top_adj_p_beta < Top_adj_p_ZI, "Beta", "ZI"),
Dominant_contig = ifelse(Dominant_component == "Beta", Top_contig_beta, Top_contig_ZI),
Dominant_coef = ifelse(Dominant_component == "Beta", Top_coef_beta, Top_coef_ZI),
Dominant_se = ifelse(Dominant_component == "Beta", Top_se_beta, Top_se_ZI)
) %>%
select(Species, N_hits, Dominant_component, Min_adj_p, Dominant_coef, Dominant_se, Dominant_contig) %>%
arrange(Min_adj_p)
beta_summary <- summary_tbl %>%
filter(Dominant_component == "Beta") %>%
arrange(Min_adj_p) %>%
mutate(
CI_low = Dominant_coef - 1.96 * Dominant_se,
CI_high = Dominant_coef + 1.96 * Dominant_se,
Trend = ifelse(Dominant_coef > 0, "\u2191 R (similar)", "\u2193 R (divergent)"),
Species = factor(Species, levels = rev(unique(Species)))
) %>%
arrange(desc(Dominant_coef)) %>%
mutate(Species = factor(Species, levels = rev(unique(Species))))
ggplot(beta_summary, aes(x = Dominant_coef, y = Species, color = Trend)) +
geom_point(aes(size = N_hits)) +
geom_errorbar(aes(xmin = CI_low, xmax = CI_high), width = 0.2) +
geom_vline(xintercept = 0, linetype = "dashed") +
scale_color_manual(values = c("\u2191 R (similar)" = "red",
"\u2193 R (divergent)" = "blue")) +
scale_size_continuous(
name = "Strains",
range = c(2, 8),
breaks = c(1, 5, 20),
labels = c("1", "5", "20")
) +
labs(
x = "Effect size (difference in ANI, NR vs R)",
y = "Species",
color = "Trend"
) +
theme_minimal(base_size = 16)