Dear community,
I am new to shiny and was trying to create my shiny page using seurat object.
I have stored my seurat objects as .rds files. and below is the script.
library(shiny)
library(shinythemes)
library(Seurat)
library(ggplot2)
library(gridExtra)
library(egg)
library(RColorBrewer)
library(shinyWidgets)
Getting the file names
rdsfiles <- list.files("/temp2/data", pattern = "\.rds$")
Define UI for dataset viewer application
ui <- shinyUI(fluidPage(theme = shinytheme("cerulean"), pageWithSidebar(
# Application title
headerPanel("Shiny App with multiple datasets"),
# Sidebar with controls to select a dataset and specify the number
# of observations to view
sidebarPanel(
selectInput("dataset", "Choose a dataset:",
choices = rdsfiles),
),
# Show a summary of the dataset and an HTML table with the requested
# number of observations
mainPanel(
tabsetPanel(
tabPanel('UMAP', plotOutput("umap")),
tabPanel('Gene', plotOutput("gene"))
))
)))
Define server logic required to summarize and view the selected dataset
server <- shinyServer(function(input, output) {
# Return the requested dataset
datasetInput <- reactive({
df <- readRDS(paste0("/temp2/data/", input$dataset))
return(df)
})
# Generate a UMAP of the dataset
output$umap <- renderPlot({
dataset <- datasetInput()
plot(input$dataset, reduction = "umap")
})
# Generate a Feature of the dataset
output$gene <- renderPlot({
dataset <- datasetInput()
FeaturePlot(dataset, reduction = "umap")
})
})
shinyApp(ui, server)
I am not able to understand what I am doing is wrong or missing or inaccurate that leads to no image rendering both tabs (UMAP and Feature Plot).
Any help is very much appreciated.