Spreadsheets =(
“Can you make me this plot? Ok now this plot? Wait one more plot…”


learnr)# what you see, client side
ui <- fluidPage(
)# computations here!
server <- function(input, output) {
}# run the app!
shinyApp(ui = ui, server = server)# what you see, client side
ui <- fluidPage(
# Title, panels
plotOutput("myplot"), #from output$myplot
selectInput("foo",choices=allthechoices)
)# computations here!
server <- function(input, output) {
}# run the app!
shinyApp(ui = ui, server = server)# what you see, client side
ui <- fluidPage(
# Title, panels
plotOutput("myplot"), #from output$myplot
selectInput("foo",choices=allthechoices)
)# computations here!
server <- function(input, output) {
# reactive plots
output$myplot <- renderPlot({ ggplot(yay) + geom_point() })
# use input$foo here, maybe observe changes in UI
observe({ dostuff(input$foo) })
}# run the app!
shinyApp(ui = ui, server = server)Shiny Transcriptome Analysis Resource Tool
Github: https://github.com/jminnier/STARTapp
DATA = RNA-seq gene expression



Example: START app

Data is larger than they are used to + Cannot query or share results easily
Interactive search boxes/filtering + Reactive visualization


Many possible ways to analyze data:

QA/QC
Present QA plots up front

QA/QC
Present QA plots up front
Bonus: Jasmine Dumas has a shinyLP package to help! 
No one will use it if they don’t know how to use it!
Tauno Metsalu and Jaak Vilo: “Clustvis” 
Tauno Metsalu and Jaak Vilo: “Clustvis” 
Debugging is notoriously a pain here


Good luck with that.
Breakpoints and tracing:
browser() - I didn’t say it was funprint() - every single function/observe statement gets a print
runApp(..., display.mode="showcase")
But, doesn’t show why something broke.

Contact: @ datapointier
Github: https://github.com/jminnier/STARTapp
Slides available at http://bit.ly/shiny-ddtx
Code for slides available at https://github.com/jminnier/presentation_austin_dataday2018