Add pre-calculated error bars to scatter plots
This commit is contained in:
@@ -560,18 +560,30 @@ 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)) {
|
||||
y_mean_col <- paste0("mean_", config$y_var)
|
||||
y_sd_col <- paste0("sd_", 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)
|
||||
|
||||
plot <- plot +
|
||||
geom_errorbar(
|
||||
aes(
|
||||
ymin = !!sym(y_mean_col) - !!sym(y_sd_col),
|
||||
ymax = !!sym(y_mean_col) + !!sym(y_sd_col)
|
||||
),
|
||||
alpha = 0.3,
|
||||
linewidth = 0.5
|
||||
)
|
||||
plot <- plot +
|
||||
geom_errorbar(
|
||||
aes(
|
||||
ymin = !!sym(y_mean_col) - !!sym(y_sd_col),
|
||||
ymax = !!sym(y_mean_col) + !!sym(y_sd_col)
|
||||
),
|
||||
alpha = 0.3,
|
||||
linewidth = 0.5
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
# Customize X-axis if specified
|
||||
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user