## ----include=FALSE------------------------------------------------------------ knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ## ----setup, message=FALSE, results="hide"------------------------------------- require(shiny.gosling) require(shiny) require(GenomicRanges) ## ----reading-data------------------------------------------------------------- url <- "https://rb.gy/7y3fx" temp_file <- file.path(tempdir(), "data.gz") download.file(url, destfile = temp_file, method = "auto", mode = "wb") df <- read.delim( temp_file, header = FALSE, comment.char = "#", sep = "" ) gr <- GRanges( seqnames = df$V1, ranges = IRanges(df$V2, df$V3) ) gr ## ----method-1, results="hide"------------------------------------------------- ui <- fluidPage( use_gosling(clear_files = FALSE), goslingOutput("gosling_plot") ) track_1 <- add_single_track( width = 800, height = 180, data = track_data_gr( gr, chromosomeField = "seqnames", genomicFields = c("start", "end") ), mark = "bar", x = visual_channel_x( field = "start", type = "genomic", axis = "bottom" ), xe = visual_channel_x(field = "end", type = "genomic"), y = visual_channel_y( field = "width", type = "quantitative", axis = "right" ), size = list(value = 5) ) composed_view <- compose_view( layout = "linear", tracks = track_1 ) arranged_view <- arrange_views( title = "Basic Marks: bar", subtitle = "Tutorial Examples", views = composed_view ) server <- function(input, output, session) { output$gosling_plot <- renderGosling({ gosling( component_id = "component_1", arranged_view ) }) } shiny::shinyApp(ui, server) ## ----method-2, results="hide"------------------------------------------------- if (!dir.exists("data")) { dir.create("data") } utils::write.csv(gr, "data/ChipSeqPeaks.csv", row.names = FALSE) track_1 <- add_single_track( width = 800, height = 180, data = track_data_csv( "data/ChipSeqPeaks.csv", chromosomeField = "seqnames", genomicFields = c("start", "end") ), mark = "bar", x = visual_channel_x( field = "start", type = "genomic", axis = "bottom" ), xe = visual_channel_x(field = "end", type = "genomic"), y = visual_channel_y( field = "width", type = "quantitative", axis = "right" ), size = list(value = 5) ) composed_view <- compose_view( layout = "linear", tracks = track_1 ) arranged_view <- arrange_views( title = "Basic Marks: bar", subtitle = "Tutorial Examples", views = composed_view ) shiny::shinyApp(ui = fluidPage( use_gosling(clear_files = FALSE), goslingOutput("gosling_plot") ), server = function(input, output, session) { output$gosling_plot <- renderGosling({ gosling( component_id = "component_1", arranged_view ) }) }, options = list(height = 1000)) ## ----session_info------------------------------------------------------------- sessionInfo()