From 6301a1b03b9e2350f11e3d2fce4d732a1415ec40 Mon Sep 17 00:00:00 2001 From: Helder Ribeiro Date: Tue, 28 Feb 2023 16:51:50 -0500 Subject: [PATCH 01/19] add ggplot to dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 4437be5..8289b16 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update && apt-get install -y \ libxml2-dev # Install R depedencies -RUN install2.r shiny pkgload remotes devtools bio3d bs4Dash config data.table DT golem NGLVieweR RcppTOML readr rjson shinyjs blogdown colourpicker shinyfullscreen shinycssloaders shinyWidgets +RUN install2.r shiny pkgload remotes devtools bio3d bs4Dash config data.table DT golem NGLVieweR RcppTOML readr rjson shinyjs blogdown colourpicker shinyfullscreen shinycssloaders shinyWidgets ggplot # Copy the app directory into the image COPY ./kvfinder-web-portal/ /srv/shiny-server/kvfinder-web-portal/ From b54108cfb6f7b83852a0cb36871890554a8f4e17 Mon Sep 17 00:00:00 2001 From: Helder Ribeiro Date: Tue, 28 Feb 2023 16:54:55 -0500 Subject: [PATCH 02/19] add ggplot2 to dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 8289b16..2ee2c40 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update && apt-get install -y \ libxml2-dev # Install R depedencies -RUN install2.r shiny pkgload remotes devtools bio3d bs4Dash config data.table DT golem NGLVieweR RcppTOML readr rjson shinyjs blogdown colourpicker shinyfullscreen shinycssloaders shinyWidgets ggplot +RUN install2.r shiny pkgload remotes devtools bio3d bs4Dash config data.table DT golem NGLVieweR RcppTOML readr rjson shinyjs blogdown colourpicker shinyfullscreen shinycssloaders shinyWidgets ggplot2 # Copy the app directory into the image COPY ./kvfinder-web-portal/ /srv/shiny-server/kvfinder-web-portal/ From 9c21de9a4b2a49b6ad488a584a729b3ba18a90b4 Mon Sep 17 00:00:00 2001 From: Helder Ribeiro Date: Tue, 28 Feb 2023 16:55:34 -0500 Subject: [PATCH 03/19] add gglpot2 to description --- kvfinder-web-portal/DESCRIPTION | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kvfinder-web-portal/DESCRIPTION b/kvfinder-web-portal/DESCRIPTION index 12177ae..623ed1f 100644 --- a/kvfinder-web-portal/DESCRIPTION +++ b/kvfinder-web-portal/DESCRIPTION @@ -47,7 +47,8 @@ Imports: shinycssloaders, shinyfullscreen, shinyjs, - shinyWidgets + shinyWidgets, + gglpot2 Encoding: UTF-8 LazyData: true RoxygenNote: 7.1.2 From de3e0e934eca24e730dc04d948929e2cd35225c9 Mon Sep 17 00:00:00 2001 From: Helder Ribeiro Date: Tue, 28 Feb 2023 16:56:18 -0500 Subject: [PATCH 04/19] add ggplot2 correct to description --- kvfinder-web-portal/DESCRIPTION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kvfinder-web-portal/DESCRIPTION b/kvfinder-web-portal/DESCRIPTION index 623ed1f..83169d7 100644 --- a/kvfinder-web-portal/DESCRIPTION +++ b/kvfinder-web-portal/DESCRIPTION @@ -48,7 +48,7 @@ Imports: shinyfullscreen, shinyjs, shinyWidgets, - gglpot2 + ggplot Encoding: UTF-8 LazyData: true RoxygenNote: 7.1.2 From 1ce0e562c2d7c8d0ed5e678e5731b1e6db3b2424 Mon Sep 17 00:00:00 2001 From: Helder Ribeiro Date: Tue, 28 Feb 2023 17:06:05 -0500 Subject: [PATCH 05/19] fix read hyd bug --- kvfinder-web-portal/DESCRIPTION | 2 +- kvfinder-web-portal/R/mod_server_checkResults.R | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/kvfinder-web-portal/DESCRIPTION b/kvfinder-web-portal/DESCRIPTION index 83169d7..0da702b 100644 --- a/kvfinder-web-portal/DESCRIPTION +++ b/kvfinder-web-portal/DESCRIPTION @@ -48,7 +48,7 @@ Imports: shinyfullscreen, shinyjs, shinyWidgets, - ggplot + ggplot2 Encoding: UTF-8 LazyData: true RoxygenNote: 7.1.2 diff --git a/kvfinder-web-portal/R/mod_server_checkResults.R b/kvfinder-web-portal/R/mod_server_checkResults.R index ca60680..ed3390e 100644 --- a/kvfinder-web-portal/R/mod_server_checkResults.R +++ b/kvfinder-web-portal/R/mod_server_checkResults.R @@ -84,13 +84,14 @@ check_results <- function(input, output, run_id, is_pg2, url_address, session) { output[[results_table]] <- renderUI({ DT::dataTableOutput(table_out) }) + #print(result_toml$AVG_HYDROPATHY) output[[table_out]] <- DT::renderDataTable( data.table( `ID` = names(result_toml$AREA), `Area (A²)` = unlist(result_toml$AREA), `Vol. (A³)` = unlist(result_toml$VOLUME), `Dep. (A)` = unlist(result_toml$AVG_DEPTH), - `Hyd.` = unlist(result_toml$AVG_HYDROPATHY) + `Hyd.` = unlist(result_toml$AVG_HYDROPATHY[names(result_toml$AVG_HYDROPATHY) != 'EisenbergWeiss']) ), filter = c("none"), style = "auto", @@ -98,7 +99,7 @@ check_results <- function(input, output, run_id, is_pg2, url_address, session) { buttons = c("excel", "pdf"), autoWidth = TRUE, scrollX = TRUE, - columnDefs = list(list(targets=c(5), visible=TRUE, width='60')) + columnDefs = list(list(targets=c(5), visible=TRUE, width='10%')) ), extensions = "Buttons" ) From 38ad6550de49960c5f711e1136d26d37f615ea66 Mon Sep 17 00:00:00 2001 From: Helder Ribeiro Date: Tue, 28 Feb 2023 17:15:51 -0500 Subject: [PATCH 06/19] fix table result width --- kvfinder-web-portal/R/mod_server_checkResults.R | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/kvfinder-web-portal/R/mod_server_checkResults.R b/kvfinder-web-portal/R/mod_server_checkResults.R index ed3390e..238ef50 100644 --- a/kvfinder-web-portal/R/mod_server_checkResults.R +++ b/kvfinder-web-portal/R/mod_server_checkResults.R @@ -90,7 +90,8 @@ check_results <- function(input, output, run_id, is_pg2, url_address, session) { `ID` = names(result_toml$AREA), `Area (A²)` = unlist(result_toml$AREA), `Vol. (A³)` = unlist(result_toml$VOLUME), - `Dep. (A)` = unlist(result_toml$AVG_DEPTH), + `Avg Dep. (A)` = unlist(result_toml$AVG_DEPTH), + `Max Dep. (A)` = unlist(result_toml$MAX_DEPTH), `Hyd.` = unlist(result_toml$AVG_HYDROPATHY[names(result_toml$AVG_HYDROPATHY) != 'EisenbergWeiss']) ), filter = c("none"), @@ -99,7 +100,7 @@ check_results <- function(input, output, run_id, is_pg2, url_address, session) { buttons = c("excel", "pdf"), autoWidth = TRUE, scrollX = TRUE, - columnDefs = list(list(targets=c(5), visible=TRUE, width='10%')) + columnDefs = list(list(targets=c(1), visible=TRUE, width='10%')) ), extensions = "Buttons" ) From 5a3806ef0d2d8fdbd27720e8c9e908d62e51f420 Mon Sep 17 00:00:00 2001 From: Helder Ribeiro Date: Tue, 28 Feb 2023 17:33:06 -0500 Subject: [PATCH 07/19] fix bug table footer --- kvfinder-web-portal/R/app_server.R | 8 ++++++++ kvfinder-web-portal/R/mod_server_checkResults.R | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/kvfinder-web-portal/R/app_server.R b/kvfinder-web-portal/R/app_server.R index 3b4f7d8..66684f8 100644 --- a/kvfinder-web-portal/R/app_server.R +++ b/kvfinder-web-portal/R/app_server.R @@ -174,6 +174,10 @@ app_server <- function(input, output, session) { id = "download2", time = 0 ) + hideElement( + id = "table_footer", + time = 0 + ) hideElement( id = "view_str", time = 0 @@ -288,6 +292,10 @@ app_server <- function(input, output, session) { id = "download2", time = 0 ) + showElement( + id = "table_footer", + time = 0 + ) } }) # disable check button button to force the users to resubmit job and to avoid inconsistencies in the interface diff --git a/kvfinder-web-portal/R/mod_server_checkResults.R b/kvfinder-web-portal/R/mod_server_checkResults.R index 238ef50..b0afb68 100644 --- a/kvfinder-web-portal/R/mod_server_checkResults.R +++ b/kvfinder-web-portal/R/mod_server_checkResults.R @@ -92,7 +92,7 @@ check_results <- function(input, output, run_id, is_pg2, url_address, session) { `Vol. (A³)` = unlist(result_toml$VOLUME), `Avg Dep. (A)` = unlist(result_toml$AVG_DEPTH), `Max Dep. (A)` = unlist(result_toml$MAX_DEPTH), - `Hyd.` = unlist(result_toml$AVG_HYDROPATHY[names(result_toml$AVG_HYDROPATHY) != 'EisenbergWeiss']) + `Avg Hyd.` = unlist(result_toml$AVG_HYDROPATHY[names(result_toml$AVG_HYDROPATHY) != 'EisenbergWeiss']) ), filter = c("none"), style = "auto", @@ -140,7 +140,7 @@ check_results <- function(input, output, run_id, is_pg2, url_address, session) { output$table_footer <- renderText({ paste( - p("ID: Cavity ID, Area: Cavity area, Vol: Cavity volume, Dep: Cavity average depth, Hyd: Cavity average hydropathy.") + p(strong("ID: "), "Cavity ID, ", strong("Area: "), "Cavity area, ", strong("Vol: "), "Cavity volume, ", strong("Avg Dep: "), "Cavity average depth ,", strong("Max Dep: "), "Cavity maximum depth, ", strong("Avg Hyd: "), "Cavity average hydropathy.") ) }) # create list to store results From 72fd843f3d373a2f1e2fa9b05a1c6eec2f8a7c7c Mon Sep 17 00:00:00 2001 From: Helder Ribeiro Date: Tue, 28 Feb 2023 17:37:16 -0500 Subject: [PATCH 08/19] import ggplot2 and add ggpubr to description and dockerfile --- Dockerfile | 2 +- kvfinder-web-portal/DESCRIPTION | 3 ++- kvfinder-web-portal/NAMESPACE | 1 + kvfinder-web-portal/R/app_server.R | 6 ++++-- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 2ee2c40..fa4c57e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update && apt-get install -y \ libxml2-dev # Install R depedencies -RUN install2.r shiny pkgload remotes devtools bio3d bs4Dash config data.table DT golem NGLVieweR RcppTOML readr rjson shinyjs blogdown colourpicker shinyfullscreen shinycssloaders shinyWidgets ggplot2 +RUN install2.r shiny pkgload remotes devtools bio3d bs4Dash config data.table DT golem NGLVieweR RcppTOML readr rjson shinyjs blogdown colourpicker shinyfullscreen shinycssloaders shinyWidgets ggplot2 ggpubr # Copy the app directory into the image COPY ./kvfinder-web-portal/ /srv/shiny-server/kvfinder-web-portal/ diff --git a/kvfinder-web-portal/DESCRIPTION b/kvfinder-web-portal/DESCRIPTION index 0da702b..96ddaef 100644 --- a/kvfinder-web-portal/DESCRIPTION +++ b/kvfinder-web-portal/DESCRIPTION @@ -48,7 +48,8 @@ Imports: shinyfullscreen, shinyjs, shinyWidgets, - ggplot2 + ggplot2, + ggpubr Encoding: UTF-8 LazyData: true RoxygenNote: 7.1.2 diff --git a/kvfinder-web-portal/NAMESPACE b/kvfinder-web-portal/NAMESPACE index dfa1b29..79e89b9 100644 --- a/kvfinder-web-portal/NAMESPACE +++ b/kvfinder-web-portal/NAMESPACE @@ -38,6 +38,7 @@ import(blogdown) import(bs4Dash) import(colourpicker) import(data.table) +import(ggplot2) import(golem) import(httr) import(jsonlite) diff --git a/kvfinder-web-portal/R/app_server.R b/kvfinder-web-portal/R/app_server.R index 66684f8..1e59ef2 100644 --- a/kvfinder-web-portal/R/app_server.R +++ b/kvfinder-web-portal/R/app_server.R @@ -4,6 +4,8 @@ #' DO NOT REMOVE. #' @import shiny #' @import shinyjs +#' @import ggplot2 +#' #' #' @noRd #' @@ -546,7 +548,7 @@ app_server <- function(input, output, session) { -0.49,0.41,-1.42,-1.09,1.54,-0.66,-1.22, -0.12,0.18,0.05, -0.83, -0.27, -1.11) df <- data.frame(x = seq(1,length(EisenbergWeiss_scale)), y = EisenbergWeiss_scale) - p <- ggplot(data = df, aes(x = x, y = y, colour = y)) + + p <- ggplot2::ggplot(data = df, aes(x = x, y = y, colour = y)) + geom_point() + scale_colour_gradient2(name = "Hydropathy", low = "yellow", mid = "white", high = "blue", midpoint = 0.59,breaks = seq(-1,2.5,0.5))+ theme(plot.title = element_text(hjust = 0.5), @@ -559,7 +561,7 @@ app_server <- function(input, output, session) { size = guide_legend(title.position="top", title.hjust = 0.5)) # ggpubr does this for you - leg <- get_legend(p) + leg <- ggpubr::get_legend(p) as_ggplot(leg) }) #, height =50, width = '100%' From b95182ba893c4be0d62f2e0301d97a6d36e24591 Mon Sep 17 00:00:00 2001 From: Helder Ribeiro Date: Tue, 28 Feb 2023 17:38:53 -0500 Subject: [PATCH 09/19] add ggpubr one more time --- kvfinder-web-portal/R/app_server.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kvfinder-web-portal/R/app_server.R b/kvfinder-web-portal/R/app_server.R index 1e59ef2..c5fd464 100644 --- a/kvfinder-web-portal/R/app_server.R +++ b/kvfinder-web-portal/R/app_server.R @@ -562,7 +562,7 @@ app_server <- function(input, output, session) { # ggpubr does this for you leg <- ggpubr::get_legend(p) - as_ggplot(leg) + ggpubr::as_ggplot(leg) }) #, height =50, width = '100%' }) From 83620b1749f9aaa2ee78381c90dae9c1d803ef7b Mon Sep 17 00:00:00 2001 From: Helder Ribeiro Date: Tue, 28 Feb 2023 18:34:48 -0500 Subject: [PATCH 10/19] improve bar hyd scale --- kvfinder-web-portal/R/app_server.R | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/kvfinder-web-portal/R/app_server.R b/kvfinder-web-portal/R/app_server.R index c5fd464..6ecb9f4 100644 --- a/kvfinder-web-portal/R/app_server.R +++ b/kvfinder-web-portal/R/app_server.R @@ -556,7 +556,11 @@ app_server <- function(input, output, session) { legend.key.width= unit(0.2, 'npc'), #legend.spacing = unit(0.25,"cm"), legend.title = element_text(hjust = 0.5), - legend.justification = "center") + + legend.justification = "center", + panel.background = element_rect(fill='transparent'), + plot.background = element_rect(fill='transparent'), + legend.background = element_rect(fill='transparent'), + legend.box.background = element_rect(fill='transparent'))+ guides(colour = guide_colourbar(title.position="top", title.hjust = 0.5), size = guide_legend(title.position="top", title.hjust = 0.5)) @@ -564,7 +568,7 @@ app_server <- function(input, output, session) { leg <- ggpubr::get_legend(p) ggpubr::as_ggplot(leg) - }) #, height =50, width = '100%' + }, bg="transparent") #, height =50, width = '100%' }) ##### View in Get latest results page (pg2) From ac469a8eb8f739a2e92b0763e8e499243c1b27fc Mon Sep 17 00:00:00 2001 From: Helder Ribeiro Date: Tue, 28 Feb 2023 20:18:02 -0500 Subject: [PATCH 11/19] add depth scale --- kvfinder-web-portal/R/app_server.R | 37 ++++++++++++++++++- kvfinder-web-portal/R/app_ui.R | 7 ++++ .../R/mod_server_checkResults.R | 9 ++++- 3 files changed, 51 insertions(+), 2 deletions(-) diff --git a/kvfinder-web-portal/R/app_server.R b/kvfinder-web-portal/R/app_server.R index 6ecb9f4..a262660 100644 --- a/kvfinder-web-portal/R/app_server.R +++ b/kvfinder-web-portal/R/app_server.R @@ -538,10 +538,43 @@ app_server <- function(input, output, session) { }) observeEvent(input$input_cavity_deep, { + if(input$input_cavity_deep == TRUE){ + updateCheckboxInput(session, "input_cavity_hyd", value = FALSE) + } + color_cavity_deepth(input = input, output = output, is_pg2 = FALSE, cav_rep_list=cav_rep_list,result_pdb_list=result_pdb ) - }) + + output$scale_plot_deep <- renderPlot({ + depth_scale = c(0,result_pdb$list_depth, max(unlist(result_pdb$result_toml$MAX_DEPTH))) + df <- data.frame(x = seq(1,length(depth_scale)), y = depth_scale) + p <- ggplot2::ggplot(data = df, aes(x = x, y = y, colour = y)) + + geom_point() + + #scale_colour_gradient2(name = "Deepth (A)", low = "yellow", mid = "white", high = "blue", midpoint = 0.59,breaks = seq(-1,2.5,0.5))+ + scale_color_gradientn(name = "Deepth (A)", colours = rev(rainbow(5)))+ + theme(plot.title = element_text(hjust = 0.5), + legend.position = "bottom", + legend.key.width= unit(0.2, 'npc'), + #legend.spacing = unit(0.25,"cm"), + legend.title = element_text(hjust = 0.5), + legend.justification = "center", + panel.background = element_rect(fill='transparent'), + plot.background = element_rect(fill='transparent'), + legend.background = element_rect(fill='transparent'), + legend.box.background = element_rect(fill='transparent'))+ + guides(colour = guide_colourbar(title.position="top", title.hjust = 0.5), + size = guide_legend(title.position="top", title.hjust = 0.5)) + + # ggpubr does this for you + leg <- ggpubr::get_legend(p) + ggpubr::as_ggplot(leg) + + }, bg="transparent") #, height =50, width = '100%' +}) observeEvent(input$input_cavity_hyd, { + if(input$input_cavity_hyd == TRUE){ + updateCheckboxInput(session, "input_cavity_deep", value = FALSE) + } color_cavity_hyd(input = input, output = output, is_pg2 = FALSE, cav_rep_list=cav_rep_list,result_pdb_list=result_pdb ) output$scale_plot <- renderPlot({ EisenbergWeiss_scale = c(-0.64, 2.6,0.8,0.92,-0.3,0.87,0.76, @@ -571,6 +604,8 @@ app_server <- function(input, output, session) { }, bg="transparent") #, height =50, width = '100%' }) + + ##### View in Get latest results page (pg2) # Click view in the secondary page to initialize the result visualization with the NGL engine diff --git a/kvfinder-web-portal/R/app_ui.R b/kvfinder-web-portal/R/app_ui.R index 67c011b..3955659 100644 --- a/kvfinder-web-portal/R/app_ui.R +++ b/kvfinder-web-portal/R/app_ui.R @@ -162,6 +162,13 @@ app_ui <- function(request) { plotOutput("scale_plot", height = '50', width = '50%')) ) ), + conditionalPanel( + condition="input.input_cavity_deep==1", + fluidRow( + column(12, align='center', + plotOutput("scale_plot_deep", height = '50', width = '50%')) + ) + ), fluidRow( column(2, uiOutput("selection_pdb")), column(2, uiOutput("cavity_rep")), diff --git a/kvfinder-web-portal/R/mod_server_checkResults.R b/kvfinder-web-portal/R/mod_server_checkResults.R index b0afb68..366506f 100644 --- a/kvfinder-web-portal/R/mod_server_checkResults.R +++ b/kvfinder-web-portal/R/mod_server_checkResults.R @@ -143,12 +143,19 @@ check_results <- function(input, output, run_id, is_pg2, url_address, session) { p(strong("ID: "), "Cavity ID, ", strong("Area: "), "Cavity area, ", strong("Vol: "), "Cavity volume, ", strong("Avg Dep: "), "Cavity average depth ,", strong("Max Dep: "), "Cavity maximum depth, ", strong("Avg Hyd: "), "Cavity average hydropathy.") ) }) + + #get values of depth for each atom + str_cav = strsplit(result_pdb_cav, "\n")[[1]] + get_atoms = str_cav[sapply(str_cav, function(x) startsWith(x, 'ATOM'))] + #print(get_atoms[1:10]) + list_depth = as.numeric(sapply(get_atoms, function(x) strsplit(x, '\\s+')[[1]][10])) # create list to store results result_list <- list( retrieve_input_pdb = retrieve_input_pdb, result_pdb_cav = result_pdb_cav, result_cav_names = cav_out_names, - result_toml = result_toml + result_toml = result_toml, + list_depth = list_depth ) return(result_list) } From c1b62c686370f0692189c5436ca1d0dbfc1a2367 Mon Sep 17 00:00:00 2001 From: Helder Ribeiro Date: Tue, 28 Feb 2023 21:27:12 -0500 Subject: [PATCH 12/19] add color scales in pg2 --- kvfinder-web-portal/R/app_server.R | 65 ++++++++++++++++++++++++++++++ kvfinder-web-portal/R/app_ui.R | 14 +++++++ 2 files changed, 79 insertions(+) diff --git a/kvfinder-web-portal/R/app_server.R b/kvfinder-web-portal/R/app_server.R index a262660..d3808da 100644 --- a/kvfinder-web-portal/R/app_server.R +++ b/kvfinder-web-portal/R/app_server.R @@ -761,11 +761,76 @@ app_server <- function(input, output, session) { }) observeEvent(input$input_cavity_deep_pg2, { + if(input$input_cavity_deep_pg2 == TRUE){ + updateCheckboxInput(session, "input_cavity_hyd_pg2", value = FALSE) + } + color_cavity_deepth(input = input, output = output, is_pg2 = TRUE, cav_rep_list=cav_rep_list,result_pdb_list=result_pdb ) + + output$scale_plot_deep_pg2 <- renderPlot({ + depth_scale = c(0,result_pdb$list_depth, max(unlist(result_pdb$result_toml$MAX_DEPTH))) + df <- data.frame(x = seq(1,length(depth_scale)), y = depth_scale) + p <- ggplot2::ggplot(data = df, aes(x = x, y = y, colour = y)) + + geom_point() + + #scale_colour_gradient2(name = "Deepth (A)", low = "yellow", mid = "white", high = "blue", midpoint = 0.59,breaks = seq(-1,2.5,0.5))+ + scale_color_gradientn(name = "Deepth (A)", colours = rev(rainbow(5)))+ + theme(plot.title = element_text(hjust = 0.5), + legend.position = "bottom", + legend.key.width= unit(0.2, 'npc'), + #legend.spacing = unit(0.25,"cm"), + legend.title = element_text(hjust = 0.5), + legend.justification = "center", + panel.background = element_rect(fill='transparent'), + plot.background = element_rect(fill='transparent'), + legend.background = element_rect(fill='transparent'), + legend.box.background = element_rect(fill='transparent'))+ + guides(colour = guide_colourbar(title.position="top", title.hjust = 0.5), + size = guide_legend(title.position="top", title.hjust = 0.5)) + + # ggpubr does this for you + leg <- ggpubr::get_legend(p) + ggpubr::as_ggplot(leg) + + }, bg="transparent") #, height =50, width = '100%' + + + }) observeEvent(input$input_cavity_hyd_pg2, { + if(input$input_cavity_hyd_pg2 == TRUE){ + updateCheckboxInput(session, "input_cavity_deep_pg2", value = FALSE) + } + color_cavity_hyd(input = input, output = output, is_pg2 = TRUE, cav_rep_list=cav_rep_list,result_pdb_list=result_pdb ) + + output$scale_plot_pg2 <- renderPlot({ + EisenbergWeiss_scale = c(-0.64, 2.6,0.8,0.92,-0.3,0.87,0.76, + -0.49,0.41,-1.42,-1.09,1.54,-0.66,-1.22, + -0.12,0.18,0.05, -0.83, -0.27, -1.11) + df <- data.frame(x = seq(1,length(EisenbergWeiss_scale)), y = EisenbergWeiss_scale) + p <- ggplot2::ggplot(data = df, aes(x = x, y = y, colour = y)) + + geom_point() + + scale_colour_gradient2(name = "Hydropathy", low = "yellow", mid = "white", high = "blue", midpoint = 0.59,breaks = seq(-1,2.5,0.5))+ + theme(plot.title = element_text(hjust = 0.5), + legend.position = "bottom", + legend.key.width= unit(0.2, 'npc'), + #legend.spacing = unit(0.25,"cm"), + legend.title = element_text(hjust = 0.5), + legend.justification = "center", + panel.background = element_rect(fill='transparent'), + plot.background = element_rect(fill='transparent'), + legend.background = element_rect(fill='transparent'), + legend.box.background = element_rect(fill='transparent'))+ + guides(colour = guide_colourbar(title.position="top", title.hjust = 0.5), + size = guide_legend(title.position="top", title.hjust = 0.5)) + + # ggpubr does this for you + leg <- ggpubr::get_legend(p) + ggpubr::as_ggplot(leg) + + }, bg="transparent") #, height =50, width = '100%' + }) #---------------------------------------------------- diff --git a/kvfinder-web-portal/R/app_ui.R b/kvfinder-web-portal/R/app_ui.R index 3955659..c7b25f8 100644 --- a/kvfinder-web-portal/R/app_ui.R +++ b/kvfinder-web-portal/R/app_ui.R @@ -254,6 +254,20 @@ app_ui <- function(request) { fluidRow( NGLVieweROutput("structure_pg2", width = "100%", height = "600px") ), + conditionalPanel( + condition="input.input_cavity_hyd_pg2==1", + fluidRow( + column(12, align='center', + plotOutput("scale_plot_pg2", height = '50', width = '50%')) + ) + ), + conditionalPanel( + condition="input.input_cavity_deep_pg2==1", + fluidRow( + column(12, align='center', + plotOutput("scale_plot_deep_pg2", height = '50', width = '50%')) + ) + ), fluidRow( column(2, uiOutput("selection_pdb_pg2")), column(2, uiOutput("cavity_rep_pg2")), From 76b7bee50aa69df4f4b799e72961c71a0f60041f Mon Sep 17 00:00:00 2001 From: Helder Ribeiro Date: Tue, 28 Feb 2023 21:33:52 -0500 Subject: [PATCH 13/19] add interface res pg2 --- kvfinder-web-portal/R/app_server.R | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/kvfinder-web-portal/R/app_server.R b/kvfinder-web-portal/R/app_server.R index d3808da..8b71873 100644 --- a/kvfinder-web-portal/R/app_server.R +++ b/kvfinder-web-portal/R/app_server.R @@ -760,6 +760,11 @@ app_server <- function(input, output, session) { take_snapshot(input = input, output = output, is_pg2 = TRUE) }) + observeEvent(input$interface_res_pg2, { + print('exeuting select') + interface_cav(input = input, output = output, result_pdb_list = result_pdb, is_pg2 = TRUE) + }) + observeEvent(input$input_cavity_deep_pg2, { if(input$input_cavity_deep_pg2 == TRUE){ updateCheckboxInput(session, "input_cavity_hyd_pg2", value = FALSE) From 271bf2e567b089540b9af0141d407601b63c82ee Mon Sep 17 00:00:00 2001 From: Helder Ribeiro Date: Tue, 28 Feb 2023 22:25:02 -0500 Subject: [PATCH 14/19] improve select cav, depth and hyd relationship --- kvfinder-web-portal/R/mod_server_selectCAV.R | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/kvfinder-web-portal/R/mod_server_selectCAV.R b/kvfinder-web-portal/R/mod_server_selectCAV.R index ab6251b..1835582 100644 --- a/kvfinder-web-portal/R/mod_server_selectCAV.R +++ b/kvfinder-web-portal/R/mod_server_selectCAV.R @@ -27,8 +27,21 @@ select_cav <- function(input, output, result_pdb_list, is_pg2) { NGLVieweR_proxy(structure) %>% updateSelection("point", sele = paste(result_pdb_list$result_cav_names, collapse = " or ")) } else { # show one cavity to show and zoom it - NGLVieweR_proxy(structure) %>% - updateSelection("point", sele = input[[select_cavity]]) %>% - updateZoomMove(input[[select_cavity]], input[[select_cavity]], 2000, -20) + print(input$input_cavity_deep) + if(isTRUE(input$input_cavity_deep) | isTRUE(input$input_cavity_deep_pg2)){ + NGLVieweR_proxy(structure) %>% + updateSelection("point", sele = "not all") %>% + updateSelection("deepth", sele = input[[select_cavity]]) %>% + updateZoomMove(input[[select_cavity]], input[[select_cavity]], 2000, -20) + } else if(isTRUE(input$input_cavity_hyd) | isTRUE(input$input_cavity_hyd_pg2)){ + NGLVieweR_proxy(structure) %>% + updateSelection("hyd", sele = input[[select_cavity]]) %>% + updateZoomMove(input[[select_cavity]], input[[select_cavity]], 2000, -20) + } else{ + NGLVieweR_proxy(structure) %>% + updateSelection("point", sele = input[[select_cavity]]) %>% + updateZoomMove(input[[select_cavity]], input[[select_cavity]], 2000, -20) + } + } } From 15bde3fee1d7e5a88f03fab3691614de83c08690 Mon Sep 17 00:00:00 2001 From: Helder Ribeiro Date: Wed, 1 Mar 2023 08:15:45 -0500 Subject: [PATCH 15/19] adjust hyd selection --- kvfinder-web-portal/R/mod_server_selectCAV.R | 1 + 1 file changed, 1 insertion(+) diff --git a/kvfinder-web-portal/R/mod_server_selectCAV.R b/kvfinder-web-portal/R/mod_server_selectCAV.R index 1835582..5808547 100644 --- a/kvfinder-web-portal/R/mod_server_selectCAV.R +++ b/kvfinder-web-portal/R/mod_server_selectCAV.R @@ -35,6 +35,7 @@ select_cav <- function(input, output, result_pdb_list, is_pg2) { updateZoomMove(input[[select_cavity]], input[[select_cavity]], 2000, -20) } else if(isTRUE(input$input_cavity_hyd) | isTRUE(input$input_cavity_hyd_pg2)){ NGLVieweR_proxy(structure) %>% + updateSelection("point", sele = "not all") %>% updateSelection("hyd", sele = input[[select_cavity]]) %>% updateZoomMove(input[[select_cavity]], input[[select_cavity]], 2000, -20) } else{ From 6367534696da232dbb3108a2176f74926dff21bd Mon Sep 17 00:00:00 2001 From: Helder Ribeiro Date: Wed, 1 Mar 2023 08:24:25 -0500 Subject: [PATCH 16/19] fix scale not being hidden --- kvfinder-web-portal/R/app_server.R | 35 +++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/kvfinder-web-portal/R/app_server.R b/kvfinder-web-portal/R/app_server.R index 8b71873..6b61436 100644 --- a/kvfinder-web-portal/R/app_server.R +++ b/kvfinder-web-portal/R/app_server.R @@ -253,6 +253,14 @@ app_server <- function(input, output, session) { id = "cavity_hyd", time = 0 ) + hideElement( + id = "scale_plot_deep", + time = 0 + ) + hideElement( + id = "scale_plot", + time = 0 + ) } }) #---------------------------------------------------- @@ -371,6 +379,14 @@ app_server <- function(input, output, session) { id = "cavity_hyd_pg2", time = 0 ) + hideElement( + id = "scale_plot_deep", + time = 0 + ) + hideElement( + id = "scale_plot", + time = 0 + ) }) #---------------------------------------------------- @@ -449,6 +465,14 @@ app_server <- function(input, output, session) { id = "cavity_hyd", time = 0 ) + showElement( + id = "scale_plot_deep", + time = 0 + ) + showElement( + id = "scale_plot", + time = 0 + ) # disable view button to avoid user to click on it multiple times disable("view_str") }, @@ -496,12 +520,10 @@ app_server <- function(input, output, session) { # Select cavity to be visualized from clicking on cavity selector button observeEvent(input$select_cavity, { - print('exeuting select') select_cav(input = input, output = output, result_pdb_list = result_pdb, is_pg2 = FALSE) }) observeEvent(input$interface_res, { - print('exeuting select') interface_cav(input = input, output = output, result_pdb_list = result_pdb, is_pg2 = FALSE) }) @@ -682,6 +704,14 @@ app_server <- function(input, output, session) { id = "cavity_hyd_pg2", time = 0 ) + showElement( + id = "scale_plot_deep_pg2", + time = 0 + ) + showElement( + id = "scale_plot_pg2", + time = 0 + ) disable("view_str_pg2") }) @@ -761,7 +791,6 @@ app_server <- function(input, output, session) { }) observeEvent(input$interface_res_pg2, { - print('exeuting select') interface_cav(input = input, output = output, result_pdb_list = result_pdb, is_pg2 = TRUE) }) From 562626ac2d40b982030e8c0787429dc12d4541d3 Mon Sep 17 00:00:00 2001 From: Helder Ribeiro Date: Wed, 1 Mar 2023 08:38:00 -0500 Subject: [PATCH 17/19] fix colro cavity load pg 2nd time --- .../R/mod_server_changeCAVcolor.R | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/kvfinder-web-portal/R/mod_server_changeCAVcolor.R b/kvfinder-web-portal/R/mod_server_changeCAVcolor.R index ceb30f3..9995e15 100644 --- a/kvfinder-web-portal/R/mod_server_changeCAVcolor.R +++ b/kvfinder-web-portal/R/mod_server_changeCAVcolor.R @@ -19,17 +19,14 @@ change_cav_color <- function(input, output, is_pg2, cav_rep_list) { input_cavity_color <- "input_cavity_color" structure <- "structure" } - print('inside cav color') - print(cav_rep_list) - # if(length(cav_rep_list) > 1){ - # NGLVieweR_proxy(structure) %>% - # updateColor("point", input[[input_cavity_color]]) - # } else{ - # NGLVieweR_proxy(structure) %>% - # updateColor("sel3", input[[input_cavity_color]]) - # } - # print(cav_rep_list) - # print(tail(cav_rep_list,n=1)) - NGLVieweR_proxy(structure) %>% + + if(!is.null(cav_rep_list)){ #this is to make sure that this will work on the second time loaded page + NGLVieweR_proxy(structure) %>% updateColor(tail(cav_rep_list,n=1), input[[input_cavity_color]]) + } else { + NGLVieweR_proxy(structure) %>% + updateColor("point", input[[input_cavity_color]]) + } + + } From 9288dbf43a916666bdb3e5e36728b6948a1b4575 Mon Sep 17 00:00:00 2001 From: Helder Ribeiro Date: Wed, 1 Mar 2023 08:45:12 -0500 Subject: [PATCH 18/19] remove print --- kvfinder-web-portal/R/mod_server_createWORKscene.R | 1 - 1 file changed, 1 deletion(-) diff --git a/kvfinder-web-portal/R/mod_server_createWORKscene.R b/kvfinder-web-portal/R/mod_server_createWORKscene.R index 35ccf51..29c1ff9 100644 --- a/kvfinder-web-portal/R/mod_server_createWORKscene.R +++ b/kvfinder-web-portal/R/mod_server_createWORKscene.R @@ -63,7 +63,6 @@ create_work_scene <- function(input, output, protein_rep_list, protein_col_list, } if(prot_or_cav == 'cav' & length(cav_rep_list) >1) { #cav mode - print("inside cavity mode") NGLVieweR_proxy(structure) %>% removeSelection(name = tail(cav_rep_list, n = 2)[1]) # After the initial structure is invisible, we can add a new representation to the current scene From 1791e64525c9e90aa3b58d96ba9d995bdd972e32 Mon Sep 17 00:00:00 2001 From: Helder Ribeiro Date: Wed, 1 Mar 2023 13:01:15 -0500 Subject: [PATCH 19/19] fix table width bug --- kvfinder-web-portal/R/mod_server_checkResults.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kvfinder-web-portal/R/mod_server_checkResults.R b/kvfinder-web-portal/R/mod_server_checkResults.R index 366506f..d51d968 100644 --- a/kvfinder-web-portal/R/mod_server_checkResults.R +++ b/kvfinder-web-portal/R/mod_server_checkResults.R @@ -98,7 +98,7 @@ check_results <- function(input, output, run_id, is_pg2, url_address, session) { style = "auto", options = list(dom = "lBfrtip", buttons = c("excel", "pdf"), - autoWidth = TRUE, + #autoWidth = TRUE, scrollX = TRUE, columnDefs = list(list(targets=c(1), visible=TRUE, width='10%')) ),