diff --git a/drug-target/server.R b/drug-target/server.R index 6f5247d..386ce81 100644 --- a/drug-target/server.R +++ b/drug-target/server.R @@ -146,7 +146,50 @@ function(input, output, session) { } ) + # Isolated observeEvent() which updates all the UI controls independently of the plot rendering observeEvent() + observeEvent( + { + input$display_position_range + input$stability_snp_param + input$logoplot_colour_scheme + input$switch_target + input$force + }, + { + 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) + mutable_df3 = cbind(merged_df3) + + 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 + ) + + 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)) + + } + ) observeEvent( { input$display_position_range @@ -164,10 +207,10 @@ function(input, output, session) { 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) + # 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) @@ -196,29 +239,29 @@ function(input, output, session) { #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)) + # 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)) @@ -232,7 +275,7 @@ function(input, output, session) { logoplot_colour_scheme = input$logoplot_colour_scheme omit_snp_count = input$omit_snp_count - print(paste0('Plotting positions between: ', plot_min, ' and ', plot_max)) + #print(paste0('Plotting positions between: ', plot_min, ' and ', plot_max)) subset_mutable_df3=mutable_df3[(mutable_df3$position>=plot_min & mutable_df3$position <=plot_max),]