Remove references to ranked df

This commit is contained in:
2024-09-25 02:48:06 -04:00
parent c42e13d09f
commit 964c1528c3

View File

@@ -660,73 +660,69 @@ generate_plate_analysis_plot_configs <- function(variables, stages = c("before",
return(plots)
}
generate_interaction_plot_configs <- function(df, variables) {
configs <- list()
# Set the y-limits for each variable
df_filtered <- df %>%
filter(
!is.na(L) & between(L, -65, 65),
!is.na(K) & between(K, -65, 65),
!is.na(r) & between(r, -0.65, 0.65),
!is.na(AUC) & between(AUC, -6500, 6500)
)
# Define annotation label functions
generate_annotation_labels <- function(df, var, annotation_name) {
switch(annotation_name,
ZShift = paste("ZShift =", round(df[[paste0("Z_Shift_", var)]], 2)),
lm_ZScore = paste("lm ZScore =", round(df[[paste0("Z_lm_", var)]], 2)),
NG = paste("NG =", df$NG),
DB = paste("DB =", df$DB),
SM = paste("SM =", df$SM),
NULL # Default case for unrecognized annotation names
generate_interaction_plot_configs <- function(df, variables, limits_map = NULL) {
# Default limits_map if not provided
if (is.null(limits_map)) {
limits_map <- list(
L = c(-65, 65),
K = c(-65, 65),
r = c(-0.65, 0.65),
AUC = c(-6500, 6500)
)
}
# Define annotation positions relative to the y-axis range
calculate_annotation_positions <- function(y_range) {
# Filter data
df_filtered <- df
for (var in names(limits_map)) {
df_filtered <- df_filtered %>%
filter(!is.na(!!sym(var)) &
!!sym(var) >= limits_map[[var]][1] &
!!sym(var) <= limits_map[[var]][2])
}
configs <- list()
for (variable in variables) {
y_range <- limits_map[[variable]]
# Calculate annotation positions
y_min <- min(y_range)
y_max <- max(y_range)
y_span <- y_max - y_min
list(
annotation_positions <- list(
ZShift = y_max - 0.1 * y_span,
lm_ZScore = y_max - 0.2 * y_span,
NG = y_min + 0.2 * y_span,
DB = y_min + 0.1 * y_span,
SM = y_min + 0.05 * y_span
)
}
# Create configurations for each variable
for (variable in variables) {
y_range <- limits_map[[variable]]
annotation_positions <- calculate_annotation_positions(y_range)
# Prepare linear model line
lm_line <- list(
intercept = df_filtered[[paste0("lm_intercept_", variable)]],
slope = df_filtered[[paste0("lm_slope_", variable)]]
)
# Determine x-axis midpoint
# Calculate x-axis position for annotations
num_levels <- length(levels(df_filtered$conc_num_factor))
x_pos <- (1 + num_levels) / 2 # Midpoint of x-axis
x_pos <- (1 + num_levels) / 2
# Generate annotations
annotations <- lapply(names(annotation_positions), function(annotation_name) {
label <- generate_annotation_labels(df_filtered, variable, annotation_name)
y_pos <- annotation_positions[[annotation_name]]
label <- switch(annotation_name,
ZShift = paste("ZShift =", round(df_filtered[[paste0("Z_Shift_", variable)]], 2)),
lm_ZScore = paste("lm ZScore =", round(df_filtered[[paste0("Z_lm_", variable)]], 2)),
NG = paste("NG =", df_filtered$NG),
DB = paste("DB =", df_filtered$DB),
SM = paste("SM =", df_filtered$SM),
NULL
)
if (!is.null(label)) {
list(x = x_pos, y = y_pos, label = label)
list(x = x_pos, y = annotation_positions[[annotation_name]], label = label)
} else {
message(paste("Warning: No annotation found for", annotation_name))
NULL
}
})
# Remove NULL annotations
annotations <- Filter(Negate(is.null), annotations)
# Shared plot settings
@@ -740,7 +736,7 @@ generate_interaction_plot_configs <- function(df, variables) {
x_breaks = levels(df_filtered$conc_num_factor),
x_labels = levels(df_filtered$conc_num_factor),
x_label = unique(df_filtered$Drug[1]),
coord_cartesian = y_range # Use the actual y-limits
coord_cartesian = y_range
)
# Scatter plot config
@@ -1422,7 +1418,7 @@ main <- function() {
message("Generating filtered ranked plots")
rank_plot_filtered_configs <- generate_rank_plot_configs(
df = zscores_interactions_filtered_ranked,
df = zscores_interactions_filtered,
variables = interaction_vars,
is_lm = FALSE,
adjust = FALSE,
@@ -1437,7 +1433,7 @@ main <- function() {
message("Generating filtered ranked linear model plots")
rank_plot_lm_filtered_configs <- generate_rank_plot_configs(
df = zscores_interactions_filtered_ranked,
df = zscores_interactions_filtered,
variables = interaction_vars,
is_lm = TRUE,
adjust = FALSE,