library(flexdashboard)
library(shiny)
library(TFutils)
library(GenomicRanges)
library(plotly)
library(Gviz)
library(ggplot2)
library(EnsDb.Hsapiens.v75)
library(GenomeInfoDb)
library(utils)
library(data.table)
library(mongolite)
library(DT)
library(utils)
library(gggmvis)

Row {data-height=150}

Row {data-height=300, data-width=150}

Abstract

Visualization can often be the key to discovering patterns and distilling the massive amount of biological information that rise from the rapid growth of high throughput sequencing experiments. The R package visByGene is a preliminary attack on synthesizing available experiment and annotation data to understand mechanisms of disease using R/Bioconductor (www.bioconductor.org) interfaces to high-resolution genomic data assembled in MongoDB, Bioconductor annotation packages, and tabix indexed files. We developed visByGene to utilize R/Bioconductor packages such as ggplot2, plotly, ensembldb, AnnotationHub, mongolite, GenomicScores, and others to provide users with specialized interactive shiny based visualizations. These visualizations allow users to easily query hundreds of Gb of data in thousands of data resources such as eQTL studies, DNAse I hypersensitivity regions, and transcription factor binding site data and visualize the results as annotated gene models. These queries are gene based with a scalable window parameter. Additional annotations can be overlayed onto the gene model by selecting new experimental results, and the combined results can be easily downloaded as a csv for later use. Further work is being done to utilize the hover text and plot linking features of plotly graphics to enrich the user experience.

Introduction

# load data 
load("/Users/reshg/Documents/GITHUB/visByGene/data/encode690.rda")
load("/Users/reshg/Documents/GITHUB/visByGene/data/named_tf.rda")
load("/Users/reshg/Documents/GITHUB/visByGene/data/named_metadata_tf.rda")
eQTLdata = read.csv("~/Documents/GITHUB/visByGene/inst/shinyApps/eQTL.csv")
fpdata = read.csv("~/Documents/GITHUB/visByGene/inst/shinyApps/FP.csv")
hsdata = read.csv("~/Documents/GITHUB/visByGene/inst/shinyApps/HS.csv")
tfdata = read.csv("~/Documents/GITHUB/visByGene/inst/shinyApps/TF.csv") 
########################
# Functions
########################
ggvisForSymbol = function (sym, resource = EnsDb.Hsapiens.v79::EnsDb.Hsapiens.v79, 
                           columnsKept = c("gene_id", "tx_id"), yval = 1, arrmm=1.5, viewtype="transcripts", ...) 
{
  exs = GenomicFeatures::exons(resource, filter = SymbolFilter(sym), columns = columnsKept, 
                               ...)
  if (viewtype == "exons") exs = unique(exs)
  rd = reduce(exs)
  fo = findOverlaps(rd, exs)
  gr = split(subjectHits(fo), queryHits(fo))
  pp = function(n) (seq_len(n)-1)/n
  st = start(exs)
  en = end(exs)
  if (viewtype == "exons") {
    ys = lapply(gr, function(x) pp(length(x)))
    yvs = unlist(ys) #1+(0:(nel-1))/nel
  }
  else if (viewtype == "transcripts") {
    tnms = exs$tx_id
    ft = factor(tnms)
    yvs = (as.numeric(ft)-1)/length(levels(ft))
  }
  else stop("viewtype not %in% c('exons', 'transcripts')")
  newdf = data.frame(st, en, yv = yvs, sym = sym)
  rng = range(exs)
  df = data.frame(range = c(start(rng), end(rng)), yval = rep(yval,2)) 
  strn = as.character(strand(exs)[1])
  ardir = ifelse(strn=="+", "last", "first")
  pl = ggplot(df, aes(x = range, y = yval)) + 
    geom_segment(aes(x = st, y = yv, xend = en, yend = yv, colour = sym),       data = newdf, arrow=arrow(ends=ardir, length=unit(arrmm, "mm")))
  #ggplotly(pl)
  pl + xlab(as.character(seqnames(exs)[1]))
}

