Quantcast
Channel: Active questions tagged r - Stack Overflow
Viewing all articles
Browse latest Browse all 201839

Problem in creating boxplots with R shiny app

$
0
0

I'm very new to the Shiny app R. I'm trying to make simple boxplots in the Shiny R app for some dataset.

Here I am showing some example data in a file df.csv. The data looks like below. Showing the dput of the data below:

structure(list(Samples = structure(1:10, .Label = c("Sample1", 
"Sample10", "Sample2", "Sample3", "Sample4", "Sample5", "Sample6", 
"Sample7", "Sample8", "Sample9"), class = "factor"), Type = structure(c(2L, 
1L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 1L), .Label = c("Normal", "Tumor"
), class = "factor"), A1BG = c(0, 0.01869105, 0.026705782, 0.016576987, 
0, 0.007636787, 0.015756547, 0.00609601, 0.115575528, 0.04717536
), A1BG.AS1 = c(0, 0.096652515, 0.086710002, 0.04683499, 0.188283185, 
0.104318353, 0.102735593, 0.100064808, 0.04717536, 0.159745808
), A1CF = c(1.616942802, 1.367084444, 1.101855892, 1.3823884, 
0.631627098, 2.407159505, 1.687449785, 1.229844138, 0.87989414, 
0.642785868), A2M = c(3.357654845, 3.149165846, 3.654774122, 
2.851143092, 2.952601867, 4.002335454, 4.123949457, 3.691343955, 
3.553064673, 3.425443559), A2M.AS1 = c(0.217308191, 0.08268571, 
0.297320544, 0.101579093, 0.020102613, 0.35578965, 0.288014115, 
0.145352771, 0.043808388, 0.104677012), A2ML1 = c(0, 0.017949113, 
0.00984907, 0.002289616, 0, 0.002100359, 0.032146138, 0.052275569, 
0.537892142, 0), A2ML1.AS1 = c(0.631627098, 0.04717536, 1.229844138, 
0, 4.002335454, 0, 1.229844138, 1.229844138, 0.04717536, 0)), row.names = c(NA, 
-10L), class = "data.frame")

With the above information, I am trying to make a shiny app. My code looks like below:

library(shiny)

ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      selectInput("thegene", "Gene", choices = c("A2M", "A1CF", "A2MP1"), selected = "A2M"),
      radioButtons("colour","Colour of histogram",choices=c("red","green","blue"),selected="red"),
      width = 3
    ),
    mainPanel(
      plotOutput("boxplot"),
      width = 9
    )
  )
)

server <- function(input, output) {

  df <- read.csv("df.csv")

  library(reshape2)
  library(ggplot2)
  library(ggpubr)
  library(EnvStats)

  df.m <- melt(df, c("Samples", "Type"))

  output$boxplot <- renderPlot({
    ggplot(data=df.m, aes(x = Type, y = value, fill=variable)) +
      geom_boxplot() +
      theme_bw(base_size = 14) + xlab("") + ylab("Expression logFPKM") +
      theme(axis.text=element_text(size=15, face = "bold", color = "black"),
            axis.title=element_text(size=15, face = "bold", color = "black"),
            strip.text = element_text(size=15, face = "bold", color = "black")) +
      stat_compare_means(method = "t.test", size=5) + stat_n_text()
  })

}

# Run the application 
shinyApp(ui = ui, server = server)

So, I reshaped the information and then tried making an app to create a boxplot for each gene between Tumor (6 samples) and Normal (4 samples).

I don't see any error, but I also don't get the desired result. The output of my above code looks like below:

enter image description here

1) The number of samples in the boxplot below each Type is wrong.

2) For the Selection of genes, I could see only three genes there. I don't see other genes there. How to check for other genes?

3) The color of the histogram is also not working.

Any help is appreciated. Thank you.


Viewing all articles
Browse latest Browse all 201839

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>