From 4e2f5f35dbb0c4f86ab24f1805864017dcd1147f Mon Sep 17 00:00:00 2001 From: Tanushree Tunstall Date: Fri, 14 Jan 2022 10:50:56 +0000 Subject: [PATCH] added log option to function properly --- scripts/functions/logo_plots_func.R | 71 ++++++++----------- .../functions/tests/test_logo_plots_func.R | 9 +-- 2 files changed, 34 insertions(+), 46 deletions(-) diff --git a/scripts/functions/logo_plots_func.R b/scripts/functions/logo_plots_func.R index f4d1c4c..3146db4 100644 --- a/scripts/functions/logo_plots_func.R +++ b/scripts/functions/logo_plots_func.R @@ -43,11 +43,11 @@ # ADD legend for hydrophobicity: done # ADD option to remove empty positions -LogoPlotCustomH <- function(plotdf +LogoPlotCustomH <- function(plot_df , x_axis_colname = "position" , y_axis_colname = "or_mychisq" , symbol_colname = "mutant_type" - , y_axis_log = T + , y_axis_log = F , log_value = log10 , my_logo_col = "chemistry" , x_lab = "Position" @@ -73,52 +73,39 @@ LogoPlotCustomH <- function(plotdf ################################# # Data processing for logo plot ################################# - - logo_df = plotdf - - logo_data_plot2 = logo_df[, c(x_axis_colname, symbol_colname, y_axis_colname)] - - #================== - # logo data: OR - #================== - logo_data_plot2_or = logo_df[, c(x_axis_colname, symbol_colname, y_axis_colname)] - - wide_df2_or = as.matrix(logo_data_plot2_or %>% spread(x_axis_colname, y_axis_colname, fill = 0.0)) - class(wide_df2_or) - - rownames(wide_df2_or) = wide_df2_or[,1] - dim(wide_df2_or) - - wide_df2_or = wide_df2_or[,-1] - str(wide_df2_or) - - colnames(wide_df2_or) - position_or = as.numeric(colnames(wide_df2_or)) - - #================== - # logo data: logOR - #================== if (y_axis_log){ + #===================== + # logo data: LogOR + #===================== log_colname = paste0("log_", y_axis_colname) - logo_df[log_colname] = log_value(logo_df[y_axis_colname]) - logo_data_plot2 = logo_df[, c(x_axis_colname, symbol_colname, y_axis_colname,log_colname )] + plot_df[log_colname] = log_value(plot_df[y_axis_colname]) + logo_df = plot_df[, c(x_axis_colname, symbol_colname, log_colname)] + logo_df_plot = logo_df[, c(x_axis_colname, symbol_colname, log_colname)] + logo_dfP_wf = as.matrix(logo_df_plot %>% spread(x_axis_colname, log_colname, fill = 0.0)) - logo_data_plot2_logor = logo_df[, c(x_axis_colname, symbol_colname, log_colname)] - - wide_df2_logor = as.matrix(logo_data_plot2_logor %>% spread(x_axis_colname, log_colname, fill = 0.0)) - class(wide_df2_logor) + } else { + + #===================== + # logo data: OR + #===================== + logo_df = plot_df[, c(x_axis_colname, symbol_colname, y_axis_colname)] + logo_df_plot = logo_df[, c(x_axis_colname, symbol_colname, y_axis_colname)] + logo_dfP_wf = as.matrix(logo_df_plot %>% spread(x_axis_colname, y_axis_colname, fill = 0.0)) - rownames(wide_df2_logor) = wide_df2_logor[,1] - dim(wide_df2_logor) - - wide_df2_logor = wide_df2_logor[,-1] - str(wide_df2_logor) - - colnames(wide_df2_logor) - position_logor = as.numeric(colnames(wide_df2_logor)) } + class(logo_dfP_wf) + + rownames(logo_dfP_wf) = logo_dfP_wf[,1] + dim(logo_dfP_wf) + + logo_dfP_wf = logo_dfP_wf[,-1] + str(logo_dfP_wf) + + colnames(logo_dfP_wf) + position_or = as.numeric(colnames(logo_dfP_wf)) + ###################################### # Generating plots with given y_axis ##################################### @@ -144,7 +131,7 @@ LogoPlotCustomH <- function(plotdf ytt_col = "black" } - LogoPlot = ggseqlogo(wide_df2_or + LogoPlot = ggseqlogo(logo_dfP_wf , method = "custom" , col_scheme = my_logo_col , seq_type = "aa") + ylab("my custom height") + diff --git a/scripts/functions/tests/test_logo_plots_func.R b/scripts/functions/tests/test_logo_plots_func.R index d5f5083..391b5e2 100644 --- a/scripts/functions/tests/test_logo_plots_func.R +++ b/scripts/functions/tests/test_logo_plots_func.R @@ -3,24 +3,25 @@ #source("~/git/LSHTM_analysis/scripts/plotting/get_plotting_dfs.R") -LogoPlotCustomH (plotdf = merged_df3 +LogoPlotCustomH (plot_df = merged_df3 , x_axis_colname = "position" , y_axis_colname = "or_mychisq" , symbol_colname = "mutant_type" , y_axis_log = F , log_value = log10 - , my_logo_col = 'chemistry' + , my_logo_col = 'taylor' , x_lab = "Position" , y_lab = "Odds Ratio" , x_ats = 12 # text size , x_tangle = 90 # text angle , y_ats = 22 , y_tangle = 0 - , x_tts = 20 # title size - , y_tts = 23 + , x_tts = 19 # title size + , y_tts = 22 #, leg_pos = c(0.05,-0.12) , leg_pos = "top" , leg_dir = "horizontal" , leg_ts = 15 # leg text size , leg_tts = 16 # leg title size ) +