From 2f85b32a76973917fc1678e05a5925d844bc53c4 Mon Sep 17 00:00:00 2001 From: Bryan Roessler Date: Thu, 12 Sep 2024 22:53:20 -0400 Subject: [PATCH] Better handle missing aesthetics --- .../apps/r/calculate_interaction_zscores.R | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/qhtcp-workflow/apps/r/calculate_interaction_zscores.R b/qhtcp-workflow/apps/r/calculate_interaction_zscores.R index fbdf3f8b..aba05ad2 100644 --- a/qhtcp-workflow/apps/r/calculate_interaction_zscores.R +++ b/qhtcp-workflow/apps/r/calculate_interaction_zscores.R @@ -390,11 +390,19 @@ generate_and_save_plots <- function(output_dir, file_name, plot_configs, grid_la # print(df %>% select(any_of(c("OrfRep", "Plate", "scan", "Col", "Row", "num", "OrfRep", "conc_num", "conc_num_factor", # "delta_bg_tolerance", "delta_bg", "Gene", "L", "K", "r", "AUC", "NG", "DB"))), n = 5) - # Define aes mapping based on the presence of y_var - aes_mapping <- if (is.null(config$y_var)) { - aes(x = !!sym(config$x_var), color = as.factor(!!sym(config$color_var))) + # Plots are testy about missing aesthetics, so handle them here + aes_mapping <- if (is.null(config$color_var)) { + if (is.null(config$y_var)) { + aes(x = !!sym(config$x_var)) + } else { + aes(x = !!sym(config$x_var), y = !!sym(config$y_var)) + } } else { - aes(x = !!sym(config$x_var), y = !!sym(config$y_var), color = as.factor(!!sym(config$color_var))) + if (is.null(config$y_var)) { + aes(x = !!sym(config$x_var), color = as.factor(!!sym(config$color_var))) + } else { + aes(x = !!sym(config$x_var), y = !!sym(config$y_var), color = as.factor(!!sym(config$color_var))) + } } plot <- ggplot(df, aes_mapping) @@ -929,7 +937,8 @@ main <- function() { y_var = var, plot_type = "box", title = paste("Plate analysis by Drug Conc for", var, stage, "quality control"), - error_bar = FALSE, color_var = "conc_num") + error_bar = FALSE, + color_var = "conc_num") plate_analysis_boxplots <- append(plate_analysis_boxplots, list(config)) } @@ -1193,7 +1202,6 @@ main <- function() { ) %>% ungroup() - rank_plot_configs <- c( generate_rank_plot_configs(zscores_interactions_filtered, "Rank_L", "Avg_Zscore_L", "L"), generate_rank_plot_configs(zscores_interactions_filtered, "Rank_K", "Avg_Zscore_K", "K")