Bryan Roessler пре 6 месеци
родитељ
комит
6256127279
1 измењених фајлова са 30 додато и 18 уклоњено
  1. 30 18
      qhtcp-workflow/apps/r/calculate_interaction_zscores.R

+ 30 - 18
qhtcp-workflow/apps/r/calculate_interaction_zscores.R

@@ -381,19 +381,27 @@ generate_and_save_plots <- function(out_dir, filename, plot_configs, grid_layout
     config <- plot_configs[[i]]
     df <- config$df
 
-    aes_mapping <- if (config$plot_type == "bar" || config$plot_type == "density") {
-      if (is.null(config$color_var)) {
+    # Create the base plot
+    aes_mapping <- if (config$plot_type == "bar") {
+      if (!is.null(config$color_var)) {
+        aes(x = .data[[config$x_var]], fill = .data[[config$color_var]], color = .data[[config$color_var]])
+      } else {
         aes(x = .data[[config$x_var]])
+      }
+    } else if (config$plot_type == "density") {
+      if (!is.null(config$color_var)) {
+        aes(x = .data[[config$x_var]], color = .data[[config$color_var]])
       } else {
-        aes(x = .data[[config$x_var]], color = as.factor(.data[[config$color_var]]))
+        aes(x = .data[[config$x_var]])
       }
-    } else if (is.null(config$color_var)) {
-      aes(x = .data[[config$x_var]], y = .data[[config$y_var]])
     } else {
-      aes(x = .data[[config$x_var]], y = .data[[config$y_var]], color = as.factor(.data[[config$color_var]]))
+      if (!is.null(config$color_var)) {
+        aes(x = .data[[config$x_var]], y = .data[[config$y_var]], color = .data[[config$color_var]])
+      } else {
+        aes(x = .data[[config$x_var]], y = .data[[config$y_var]])
+      }
     }
 
-    # Start building the plot with aes_mapping
     plot_base <- ggplot(df, aes_mapping)
 
     # Use appropriate helper function based on plot type
@@ -437,12 +445,14 @@ generate_and_save_plots <- function(out_dir, filename, plot_configs, grid_layout
       }
     }
 
-    # Convert to plotly object
-    if (length(tooltip_vars) > 0) {
-      plotly_plot <- ggplotly(plot, tooltip = tooltip_vars)
-    } else {
-      plotly_plot <- ggplotly(plot, tooltip = "none")
-    }
+    # Convert to plotly object and suppress warnings here
+    plotly_plot <- suppressWarnings({
+      if (length(tooltip_vars) > 0) {
+        ggplotly(plot, tooltip = tooltip_vars)
+      } else {
+        ggplotly(plot, tooltip = "none")
+      }
+    })
 
     # Adjust legend position if specified
     if (!is.null(config$legend_position) && config$legend_position == "bottom") {
@@ -454,22 +464,24 @@ generate_and_save_plots <- function(out_dir, filename, plot_configs, grid_layout
     plotly_plots[[i]] <- plotly_plot
   }
 
-  # Save static PDF plots
+  # Save static PDF plot(s)
   pdf(file.path(out_dir, paste0(filename, ".pdf")), width = 14, height = 9)
   lapply(static_plots, print)
   dev.off()
 
-  # Combine and save interactive HTML plots
+  # Combine and save interactive HTML plot(s)
   combined_plot <- subplot(
     plotly_plots,
     nrows = if (!is.null(grid_layout) && !is.null(grid_layout$nrow)) {
       grid_layout$nrow
     } else {
-      # Calculate nrow based on the length of plotly_plots (default 1 row if only one plot)
+      # Calculate nrow based on the length of plotly_plots
       ceiling(length(plotly_plots) / ifelse(!is.null(grid_layout) && !is.null(grid_layout$ncol), grid_layout$ncol, 1))
     },
     margin = 0.05
   )
+
+  # Save combined html plot(s)
   saveWidget(combined_plot, file = file.path(out_dir, paste0(filename, ".html")), selfcontained = TRUE)
 }
 
@@ -1241,9 +1253,9 @@ main <- function() {
         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, name = "L_vs_K_for_strains_2SD_outside_mean_K",
+      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, name = "delta_background_vs_K_for_strains_2sd_outside_mean_K",
+      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)
     )