plotlyForSymbol = function (sym, resource = EnsDb.Hsapiens.v79::EnsDb.Hsapiens.v79,
   columnsKept = c("gene_id", "tx_id"), yval = 1, arrmm=1.5, viewtype="transcripts", ...)
{
 require(plotly)
  exs = GenomicFeatures::exons(resource, filter = SymbolFilter(sym), columns = columnsKept,
     ...)
if (viewtype == "exons") exs = unique(exs)
rd = reduce(exs)
fo = findOverlaps(rd, exs)
gr = split(subjectHits(fo), queryHits(fo))
pp = function(n) (seq_len(n)-1)/n
st = start(exs)
en = end(exs)

if (viewtype == "exons") {
  ys = lapply(gr, function(x) pp(length(x)))
  yvs = unlist(ys) #1+(0:(nel-1))/nel
}
else if (viewtype == "transcripts") {
  tnms = exs$tx_id
  ft = factor(tnms)
  yvs = (as.numeric(ft)-1)/length(levels(ft))
}
else stop("viewtype not %in% c('exons', 'transcripts')")
newdf = data.frame(st, en, yv = yvs, sym = sym)
rng = range(exs)
df = data.frame(range = c(start(rng), end(rng)), yval = rep(yval,2))
strn = as.character(strand(exs)[1])
ardir = ifelse(strn=="+", "start", "end")
pl = plot_ly(df, x =~ range, y =~ yval, type = 'scatter', mode = 'markers',showlegend = FALSE) %>%
  add_segments(x=newdf$st,xend=newdf$en,y=newdf$yv,yend=newdf$yv,
               text=paste(names(exs),"start:",newdf$st,"end:",newdf$en),hoverinfo='text',
               showlegend = FALSE)%>%
  add_annotations(x = newdf$st,
                  y = newdf$yv,
                  showarrow = TRUE,
                  arrowhead = 1,
                  arrowsize=1,
                  axref="x",
                  ayref="y",
                  ax=newdf$en,
                  ay=newdf$yv,
                  arrowside=ardir,
                  text=rep("",nrow(newdf)),arrowcolor="blue",yanchor="top"
  )%>%
  layout( xaxis = list(title = as.character(seqnames(exs)[1])))
pl
}
edb = EnsDb.Hsapiens.v75::EnsDb.Hsapiens.v75

orm = GRanges("chr17", IRanges(38077296, 38083884), strand="-") # ORMDL3
l1 = enc690ByFactor("CEBPB")
dd = lapply(l1, function(x) subsetByOverlaps(x, orm+10000))
lens = sapply(dd,length)
cls = sapply(dd, function(x) metadata(x)$cell)
cls = rep(cls, lens)
ee = do.call(rbind, lapply(dd, as.data.frame))
ee$cell = factor(as.character(cls))
ee$yval = 1+(as.numeric(factor(as.character(cls)))-1)/length(unique(cls))
cellinfo=data.frame(cell=c("HepG2","A549","HeLa-S3","IMR90"), info=c("Human liver cancer cell line","Human lung cancer cell line",
                                                                     "Human cervical cancer cell line","Normal lung fibroblast"),stringsAsFactors=FALSE)
ee=merge(ee,cellinfo)

