|
@ -0,0 +1,47 @@ |
|
|
|
|
|
library(shiny) |
|
|
|
|
|
library(Seurat) |
|
|
|
|
|
library(shinyFiles) |
|
|
|
|
|
library(ggplot2) |
|
|
|
|
|
|
|
|
|
|
|
# Define UI for application |
|
|
|
|
|
ui <- fluidPage( |
|
|
|
|
|
|
|
|
|
|
|
# Application title |
|
|
|
|
|
titlePanel("scMonitor"), |
|
|
|
|
|
|
|
|
|
|
|
sidebarLayout( |
|
|
|
|
|
sidebarPanel( |
|
|
|
|
|
shinyFilesButton("file", label="Select File", title="Select a Seurat Object", multiple=F) |
|
|
|
|
|
), |
|
|
|
|
|
|
|
|
|
|
|
mainPanel( |
|
|
|
|
|
plotOutput("umapPlot") |
|
|
|
|
|
) |
|
|
|
|
|
) |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
# Define server logic required to draw a histogram |
|
|
|
|
|
server <- function(input, output) { |
|
|
|
|
|
dades<-reactiveValues() |
|
|
|
|
|
dades$seu<-NULL |
|
|
|
|
|
|
|
|
|
|
|
volumes <- c(Home = fs::path_home(), "R Installation" = R.home(), getVolumes()()) |
|
|
|
|
|
shinyFileChoose(input, 'file', roots=volumes) |
|
|
|
|
|
|
|
|
|
|
|
observe({ |
|
|
|
|
|
if (!is.integer(input$file)){ |
|
|
|
|
|
print(parseFilePaths(volumes, input$file)) |
|
|
|
|
|
dades$seu<-readRDS(parseFilePaths(volumes, input$file)$datapath) |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
output$umapPlot <- renderPlot({ |
|
|
|
|
|
observeEvent(dades$seu, {}) |
|
|
|
|
|
if (!is.null(dades$seu)){ |
|
|
|
|
|
DimPlot(dades$seu)+theme(aspect.ratio=1) |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
# Run the application |
|
|
|
|
|
shinyApp(ui = ui, server = server) |