diff --git a/R/mix.R b/R/mix.R index 377aa11831b8c6779fb42355cd551fd3f7ee2e81..e1afbcd328639d47e753a4c61f3f470376124a9c 100644 --- a/R/mix.R +++ b/R/mix.R @@ -196,14 +196,17 @@ gen_summ <- function(comp,qa_ms1,qa_ms2) { data.table::setcolorder(summ,SUMM_COLS) ## Quality scores for ms1 and ms2. - summ[,qa_ms1 := Map(function(m1,m2,m3) { m1*5L + m2*3L + m3*2L}, - as.integer(qa_ms1_exists), - as.integer(qa_ms1_above_noise), - as.integer(qa_ms1_good_int))] - summ[,qa_ms2 := Map(function(m1,m2,m3) { m1*5L + m2*3L + m3*2L}, - as.integer(qa_ms2_exists), - as.integer(qa_ms2_near), - as.integer(qa_ms2_good_int))] + summ[,qa_ms1 := as.integer(Map(function(m1,m2,m3) { m1*5L + m2*3L + m3*2L}, + as.integer(qa_ms1_exists), + as.integer(qa_ms1_above_noise), + as.integer(qa_ms1_good_int)))] + summ[,qa_ms2 := as.integer(Map(function(m1,m2,m3) { m1*5L + m2*3L + m3*2L}, + as.integer(qa_ms2_exists), + as.integer(qa_ms2_near), + as.integer(qa_ms2_good_int)))] + + summ[is.na(qa_ms1),qa_ms1:=0L] + summ[is.na(qa_ms2),qa_ms2:=0L] summ diff --git a/R/resources.R b/R/resources.R index 2b131ab20ba1c7ed04b872bcef83062f5cbf1c35..0b52be18ea482ff00a11b0a308084b17f90facef 100644 --- a/R/resources.R +++ b/R/resources.R @@ -284,5 +284,11 @@ 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") -ARRANGE_CHOICES <- c(NA_character_,"quality","set", "adduct", "tag", "mz", "rt") +CINDEX_COLS <- c("mz", "ms1_rt", "Formula","Name","qa_ms1","qa_ms2") +ARRANGE_CHOICES <- c(nothing="nothing", + quality="quality", + set="set", + adduct="adduct", + tag="tag", + mz="mz", + rt="ms1_rt") diff --git a/R/shiny-state.R b/R/shiny-state.R index d8e3ca3e7ea59af624d88f73ce3531dc7b011c3e..3a2a2525140f84aec22de33a6f4da7c794fbb282 100644 --- a/R/shiny-state.R +++ b/R/shiny-state.R @@ -335,7 +335,7 @@ pre_setup_val_block <- function(gui) { T } -gen_cindex <- function(summ,cols = CINDEX_COLS,by. = CINDEX_BY, sort=character(0)) { +gen_cindex <- function(summ,cols = CINDEX_COLS,by. = CINDEX_BY) { allc <- c(by.,cols) res <- summ[,first(.SD),by=by.][,..allc] diff --git a/R/shiny-ui-base.R b/R/shiny-ui-base.R index a9fef10b8c684b818f3ede751f13d0908518f46b..bc8653b24ea5a1fad6ac9ea00b2ab2b238dce5f9 100644 --- a/R/shiny-ui-base.R +++ b/R/shiny-ui-base.R @@ -704,29 +704,35 @@ mk_shinyscreen_server <- function(projects,init) { m$input$tab$setid }) - rf_get_cindex <- eventReactive(rvs$status$is_qa_stat,{ + rf_get_cindex <- reactive({ + rvs$status$is_qa_stat + s1 <- input$sort1 + s2 <- input$sort2 + s3 <- input$sort3 + s4 <- input$sort4 summ <- req(rvs$m$out$tab$summ) + isolate({ if (NROW(summ)>0L) { - s1 <- input$sort1 - s2 <- input$sort2 - s3 <- input$sort3 - s4 <- input$sort4 sortorder <- unique(c(s1,s2,s3,s4)) - message("----") - message(paste0(sortorder,collapse=',')) - wna <- which(is.na(sortorder)); if (length(wna)>0L) sortorder <- sortorder[-wna] - message(paste0(sortorder,collapse=',')) + wna <- which(sortorder=="nothing"); if (length(wna)>0L) sortorder <- sortorder[-wna] quality <- which("quality"==sortorder) if (length(quality)>0L) { pre <- head(sortorder,quality-1L) - post <- tail(sortorder,quality+1L) + post <- tail(sortorder,-quality) sortorder <- c(pre,"qa_ms1","qa_ms2",post) } - message(paste0(sortorder,collapse=',')) - setorderv(gen_cindex(summ),cols=sortorder) + + + ord <- rep(1L,length(sortorder)) + if ("qa_ms1" %in% sortorder) { + ind <- which(sortorder %in% c("qa_ms1","qa_ms2")) + ord[ind] <- -1L + } + setorderv(gen_cindex(summ),cols=sortorder,order=ord) } else { NULL } + }) }) diff --git a/inst/rmd/app.Rmd b/inst/rmd/app.Rmd index 007d9b905deab7758b18f72a6025838cb7fbfbd0..c5330eb69e3b55039040fbd6f777f7aac4309176 100644 --- a/inst/rmd/app.Rmd +++ b/inst/rmd/app.Rmd @@ -642,7 +642,7 @@ DT::dataTableOutput("setid_table") <div style="display: flex; flex-flow: row wrap;"> -<div style="width: 25%; padding-right: 1.0em; background-color: var(--lt-gr-bg);"> +<div style="width: 25%; padding-right: 1.0em; background-color: var(--lt-gr-bg); overflow-y: scroll"> <div> ### Compound Index