visByGene <- function(myeqtl, myfp, mytf, mysymbol){
  require(Gviz)
  require(TFutils)
  require(GenomicRanges)
  require(mongolite)
  mygene = genemodForGviz(sym=mysymbol,resource= EnsDb.Hsapiens.v75::EnsDb.Hsapiens.v75)
  mychr = seqnames(mygene)[1]
  mygeneRange = GRanges(mychr, IRanges(start=min(start(mygene)),end=max(end(mygene))))
  mystart = min(start(mygene))
  myend = max(end(mygene))
  gtrack <- GenomeAxisTrack()
  itrack <- IdeogramTrack(genome = "hg19", chromosome = mychr)
  biomtrack <- BiomartGeneRegionTrack(genome = "hg19", chromosome = mychr, symbol=mysymbol, name=mysymbol)
  #baseplot = plotTracks(list(gtrack,itrack,biomtrack), sizes=c(1,1,3))

  #FOR TF data 
  tfcoll = mongo(url="mongodb://172.27.105.48",
                 collection = mytf,
                 db = "txregnet"
  )
  mytfquery=paste0('{',
                 '"chr":"',mychr,'",',
                 '"start" : {"$gte":',mystart,'},',
                 '"end" : {"$lte":',myend,'}}')
  restf=tfcoll$find(mytfquery)
  mysubtf=GRanges(restf$chr, IRanges(restf$start, restf$end), mcols=restf)
  #tf = Rsamtools::TabixFile(paste0("/udd/reshg/tbifiles/tabix_all_tf_new/",mytf,".02_sort.bed.gz"))
  #mysub = importFIMO(tf, mygeneRange)
  genome(mysubtf)="hg19"
  atrack1 <- AnnotationTrack(mysubtf, name = mytf)
  dtrack1=DataTrack(data=mysubtf$mcols.pvalue, start=start(mysubtf), end=end(mysubtf),
                   chromosome = mychr, genome = "hg19", name = "TF", background.panel = "#FFFEDB",
                   background.title = "darkblue")
  #tfp = plotTracks(dtrack)
  # FOR FP data 
  fpcoll = mongo(url="mongodb://172.27.105.48",
                 collection = myfp,
                 db = "txregnet"
  )
  myfpquery=paste0('{',
                 '"chr":"',mychr,'",',
                 '"start" : {"$gte":',mystart,'},',
                 '"end" : {"$lte":',myend,'}}')
  resfp=fpcoll$find(myfpquery)
  mysubfp=GRanges(resfp$chr, IRanges(resfp$start, resfp$end), mcols=resfp)
  #tf = Rsamtools::TabixFile(paste0("/udd/reshg/tbifiles/tabix_all_tf_new/",mytf,".02_sort.bed.gz"))
  #mysub = importFIMO(tf, mygeneRange)
  genome(mysubfp)="hg19"
  atrack1 <- AnnotationTrack(mysubfp, name = myfp)
  dtrack2=DataTrack(data=mysubfp$mcols.stat, start=start(mysubfp), end=end(mysubfp),
                   chromosome = mychr, genome = "hg19", name = "FP")
  #fpp = plotTracks(dtrack)
  # FOR eQTL data 
  eqtlcoll = mongo(url="mongodb://172.27.105.48",
                   collection = myeqtl,
                   db = "txregnet"
  )
  mychr2=as.numeric(x=sub(mychr,pattern="chr",replacement=""))
  myeqtlquery=paste0('{',
                 '"chr":',mychr2,',',
                 '"snp_pos" : {"$gte":',mystart,'},',
                 '"snp_pos" : {"$lte":',myend,'}}')
  reseqtl=eqtlcoll$find(myeqtlquery)
  mysubeqtl=GRanges(reseqtl$chr, IRanges(reseqtl$snp_pos, width = 1), mcols=reseqtl)
  #tf = Rsamtools::TabixFile(paste0("/udd/reshg/tbifiles/tabix_all_tf_new/",mytf,".02_sort.bed.gz"))
  #mysub = importFIMO(tf, mygeneRange)
  genome(mysubeqtl)="hg19"
  atrack1 <- AnnotationTrack(mysubeqtl, name = myeqtl)
  dtrack3=DataTrack(data=mysubeqtl$mcols.qvalue, start=start(mysubeqtl), end=end(mysubeqtl),
                   chromosome = mychr, genome = "hg19", name = "eQTL",  background.panel = "#FFFEDB",
                   background.title = "darkblue")
  #eqtlp = plotTracks(dtrack)
  visplot = plotTracks(list(gtrack,biomtrack,dtrack1,dtrack2,dtrack3,itrack), sizes=c(3,7,5,5,5,10))

}

