diff --git a/drug-target/global.R b/drug-target/global.R
index 1f5b5fb..e1c524c 100644
--- a/drug-target/global.R
+++ b/drug-target/global.R
@@ -305,771 +305,771 @@ consurf_colours = c(
)
# if (true()){
-# if (interactive()){
-# options(shiny.launch.browser = FALSE) # i am a big girl and can tie my own laces
-# options(shiny.port = 8000) # don't change the port every time
-# options(shiny.host = '0.0.0.0') # This means "listen to all addresses on all interfaces"
-# options(width=120)
-# options(DT.options = list(scrollX = TRUE))
-# #### UI ####
-# ui <- dashboardPage(skin="purple",
-# dashboardHeader(title = "Drug/Target Explorer"),
-#
-# dashboardSidebar(
-# sidebarMenu( id = "sidebar",
-# selectInput(
-# "switch_target",
-# label="Switch to New Target",
-# choices = c(
-# "alr",
-# "embb",
-# "gid",
-# "katg",
-# "pnca",
-# "rpob"
-# ),
-# selected="embb"),
-# menuItem("LogoP SNP", tabName="LogoP SNP"),
-# #menuItem("Lineage Sample Count", tabName="Lineage Sample Count"),
-# menuItem("Site SNP count", tabName="Site SNP count"),
-# menuItem("Stability SNP by site", tabName="Stability SNP by site"),
-# menuItem("DM OM Plots", tabName="DM OM Plots"),
-# menuItem("Correlation", tabName="Correlation"),
-# #menuItem("Lineage Distribution", tabName="Lineage Distribution"),
-# menuItem("Consurf", tabName="Consurf"),
-# menuItem("LogoP OR", tabName="LogoP OR"),
-# menuItem("Lineage", tabName="Lineage"),
-# #menuItem('Stability count', tabName='Stability count'),
-#
-# # These conditionalPanel()s make extra settings appear in the sidebar when needed
-# conditionalPanel(
-# condition="input.sidebar == 'LogoP SNP'",
-# textInput(
-# "omit_snp_count",
-# "Omit SNPs",
-# value = c(0),
-# placeholder = "1,3,6"
-# )
-# ),
-# # NOTE:
-# # I *think* we can cheat here slightly and use the min/max from
-# # merged_df3[['position']] for everything because the various
-# # dataframes for a given gene/drug combination have the
-# # same range of positions. May need fixing, especially
-# # if we get/shrink the imported data files to something
-# # more reasonable.
-# conditionalPanel(
-# condition="
-# input.sidebar == 'LogoP SNP'||
-# input.sidebar == 'Stability SNP by site' ||
-# input.sidebar == 'Consurf' ||
-# input.sidebar == 'LogoP OR'",
-# sliderInput(
-# "display_position_range"
-# , "Display Positions"
-# , min=1, max=150, value=c(1,150) # 150 is just a little less than the smallest pos_count
-# )
-# ),
-#
-# conditionalPanel(
-# condition="
-# input.sidebar == 'LogoP SNP' ||
-# input.sidebar == 'LogoP OR' ||
-# input.sidebar == 'LogoP ED'",
-# selectInput(
-# "logoplot_colour_scheme",
-# label="Logo Plot Colour Scheme",
-# choices = logoPlotSchemes,
-# selected="chemistry"
-# )
-# ),
-# conditionalPanel(
-# condition="input.sidebar == 'Correlation'",
-# selectInput(
-# "corr_method",
-# label="Correlation Method",
-# choices = list("spearman",
-# "pearson",
-# "kendall"),
-# selected="spearman"
-# )
-# ),
-# conditionalPanel(
-# condition="input.sidebar == 'Correlation'",
-# numericInput(
-# "corr_lig_dist"
-# , "Ligand Distance Cutoff (Å)", value=1
-# )
-# ),
-# conditionalPanel(
-# condition="input.sidebar == 'Site SNP count'",
-# numericInput(
-# "snp_ligand_dist"
-# , "Ligand Distance Cutoff (Å)", value=10
-# )
-# ),
-# conditionalPanel(
-# condition="input.sidebar == 'Site SNP count'",
-# numericInput(
-# "snp_interface_dist"
-# , "Interface Distance Cutoff (Å)", value=10
-# )
-# ),
-# conditionalPanel(
-# condition="input.sidebar == 'Site SNP count'",
-# numericInput(
-# "snp_nca_dist"
-# , "NCA Distance Cutoff (Å)", value=10
-# )
-# ),
-#
-# conditionalPanel(
-# condition="input.sidebar == 'Correlation'",
-# checkboxGroupInput(
-# "corr_selected",
-# "Parameters",
-# choiceNames = c(
-# "DeepDDG",
-# "Dynamut2",
-# "FoldX",
-# "ConSurf"#,
-# ),
-# choiceValues = c(
-# "DeepDDG",
-# "Dynamut2",
-# "FoldX",
-# "ConSurf"#,
-# ),
-# selected = c(
-# "DeepDDG",
-# "Dynamut2",
-# "FoldX",
-# "ConSurf"#,
-# )
-# )
-# ),
-#
-# # conditionalPanel(
-# # condition="input.sidebar == 'DM OM Plots'",
-# # selectInput(
-# # "dm_om_param",
-# # label="Stability Parameter",
-# # choices = keys(dm_om_map),
-# # selected="SNAP2")
-# # ),
-# # colour_categ
-# conditionalPanel(
-# condition="input.sidebar == 'Stability SNP by site'",
-# selectInput(
-# "stability_snp_param",
-# label="Stability Parameter",
-# choices = stability_boxes_df$stability_type,
-# selected="Average")
-# ),
-# conditionalPanel(
-# condition="input.sidebar == 'Stability SNP by site'",
-# checkboxInput("reorder_custom_h",
-# label="Reorder by SNP count",
-# FALSE)
-# ),
-# conditionalPanel(
-# condition="input.sidebar.match(/^Lineage.*/)",
-# checkboxInput("all_lineages",
-# label="All Lineages",
-# FALSE)
-# ),
-# # an example of how you can match multiple things in frontend JS
-# conditionalPanel(
-# condition="input.sidebar == 'LogoP SNP' ||
-# input.sidebar =='Stability SNP by site' ||
-# input.sidebar =='Consurf' ||
-# input.sidebar =='LogoP OR'",
-# actionButton("clear_ngl",
-# "Clear Structure")
-# ),
-# conditionalPanel(
-# condition="input.sidebar == 'LogoP SNP' ||
-# input.sidebar =='Stability SNP by site' ||
-# input.sidebar =='Consurf' ||
-# input.sidebar =='LogoP OR'",
-# actionButton("test_ngl",
-# "Test NGLViewR")
-# )#,
-#
-# # downloadButton("save",
-# # "Download Plot"
-# # )
-# # actionButton(
-# # "reload_target",
-# # label="Reload Target\nData (slow!)"
-# # )
-#
-# )
-# ),
-# #### body ####
-# body <- dashboardBody(
-#
-# tabItems(
-# tabItem(tabName = "dashboard",
-# h2("Dashboard tab content")
-# ),
-#
-# tabItem(tabName = "widgets",
-# h2("Widgets tab content")
-# )
-# ),
-# # creates a 'Conditional Panel' containing a plot object from each of our
-# # ggplot plot functions (and its associated data frame)
-# fluidRow(column(width=12,
-# lapply(plot_functions_df$tab_name,
-# function(x){
-#
-# plot_function=plot_functions_df[
-# plot_functions_df$tab_name==x,
-# "plot_function"]
-#
-# plot_df=plot_functions_df[
-# plot_functions_df$tab_name==x,
-# "plot_df"]
-# cat(paste0('\nCreating output: ', x))
-# generate_conditionalPanel(x, plot_function, plot_df)
-#
-# }
-# )
-# )
-# ),
-# # Explicit fluidRow() for Lineage plots together
-# fluidRow(
-# column(conditionalPanel(
-# condition="input.sidebar.match(/^Lineage.*/)", box(
-# title="Lineage Distribution"
-# , status = "info"
-# , width=NULL
-# , plotOutput("lineage_distP", height="700px") %>% withSpinner(color="#0dc5c1"),
-# height=800
-# )
-# ), width=6
-# ),
-# column(conditionalPanel(
-# condition="input.sidebar.match(/^Lineage.*/)", box(
-# title="Lineage SNP Diversity"
-# , status = "info"
-# , width=NULL
-# , plotOutput("lin_sc", height="700px") %>% withSpinner(color="#0dc5c1"),
-# height=800
-# )
-# ), width=6
-# )
-#
-# ),
-# # Explicit fluidRow() for Site SNP Count
-# fluidRow(
-# column(conditionalPanel(
-# condition="input.sidebar == 'Site SNP count'",
-# box(
-# title="Site SNP count"
-# , status = "info"
-# , width=NULL
-# , plotOutput("site_snp_count_bp") %>% withSpinner(color="#0dc5c1")
-# )
-# ), width=6
-# ),
-# column(conditionalPanel(
-# condition="input.sidebar == 'Site SNP count'",
-# box(
-# title="Ligand Distance"
-# , status = "info"
-# , width=NULL
-# , plotOutput("site_snp_count_bp_ligand") %>% withSpinner(color="#0dc5c1")
-# )
-# ), width=6
-# ),
-# column(conditionalPanel(
-# condition="input.sidebar == 'Site SNP count'",
-# box(
-# title="Interface Distance"
-# , status = "info"
-# , width=NULL
-# , plotOutput("site_snp_count_interface") %>% withSpinner(color="#0dc5c1")
-# )
-# ), width=6
-# ),
-# column(conditionalPanel(
-# condition="input.sidebar == 'Site SNP count'",
-# box(
-# title="RNA Distance"
-# , status = "info"
-# , width=NULL
-# , plotOutput("site_snp_count_nca") %>% withSpinner(color="#0dc5c1")
-# )
-# ), width=6
-# )
-# ),
-#
-# # # Explicit fluidRow() for Stability Count
-# # fluidRow(
-# # column(
-# # conditionalPanel(
-# # condition="input.sidebar.match(/^Lineage.*/)",
-# # lapply(
-# # # FIXME: using a hardcoded target DF for this IS WRONG AND WILL BREAK
-# # stability_boxes_df[stability_boxes_df$outcome_colname %in% colnames(embb_merged_df3),"outcome_colname"],
-# # function(x){
-# # print(paste0("outcome_colname: ",x))
-# # box(plotOutput(x), width=4)
-# # }
-# # ),
-# # width=12
-# # )
-# # )
-# # ),
-#
-# #### fluidRow()s for "Stability Count" in the sidebar ####
-# fluidRow(
-# conditionalPanel(
-# condition="
-# input.sidebar == 'LogoP SNP' ||
-# input.sidebar =='Stability SNP by site' ||
-# input.sidebar =='Consurf' ||
-# input.sidebar =='LogoP OR'",
-# column(NGLVieweROutput("structure"),
-# width=3
-# )
-# ),
-# conditionalPanel(
-# condition="
-# input.sidebar == 'LogoP SNP' ||
-# input.sidebar == 'Stability SNP by site' ||
-# input.sidebar == 'Site SNP count' ||
-# input.sidebar == 'Consurf' ||
-# input.sidebar == 'LogoP OR'",
-# column(
-# DT::dataTableOutput('table'),
-# width=9
-# )
-# )
-# ),
-# )
-# )
-# server <- function(input, output, session) {
-#
-# #output$LogoPlotSnps = renderPlot(LogoPlotSnps(mutable_df3))
-# output$lin_sc = renderPlot(
-# lin_sc(
-# input$switch_target,
-# all_lineages = input$all_lineages,
-# my_xats = 12, # x axis text size
-# my_yats = 12, # y axis text size
-# my_xals = 12, # x axis label size
-# my_yals = 12, # y axis label size
-# my_lls = 12, # legend label size
-# d_lab_size = 4
-# )
-# )
-# #### lineage_distP ####
-# output$lineage_distP = renderPlot(
-# lineage_distP(
-# get(paste0(input$switch_target, '_merged_df2')),
-# all_lineages = input$all_lineages,
-# x_lab = "Average Stability",
-# x_axis = "avg_stability_scaled",
-# fill_categ_cols = c("red", "blue")
-# )
-# )
-#
-#
-# #### observeEvent() Fun(tm) ####
-# observeEvent(input$clear_ngl, {
-# NGLVieweR_proxy("structure") %>%
-# removeSelection("Pos")
-# })
-# # Button to test adding a position
-# observeEvent(input$test_ngl, {
-# NGLVieweR_proxy("structure") %>%
-# addSelection('ball+stick'
-# , param = list(
-# name = "Pos"
-# , sele = "35"
-# , color = "green")
-# )
-# })
-#
-# observeEvent(
-# {
-# input$display_position_range
-# input$stability_snp_param
-# input$logoplot_colour_scheme
-# input$omit_snp_count
-# input$switch_target
-# input$snp_ligand_dist
-# input$snp_nca_dist
-# input$snp_interface_dist
-# },
-# {
-# print("entering main observeEvent()")
-# # C O M P A T I B I L I T Y
-# #gene=input$switch_target
-# #drug=target_map[[gene]]
-# target_gene = input$switch_target
-# merged_df3 = cbind(get(paste0(input$switch_target, '_merged_df3')))
-#
-# position_max=max(merged_df3[['position']])
-# position_min=min(merged_df3[['position']])
-# min_ligand_distance=min(merged_df3$ligand_distance)
-# max_ligand_distance=max(merged_df3$ligand_distance)
-# # FIXME: these are IMPORTANT
-# # # add "pos_count" position count column
-# # merged_df3=merged_df3 %>% dplyr::add_count(position)
-# # merged_df3$pos_count=merged_df3$n
-# # merged_df3$n=NULL
-# #
-# mutable_df3 = cbind(merged_df3)
-# #
-# # # re-sort the dataframe according to position count
-# sorted_df = cbind(merged_df3)
-# sorted_df = sorted_df %>% arrange(pos_count)
-#
-# #
-# outdir = paste0(load_dir, "Data/", drug, '/output/')
-# indir = paste0(load_dir, "Data/", drug , "/input/")
-#
-#
-# #### nasty special-purpose merged_df3 variants ####
-# # FIXME: SLOW
-# # corr_plotdf = corr_data_extract(
-# # merged_df3
-# # , gene = gene
-# # , drug = drug
-# # , extract_scaled_cols = F
-# # )
-#
-# #input$stability_snp_param
-#
-# updateCheckboxGroupInput(
-# session,
-# "corr_selected",
-# choiceNames = colnames(get(paste0(input$switch_target,"_corr_df_m3_f"))),
-# choiceValues = colnames(get(paste0(input$switch_target,"_corr_df_m3_f"))),
-# selected = c("FoldX", "DeepDDG", "mCSM.DUET")
-# )
-#
-# updateSliderInput(
-# session,
-# "display_position_range",
-# min = position_min,
-# max = position_max
-# #, value = c(position_min, position_min+150)
-# )
-#
-# updateNumericInput(session, "selected_logop_snp_position", min = position_min, max = position_max, value = position_min)
-# updateNumericInput(session, "selected_logop_ed_position", min = position_min, max = position_max, value = position_min)
-# updateNumericInput(session, "corr_lig_dist", min = min_ligand_distance, max = max_ligand_distance, value = min_ligand_distance)
-#
-# updateNumericInput(session, "snp_ligand_dist", min = min(merged_df3$ligand_distance), max = max(merged_df3$ligand_distance))
-# updateNumericInput(session, "snp_interface_dist", min = min(merged_df3$interface_dist), max = max(merged_df3$interface_dist))
-# updateNumericInput(session, "snp_nca_dist", min = min(merged_df3$nca_distance), max = max(merged_df3$nca_distance))
-#
-#
-# # different data ranges required for SNP distances
-# snp_ligand_dist_df3 = merged_df3[merged_df3[['ligand_distance']]=plot_min & mutable_df3$position <=plot_max),]
-#
-# subset_mutable_df3=mutable_df3[(mutable_df3$position>=plot_min & mutable_df3$position <=plot_max),]
-# subset_sorted_df=sorted_df[(sorted_df$position>=plot_min & sorted_df$position <=plot_max),]
-#
-# #### LogoPlotSnps ####
-# output$LogoPlotSnps = renderPlot(
-# LogoPlotSnps(subset_mutable_df3,
-# aa_pos_drug = get(paste0(target_gene,"_aa_pos_drug")),
-# active_aa_pos = get(paste0(target_gene,"_active_aa_pos")),
-# aa_pos_lig1 = get(paste0(target_gene,"_aa_pos_lig1")),
-# aa_pos_lig2 = get(paste0(target_gene,"_aa_pos_lig2")),
-# aa_pos_lig3 = get(paste0(target_gene,"_aa_pos_lig3")),
-# my_logo_col = logoplot_colour_scheme,
-# omit_snp_count = omit_snp_count
-#
-# )
-# )
-#
-# ### NGLViewer ####
-# # Structure Viewer WebGL/NGLViewR window
-# output$structure <- renderNGLVieweR({
-# #ngl_gene=isolate(input$switch_target)
-# ngl_gene=input$switch_target
-# ngl_drug=target_map[[ngl_gene]]
-# ngl_pdb_file=paste0(load_dir, "Data/", ngl_drug, '/output/depth/', ngl_gene, '_complex.pdb')
-# print(ngl_pdb_file)
-# NGLVieweR(ngl_pdb_file) %>%
-# addRepresentation("cartoon",
-# param = list(name = "cartoon",
-# color="tan"
-# #, colorScheme = "chainid"
-# )
-# ) %>%
-# stageParameters(backgroundColor = "lightgrey") %>%
-# setQuality("high") %>%
-# setFocus(0) %>%
-# setSpin(FALSE)
-# })
-#
-#
-# #### Shared dataTable() ####
-# output$table = DT::renderDataTable(
-# datatable(subset_sorted_df[,table_columns],
-# filter="top",
-# selection = "single"
-# )
-# )
-#
-# #### bp_stability_hmap ####
-# # red/blue tiles wala "Stability SNP by Site"
-# output$bp_stability_hmap = renderPlot(
-# bp_stability_hmap(
-# subset_sorted_df,
-# reorder_position = input$reorder_custom_h,
-# p_title = NULL,
-# yvar_colname = stability_colname,
-# stability_colname = stability_colname,
-# stability_outcome_colname = outcome_colname,
-# my_ylab = NULL,
-# y_max_override = max(sorted_df$pos_count),
-# aa_pos_drug = get(paste0("embb","_aa_pos_drug")),
-# active_aa_pos = get(paste0("embb","_active_aa_pos")),
-# aa_pos_lig1 = get(paste0("embb","_aa_pos_lig1")),
-# aa_pos_lig2 = get(paste0("embb","_aa_pos_lig2")),
-# aa_pos_lig3 = get(paste0("embb","_aa_pos_lig3"))
-# )
-# )
-# #### LogoPlotCustomH ####
-# output$LogoPlotCustomH = renderPlot(
-# LogoPlotCustomH(
-# subset_sorted_df,
-# my_logo_col = logoplot_colour_scheme,
-# aa_pos_drug = get(paste0(target_gene,"_aa_pos_drug")),
-# active_aa_pos = get(paste0(target_gene,"_active_aa_pos")),
-# aa_pos_lig1 = get(paste0(target_gene,"_aa_pos_lig1")),
-# aa_pos_lig2 = get(paste0(target_gene,"_aa_pos_lig2")),
-# aa_pos_lig3 = get(paste0(target_gene,"_aa_pos_lig3"))
-# )
-# )
-#
-# #### wideP_consurf3 ####
-# output$wideP_consurf3 = renderPlot(
-# wideP_consurf3(
-# subset_sorted_df,
-# point_colours = consurf_colours,
-# aa_pos_drug = get(paste0(target_gene,"_aa_pos_drug")),
-# active_aa_pos = get(paste0(target_gene,"_active_aa_pos")),
-# aa_pos_lig1 = get(paste0(target_gene,"_aa_pos_lig1")),
-# aa_pos_lig2 = get(paste0(target_gene,"_aa_pos_lig2")),
-# aa_pos_lig3 = get(paste0(target_gene,"_aa_pos_lig3"))
-# )
-# )
-#
-# #### site_snp_count_bp ####
-# #mutable_df3[(mutable_df3$position>=plot_min & mutable_df3$position <=plot_max),]
-# # ligand_distance
-# # interface_dist
-# # nca_distance
-# # change to: multiple plots, all use site_snp_count_bp
-# # 4 x plots side by side, one normal (no dist. filter), 2/3 filtered by distance columns above
-# # use "subtitle text" from pos_count_bp_i.R
-#
-# output$site_snp_count_bp = renderPlot(
-# site_snp_count_bp(
-# mutable_df3,
-# title_colour = 'black',
-# subtitle_colour = "black",
-# leg_text_size = 12,
-# axis_label_size = 12,
-# geom_ls = 4
-# )
-# )
-# output$site_snp_count_bp_ligand = renderPlot(
-# site_snp_count_bp(
-# snp_ligand_dist_df3,
-# title_colour = 'black',
-# subtitle_colour = "black",
-# leg_text_size = 12,
-# axis_label_size = 12,
-# geom_ls = 4
-# )
-# )
-#
-# # if ("interface_dist" %in% colnames(input$switch_target)) {
-# output$site_snp_count_interface = renderPlot(
-# site_snp_count_bp(
-# snp_interface_dist_df3,
-# title_colour = 'black',
-# subtitle_colour = "black",
-# leg_text_size = 12,
-# axis_label_size = 12,
-# geom_ls = 4
-# )
-# )
-# # } #else {
-# # output$site_snp_count_interface = renderPlot(
-# # ggplot() + annotate(x=1,y=1,"text", label="No interface data for this target")+theme_void()
-# # )
-# # }
-#
-# output$site_snp_count_nca = renderPlot( #{
-# #if ("nca_distance" %in% colnames(input$switch_target)) {
-# site_snp_count_bp(
-# snp_nca_dist_df3,
-# title_colour = 'black',
-# subtitle_colour = "black",
-# leg_text_size = 12,
-# axis_label_size = 12,
-# geom_ls = 4
-# )
-# # } else {
-# # ggplot() + annotate(x=1,y=1,"text", label="No RNA data for this target")+theme_void()
-# # }
-# # }
-# )
-#
-#
-#
-# #### DM OM Plots ####
-# #dm_om_param
-# # order needs to be:
-# # embb_lf_duet, embb_lf_foldx, embb_lf_deepddg, embb_lf_dynamut2, embb_lf_dist_gen,
-# # embb_lf_consurf, embb_lf_provean, embb_lf_snap2, embb_lf_mcsm_lig, embb_lf_mmcsm_lig,
-# # embb_lf_mcsm_ppi2, SOMETHING NA
-#
-# # embb_lf_mmcsm_lig SOMETHING NA,
-# #dm_om_selection=input$dm_om_param
-# #dm_om_df = dm_om_map[[dm_om_selection]]
-# #output$lf_bp2 = renderPlot(lf_bp2(get(paste0(input$switch_target, '_', dm_om_df))))
-#
-# output$lf_bp2 = renderPlot(
-# cowplot::plot_grid(
-# plotlist = lapply(
-# ls(name=.GlobalEnv,
-# pattern=paste0(
-# target_gene,
-# '_lf_'
-# )
-# ),
-# function(x){
-# lf_bp2(get(x))
-# }
-# )#, nrow=3
-# ), height=800
-# )
-# }
-# )
-#
-#
-# # FIXME: Doesn't add selected table rows correctly
-# observeEvent(
-# {
-# input$table_rows_selected
-# },
-# {
-# # having to duplicate this is a bit annoying :-(
-# ngl_merged_df3=cbind(get(paste0(input$switch_target, '_merged_df3')))
-# ngl_sorted_df = cbind(ngl_merged_df3)
-# ngl_sorted_df = ngl_sorted_df %>% arrange(pos_count)
-#
-# position_max=max(ngl_merged_df3[['position']])
-# position_min=min(ngl_merged_df3[['position']])
-# display_position_range = input$display_position_range
-# plot_min=display_position_range[1]
-# plot_max=display_position_range[2]
-# #ngl_subset_df=ngl_merged_df3[(ngl_merged_df3$position>=plot_min & ngl_merged_df3$position <=plot_max),]
-# ngl_subset_df=ngl_sorted_df[(ngl_sorted_df$position>=plot_min & ngl_sorted_df$position <=plot_max),]
-#
-#
-# #table_rows_selected = isolate(input$table_rows_selected)
-# table_rows_selected = input$table_rows_selected
-# class(table_rows_selected)
-# #cat(paste0("Target: ", as.character(input$switch_target), "\nTable Rows for NGLViewR: ", as.character(table_rows_selected)))
-#
-# struct_pos=(as.character(ngl_subset_df[table_rows_selected,"position"]))
-# cat(paste0('Table Index: ', table_rows_selected, "position: ", struct_pos))
-#
-# NGLVieweR_proxy("structure") %>%
-# #addSelection('ball+stick'
-# addSelection('hyperball'
-# , param = list(
-# name = "Pos"
-# , sele = struct_pos
-# #, color = "#00ff00"
-# , colorValue="00ff00"
-# , colorScheme="element"
-# )
-# )
-# #cat(paste0('Done NGLViewR addSelection for: ', positions_to_add))
-# }
-# )
-# #### Correlation observeEvent ####
-# # Yet another special-case observeEvent to handle the correlation pair plot
-#
-# observeEvent(
-# {
-# input$corr_selected
-# input$corr_method
-# input$corr_lig_dist
-# },
-# {
-# dist_cutoff_user = input$corr_lig_dist
-# target_gene=input$switch_target
-# plot_title=paste0(target_map[[target_gene]],"/",target_gene)
-#
-# corr_plot_df = get(
-# paste0(
-# input$switch_target,"_corr_df_m3_f"
-# )
-# )[,c(input$corr_selected, "dst_mode")]
-#
-# #if ( dist_cutoff_user >= 2) {
-# #corr_plotdf_subset = corr_plot_df[corr_plot_df[['Lig.Dist']] < dist_cutoff_user,]
-# #}
-# # else {
-# # corr_plotdf_subset = corr_plot_df
-# # }
-#
-# #### Correlation using ggpairs() ####
-# output$my_corr_pairs = renderPlot(
-# dashboard_ggpairs(
-# corr_plot_df,
-# plot_title = plot_title,
-# method = input$corr_method,
-# tt_args_size = 7,
-# gp_args_size = 7
-# ), height = 900
-# )
-# }
-# )
-# }
-#
-#
-# app <- shinyApp(ui, server)
-# runApp(app)
-# }
+if (interactive()){
+ options(shiny.launch.browser = FALSE) # i am a big girl and can tie my own laces
+ options(shiny.port = 8000) # don't change the port every time
+ options(shiny.host = '0.0.0.0') # This means "listen to all addresses on all interfaces"
+ options(width=120)
+ options(DT.options = list(scrollX = TRUE))
+ #### UI ####
+ # ui <- dashboardPage(skin="purple",
+ # dashboardHeader(title = "Drug/Target Explorer"),
+ #
+ # dashboardSidebar(
+ # sidebarMenu( id = "sidebar",
+ # selectInput(
+ # "switch_target",
+ # label="Switch to New Target",
+ # choices = c(
+ # "alr",
+ # "embb",
+ # "gid",
+ # "katg",
+ # "pnca",
+ # "rpob"
+ # ),
+ # selected="embb"),
+ # menuItem("LogoP SNP", tabName="LogoP SNP"),
+ # #menuItem("Lineage Sample Count", tabName="Lineage Sample Count"),
+ # menuItem("Site SNP count", tabName="Site SNP count"),
+ # menuItem("Stability SNP by site", tabName="Stability SNP by site"),
+ # menuItem("DM OM Plots", tabName="DM OM Plots"),
+ # menuItem("Correlation", tabName="Correlation"),
+ # #menuItem("Lineage Distribution", tabName="Lineage Distribution"),
+ # menuItem("Consurf", tabName="Consurf"),
+ # menuItem("LogoP OR", tabName="LogoP OR"),
+ # menuItem("Lineage", tabName="Lineage"),
+ # #menuItem('Stability count', tabName='Stability count'),
+ #
+ # # These conditionalPanel()s make extra settings appear in the sidebar when needed
+ # conditionalPanel(
+ # condition="input.sidebar == 'LogoP SNP'",
+ # textInput(
+ # "omit_snp_count",
+ # "Omit SNPs",
+ # value = c(0),
+ # placeholder = "1,3,6"
+ # )
+ # ),
+ # # NOTE:
+ # # I *think* we can cheat here slightly and use the min/max from
+ # # merged_df3[['position']] for everything because the various
+ # # dataframes for a given gene/drug combination have the
+ # # same range of positions. May need fixing, especially
+ # # if we get/shrink the imported data files to something
+ # # more reasonable.
+ # conditionalPanel(
+ # condition="
+ # input.sidebar == 'LogoP SNP'||
+ # input.sidebar == 'Stability SNP by site' ||
+ # input.sidebar == 'Consurf' ||
+ # input.sidebar == 'LogoP OR'",
+ # sliderInput(
+ # "display_position_range"
+ # , "Display Positions"
+ # , min=1, max=150, value=c(1,150) # 150 is just a little less than the smallest pos_count
+ # )
+ # ),
+ #
+ # conditionalPanel(
+ # condition="
+ # input.sidebar == 'LogoP SNP' ||
+ # input.sidebar == 'LogoP OR' ||
+ # input.sidebar == 'LogoP ED'",
+ # selectInput(
+ # "logoplot_colour_scheme",
+ # label="Logo Plot Colour Scheme",
+ # choices = logoPlotSchemes,
+ # selected="chemistry"
+ # )
+ # ),
+ # conditionalPanel(
+ # condition="input.sidebar == 'Correlation'",
+ # selectInput(
+ # "corr_method",
+ # label="Correlation Method",
+ # choices = list("spearman",
+ # "pearson",
+ # "kendall"),
+ # selected="spearman"
+ # )
+ # ),
+ # conditionalPanel(
+ # condition="input.sidebar == 'Correlation'",
+ # numericInput(
+ # "corr_lig_dist"
+ # , "Ligand Distance Cutoff (Å)", value=1
+ # )
+ # ),
+ # conditionalPanel(
+ # condition="input.sidebar == 'Site SNP count'",
+ # numericInput(
+ # "snp_ligand_dist"
+ # , "Ligand Distance Cutoff (Å)", value=10
+ # )
+ # ),
+ # conditionalPanel(
+ # condition="input.sidebar == 'Site SNP count'",
+ # numericInput(
+ # "snp_interface_dist"
+ # , "Interface Distance Cutoff (Å)", value=10
+ # )
+ # ),
+ # conditionalPanel(
+ # condition="input.sidebar == 'Site SNP count'",
+ # numericInput(
+ # "snp_nca_dist"
+ # , "NCA Distance Cutoff (Å)", value=10
+ # )
+ # ),
+ #
+ # conditionalPanel(
+ # condition="input.sidebar == 'Correlation'",
+ # checkboxGroupInput(
+ # "corr_selected",
+ # "Parameters",
+ # choiceNames = c(
+ # "DeepDDG",
+ # "Dynamut2",
+ # "FoldX",
+ # "ConSurf"#,
+ # ),
+ # choiceValues = c(
+ # "DeepDDG",
+ # "Dynamut2",
+ # "FoldX",
+ # "ConSurf"#,
+ # ),
+ # selected = c(
+ # "DeepDDG",
+ # "Dynamut2",
+ # "FoldX",
+ # "ConSurf"#,
+ # )
+ # )
+ # ),
+ #
+ # # conditionalPanel(
+ # # condition="input.sidebar == 'DM OM Plots'",
+ # # selectInput(
+ # # "dm_om_param",
+ # # label="Stability Parameter",
+ # # choices = keys(dm_om_map),
+ # # selected="SNAP2")
+ # # ),
+ # # colour_categ
+ # conditionalPanel(
+ # condition="input.sidebar == 'Stability SNP by site'",
+ # selectInput(
+ # "stability_snp_param",
+ # label="Stability Parameter",
+ # choices = stability_boxes_df$stability_type,
+ # selected="Average")
+ # ),
+ # conditionalPanel(
+ # condition="input.sidebar == 'Stability SNP by site'",
+ # checkboxInput("reorder_custom_h",
+ # label="Reorder by SNP count",
+ # FALSE)
+ # ),
+ # conditionalPanel(
+ # condition="input.sidebar.match(/^Lineage.*/)",
+ # checkboxInput("all_lineages",
+ # label="All Lineages",
+ # FALSE)
+ # ),
+ # # an example of how you can match multiple things in frontend JS
+ # conditionalPanel(
+ # condition="input.sidebar == 'LogoP SNP' ||
+ # input.sidebar =='Stability SNP by site' ||
+ # input.sidebar =='Consurf' ||
+ # input.sidebar =='LogoP OR'",
+ # actionButton("clear_ngl",
+ # "Clear Structure")
+ # ),
+ # conditionalPanel(
+ # condition="input.sidebar == 'LogoP SNP' ||
+ # input.sidebar =='Stability SNP by site' ||
+ # input.sidebar =='Consurf' ||
+ # input.sidebar =='LogoP OR'",
+ # actionButton("test_ngl",
+ # "Test NGLViewR")
+ # )#,
+ #
+ # # downloadButton("save",
+ # # "Download Plot"
+ # # )
+ # # actionButton(
+ # # "reload_target",
+ # # label="Reload Target\nData (slow!)"
+ # # )
+ #
+ # )
+ # ),
+ # #### body ####
+ # body <- dashboardBody(
+ #
+ # tabItems(
+ # tabItem(tabName = "dashboard",
+ # h2("Dashboard tab content")
+ # ),
+ #
+ # tabItem(tabName = "widgets",
+ # h2("Widgets tab content")
+ # )
+ # ),
+ # # creates a 'Conditional Panel' containing a plot object from each of our
+ # # ggplot plot functions (and its associated data frame)
+ # fluidRow(column(width=12,
+ # lapply(plot_functions_df$tab_name,
+ # function(x){
+ #
+ # plot_function=plot_functions_df[
+ # plot_functions_df$tab_name==x,
+ # "plot_function"]
+ #
+ # plot_df=plot_functions_df[
+ # plot_functions_df$tab_name==x,
+ # "plot_df"]
+ # cat(paste0('\nCreating output: ', x))
+ # generate_conditionalPanel(x, plot_function, plot_df)
+ #
+ # }
+ # )
+ # )
+ # ),
+ # # Explicit fluidRow() for Lineage plots together
+ # fluidRow(
+ # column(conditionalPanel(
+ # condition="input.sidebar.match(/^Lineage.*/)", box(
+ # title="Lineage Distribution"
+ # , status = "info"
+ # , width=NULL
+ # , plotOutput("lineage_distP", height="700px") %>% withSpinner(color="#0dc5c1"),
+ # height=800
+ # )
+ # ), width=6
+ # ),
+ # column(conditionalPanel(
+ # condition="input.sidebar.match(/^Lineage.*/)", box(
+ # title="Lineage SNP Diversity"
+ # , status = "info"
+ # , width=NULL
+ # , plotOutput("lin_sc", height="700px") %>% withSpinner(color="#0dc5c1"),
+ # height=800
+ # )
+ # ), width=6
+ # )
+ #
+ # ),
+ # # Explicit fluidRow() for Site SNP Count
+ # fluidRow(
+ # column(conditionalPanel(
+ # condition="input.sidebar == 'Site SNP count'",
+ # box(
+ # title="Site SNP count"
+ # , status = "info"
+ # , width=NULL
+ # , plotOutput("site_snp_count_bp") %>% withSpinner(color="#0dc5c1")
+ # )
+ # ), width=6
+ # ),
+ # column(conditionalPanel(
+ # condition="input.sidebar == 'Site SNP count'",
+ # box(
+ # title="Ligand Distance"
+ # , status = "info"
+ # , width=NULL
+ # , plotOutput("site_snp_count_bp_ligand") %>% withSpinner(color="#0dc5c1")
+ # )
+ # ), width=6
+ # ),
+ # column(conditionalPanel(
+ # condition="input.sidebar == 'Site SNP count'",
+ # box(
+ # title="Interface Distance"
+ # , status = "info"
+ # , width=NULL
+ # , plotOutput("site_snp_count_interface") %>% withSpinner(color="#0dc5c1")
+ # )
+ # ), width=6
+ # ),
+ # column(conditionalPanel(
+ # condition="input.sidebar == 'Site SNP count'",
+ # box(
+ # title="RNA Distance"
+ # , status = "info"
+ # , width=NULL
+ # , plotOutput("site_snp_count_nca") %>% withSpinner(color="#0dc5c1")
+ # )
+ # ), width=6
+ # )
+ # ),
+ #
+ # # # Explicit fluidRow() for Stability Count
+ # # fluidRow(
+ # # column(
+ # # conditionalPanel(
+ # # condition="input.sidebar.match(/^Lineage.*/)",
+ # # lapply(
+ # # # FIXME: using a hardcoded target DF for this IS WRONG AND WILL BREAK
+ # # stability_boxes_df[stability_boxes_df$outcome_colname %in% colnames(embb_merged_df3),"outcome_colname"],
+ # # function(x){
+ # # print(paste0("outcome_colname: ",x))
+ # # box(plotOutput(x), width=4)
+ # # }
+ # # ),
+ # # width=12
+ # # )
+ # # )
+ # # ),
+ #
+ # #### fluidRow()s for "Stability Count" in the sidebar ####
+ # fluidRow(
+ # conditionalPanel(
+ # condition="
+ # input.sidebar == 'LogoP SNP' ||
+ # input.sidebar =='Stability SNP by site' ||
+ # input.sidebar =='Consurf' ||
+ # input.sidebar =='LogoP OR'",
+ # column(NGLVieweROutput("structure"),
+ # width=3
+ # )
+ # ),
+ # conditionalPanel(
+ # condition="
+ # input.sidebar == 'LogoP SNP' ||
+ # input.sidebar == 'Stability SNP by site' ||
+ # input.sidebar == 'Site SNP count' ||
+ # input.sidebar == 'Consurf' ||
+ # input.sidebar == 'LogoP OR'",
+ # column(
+ # DT::dataTableOutput('table'),
+ # width=9
+ # )
+ # )
+ # ),
+ # )
+ # )
+ # server <- function(input, output, session) {
+ #
+ # #output$LogoPlotSnps = renderPlot(LogoPlotSnps(mutable_df3))
+ # output$lin_sc = renderPlot(
+ # lin_sc(
+ # input$switch_target,
+ # all_lineages = input$all_lineages,
+ # my_xats = 12, # x axis text size
+ # my_yats = 12, # y axis text size
+ # my_xals = 12, # x axis label size
+ # my_yals = 12, # y axis label size
+ # my_lls = 12, # legend label size
+ # d_lab_size = 4
+ # )
+ # )
+ # #### lineage_distP ####
+ # output$lineage_distP = renderPlot(
+ # lineage_distP(
+ # get(paste0(input$switch_target, '_merged_df2')),
+ # all_lineages = input$all_lineages,
+ # x_lab = "Average Stability",
+ # x_axis = "avg_stability_scaled",
+ # fill_categ_cols = c("red", "blue")
+ # )
+ # )
+ #
+ #
+ # #### observeEvent() Fun(tm) ####
+ # observeEvent(input$clear_ngl, {
+ # NGLVieweR_proxy("structure") %>%
+ # removeSelection("Pos")
+ # })
+ # # Button to test adding a position
+ # observeEvent(input$test_ngl, {
+ # NGLVieweR_proxy("structure") %>%
+ # addSelection('ball+stick'
+ # , param = list(
+ # name = "Pos"
+ # , sele = "35"
+ # , color = "green")
+ # )
+ # })
+ #
+ # observeEvent(
+ # {
+ # input$display_position_range
+ # input$stability_snp_param
+ # input$logoplot_colour_scheme
+ # input$omit_snp_count
+ # input$switch_target
+ # input$snp_ligand_dist
+ # input$snp_nca_dist
+ # input$snp_interface_dist
+ # },
+ # {
+ # print("entering main observeEvent()")
+ # # C O M P A T I B I L I T Y
+ # #gene=input$switch_target
+ # #drug=target_map[[gene]]
+ # target_gene = input$switch_target
+ # merged_df3 = cbind(get(paste0(input$switch_target, '_merged_df3')))
+ #
+ # position_max=max(merged_df3[['position']])
+ # position_min=min(merged_df3[['position']])
+ # min_ligand_distance=min(merged_df3$ligand_distance)
+ # max_ligand_distance=max(merged_df3$ligand_distance)
+ # # FIXME: these are IMPORTANT
+ # # # add "pos_count" position count column
+ # # merged_df3=merged_df3 %>% dplyr::add_count(position)
+ # # merged_df3$pos_count=merged_df3$n
+ # # merged_df3$n=NULL
+ # #
+ # mutable_df3 = cbind(merged_df3)
+ # #
+ # # # re-sort the dataframe according to position count
+ # sorted_df = cbind(merged_df3)
+ # sorted_df = sorted_df %>% arrange(pos_count)
+ #
+ # #
+ # outdir = paste0(load_dir, "Data/", drug, '/output/')
+ # indir = paste0(load_dir, "Data/", drug , "/input/")
+ #
+ #
+ # #### nasty special-purpose merged_df3 variants ####
+ # # FIXME: SLOW
+ # # corr_plotdf = corr_data_extract(
+ # # merged_df3
+ # # , gene = gene
+ # # , drug = drug
+ # # , extract_scaled_cols = F
+ # # )
+ #
+ # #input$stability_snp_param
+ #
+ # updateCheckboxGroupInput(
+ # session,
+ # "corr_selected",
+ # choiceNames = colnames(get(paste0(input$switch_target,"_corr_df_m3_f"))),
+ # choiceValues = colnames(get(paste0(input$switch_target,"_corr_df_m3_f"))),
+ # selected = c("FoldX", "DeepDDG", "mCSM.DUET")
+ # )
+ #
+ # updateSliderInput(
+ # session,
+ # "display_position_range",
+ # min = position_min,
+ # max = position_max
+ # #, value = c(position_min, position_min+150)
+ # )
+ #
+ # updateNumericInput(session, "selected_logop_snp_position", min = position_min, max = position_max, value = position_min)
+ # updateNumericInput(session, "selected_logop_ed_position", min = position_min, max = position_max, value = position_min)
+ # updateNumericInput(session, "corr_lig_dist", min = min_ligand_distance, max = max_ligand_distance, value = min_ligand_distance)
+ #
+ # updateNumericInput(session, "snp_ligand_dist", min = min(merged_df3$ligand_distance), max = max(merged_df3$ligand_distance))
+ # updateNumericInput(session, "snp_interface_dist", min = min(merged_df3$interface_dist), max = max(merged_df3$interface_dist))
+ # updateNumericInput(session, "snp_nca_dist", min = min(merged_df3$nca_distance), max = max(merged_df3$nca_distance))
+ #
+ #
+ # # different data ranges required for SNP distances
+ # snp_ligand_dist_df3 = merged_df3[merged_df3[['ligand_distance']]=plot_min & mutable_df3$position <=plot_max),]
+ #
+ # subset_mutable_df3=mutable_df3[(mutable_df3$position>=plot_min & mutable_df3$position <=plot_max),]
+ # subset_sorted_df=sorted_df[(sorted_df$position>=plot_min & sorted_df$position <=plot_max),]
+ #
+ # #### LogoPlotSnps ####
+ # output$LogoPlotSnps = renderPlot(
+ # LogoPlotSnps(subset_mutable_df3,
+ # aa_pos_drug = get(paste0(target_gene,"_aa_pos_drug")),
+ # active_aa_pos = get(paste0(target_gene,"_active_aa_pos")),
+ # aa_pos_lig1 = get(paste0(target_gene,"_aa_pos_lig1")),
+ # aa_pos_lig2 = get(paste0(target_gene,"_aa_pos_lig2")),
+ # aa_pos_lig3 = get(paste0(target_gene,"_aa_pos_lig3")),
+ # my_logo_col = logoplot_colour_scheme,
+ # omit_snp_count = omit_snp_count
+ #
+ # )
+ # )
+ #
+ # ### NGLViewer ####
+ # # Structure Viewer WebGL/NGLViewR window
+ # output$structure <- renderNGLVieweR({
+ # #ngl_gene=isolate(input$switch_target)
+ # ngl_gene=input$switch_target
+ # ngl_drug=target_map[[ngl_gene]]
+ # ngl_pdb_file=paste0(load_dir, "Data/", ngl_drug, '/output/depth/', ngl_gene, '_complex.pdb')
+ # print(ngl_pdb_file)
+ # NGLVieweR(ngl_pdb_file) %>%
+ # addRepresentation("cartoon",
+ # param = list(name = "cartoon",
+ # color="tan"
+ # #, colorScheme = "chainid"
+ # )
+ # ) %>%
+ # stageParameters(backgroundColor = "lightgrey") %>%
+ # setQuality("high") %>%
+ # setFocus(0) %>%
+ # setSpin(FALSE)
+ # })
+ #
+ #
+ # #### Shared dataTable() ####
+ # output$table = DT::renderDataTable(
+ # datatable(subset_sorted_df[,table_columns],
+ # filter="top",
+ # selection = "single"
+ # )
+ # )
+ #
+ # #### bp_stability_hmap ####
+ # # red/blue tiles wala "Stability SNP by Site"
+ # output$bp_stability_hmap = renderPlot(
+ # bp_stability_hmap(
+ # subset_sorted_df,
+ # reorder_position = input$reorder_custom_h,
+ # p_title = NULL,
+ # yvar_colname = stability_colname,
+ # stability_colname = stability_colname,
+ # stability_outcome_colname = outcome_colname,
+ # my_ylab = NULL,
+ # y_max_override = max(sorted_df$pos_count),
+ # aa_pos_drug = get(paste0("embb","_aa_pos_drug")),
+ # active_aa_pos = get(paste0("embb","_active_aa_pos")),
+ # aa_pos_lig1 = get(paste0("embb","_aa_pos_lig1")),
+ # aa_pos_lig2 = get(paste0("embb","_aa_pos_lig2")),
+ # aa_pos_lig3 = get(paste0("embb","_aa_pos_lig3"))
+ # )
+ # )
+ # #### LogoPlotCustomH ####
+ # output$LogoPlotCustomH = renderPlot(
+ # LogoPlotCustomH(
+ # subset_sorted_df,
+ # my_logo_col = logoplot_colour_scheme,
+ # aa_pos_drug = get(paste0(target_gene,"_aa_pos_drug")),
+ # active_aa_pos = get(paste0(target_gene,"_active_aa_pos")),
+ # aa_pos_lig1 = get(paste0(target_gene,"_aa_pos_lig1")),
+ # aa_pos_lig2 = get(paste0(target_gene,"_aa_pos_lig2")),
+ # aa_pos_lig3 = get(paste0(target_gene,"_aa_pos_lig3"))
+ # )
+ # )
+ #
+ # #### wideP_consurf3 ####
+ # output$wideP_consurf3 = renderPlot(
+ # wideP_consurf3(
+ # subset_sorted_df,
+ # point_colours = consurf_colours,
+ # aa_pos_drug = get(paste0(target_gene,"_aa_pos_drug")),
+ # active_aa_pos = get(paste0(target_gene,"_active_aa_pos")),
+ # aa_pos_lig1 = get(paste0(target_gene,"_aa_pos_lig1")),
+ # aa_pos_lig2 = get(paste0(target_gene,"_aa_pos_lig2")),
+ # aa_pos_lig3 = get(paste0(target_gene,"_aa_pos_lig3"))
+ # )
+ # )
+ #
+ # #### site_snp_count_bp ####
+ # #mutable_df3[(mutable_df3$position>=plot_min & mutable_df3$position <=plot_max),]
+ # # ligand_distance
+ # # interface_dist
+ # # nca_distance
+ # # change to: multiple plots, all use site_snp_count_bp
+ # # 4 x plots side by side, one normal (no dist. filter), 2/3 filtered by distance columns above
+ # # use "subtitle text" from pos_count_bp_i.R
+ #
+ # output$site_snp_count_bp = renderPlot(
+ # site_snp_count_bp(
+ # mutable_df3,
+ # title_colour = 'black',
+ # subtitle_colour = "black",
+ # leg_text_size = 12,
+ # axis_label_size = 12,
+ # geom_ls = 4
+ # )
+ # )
+ # output$site_snp_count_bp_ligand = renderPlot(
+ # site_snp_count_bp(
+ # snp_ligand_dist_df3,
+ # title_colour = 'black',
+ # subtitle_colour = "black",
+ # leg_text_size = 12,
+ # axis_label_size = 12,
+ # geom_ls = 4
+ # )
+ # )
+ #
+ # # if ("interface_dist" %in% colnames(input$switch_target)) {
+ # output$site_snp_count_interface = renderPlot(
+ # site_snp_count_bp(
+ # snp_interface_dist_df3,
+ # title_colour = 'black',
+ # subtitle_colour = "black",
+ # leg_text_size = 12,
+ # axis_label_size = 12,
+ # geom_ls = 4
+ # )
+ # )
+ # # } #else {
+ # # output$site_snp_count_interface = renderPlot(
+ # # ggplot() + annotate(x=1,y=1,"text", label="No interface data for this target")+theme_void()
+ # # )
+ # # }
+ #
+ # output$site_snp_count_nca = renderPlot( #{
+ # #if ("nca_distance" %in% colnames(input$switch_target)) {
+ # site_snp_count_bp(
+ # snp_nca_dist_df3,
+ # title_colour = 'black',
+ # subtitle_colour = "black",
+ # leg_text_size = 12,
+ # axis_label_size = 12,
+ # geom_ls = 4
+ # )
+ # # } else {
+ # # ggplot() + annotate(x=1,y=1,"text", label="No RNA data for this target")+theme_void()
+ # # }
+ # # }
+ # )
+ #
+ #
+ #
+ # #### DM OM Plots ####
+ # #dm_om_param
+ # # order needs to be:
+ # # embb_lf_duet, embb_lf_foldx, embb_lf_deepddg, embb_lf_dynamut2, embb_lf_dist_gen,
+ # # embb_lf_consurf, embb_lf_provean, embb_lf_snap2, embb_lf_mcsm_lig, embb_lf_mmcsm_lig,
+ # # embb_lf_mcsm_ppi2, SOMETHING NA
+ #
+ # # embb_lf_mmcsm_lig SOMETHING NA,
+ # #dm_om_selection=input$dm_om_param
+ # #dm_om_df = dm_om_map[[dm_om_selection]]
+ # #output$lf_bp2 = renderPlot(lf_bp2(get(paste0(input$switch_target, '_', dm_om_df))))
+ #
+ # output$lf_bp2 = renderPlot(
+ # cowplot::plot_grid(
+ # plotlist = lapply(
+ # ls(name=.GlobalEnv,
+ # pattern=paste0(
+ # target_gene,
+ # '_lf_'
+ # )
+ # ),
+ # function(x){
+ # lf_bp2(get(x))
+ # }
+ # )#, nrow=3
+ # ), height=800
+ # )
+ # }
+ # )
+ #
+ #
+ # # FIXME: Doesn't add selected table rows correctly
+ # observeEvent(
+ # {
+ # input$table_rows_selected
+ # },
+ # {
+ # # having to duplicate this is a bit annoying :-(
+ # ngl_merged_df3=cbind(get(paste0(input$switch_target, '_merged_df3')))
+ # ngl_sorted_df = cbind(ngl_merged_df3)
+ # ngl_sorted_df = ngl_sorted_df %>% arrange(pos_count)
+ #
+ # position_max=max(ngl_merged_df3[['position']])
+ # position_min=min(ngl_merged_df3[['position']])
+ # display_position_range = input$display_position_range
+ # plot_min=display_position_range[1]
+ # plot_max=display_position_range[2]
+ # #ngl_subset_df=ngl_merged_df3[(ngl_merged_df3$position>=plot_min & ngl_merged_df3$position <=plot_max),]
+ # ngl_subset_df=ngl_sorted_df[(ngl_sorted_df$position>=plot_min & ngl_sorted_df$position <=plot_max),]
+ #
+ #
+ # #table_rows_selected = isolate(input$table_rows_selected)
+ # table_rows_selected = input$table_rows_selected
+ # class(table_rows_selected)
+ # #cat(paste0("Target: ", as.character(input$switch_target), "\nTable Rows for NGLViewR: ", as.character(table_rows_selected)))
+ #
+ # struct_pos=(as.character(ngl_subset_df[table_rows_selected,"position"]))
+ # cat(paste0('Table Index: ', table_rows_selected, "position: ", struct_pos))
+ #
+ # NGLVieweR_proxy("structure") %>%
+ # #addSelection('ball+stick'
+ # addSelection('hyperball'
+ # , param = list(
+ # name = "Pos"
+ # , sele = struct_pos
+ # #, color = "#00ff00"
+ # , colorValue="00ff00"
+ # , colorScheme="element"
+ # )
+ # )
+ # #cat(paste0('Done NGLViewR addSelection for: ', positions_to_add))
+ # }
+ # )
+ # #### Correlation observeEvent ####
+ # # Yet another special-case observeEvent to handle the correlation pair plot
+ #
+ # observeEvent(
+ # {
+ # input$corr_selected
+ # input$corr_method
+ # input$corr_lig_dist
+ # },
+ # {
+ # dist_cutoff_user = input$corr_lig_dist
+ # target_gene=input$switch_target
+ # plot_title=paste0(target_map[[target_gene]],"/",target_gene)
+ #
+ # corr_plot_df = get(
+ # paste0(
+ # input$switch_target,"_corr_df_m3_f"
+ # )
+ # )[,c(input$corr_selected, "dst_mode")]
+ #
+ # #if ( dist_cutoff_user >= 2) {
+ # #corr_plotdf_subset = corr_plot_df[corr_plot_df[['Lig.Dist']] < dist_cutoff_user,]
+ # #}
+ # # else {
+ # # corr_plotdf_subset = corr_plot_df
+ # # }
+ #
+ # #### Correlation using ggpairs() ####
+ # output$my_corr_pairs = renderPlot(
+ # dashboard_ggpairs(
+ # corr_plot_df,
+ # plot_title = plot_title,
+ # method = input$corr_method,
+ # tt_args_size = 7,
+ # gp_args_size = 7
+ # ), height = 900
+ # )
+ # }
+ # )
+ # }
+ #
+ #
+ # app <- shinyApp(ui, server)
+ # runApp(app)
+}