inst/ProstarApp/server/srv_DemoMode.R

mod_staticDT_server("overview_DemoMode",
                    data = reactive({GetDatasetOverview()}),
                    filename = 'Demomode_Overview')


output$chooseDataset <- renderUI({
 
  if (! requireNamespace("BiocManager", quietly = TRUE)) {
    stop("Please install BiocManager: install.packages('BiocManager')")
  }
  
  if(!require("DAPARdata", lib.loc=DAPARdata.loc)){
    print("Installing DAPARdata")
    BiocManager::install("DAPARdata")
  }
  if(!require(DAPARdata))
    stop("Could not install the package DAPARdata")
  
  
    print("DAPARdata is loaded correctly")
    if(require(DAPARdata)){
      print("DAPARdata installed and loaded")
      selectInput("demoDataset",
                  "Demo dataset",
                  choices = c("None" = "None", utils::data(package="DAPARdata")$results[,"Item"]),
                  width='200px')
    }

})


output$linktoDemoPdf <- renderUI({
  req(input$demoDataset)
  if (input$demoDataset == "None"){return(NULL)}
  
  file<- paste(system.file(package = "DAPARdata"),"/doc/",
               input$demoDataset,".pdf", sep="")
  cmd <- paste("cp ",file," www/.", sep="")
    system(cmd)
  filename <-paste0(input$demoDataset,".pdf", sep="")
  tags$p("Dataset documentation ",
  tags$a(href=filename, target='_blank', paste0("(",filename,")")))
 })




output$infoAboutDemoDataset <- renderUI({
  req(rv$current.obj)
  
  isolate({ 
   
    m <- match.metacell(DAPAR::GetMetacell(rv$current.obj), 
                        pattern="missing", 
                        level = 'peptide')
    NA.count <- length(which(m))
  
  nb.empty.lines <- sum(apply(m, 1, all))
  
  tagList(
    tags$h3("Info"),
    if (rv$typeOfDataset == "protein"){
      tags$p("Note: the aggregation tool
             has been disabled because the dataset contains 
             protein quantitative data.")
    },
    
    if (NA.count > 0){
      tags$p("As your dataset contains missing values, you should 
             impute them prior to proceed to the differential analysis.")
    },
    if (nb.empty.lines > 0){
      tags$p("As your dataset contains lines with no values, you 
             should remove them with the filter tool
             prior to proceed to the analysis of the data.")
    },
    
    tags$div(
      tags$div( style="display:inline-block; vertical-align: top;",
                mod_staticDT_ui("overview_DemoMode")
      )
    )
    
    
      )
    })
  
  
    })



observeEvent(input$loadDemoDataset,{

  req(input$demoDataset != "None")
  
  isolate({
    ntotal <- 4
   
  withProgress(message = '',detail = '', value = 0, {
    
    ClearUI()
    ClearMemory()
   incProgress(1/ntotal, detail = 'Clear memory ')
  utils::data(list = input$demoDataset)
  rv$current.obj <- get(input$demoDataset)
  incProgress(1/ntotal, detail = 'Load dataset ')
  
  rv$current.obj.name <- input$demoDataset
  rv$indexNA <- which(is.na(rv$current.obj))
  
  #rv$current.obj <- addOriginOfValue(rv$current.obj)
  l.params <- list(filename = input$demoDataset)
  incProgress(1/ntotal, detail = 'Configure dataset')
  
  loadObjectInMemoryFromConverter()
  incProgress(1/ntotal, detail = 'Load memory ')
  })
  })
  # shinyjs::disable("loadDemoDataset")
  # shinyjs::disable("chooseDataset")
  # shinyjs::disable("linktoDemoPdf")
})
samWieczorek/Prostar documentation built on April 27, 2022, 7:32 a.m.