plotTF <- function(mytf, mysymbol){
  require(Gviz)
  require(TFutils)
  require(GenomicRanges)
  require(mongolite)
  mygene = genemodForGviz(sym=mysymbol,resource= EnsDb.Hsapiens.v75::EnsDb.Hsapiens.v75)
  mychr = seqnames(mygene)[1]
  mygeneRange = GRanges(mychr, IRanges(start=min(start(mygene)),end=max(end(mygene))))
  mystart = min(start(mygene))
  myend = max(end(mygene))
  tfcoll = mongo(url="mongodb://172.27.105.48",
                 collection = mytf,
                 db = "txregnet"
  )
  myquery=paste0('{',
                 '"chr":"',mychr,'",',
                 '"start" : {"$gte":',mystart,'},',
                 '"end" : {"$lte":',myend,'}}')
  res=tfcoll$find(myquery)
  mysub=GRanges(res$chr, IRanges(res$start, res$end), mcols=res)
  #tf = Rsamtools::TabixFile(paste0("/udd/reshg/tbifiles/tabix_all_tf_new/",mytf,".02_sort.bed.gz"))
  #mysub = importFIMO(tf, mygeneRange)
  genome(mysub)="hg19"
  atrack1 <- AnnotationTrack(mysub, name = mytf)
  gtrack <- GenomeAxisTrack()
  itrack <- IdeogramTrack(genome = "hg19", chromosome = mychr)
  dtrack=DataTrack(data=mysub$mcols.pvalue, start=start(mysub), end=end(mysub),
                   chromosome = mychr, genome = "hg19", name = mytf)
  biomtrack <- BiomartGeneRegionTrack(genome = "hg19", chromosome = mychr, symbol=mysymbol, name=mysymbol)
  tfp = plotTracks(list(dtrack, gtrack, biomtrack),sizes=c(1,1,2))
}

plotFP <- function(myfp, mysymbol){
  require(Gviz)
  require(TFutils)
  require(GenomicRanges)
  require(mongolite)
  mygene = genemodForGviz(sym=mysymbol,resource= EnsDb.Hsapiens.v75::EnsDb.Hsapiens.v75)
  mychr = seqnames(mygene)[1]
  mygeneRange = GRanges(mychr, IRanges(start=min(start(mygene)),end=max(end(mygene))))
  mystart = min(start(mygene))
  myend = max(end(mygene))
  fpcoll = mongo(url="mongodb://172.27.105.48",
                 collection = myfp,
                 db = "txregnet"
  )
  myquery=paste0('{',
                 '"chr":"',mychr,'",',
                 '"start" : {"$gte":',mystart,'},',
                 '"end" : {"$lte":',myend,'}}')
  res=fpcoll$find(myquery)
  mysub=GRanges(res$chr, IRanges(res$start, res$end), mcols=res)
  #tf = Rsamtools::TabixFile(paste0("/udd/reshg/tbifiles/tabix_all_tf_new/",mytf,".02_sort.bed.gz"))
  #mysub = importFIMO(tf, mygeneRange)
  genome(mysub)="hg19"
  atrack1 <- AnnotationTrack(mysub, name = myfp)
  gtrack <- GenomeAxisTrack()
  itrack <- IdeogramTrack(genome = "hg19", chromosome = mychr)
  dtrack=DataTrack(data=mysub$mcols.stat, start=start(mysub), end=end(mysub),
                   chromosome = mychr, genome = "hg19", name = myfp)
  biomtrack <- BiomartGeneRegionTrack(genome = "hg19", chromosome = mychr, symbol=mysymbol, name=mysymbol)
  fpp = plotTracks(list(dtrack, gtrack, biomtrack),sizes=c(1,1,2))
}

