From ec102c7a515950cdf0deda1c8afe8b52f8d177c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Todor=20Kondi=C4=87?= <todor.kondic@uni.lu> Date: Fri, 1 Jul 2022 17:20:43 +0200 Subject: [PATCH] ... --- R/shiny-state.R | 21 ++++++++++++++++---- R/shiny-ui-base.R | 49 ++++++++++++++++++++++++++++++----------------- 2 files changed, 48 insertions(+), 22 deletions(-) diff --git a/R/shiny-state.R b/R/shiny-state.R index fb632a7..b84ca71 100644 --- a/R/shiny-state.R +++ b/R/shiny-state.R @@ -33,7 +33,7 @@ create_stub_gui <- function() { gui <- list() shiny::isolate({ gui$compounds <- shiny::reactiveValues(lists=character(), - set=character()) + sets=character()) gui$datatab <- shiny::reactiveValues(file=character(), tag=character(), adduct=character(), @@ -83,10 +83,10 @@ r2taadse <- function(tablist,sets) { r2compounds <- function(rcompounds) { shiny::isolate({ cmpd_lists <- rcompounds$lists - cmpd_set <- rcompounds$set + cmpd_set <- rcompounds$sets }) - list(lists=cmpd_lists,set=cmpd_set) + list(lists=cmpd_lists,sets=cmpd_set) } @@ -211,9 +211,22 @@ app_state2state <- function(input,gui) { m <- new_project(gui$paths$project) m$run$paths <- shiny::reactiveValuesToList(gui$paths) m$conf <- input2conf(input) + m$input$tab$mzml <- data.table(tag=gui$datatab$tag, + adduct=gui$datatab$adduct, + set=gui$datatab$set, + file=gui$datatab$file) m } - +gen_comp_state <- function(input,gui) { + m <- app_state2state(input,gui) + run(m=m,phases=c("setup","mk_comp_tab")) +} + +get_sets <- function(gui) { + fn_set <- file.path(gui$paths$project,gui$compounds$sets) + df <- fread(file=fn_sets) + df[,unique(set)] +} diff --git a/R/shiny-ui-base.R b/R/shiny-ui-base.R index 790daf9..c716ac2 100644 --- a/R/shiny-ui-base.R +++ b/R/shiny-ui-base.R @@ -439,7 +439,7 @@ mk_shinyscreen_server <- function(projects,init) { ## Update with data-files. rv_dfile <- reactiveVal(def_datafiles) - + ## TODO: think about the connection of rv_dfile to the rest. ## Data-file table when loading. rv_datatab <- reactiveVal(def_datatab) rv_flag_datatab <- reactiveVal(-.Machine$integer.max) @@ -654,24 +654,37 @@ mk_shinyscreen_server <- function(projects,init) { ## REACTIVE FUNCTIONS - rf_compound_input_state <- reactive({ - sets <- rvs$m$run$paths$compounds$sets - lst <- as.list(rvs$m$run$paths$compounds$lists) - ## TODO XXX - validate(need(length(lst)>0, - message = "Load the compound lists(s) first.")) - validate(need(length(sets)>0 && nchar(sets)>0, - message = "Load the setid table first.")) - isolate({ - state <- rev2list(rvs$m) - m <- load_compound_input(state) - - ## Side effect! This is because my pipeline logic does not - ## work nicely with reactive stuff. - rvs$m$input$tab$cmpds <- list2rev(m$input$tab$cmpds) - rvs$m$input$tab$setid <- m$input$tab$setid - m + ## rf_compound_input_state <- reactive({ + ## sets <- rvs$m$run$paths$compounds$sets + ## lst <- as.list(rvs$m$run$paths$compounds$lists) + ## ## TODO XXX + ## validate(need(length(lst)>0, + ## message = "Load the compound lists(s) first.")) + ## validate(need(length(sets)>0 && nchar(sets)>0, + ## message = "Load the setid table first.")) + ## isolate({ + ## state <- rev2list(rvs$m) + ## m <- load_compound_input(state) + + ## ## Side effect! This is because my pipeline logic does not + ## ## work nicely with reactive stuff. + ## rvs$m$input$tab$cmpds <- list2rev(m$input$tab$cmpds) + ## rvs$m$input$tab$setid <- m$input$tab$setid + ## m + ## }) + ## }) + + rf_comp_state <- reactive({ + app_state2state(input=input, + gui = rvs$gui) }) + + rf_get_sets <- reactive({ + req(rvs$gui$paths$project) + req(rvs$gui$paths$sets) + + get_sets(gui) + }) rf_conf_proj <- reactive({ -- GitLab