Add pre-calculated error bars to scatter plots

This commit is contained in:
2024-09-30 02:21:54 -04:00
parent 039c6c1388
commit 3d11ffbdbc

View File

@@ -560,6 +560,17 @@ generate_scatter_plot <- function(plot, config) {
# Add error bars if specified
if (!is.null(config$error_bar) && config$error_bar && !is.null(config$y_var)) {
if (!is.null(config$error_bar_params)) {
plot <- plot +
geom_errorbar(
aes(
ymin = config$error_bar_params$ymin,
ymax = config$error_bar_params$ymax
),
alpha = 0.3,
linewidth = 0.5
)
} else {
y_mean_col <- paste0("mean_", config$y_var)
y_sd_col <- paste0("sd_", config$y_var)
@@ -573,6 +584,7 @@ generate_scatter_plot <- function(plot, config) {
linewidth = 0.5
)
}
}
# Customize X-axis if specified
if (!is.null(config$x_breaks) && !is.null(config$x_labels) && !is.null(config$x_label)) {
@@ -675,9 +687,10 @@ generate_interaction_plot_configs <- function(df, limits_map = NULL, plot_type =
df_filtered <- df %>%
mutate(OrfRepCombined = if (plot_type == "reference") paste(OrfRep, Gene, num, sep = "_") else paste(OrfRep, Gene, sep = "_"))
plots <- list()
# Separate the plots into two groups: overall variables and delta comparisons
overall_plots <- list()
delta_plots <- list()
# Generate plots for overall variables (L, K, r, AUC)
for (var in c("L", "K", "r", "AUC")) {
y_limits <- limits_map[[var]]
@@ -692,14 +705,12 @@ generate_interaction_plot_configs <- function(df, limits_map = NULL, plot_type =
error_bar = TRUE,
x_breaks = unique(df_filtered$conc_num_factor_factor),
x_labels = as.character(unique(df_filtered$conc_num)),
grid_layout = list(ncol = 2, nrow = 2),
position = "jitter",
smooth = TRUE
)
plots <- append(plots, list(config))
overall_plots <- append(overall_plots, list(config))
}
# Generate Delta comparison plots
unique_groups <- df_filtered %>% select(all_of(group_vars)) %>% distinct()
for (i in seq_len(nrow(unique_groups))) {
@@ -752,14 +763,16 @@ generate_interaction_plot_configs <- function(df, limits_map = NULL, plot_type =
smooth = TRUE,
x_breaks = unique(group_data$conc_num_factor_factor),
x_labels = as.character(unique(group_data$conc_num)),
ylim_vals = y_limits,
grid_layout = list(ncol = 4, nrow = 3)
ylim_vals = y_limits
)
plots <- append(plots, list(config))
delta_plots <- append(delta_plots, list(config))
}
}
return(list(grid_layout = list(ncol = 2, nrow = 2), plots = plots))
return(list(
overall_plots = list(grid_layout = list(ncol = 2, nrow = 2), plots = overall_plots),
delta_plots = list(grid_layout = list(ncol = 4, nrow = 3), plots = delta_plots)
))
}
generate_rank_plot_configs <- function(df, variables, is_lm = FALSE, adjust = FALSE, overlap_color = FALSE) {
@@ -1046,7 +1059,6 @@ main <- function() {
# Each plots list corresponds to a file
l_vs_k_plot_configs <- list(
grid_layout = list(ncol = 1, nrow = 1),
plots = list(
list(
df = df,
@@ -1063,7 +1075,6 @@ main <- function() {
)
frequency_delta_bg_plot_configs <- list(
grid_layout = list(ncol = 1, nrow = 1),
plots = list(
list(
df = df_stats,
@@ -1093,7 +1104,6 @@ main <- function() {
)
above_threshold_plot_configs <- list(
grid_layout = list(ncol = 1, nrow = 1),
plots = list(
list(
df = df_above_tolerance,
@@ -1145,7 +1155,6 @@ main <- function() {
)
l_outside_2sd_k_plot_configs <- list(
grid_layout = list(ncol = 1, nrow = 1), # Ensures it's compatible with generate_and_save_plots
plots = list(
list(
df = df_na_l_outside_2sd_k_stats,
@@ -1170,7 +1179,6 @@ main <- function() {
)
delta_bg_outside_2sd_k_plot_configs <- list(
grid_layout = list(ncol = 1, nrow = 1), # Ensures it's compatible with generate_and_save_plots
plots = list(
list(
df = df_na_l_outside_2sd_k_stats,
@@ -1195,37 +1203,34 @@ main <- function() {
)
message("Generating quality control plots in parallel")
generate_and_save_plots(out_dir_qc, "L_vs_K_before_quality_control", l_vs_k_plot_configs)
quit()
# # future::plan(future::multicore, workers = parallel::detectCores())
# future::plan(future::multisession, workers = 3) # generate 3 plots in parallel
future::plan(future::multisession, workers = 3) # generate 3 plots in parallel
# plot_configs <- list(
# list(out_dir = out_dir_qc, filename = "L_vs_K_before_quality_control",
# plot_configs = l_vs_k_plot_configs),
# list(out_dir = out_dir_qc, filename = "frequency_delta_background",
# plot_configs = frequency_delta_bg_plot_configs),
# list(out_dir = out_dir_qc, filename = "L_vs_K_above_threshold",
# plot_configs = above_threshold_plot_configs),
# list(out_dir = out_dir_qc, filename = "plate_analysis",
# plot_configs = plate_analysis_plot_configs),
# list(out_dir = out_dir_qc, filename = "plate_analysis_boxplots",
# plot_configs = plate_analysis_boxplot_configs),
# list(out_dir = out_dir_qc, filename = "plate_analysis_no_zeros",
# plot_configs = plate_analysis_no_zeros_plot_configs),
# list(out_dir = out_dir_qc, filename = "plate_analysis_no_zeros_boxplots",
# plot_configs = plate_analysis_no_zeros_boxplot_configs),
# list(out_dir = out_dir_qc, filename = "L_vs_K_for_strains_2SD_outside_mean_K",
# plot_configs = l_outside_2sd_k_plot_configs),
# list(out_dir = out_dir_qc, filename = "delta_background_vs_K_for_strains_2sd_outside_mean_K",
# plot_configs = delta_bg_outside_2sd_k_plot_configs)
# )
plot_configs <- list(
list(out_dir = out_dir_qc, filename = "L_vs_K_before_quality_control",
plot_configs = l_vs_k_plot_configs),
list(out_dir = out_dir_qc, filename = "frequency_delta_background",
plot_configs = frequency_delta_bg_plot_configs),
list(out_dir = out_dir_qc, filename = "L_vs_K_above_threshold",
plot_configs = above_threshold_plot_configs),
list(out_dir = out_dir_qc, filename = "plate_analysis",
plot_configs = plate_analysis_plot_configs),
list(out_dir = out_dir_qc, filename = "plate_analysis_boxplots",
plot_configs = plate_analysis_boxplot_configs),
list(out_dir = out_dir_qc, filename = "plate_analysis_no_zeros",
plot_configs = plate_analysis_no_zeros_plot_configs),
list(out_dir = out_dir_qc, filename = "plate_analysis_no_zeros_boxplots",
plot_configs = plate_analysis_no_zeros_boxplot_configs),
list(out_dir = out_dir_qc, filename = "L_vs_K_for_strains_2SD_outside_mean_K",
plot_configs = l_outside_2sd_k_plot_configs),
list(out_dir = out_dir_qc, filename = "delta_background_vs_K_for_strains_2sd_outside_mean_K",
plot_configs = delta_bg_outside_2sd_k_plot_configs)
)
# # Generating quality control plots in parallel
# furrr::future_map(plot_configs, function(config) {
# generate_and_save_plots(config$out_dir, config$filename, config$plot_configs)
# }, .options = furrr_options(seed = TRUE))
# Generating quality control plots in parallel
furrr::future_map(plot_configs, function(config) {
generate_and_save_plots(config$out_dir, config$filename, config$plot_configs)
}, .options = furrr_options(seed = TRUE))
# Process background strains
bg_strains <- c("YDL227C")