ploteQTL <- function(myeqtl, mysymbol){
  require(Gviz)
  require(TFutils)
  require(GenomicRanges)
  require(mongolite)
  mygene = genemodForGviz(sym=mysymbol,resource= EnsDb.Hsapiens.v75::EnsDb.Hsapiens.v75)
  mychr = seqnames(mygene)[1]
  mygeneRange = GRanges(mychr, IRanges(start=min(start(mygene)),end=max(end(mygene))))
  mystart = min(start(mygene))
  myend = max(end(mygene))
  eqtlcoll = mongo(url="mongodb://172.27.105.48",
                   collection = myeqtl,
                   db = "txregnet"
  )
  myquery=paste0('{',
                 '"chr":',17,',',
                 '"snp_pos" : {"$gte":',mystart,'},',
                 '"snp_pos" : {"$lte":',myend,'}}')
  res=eqtlcoll$find(myquery)
  mysub=GRanges(res$chr, IRanges(res$snp_pos, width = 1), mcols=res)
  #tf = Rsamtools::TabixFile(paste0("/udd/reshg/tbifiles/tabix_all_tf_new/",mytf,".02_sort.bed.gz"))
  #mysub = importFIMO(tf, mygeneRange)
  genome(mysub)="hg19"
  atrack1 <- AnnotationTrack(mysub, name = myeqtl)
  gtrack <- GenomeAxisTrack()
  itrack <- IdeogramTrack(genome = "hg19", chromosome = mychr)
  dtrack=DataTrack(data=mysub$mcols.qvalue, start=start(mysub), end=end(mysub),
                   chromosome = mychr, genome = "hg19", name = "eqtl")
  biomtrack <- BiomartGeneRegionTrack(genome = "hg19", chromosome = mychr, symbol=mysymbol, name=mysymbol)
  eqtlp = plotTracks(list(dtrack, gtrack, biomtrack), sizes=c(2,2,5))
}

plotHS <- function(myhs, mysymbol){
  require(Gviz)
  require(TFutils)
  require(GenomicRanges)
  require(mongolite)
  mygene = genemodForGviz(sym=mysymbol,resource= EnsDb.Hsapiens.v75::EnsDb.Hsapiens.v75)
  mychr = seqnames(mygene)[1]
  mygeneRange = GRanges(mychr, IRanges(start=min(start(mygene)),end=max(end(mygene))))
  mystart = min(start(mygene))
  myend = max(end(mygene))
  hscoll = mongo(url="mongodb://172.27.105.48",
                 collection = myhs,
                 db = "txregnet"
  )
  myquery=paste0('{',
                 '"chrom":"',mychr,'",',
                 '"chromStart" : {"$gte":',mystart,'},',
                 '"chromEnd" : {"$lte":',myend,'}}')
  res=hscoll$find(myquery)
  mysub=GRanges(res$chrom, IRanges(res$chromStart, res$chromEnd), mcols=res)
  #tf = Rsamtools::TabixFile(paste0("/udd/reshg/tbifiles/tabix_all_tf_new/",mytf,".02_sort.bed.gz"))
  #mysub = importFIMO(tf, mygeneRange)
  genome(mysub)="hg19"
  atrack1 <- AnnotationTrack(mysub, name = myhs)
  gtrack <- GenomeAxisTrack()
  itrack <- IdeogramTrack(genome = "hg19", chromosome = mychr)
  dtrack=DataTrack(data=mysub$mcols.qValue, start=start(mysub), end=end(mysub),
                   chromosome = mychr, genome = "hg19", name = myhs)
  biomtrack <- BiomartGeneRegionTrack(genome = "hg19", chromosome = mychr, symbol=mysymbol, name=mysymbol)
  hsp = plotTracks(list(dtrack, gtrack, biomtrack), sizes=c(2,2,5))
}



