From 460cfab3d7c5258155bcb4e1a866b706c66111ec Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Todor=20Kondi=C4=87?= <todor.kondic@uni.lu>
Date: Mon, 11 Jul 2022 14:54:02 +0200
Subject: [PATCH] app: shiny-ui-base: Render cindex

---
 R/resources.R     |  3 +++
 R/shiny-state.R   |  5 +++++
 R/shiny-ui-base.R | 19 +++++++++++++++++--
 inst/rmd/app.Rmd  | 24 ++++++++++++++++++++----
 4 files changed, 45 insertions(+), 6 deletions(-)

diff --git a/R/resources.R b/R/resources.R
index 25bf4c1f..929def9 100644
--- a/R/resources.R
+++ b/R/resources.R
@@ -282,3 +282,6 @@ SYM_NO="\U00274C"
 CMPD_LIST_PATT <- "((*.csv)|(*.csv.gz))$"
 SET_LIST_PATT <- CMPD_LIST_PATT
 DFILES_LIST_PATT <- ".*\\.mz[Mm][Ll]$"
+
+CINDEX_BY <- c("set","adduct","tag","ID")
+CINDEX_COLS <- c("mz", "ms1_rt", "Formula","Name")
diff --git a/R/shiny-state.R b/R/shiny-state.R
index 40cf90a..fb44663 100644
--- a/R/shiny-state.R
+++ b/R/shiny-state.R
@@ -335,3 +335,8 @@ pre_setup_val_block <- function(gui) {
     T
 }
 
+gen_cindex <- function(summ,cols = CINDEX_COLS,by. = CINDEX_BY) {
+    allc <- c(by.,cols)
+    summ[,first(.SD),by=by.][,..allc]
+
+}
diff --git a/R/shiny-ui-base.R b/R/shiny-ui-base.R
index bc14ec7..92ce5ca 100644
--- a/R/shiny-ui-base.R
+++ b/R/shiny-ui-base.R
@@ -704,6 +704,12 @@ mk_shinyscreen_server <- function(projects,init) {
             m$input$tab$setid
         })
 
+        rf_get_cindex <- eventReactive(rvs$status$is_qa_stat,{
+            summ <- req(rvs$m$out$tab$summ)
+            ## simple_style_dt(gen_cindex(summ))
+            gen_cindex(summ)
+        })
+
         
         ## OBSERVERS
 
@@ -771,8 +777,8 @@ mk_shinyscreen_server <- function(projects,init) {
                 rvs$status$ms1_fine_stat = m$conf$tolerance[["ms1 fine"]]
                 rvs$status$ms1_eic_stat = m$conf$tolerance[["eic"]]
                 rvs$status$rt_stat = m$conf$tolerance[["rt"]]
-                rvs$status$ms1_int_thresh_stat = rvs$m$conf$prescreen[["ms1_int_thresh_stat"]]
-                rvs$status$ms2_int_thresh_stat = rvs$m$conf$prescreen[["ms2_int_thresh_stat"]]
+                rvs$status$ms1_int_thresh_stat = rvs$m$conf$prescreen[["ms1_int_thresh"]]
+                rvs$status$ms2_int_thresh_stat = rvs$m$conf$prescreen[["ms2_int_thresh"]]
                 rvs$status$s2n_stat = rvs$m$conf$prescreen[["s2n"]]
                 rvs$status$ret_time_shift_tol_stat = rvs$m$conf$prescreen[["ret_time_shift_tol"]]
                 if (NROW(m$extr$ms1)>0L) rvs$status$is_extracted_stat <- "Yes."
@@ -1121,6 +1127,15 @@ mk_shinyscreen_server <- function(projects,init) {
             req(rvs$status$ret_time_shift_tol_stat)
         })
 
+        ## RENDER: COMPOUND INDEX
+
+        output$cindex <- DT::renderDT({
+            tab <- rf_get_cindex()
+            validate(need(NROW(tab)>0L,message="Need to prescreen, first."))
+            print(names(tab))
+            simple_style_dt(tab)
+        })
+
         
 
         
diff --git a/inst/rmd/app.Rmd b/inst/rmd/app.Rmd
index 9be4773..b36feb6 100644
--- a/inst/rmd/app.Rmd
+++ b/inst/rmd/app.Rmd
@@ -637,21 +637,37 @@ DT::dataTableOutput("setid_table")
 
 ## Results Explorer
 
+
+
+
 <div style="display: flex; flex-flow: row wrap;">
 
 <div style="width: 25%; padding-right: 1.0em; background-color: var(--lt-gr-bg);">
 
 <div>
-### Compounds
-</div>
+### Compound Index
+
+<div style="overflow-x: scroll">
+```{r, echo=F}
+DT::DTOutput("cindex")
+```
+</div> <!-- cindex-table -->
+
+<div style="display: flex; flex-flow: row wrap; vertical-align: bottom">
+```{r, echo=F}
+selectInput("cindex_switch_ms2", label="Select MS2 to show", width="30%", choices=NULL)
+```
+</div> <!-- cindex-controls -->
+
+</div> <!-- Compound Index -->
 
 <div>
 ### Arrange
-</div>
+</div> <!-- Arrange -->
 
 <div>
 ### Filter
-</div>
+</div> <!-- Filter -->
 
 
 </div> <!-- Big left panel. -->
-- 
GitLab