enc690ByFactor = function (factor=myTF,sym=mysymbol,filtrange=NULL) 
{
  data(encode690)
  encode690 = as.data.frame(encode690)
  stopifnot(factor %in% encode690$target)
  tmp = dplyr::filter(encode690, target == factor)[, c("AHID", "cell")]
  ids = tmp[["AHID"]]
  cells = tmp[["cell"]]
  message(paste("retrieving", length(ids), "AnnotationHub elements."))
  suppressWarnings({
    suppressMessages({
      l1 = lapply(seq_len(length(ids)), function(x) {
        cat(".")
        tmp = AnnotationHub::AnnotationHub()[[ids[x]]]
        if (!is.null(filtrange)) {
          seqlevelsStyle(filtrange) = seqlevelsStyle(tmp)
          tmp = subsetByOverlaps(tmp, filtrange)
        }
        metadata(tmp) = c(metadata(tmp), cell = cells[x])
        tmp
      })
    })
  })
  cat("\n")
  names(l1) = ids
  sapply(l1,length)
  #gm = GRanges("chr17", IRanges(38077296, 38083884))
  #l2 = lapply(l1, function(x) subsetByOverlaps(x, gm+10000))
  #l3 = enc690ByFactor(filtrange=gm+10000)
  mygene = genemodelDF(sym, EnsDb.Hsapiens.v75::EnsDb.Hsapiens.v75)
  mychr = paste0("chr",mygene$seqnames[[2]])
  br = GRanges(mychr, IRanges(start=min(mygene$start),end=max(mygene$end)))
  #br = GRanges("chr13", IRanges(32889617, 32973809)) # BRCA2
  dd = lapply(l1, function(x) subsetByOverlaps(x, br+10000))
  lens = sapply(dd,length)
  cls = sapply(dd, function(x) metadata(x)$cell)
  cls = rep(cls, lens)
  ee = do.call(rbind, lapply(dd, as.data.frame))
  ee$cell = factor(as.character(cls))
  ee$yval = 1+(as.numeric(factor(as.character(cls)))-1)/length(unique(cls))
  edb = EnsDb.Hsapiens.v75::EnsDb.Hsapiens.v75
  ggvisForSymbol(sym, resource=edb) +
    geom_segment(aes(x=start, xend=end, y=yval, yend=yval,
                     group=cell, colour=cell), data=ee, size=2.5) +
    theme(axis.text.y = element_blank(), axis.title.y=element_blank()) + 
    ylim(-.5,2) + ggtitle(paste0(factor," binding near ", sym))

}

Row {data-width=800, data-height=950}

Methods & Results

shinyApp(
  ui = fluidPage(
    titlePanel("visByGene"),
    sidebarLayout(position = "left",
                  sidebarPanel(width=3,
                               selectInput("eQTL", "Select eQTL Collection", eQTLdata),
                               selectInput("fp", "Select FootPrint Collection", fpdata),
                               #selectInput("hs", "Select Hypersensitivity Collection", hsdata),
                               selectInput("transcriptionFactor", "Select FIMO Transcription Factor Collection", tfdata),
                               selectInput("encodeTF", "Select Encode Transcription Factor",encode690$target ),
                               textInput("geneName", "Enter Gene of interest", value="ORMDL3")
                               #numericInput("windowSize", "Window Size", 1000),
                               #textInput("downloadName", "Download Name"),
                               #downloadButton("downloadData", "Download Data")
                  ),


                  mainPanel(
                    tabsetPanel(id="inTabset",
                                tabPanel("Gene Model", value="panel1", plotlyOutput("ggPlot")),
                                tabPanel("eQTL Model", value="panel2", plotOutput("eqtlplot")),
                                tabPanel("Footprint Model", value="panel3", plotOutput("fpplot")),
                                #tabPanel("DNAse Hypersensitivity Model", value="panel3", plotOutput("hsplot")),
                                tabPanel("FIMO TF Model", value="panel4", plotOutput("tfplot")),
                                tabPanel("Encode TF Model", value="panel5", plotOutput("tfgenePlot")),
                                tabPanel("CEBPB binding nead ORMDL3", value="panel5", plotlyOutput("plotlySymbol")),
                                tabPanel("ggplot", value="panel9", plotlyOutput("ggplot")),
                                tabPanel("visByGene", value="panel6", plotOutput("visByGene")),
                                tabPanel("TF Metadata",value="panel7", DT::dataTableOutput("mytable2")),
                                tabPanel("References",value="panel8",textOutput("text1"))



                    )
))
),

server = function(input, output, session){
  observeEvent(input$goButton, {
    # query FP from mongo and plot with gene model first 
    plotFP <- function(myfp, mysymbol){
      require(Gviz)
      require(TFutils)
      require(GenomicRanges)
      require(mongolite)
      mygene = genemodForGviz(sym=mysymbol,resource= EnsDb.Hsapiens.v75::EnsDb.Hsapiens.v75)
      mychr = seqnames(mygene)[1]
      mygeneRange = GRanges(mychr, IRanges(start=min(start(mygene)),end=max(end(mygene))))
      mystart = min(start(mygene))
      myend = max(end(mygene))
      fpcoll = mongo(url="mongodb://172.27.105.48",
                     collection = myfp,
                     db = "txregnet"
      )
      myquery=paste0('{',
                     '"chr":"',mychr,'",',
                     '"start" : {"$gte":',mystart,'},',
                     '"end" : {"$lte":',myend,'}}')
      res=fpcoll$find(myquery)
      mysub=GRanges(res$chr, IRanges(res$start, res$end), mcols=res)
      #tf = Rsamtools::TabixFile(paste0("/udd/reshg/tbifiles/tabix_all_tf_new/",mytf,".02_sort.bed.gz"))
      #mysub = importFIMO(tf, mygeneRange)
      genome(mysub)="hg19"
      atrack1 <- AnnotationTrack(mysub, name = myfp)
      gtrack <- GenomeAxisTrack()
      itrack <- IdeogramTrack(genome = "hg19", chromosome = mychr)
      dtrack=DataTrack(data=mysub$mcols.stat, start=start(mysub), end=end(mysub),
                       chromosome = mychr, genome = "hg19", name = myfp)
      biomtrack <- BiomartGeneRegionTrack(genome = "hg19", chromosome = mychr, symbol=mysymbol, name=mysymbol)
      fpp = plotTracks(list(dtrack, gtrack, biomtrack),sizes=c(1,1,2))
    }

    output$plot <- renderPlot(plotFP(input$fp, inout$geneName))

  })


  #observeEvent(input$tfmodel, {
  # updateTabsetPanel(session, "inTabset", selected = "panel2")

  output$tfplot = renderPlot(plotTF(input$transcriptionFactor, input$geneName))

  output$fpplot = renderPlot(plotFP(input$fp, input$geneName))

  output$eqtlplot = renderPlot(ploteQTL(input$eQTL, input$geneName))
  require(plotly)
  output$ggPlot = renderPlotly(ggvisForSymbol(input$geneName))
  #output$hsplot = renderPlot(plotHS(input$hs, input$geneName))


  #output$visByGene = renderPlot(plotHS(input$hs, input$geneName))

  output$tfgenePlot = renderPlot(enc690ByFactor(input$encodeTF, input$geneName))
  output$plotlySymbol = renderPlotly(plotlyForSymbol("ORMDL3", resource=edb) %>%
                          add_segments(x=ee$start, xend=ee$end, y=ee$yval, yend=ee$yval,
                            color=ee$cell,showlegend = TRUE, text=paste(ee$cell,":",ee$info),hoverinfo='text')%>% layout(title="CEBPB binding near ORMDL3",yaxis=list(title="")))
  output$visByGene = renderPlot(visByGene(input$eQTL, input$fp, input$transcriptionFactor, input$geneName))
  #require(plotly)
  output$ggPlot = renderPlotly(ggvisForSymbol(input$geneName))

  output$mytable2 = renderDataTable(as.data.frame(metadata_tf), options=list(scrollX=TRUE,pageLength=25))
  output$text1 <- renderText("Eric Tu, et al. Interactive Exploration on Large Genomic Datasets. 2016 Spring; 2016: UCB/EECS-2016-111, <br> Matteo Gabetta, et al. BigQ: a NoSQL based framework to handle genomic variants in i2b2. BMC Bioinformatics. 2015")

}
)


shwetagopaul92/visByGene documentation built on Oct. 3, 2019, 1:23 a.m.