## ----init, echo=FALSE, results='hide'----------------------------------------- library(knitr) ## 1. issue with too large vignette, maybe optimizing png? ## unfortunately it requires additional system libs -> not feasible ## `pngquant=""`, `optipng = "-o7"` both in `opts_chunk` ## SOLUTION: might be to use `fig.retina = 1` and only set it to 2 (default) ## for figures which requires higher resolution ## or even decrease res `dpi = 72`, also both in `opts_chunk` ## ## knit_hooks$set(optipng = hook_optipng, ## pngquant = hook_pngquant) ## ## 2. crop=NULL or FALSE => fix vignette rendering based on yihui/knitr#1796 ## added also error=FALSE to include_graphics opts_chunk$set( collapse = TRUE, tidy = FALSE, fig.retina = 1, ## comment = "#>", error = FALSE, warning = FALSE, message = FALSE, crop = NULL ) ## check the output type out_type <- opts_knit$get("rmarkdown.pandoc.to") if (is.null(out_type)) out_type <- "html" ## add styling if (out_type == "html") { BiocStyle::markdown() } else if (out_type == "latex") { BiocStyle::latex() } ## ----vignetteGvizSetup, echo=FALSE, results='hide'---------------------------- source(system.file("scripts/documentation.R", package="Gviz")) xtabDetails <- details addParTable <- function(xtabDetails, class, skip=c("showTitle", "size", "background.title"), add=NULL, out_type="html") { Parameters <- data.frame("Display Parameter"=names(xtabDetails[[class]]), "Description"=xtabDetails[[class]], check.names=FALSE) if(!is.null(add)) { Parameters <- cbind(Parameters, add) } Parameters <- Parameters[order(Parameters[,1]),] sel <- !Parameters[,1] %in% skip Parameters <- Parameters[sel,] Parameters[,2] <- gsub("\\\\\\code\\{(.*?)\\}", "`\\1`", Parameters[,2]) Parameters[,2] <- gsub("\\\\\\link[sS]4[Cc]lass\\{(.*?)\\}", "\\1", Parameters[,2]) Parameters[,2] <- gsub("\\\\\\link\\{(.*?)\\}", "\\1", Parameters[,2]) rownames(Parameters) <- NULL if (out_type == "html") { out <- kable(Parameters) } else if (out_type == "latex") { out <- kable(Parameters, format="latex", booktabs=TRUE, longtable=TRUE) } print(out) return(invisible()) } hasUcscConnection <- !is(try(rtracklayer::browserSession(), silent=TRUE), "try-error") oto <- options(timeout=5) ## hasBiomartConnection <- FALSE hasBiomartConnection <- (!is(try(download.file("http://www.biomart.org", tempfile(), quiet=TRUE)), "try-error") && !is(try(biomaRt::listMarts(), silent=TRUE), "try-error")) options(timeout=oto) ## ## clear BiomaRt cache ## biomaRt::biomartCacheClear() ## ## Uncommenting this helps when the UCSC server has a hickup but still lets you connect: ## hasUcscConnection <- !is(try(rtracklayer::browserSession(), silent=TRUE), "try-error") && ## !is(try(IdeogramTrack(genome="hg19", chromosome=7), silent=TRUE), "try-error") ## ----loadPackage, cache=FALSE------------------------------------------------- library(Gviz) ## ----AnnotationTrack---------------------------------------------------------- library(GenomicRanges) data(cpgIslands) class(cpgIslands) chr <- as.character(unique(seqnames(cpgIslands))) gen <- genome(cpgIslands) atrack <- AnnotationTrack(cpgIslands, name = "CpG") ## ----plotAnnotationTrack, fig.width=7.5, fig.height=0.5----------------------- plotTracks(atrack) ## ----GenomeAxisTrack---------------------------------------------------------- gtrack <- GenomeAxisTrack() ## ----plotGenomeAxisTrack, fig.width=7.5, fig.height=1.1----------------------- plotTracks(list(gtrack, atrack)) ## ----showIdeogramTrack, eval=FALSE-------------------------------------------- # itrack <- IdeogramTrack(genome = gen, chromosome = chr) ## ----doIdeogramTrack, echo=FALSE, results='hide'------------------------------ if(hasUcscConnection) { itrack <- IdeogramTrack(genome = gen, chromosome = chr) } else{ data(itrack) } ## ----plotIdeogramTrack, fig.width=7.5, fig.height=1.5------------------------- plotTracks(list(itrack, gtrack, atrack)) ## ----GeneRegionTrack, fig.width=7.5, fig.height=3----------------------------- data(geneModels) grtrack <- GeneRegionTrack(geneModels, genome = gen, chromosome = chr, name = "Gene Model") plotTracks(list(itrack, gtrack, atrack, grtrack)) ## ----zooming, fig.width=7.5, fig.height=2.2----------------------------------- plotTracks(list(itrack, gtrack, atrack, grtrack), from = 26700000, to = 26750000) ## ----zooming2, fig.width=7.5, fig.height=3------------------------------------ plotTracks(list(itrack, gtrack, atrack, grtrack), extend.left = 0.5, extend.right = 1000000) ## ----zooming3, fig.width=7.5, fig.height=3------------------------------------ plotTracks(list(itrack, gtrack, atrack, grtrack), extend.left = 0.5, extend.right = 1000000, col = NULL) ## ----zooming4, fig.width=7.5, fig.height=3.1---------------------------------- library(BSgenome.Hsapiens.UCSC.hg19) strack <- SequenceTrack(Hsapiens, chromosome = chr) plotTracks(list(itrack, gtrack, atrack, grtrack, strack), from = 26591822, to = 26591852, cex = 0.8) ## ----DataTrack, fig.width=7.5, fig.height=4----------------------------------- set.seed(255) lim <- c(26700000, 26750000) coords <- sort(c(lim[1], sample(seq(from = lim[1], to = lim[2]), 99), lim[2])) dat <- runif(100, min = -10, max = 10) dtrack <- DataTrack(data = dat, start = coords[-length(coords)], end = coords[-1], chromosome = chr, genome = gen, name = "Uniform") plotTracks(list(itrack, gtrack, atrack, grtrack, dtrack), from = lim[1], to = lim[2]) ## ----DataTrackHist, fig.width=7.5, fig.height=4------------------------------- plotTracks(list(itrack, gtrack, atrack, grtrack, dtrack), from = lim[1], to = lim[2], type = "histogram") ## ----displayPars1f, fig.width=7.5, fig.height=3------------------------------- grtrack <- GeneRegionTrack(geneModels, genome = gen, chromosome = chr, name = "Gene Model", transcriptAnnotation = "symbol", background.title = "brown") head(displayPars(grtrack)) displayPars(grtrack) <- list(background.panel = "#FFFEDB", col = NULL) head(displayPars(grtrack)) plotTracks(list(itrack, gtrack, atrack, grtrack)) ## ----displayPars2f, fig.width=7.5, fig.height=3------------------------------- plotTracks(list(itrack, gtrack, atrack, grtrack), background.panel = "#FFFEDB", background.title = "darkblue") ## ----displayPars3------------------------------------------------------------- dp <- availableDisplayPars(grtrack) tail(dp) ## ----displayPars4, fig.width=7.5, fig.height=1.5------------------------------ getOption("Gviz.scheme") scheme <- getScheme() scheme$GeneRegionTrack$fill <- "salmon" scheme$GeneRegionTrack$col <- NULL scheme$GeneRegionTrack$transcriptAnnotation <- "transcript" addScheme(scheme, "myScheme") options(Gviz.scheme = "myScheme") grtrack <- GeneRegionTrack(geneModels, genome = gen, chromosome = chr, name = "Gene Model") plotTracks(grtrack) options(Gviz.scheme="default") grtrack <- GeneRegionTrack(geneModels, genome = gen, chromosome = chr, name = "Gene Model", transcriptAnnotation = "symbol") ## ----schemes, eval=FALSE------------------------------------------------------ # .GvizSchemes <- list(myScheme = list( # GeneRegionTrack=list(fill = "salmon", col = NULL, # transcriptAnnotation = "transcript"))) ## ----plottingdirections, fig.width=7.5, fig.height=3-------------------------- plotTracks(list(itrack, gtrack, atrack, grtrack), reverseStrand = TRUE) ## ----GenomeAxisTrackClass1, fig.width=7.5, fig.height=0.75-------------------- axisTrack <- GenomeAxisTrack() plotTracks(axisTrack, from = 1e6, to = 9e6) ## ----GenomeAxisTrackClass2, fig.width=7.5, fig.height=0.75-------------------- axisTrack <- GenomeAxisTrack(range=IRanges(start = c(2e6, 4e6), end = c(3e6, 7e6), names = rep("N-stretch", 2))) plotTracks(axisTrack, from = 1e6, to = 9e6) ## ----GenomeAxisTrackClass2a, fig.width=7.5, fig.height=0.75------------------- plotTracks(axisTrack, from = 1e6, to = 9e6, showId = TRUE) ## ----GenomeAxisTrackClass3, fig.width=7.5, fig.height=0.75-------------------- plotTracks(axisTrack, from = 1e6, to = 9e6, add53 = TRUE, add35 = TRUE) ## ----GenomeAxisTrackClass4, fig.width=7.5, fig.height=0.75-------------------- plotTracks(axisTrack, from = 1e6, to = 9e6, add53 = TRUE, add35 = TRUE, littleTicks = TRUE) ## ----GenomeAxisTrackClass5, fig.width=7.5, fig.height=0.75-------------------- plotTracks(axisTrack, from = 1e6, to = 9e6, exponent = 4) ## ----GenomeAxisTrackClass6, fig.width=7.5, fig.height=0.75-------------------- plotTracks(axisTrack, from = 1e6, to = 9e6, labelPos = "below") ## ----GenomeAxisTrackClass7, fig.width=7.5, fig.height=0.5--------------------- plotTracks(axisTrack, from = 1e6, to = 9e6, scale = 0.5) ## ----GenomeAxisTrackClass8, fig.width=7.5, fig.height=0.5--------------------- plotTracks(axisTrack, from = 1e6, to = 9e6, scale = 0.5, labelPos = "below") ## ----GenomeAxisTrackClassTable, echo=FALSE, results='asis'-------------------- addParTable(xtabDetails,"GenomeAxisTrack", out_type = out_type) ## ----IdeogramTrackClass1Show, eval=FALSE-------------------------------------- # ideoTrack <- IdeogramTrack(genome = "hg19", chromosome = "chrX") # plotTracks(ideoTrack, from = 85e6, to = 129e6) ## ----IdeogramTrackClass1Do, fig.width=7.5, fig.height=0.5, echo=FALSE, results='hide'---- if(hasUcscConnection) { ideoTrack <- IdeogramTrack(genome = "hg19", chromosome = "chrX") } else{ data(itrack) } plotTracks(ideoTrack, from = 85e6, to = 129e6) ## ----IdeogramTrackClass2, fig.width=7.5, fig.height=0.5----------------------- plotTracks(ideoTrack, from = 85e6, to = 129e6, showId = FALSE) ## ----IdeogramTrackClass3, fig.width=7.5, fig.height=0.5----------------------- plotTracks(ideoTrack, from = 85e6, to = 129e6, showId = FALSE, showBandId = TRUE, cex.bands = 0.5) ## ----IdeogramTrackClass4, fig.width=7.5, fig.height=0.5----------------------- plotTracks(ideoTrack, from = 85e6, to = 129e6, showId = FALSE, centromereShape = "circle") ## ----IdeogramTrackClassTable, echo=FALSE, results='asis'---------------------- addParTable(xtabDetails, "IdeogramTrack", out_type = out_type) ## ----DataClass1, fig.width=7.5, fig.height=1.5-------------------------------- data(twoGroups) dTrack <- DataTrack(twoGroups, name = "uniform") plotTracks(dTrack) ## ----types, echo=FALSE, results='asis'---------------------------------------- types <- data.frame(Value=c("p", "l", "b", "a", "s", "S", "g", "r", "h", "confint", "smooth", "histogram", "mountain", "polygon", "boxplot", "gradient", "heatmap", "horizon"), Type=c("dot plot", "lines plot", "dot and lines plot", "lines plot of average (i.e., mean) values", "stair steps (horizontal first)", "stair steps (vertical first)", "add grid lines", "add linear regression line", "histogram lines", "confidence intervals for average values", "add loess curve", "histogram (bar width equal to range with)", "'mountain-type' plot relative to a baseline", "'polygon-type' plot relative to a baseline", "box and whisker plot", "false color image of the summarized values", "false color image of the individual values", "Horizon plot indicating magnitude and direction of a change relative to a baseline")) if (out_type == "html") { kable(types) } else if (out_type == "latex") { kable(types, "latex", booktabs = TRUE, longtable = TRUE) } ## ----typePlots, fig.width=7.5, fig.height=8.5, echo=FALSE, results='hide'----- pushViewport(viewport(layout = grid.layout(nrow = 9, ncol = 2))) i <- 1 for(t in types$Value) { pushViewport(viewport(layout.pos.col = ((i - 1) %% 2) + 1, layout.pos.row = ((i - 1) %/% 2)+1)) if(t != "horizon"){ names(dTrack) <- t plotTracks(dTrack, type = t, add = TRUE, cex.title = 0.8, margin = 0.5) } else { data(dtHoriz) names(dtHoriz) <- "horizon *" plotTracks(dtHoriz[8, ], type = "horizon", add = TRUE, cex.title = 0.8, margin = 0.5, showAxis = FALSE, horizon.origin = 0.7) } i <- i + 1 popViewport(1) } popViewport(1) names(dTrack) <- "uniform" ## ----mutitype, results='hide', fig.width=7.5, fig.height=1.5------------------ plotTracks(dTrack, type = c("boxplot", "a", "g")) ## ----sampNames, fig.width=7.5, fig.height=1.5--------------------------------- colnames(mcols(twoGroups)) plotTracks(dTrack, type = c("heatmap"), showSampleNames = TRUE, cex.sampleNames = 0.6) ## ----grouping, results='hide', fig.width=7.5, fig.height=1.5------------------ plotTracks(dTrack, groups = rep(c("control", "treated"), each = 3), type = c("a", "p", "confint")) ## ----typeGroupedPlots, fig.width=7.5, fig.height=6, echo=FALSE, results='hide'---- pushViewport(viewport(layout=grid.layout(nrow=9, ncol=1))) i <- 1 for(t in c("a", "s", "confint", "smooth", "histogram", "boxplot", "heatmap", "horizon", "hor. type")) { pushViewport(viewport(layout.pos.col=((i-1)%%1)+1, layout.pos.row=((i-1)%/%1)+1)) names(dTrack) <- t if(!t %in% c("horizon", "hor. type")) { plotTracks(dTrack, type=t, add=TRUE, cex.title=0.8, groups=rep(1:2, each=3), margin=0.5) } else if (t == "horizon") { plotTracks(dtHoriz[c(1,8),], type="horizon", add=TRUE, cex.title=0.8, margin=0.5, showAxis=FALSE, horizon.origin=0.3, groups=1:2) } else { plotTracks(dTrack, type="histogram", stackedBars=FALSE, add=TRUE, cex.title=0.8, groups=rep(1:2, each=3), margin=0.5) } i <- i+1 popViewport(1) } popViewport(1) names(dTrack) <- "uniform" ## ----groupingLegend, results='hide', fig.width=7.5, fig.height=1.5------------ plotTracks(dTrack, groups = rep(c("control", "treated"), each = 3), type = c("a", "p"), legend = TRUE) ## ----horizLegend, results='hide', fig.width=7.5, fig.height=1.5--------------- data(dtHoriz) dtHoriz <- dtHoriz[1:6, ] plotTracks(dtHoriz, type = "horiz", groups = rownames(values(dtHoriz)), showSampleNames = TRUE, cex.sampleNames = 0.6, separator = 1) ## ----filedt1, fig.width=7.5, fig.height=1------------------------------------- bgFile <- system.file("extdata/test.bedGraph", package = "Gviz") dTrack2 <- DataTrack(range = bgFile, genome = "hg19", type = "l", chromosome = "chr19", name = "bedGraph") class(dTrack2) plotTracks(dTrack2) ## ----filedt2------------------------------------------------------------------ library(rtracklayer) dTrack3 <- DataTrack(range = bgFile, genome = "hg19", type = "l", chromosome = "chr19", name = "bedGraph", importFunction = function(file) import(con=file)) identical(dTrack2, dTrack3) ## ----filedt3, fig.width=7.5, fig.height=1------------------------------------- bamFile <- system.file("extdata/test.bam", package = "Gviz") dTrack4 <- DataTrack(range = bamFile, genome = "hg19", type = "l", name = "Coverage", window = -1, chromosome = "chr1") class(dTrack4) dTrack4 plotTracks(dTrack4, from = 189990000, to = 190000000) ## ----filedt4, fig.width=7.5, fig.height=1------------------------------------- plotTracks(dTrack4, chromosome = "chr1", from = 189891483, to = 190087517) ## ----filedt5------------------------------------------------------------------ myImportFun <- function(file, selection){ ## do something here } DataTrack(range = bamFile, genome = "hg19", type = "l", name = "Coverage", window = -1, chromosome = "chr1", importFunction = myImportFun, stream = TRUE) ## ----biggerdata, results='hide', fig.width=7.5, fig.height=1.5---------------- dat <- sin(seq(pi, 10*pi, len=500)) dTrack.big <- DataTrack(start = seq(1, 100000, len = 500), width = 15, chromosome = "chrX", genome = "hg19", name = "sinus", data = sin(seq(pi, 5 * pi, len = 500)) * runif(500, 0.5, 1.5)) plotTracks(dTrack.big, type="hist") ## ----aggregation, results='hide', fig.width=7.5, fig.height=1.5--------------- plotTracks(dTrack.big, type = "hist", window = 50) ## ----aggregation2, results='hide', fig.width=7.5, fig.height=1.5-------------- plotTracks(dTrack.big, type = "hist", window = -1, windowSize = 2500) ## ----transformation, results='hide', fig.width=7.5, fig.height=1.5------------ plotTracks(dTrack.big, type = "l", transformation = function(x) { x[x < 0] <- 0; x }) ## ----groupingAv1, results='hide', fig.width=7.5, fig.height=1.5--------------- plotTracks(dTrack, groups = rep(c("control", "treated"), each = 3), type = c("b"), aggregateGroups = TRUE) ## ----groupingAv2, results='hide', fig.width=7.5, fig.height=1.5--------------- plotTracks(dTrack, groups = rep(c("control", "treated"), each = 3), type = c("b"), aggregateGroups = TRUE, aggregation = "max") ## ----DataTrackClassTable, echo=FALSE, results='asis'-------------------------- addParTable(xtabDetails,"DataTrack", out_type = out_type) ## ----anntrack1, results='hide', fig.width=7.5, fig.height=0.5----------------- aTrack <- AnnotationTrack(start = c(10, 40, 120), width = 15, chromosome = "chrX", strand = c("+", "*", "-"), id = c("Huey", "Dewey", "Louie"), genome = "hg19", name = "foo") plotTracks(aTrack) ## ----anntrack2, results='hide', fig.width=7.5, fig.height=0.5----------------- plotTracks(aTrack, shape = "box", featureAnnotation = "id") ## ----anntrack3, results='hide', fig.width=7.5, fig.height=0.5----------------- plotTracks(aTrack, shape = "ellipse", featureAnnotation = "id", fontcolor.feature = "darkblue") ## ----anntrack4f, results='hide', fig.width=7.5, fig.height=0.5---------------- aTrack.groups <- AnnotationTrack(start = c(50, 180, 260, 460, 860, 1240), width = c(15, 20, 40, 100, 200, 20), chromosome = "chrX", strand = rep(c("+", "*", "-"), c(1, 3, 2)), group = rep(c("Huey", "Dewey", "Louie"), c(1, 3, 2)), genome = "hg19", name = "foo") plotTracks(aTrack.groups, groupAnnotation = "group") ## ----anntrack4af, results='hide', fig.width=7.5, fig.height=0.5--------------- plotTracks(aTrack.groups, groupAnnotation = "group", just.group = "right") ## ----anntrack4bf, results='hide', fig.width=7.5, fig.height=0.5--------------- plotTracks(aTrack.groups, groupAnnotation = "group", just.group = "above") ## ----stacking1, results='hide', fig.width=7.5, fig.height=0.5----------------- aTrack.stacked <- AnnotationTrack(start = c(50, 180, 260, 800, 600, 1240), width = c(15, 20, 40, 100, 500, 20), chromosome = "chrX", strand = "*", group = rep(c("Huey", "Dewey", "Louie"), c(1, 3, 2)), genome = "hg19", name = "foo") plotTracks(aTrack.stacked, groupAnnotation="group") ## ----stacking2, results='hide', fig.width=7.5, fig.height=0.5----------------- plotTracks(aTrack.stacked, stacking = "dense") ## ----features----------------------------------------------------------------- feature(aTrack.stacked) feature(aTrack.stacked) <- c("foo", "bar", "bar", "bar", "no", "no") ## ----featuresIdPlot, results='hide', fig.width=7.5, fig.height=0.5------------ plotTracks(aTrack.stacked, featureAnnotation = "feature", groupAnnotation = "feature", fontcolor.feature = 1, cex.feature = 0.7) ## ----featuresPlotf, results='hide', fig.width=7.5, fig.height=0.5------------- plotTracks(aTrack.stacked, groupAnnotation = "group", foo = "darkred", bar = "darkgreen") ## ----overplotting, results='hide', fig.width=7.5, fig.height=0.75------------- data("denseAnnTrack") plotTracks(denseAnnTrack, showOverplotting = TRUE) ## ----collapse1f, results='hide', fig.width=7.5, fig.height=0.85--------------- data(collapseTrack) plotTracks(ctrack) ## ----collapse2f, results='hide', fig.width=7.5, fig.height=0.85--------------- plotTracks(ctrack, min.width = 1) ## ----collapse3f, results='hide', fig.width=7.5, fig.height=0.85--------------- plotTracks(ctrack, min.width = 1, collapse = TRUE) ## ----collapse4f, results='hide', fig.width=7.5, fig.height=0.85--------------- plotTracks(ctrack, min.width = 3, min.distance = 5, collapse = TRUE) ## ----collapse5f, results='hide', fig.width=7.5, fig.height=0.65--------------- plotTracks(ctrack, min.width = 3, min.distance = 5, collapse = TRUE, mergeGroups = TRUE, extend.left = 0.1) ## ----fileat1, fig.width=7.5, fig.height=1------------------------------------- aTrack2 <- AnnotationTrack(range = bamFile, genome = "hg19", name = "Reads", chromosome = "chr1") class(aTrack2) aTrack2 plotTracks(aTrack2, from = 189995000, to = 190000000) ## ----fileat2, fig.width=7.5, fig.height=1------------------------------------- aTrack3 <- AnnotationTrack(range = bamFile, genome = "hg19", name = "Reads", chromosome = "chr1", group = "id") aTrack3 plotTracks(aTrack3, from = 189995000, to = 190000000) ## ----fileat3------------------------------------------------------------------ availableDefaultMapping(bamFile, "AnnotationTrack") ## ----fileat4, fig.width=7.5, fig.height=2------------------------------------- plotTracks(list(dTrack4, aTrack2), from = 189990000, to = 190000000) ## ----AnnotationTrackClassTable, echo=FALSE, results='asis'-------------------- addParTable(xtabDetails,"AnnotationTrack", out_type = out_type) ## ----generegtrackf, results='hide', fig.width=7.5, fig.height=1.5------------- data(geneModels) grtrack <- GeneRegionTrack(geneModels, genome = gen, chromosome = chr, name = "foo") head(gene(grtrack)) head(transcript(grtrack)) head(exon(grtrack)) head(symbol(grtrack)) plotTracks(grtrack) ## ----generegtrack2af, results='hide', fig.width=7.5, fig.height=2.5----------- plotTracks(grtrack, transcriptAnnotation = "symbol") ## ----generegtrack2bf, results='hide', fig.width=7.5, fig.height=2.5----------- plotTracks(grtrack, transcriptAnnotation = "transcript") ## ----generegtrack2cf, results='hide', fig.width=7.5, fig.height=1------------- plotTracks(grtrack, exonAnnotation = "exon", extend.left = -0.8, fontcolor.exon = 1) ## ----generegtrack3f, results='hide', fig.width=7.5, fig.height=1-------------- plotTracks(grtrack, collapseTranscripts = TRUE, shape = "arrow", transcriptAnnotation = "symbol") ## ----generegtrack3g, results='hide', fig.width=7.5, fig.height=1-------------- plotTracks(grtrack, collapseTranscripts = "longest", shape = "arrow", transcriptAnnotation = "symbol") ## ----generegtrack3h, results='hide', fig.width=7.5, fig.height=1-------------- plotTracks(grtrack, collapseTranscripts = "meta", shape = "arrow", transcriptAnnotation = "symbol") ## ----tdb2grt1----------------------------------------------------------------- library(GenomicFeatures) samplefile <- system.file("extdata", "hg19_knownGene_sample.sqlite", package = "GenomicFeatures") txdb <- loadDb(samplefile) GeneRegionTrack(txdb) ## ----tdb2grt2----------------------------------------------------------------- txTr <- GeneRegionTrack(txdb, chromosome = "chr6", start = 35000000, end = 40000000) ## ----generegtrack4f, results='hide', fig.width=7.5, fig.height=1-------------- feature(txTr) plotTracks(txTr) ## ----generegtrack4g, eval=FALSE, echo=FALSE, results='hide', fig.width=7.5, fig.height=1---- # symbol(txTr) <- mapIds(org.Hs.eg.db, # keys=sub("\\.\\d+$", "", gene(txTr)), # keytype="ENSEMBL", column="SYMBOL") # symbol(txTr) <- ifelse(is.na(symbol(txTr)), gene(txTr), symbol(txTr)) # plotTracks(txTr, transcriptAnnotation = "symbol") ## ----ensDb, eval=FALSE-------------------------------------------------------- # library(ensembldb) # library(EnsDb.Hsapiens.v75) # # edb <- EnsDb.Hsapiens.v75 # seqlevelsStyle(edb) <- "UCSC" # # eTrack <- GeneRegionTrack(edb, chromosome = "chr6", # start = 35000000, end = 40000000) # # plotTracks(eTrack) ## ----GeneRegionTrackClassTable, echo=FALSE, results='asis'-------------------- addParTable(xtabDetails,"GeneRegionTrack", out_type = out_type) ## ----BiomartGeneRegionTrackShow, eval=FALSE----------------------------------- # library(biomaRt) # bm <- useMart(host = "grch37.ensembl.org", # biomart = "ENSEMBL_MART_ENSEMBL", # dataset = "hsapiens_gene_ensembl") # biomTrack <- BiomartGeneRegionTrack(genome = "hg19", chromosome = chr, # start = 20e6, end = 21e6, # name = "ENSEMBL", biomart = bm) # plotTracks(biomTrack) ## ----BiomartGeneRegionTrackDo, echo=FALSE, results='hide', fig.width=7.5, fig.height=1.25---- library(biomaRt) if(hasBiomartConnection) { bm <- useMart(host = "grch37.ensembl.org", biomart = "ENSEMBL_MART_ENSEMBL", dataset = "hsapiens_gene_ensembl") biomTrack <- BiomartGeneRegionTrack(genome = "hg19", chromosome = chr, start = 20e6, end = 21e6, name = "ENSEMBL", biomart = bm) } else { data("biomTrack") } plotTracks(biomTrack) ## ----BiomartGeneRegionTrackCol, fig.width=7.5, fig.height=1.25---------------- plotTracks(biomTrack, col.line = NULL, col = NULL) ## ----BiomartGeneRegionTrackHeight, fig.width=7.5, fig.height=1.25------------- plotTracks(biomTrack, col.line = NULL, col = NULL, stackHeight = 0.3) ## ----BiomartGeneRegionTrackFilterShow, eval=FALSE----------------------------- # bm <- useMart(host = "grch37.ensembl.org", # biomart = "ENSEMBL_MART_ENSEMBL", # dataset = "hsapiens_gene_ensembl") # biomTrack <- BiomartGeneRegionTrack(genome = "hg19", chromosome = chr, # start = 20e6, end = 21e6, # name = "ENSEMBL", # filter = list(with_refseq_mrna=TRUE), # biomart = bm) # plotTracks(biomTrack, col.line = NULL, col = NULL, stackHeight = 0.3) ## ----BiomartGeneRegionTrackFilterDo, fig.width=7.5, fig.height=1.25, echo=FALSE, results='hide'---- if(hasBiomartConnection) { bm <- useMart(host = "grch37.ensembl.org", biomart = "ENSEMBL_MART_ENSEMBL", dataset = "hsapiens_gene_ensembl") biomTrack <- BiomartGeneRegionTrack(genome = "hg19", chromosome = chr, start = 20e6, end = 21e6, name = "ENSEMBL", filter = list(with_refseq_mrna=TRUE), biomart = bm) plotTracks(biomTrack, col.line = NULL, col = NULL, stackHeight = 0.3) } else { data(biomTrack2) plotTracks(biomTrack2, col.line = NULL, col = NULL, stackHeight = 0.3) } ## ----BiomartGeneRegionTrackSymbolShow, eval=FALSE----------------------------- # bm <- useMart(host = "grch37.ensembl.org", # biomart = "ENSEMBL_MART_ENSEMBL", # dataset = "hsapiens_gene_ensembl") # biomTrack <- BiomartGeneRegionTrack(genome = "hg19", name = "ENSEMBL", # symbol = "ABCB5", biomart = bm) # plotTracks(biomTrack, transcriptAnnotation = "symbol") ## ----BiomartGeneRegionTrackSymbolDo, fig.width=7.5, fig.height=1.25, echo=FALSE, results='hide'---- if(hasBiomartConnection) { bm <- useMart(host = "grch37.ensembl.org", biomart = "ENSEMBL_MART_ENSEMBL", dataset = "hsapiens_gene_ensembl") biomTrack <- BiomartGeneRegionTrack(genome = "hg19", name = "ENSEMBL", symbol = "ABCB5", biomart = bm) } else { ranges(biomTrack) <- ranges(biomTrack)[symbol(biomTrack) == "ABCB5"] } plotTracks(biomTrack, transcriptAnnotation="symbol") ## ----BiomartGeneRegionTrackCustom, fig.width=7.5, fig.height=1.25, eval=FALSE, echo=F---- # library(biomaRt) # bm <- useMart(host="dec2012.archive.ensembl.org", biomart="ENSEMBL_MART_ENSEMBL", # dataset="hsapiens_gene_ensembl") # fm <- Gviz:::.getBMFeatureMap() # fm[["symbol"]] <- "external_gene_id" # biomTrack <- BiomartGeneRegionTrack(genome="hg19", chromosome="chr7", start=20e6, end=21e6,name="ENSEMBL", # featureMap=fm, biomart=bm) # plotTracks(biomTrack, col.line=NULL, col=NULL, stackHeight=0.3) ## ----BiomartGeneRegionTrackClassTable, echo=FALSE, results='asis'------------- addInfo <- t(data.frame(displayPars(biomTrack, names(details[["BiomartGeneRegionTrack"]])))) colnames(addInfo) <- "Color" addParTable(xtabDetails,"BiomartGeneRegionTrack", add=addInfo, out_type = out_type) ## ----DetailsAnnotationTrack1-------------------------------------------------- library(GenomicRanges) probes <- GRanges(seqnames = "chr7", ranges = IRanges( start = c(2000000, 2070000, 2100000, 2160000), end = c(2050000, 2130000, 2150000, 2170000)), strand = c("-", "+", "-", "-")) ## ----DetailsAnnotationTrack2-------------------------------------------------- methylation <- matrix(c(rgamma(400, 1)), ncol = 100, dimnames = list(paste("probe", 1:4, sep = ""), NULL)) methylation[, 51:100] <- methylation[, 51:100] + 0:3 sgroups <- rep(c("grp1", "grp2"), each = 50) ## ----DetailsAnnotationTrack3-------------------------------------------------- library(lattice) details <- function(identifier, ...) { d <- data.frame(signal = methylation[identifier, ], group = sgroups) print(densityplot(~signal, group = group, data = d, main = list(label = identifier, cex = 0.7), scales = list(draw = FALSE, x = list(draw = TRUE)), ylab = "", xlab = ""), newpage = FALSE, prefix = "plot") } ## ----DetailsAnnotationTrack4, results='hide', fig.width=7.5, fig.height=5----- deTrack <- AnnotationTrack(range = probes, genome = "hg19", chromosome = 7, id = rownames(methylation), name = "probe details", stacking = "squish", fun = details) plotTracks(deTrack) ## ----DetailsAnnotationTrack5-------------------------------------------------- selFun <- function(identifier, start, end, track, GdObject, ...){ gcount <- table(group(GdObject)) ## This computes the width of 2 pixels in genomic coordinates pxRange <- Gviz:::.pxResolution(min.width = 20, coord = "x") return((end - start) < pxRange && gcount[identifier] == 1) } ## ----DetailsAnnotationTrack6-------------------------------------------------- detFun <- function(identifier, GdObject.original, ...){ plotTracks(list(GenomeAxisTrack(scale = 0.3, size = 0.2, cex = 0.7), GdObject.original[group(GdObject.original) == identifier]), add = TRUE, showTitle = FALSE) } ## ----DetailsAnnotationTrack7f, results='hide', fig.width=7.5, fig.height=2---- data(geneDetails) deTrack2 <- AnnotationTrack(geneDetails, fun = detFun, selectFun = selFun, groupDetails = TRUE, details.size = 0.5, detailsConnector.cex = 0.5, detailsConnector.lty = "dotted", shape = c("smallArrow", "arrow"), groupAnnotation = "group") plotTracks(deTrack2, extend.left = 90000) ## ----DetailsAnnotationTrack8, results='hide', fig.width=7.5, fig.height=3----- plotTracks(deTrack, details.size = 0.75, detailsConnector.pch = NA, detailsConnector.col = "darkred", detailsBorder.fill = "#FFE3BF", detailsBorder.col = "darkred", shape ="box", detailsConnector.lty = "dotted") ## ----DetailsAnnotationTrackClassTableSec, echo=FALSE, results='asis'---------- addParTable(xtabDetails,"DetailsAnnotationTrack", out_type = out_type) ## ----SequenceTrack1----------------------------------------------------------- library(BSgenome.Hsapiens.UCSC.hg19) sTrack <- SequenceTrack(Hsapiens) sTrack ## ----SequenceTrack2, results='hide', fig.width=7.5, fig.height=0.5------------ plotTracks(sTrack, chromosome = 1, from = 20000, to = 20050) ## ----SequenceTrack3, results='hide', fig.width=7.5, fig.height=0.5------------ fcol <- c(A="darkgray", C="darkgray", T="darkgray", G="darkgray") plotTracks(sTrack, chromosome = 1, from = 20000, to = 20050, fontcolor = fcol) ## ----SequenceTrack4, results='hide', fig.width=7.5, fig.height=0.5------------ plotTracks(sTrack, chromosome = 1, from = 20000, to = 20050, add53 = TRUE) ## ----SequenceTrack5, results='hide', fig.width=7.5, fig.height=0.3------------ plotTracks(sTrack, chromosome = 1, from = 20000, to = 20050, add53 = TRUE, complement = TRUE) ## ----SequenceTrack6, results='hide', fig.width=7.5, fig.height=0.3------------ plotTracks(sTrack, chromosome = 1, from = 20000, to = 20100) ## ----SequenceTrack7, results='hide', fig.width=7.5, fig.height=0.3------------ plotTracks(sTrack, chromosome = 1, from = 20000, to = 201000) ## ----SequenceTrack8, results='hide', fig.width=7.5, fig.height=0.3------------ plotTracks(sTrack, chromosome = 1, from = 20000, to = 20100, cex = 0.5) ## ----SequenceTrackClassTableSec, echo=FALSE, results='asis'------------------- addParTable(xtabDetails,"SequenceTrack", out_type = out_type) ## ----alignmentstrack_1_do, echo=FALSE, results='hide'------------------------- afrom <- 2960000 ato <- 3160000 alTrack <- AlignmentsTrack( system.file(package = "Gviz", "extdata", "gapped.bam"), isPaired = TRUE) data(alTrackGenes) ## ----alignmentstrack_1_show, eval=FALSE--------------------------------------- # afrom <- 2960000 # ato <- 3160000 # alTrack <- AlignmentsTrack( # system.file(package = "Gviz", "extdata", "gapped.bam"), # isPaired = TRUE) # bmt <- BiomartGeneRegionTrack(genome = "hg19", chromosome = "chr12", # start = afrom, end = ato, # filter = list(with_refseq_mrna = TRUE), # stacking = "dense") ## ----alignmentstrack_2, results='hide', fig.width=7.5, fig.height=5----------- plotTracks(c(bmt, alTrack), from = afrom, to = ato, chromosome = "chr12") ## ----alignmentstrack_3, results='hide', fig.width=7.5, fig.height=5----------- plotTracks(c(bmt, alTrack), from = afrom, to = ato, chromosome = "chr12", min.height = 0, coverageHeight = 0.08, minCoverageHeight = 0) ## ----alignmentstrack_4, results='hide', fig.width=7.5, fig.height=2----------- plotTracks(c(alTrack, bmt), from = afrom, to = ato, chromosome = "chr12", type = "coverage") ## ----alignmentstrack_5, results='hide', fig.width=7.5, fig.height=5----------- plotTracks(c(bmt, alTrack), from = afrom + 12700, to = afrom + 15200, chromosome = "chr12") ## ----alignmentstrack_5_1, results='hide', fig.width=7.5, fig.height=2--------- plotTracks(c(bmt, alTrack), from = afrom + 12700, to = afrom + 15200, chromosome = "chr12", type = c("coverage", "sashimi")) ## ----alignmentstrack_5_2, results='hide', fig.width=7.5, fig.height=2--------- introns <- GRanges("chr12", IRanges(start = c(2973662, 2973919), end = c(2973848, 2974520))) plotTracks(c(bmt, alTrack), from = afrom + 12700, to = afrom + 15200, chromosome = "chr12", type = c("coverage", "sashimi"), sashimiFilter = introns) ## ----alignmentstrack_5_3, results='hide', fig.width=7.5, fig.height=2--------- plotTracks(c(bmt, alTrack), from = afrom + 12700, to = afrom + 15200, chromosome = "chr12", type = c("coverage", "sashimi"), sashimiFilter = introns, sashimiFilterTolerance = 5L) ## ----alignmentstrack_6, results='hide', fig.width=7.5, fig.height=5----------- plotTracks(c(bmt, alTrack), from = afrom + 12700, to = afrom + 15200, chromosome = "chr12", reverseStacking = TRUE, col.mates = "purple", col.gap = "orange", type = "pileup") ## ----alignmentstrack_6_1, results='hide', fig.width=7.5, fig.height=5--------- alTrack <- AlignmentsTrack( system.file(package = "Gviz", "extdata", "gapped.bam"), isPaired = FALSE) plotTracks(c(bmt, alTrack), from = afrom + 12700, to = afrom + 15200, chromosome = "chr12") ## ----alignmentstrack_7, results='hide', fig.width=7.5, fig.height=5----------- afrom <- 44945200 ato <- 44947200 alTrack <- AlignmentsTrack( system.file(package = "Gviz", "extdata", "snps.bam"), isPaired = TRUE) plotTracks(alTrack, chromosome = "chr21", from = afrom, to = ato) ## ----alignmentstrack_8, results='hide', fig.width=7.5, fig.height=5----------- plotTracks(c(alTrack, sTrack), chromosome = "chr21", from = afrom, to = ato) ## ----alignmentstrack_9, results='hide', fig.width=7.5, fig.height=5----------- plotTracks(c(alTrack, sTrack), chromosome = "chr21", from = 44946590, to = 44946660) ## ----alignmentstrack_10, results='hide', fig.width=7.5, fig.height=5---------- plotTracks(c(alTrack, sTrack), chromosome = "chr21", from = 44946590, to = 44946660, cex = 0.5, min.height = 8) ## ----alignmentstrack_11, results='hide', fig.width=7.5, fig.height=5---------- indelTrack1 <- AlignmentsTrack( system.file(package = "Gviz", "extdata", "indels.bam"), name = "Standard") indelTrack2 <- AlignmentsTrack( system.file(package = "Gviz", "extdata", "indels.bam"), showIndels=TRUE, name="Indels") plotTracks(c(indelTrack1, indelTrack2), chromosome = "chr2", from = 126442000, to = 126453000) ## ----AlignmentsTrackClassTable, echo=FALSE, results='asis'-------------------- addParTable(xtabDetails,"AlignmentsTrack", out_type = out_type) ## ----UCSC1, echo=FALSE,fig.cap="A screen shot of a UCSC genome browser view around the FMR1 locus on the mouse chromosome."---- include_graphics("ucsc1.png") ## ----UCSC2, echo=FALSE, fig.cap="A screen shot of a UCSC table browser view on the UCSC Known Genes track."---- include_graphics("ucsc2.png") ## ----ucscTrack1, eval=FALSE--------------------------------------------------- # from <- 65921878 # to <- 65980988 # knownGenes <- UcscTrack(genome = "mm9", chromosome = "chrX", # track = "knownGene", from = from, to = to, # trackType = "GeneRegionTrack", # rstarts = "exonStarts", rends = "exonEnds", # gene = "name", symbol = "name", # transcript = "name", strand = "strand", # fill = "#8282d2", name = "UCSC Genes") ## ----ucscTrack2, eval=FALSE--------------------------------------------------- # refGenes <- UcscTrack(genome = "mm9", chromosome = "chrX", # track = "xenoRefGene", from = from, to = to, # trackType = "GeneRegionTrack", # rstarts = "exonStarts", rends = "exonEnds", # gene = "name", symbol = "name2", # transcript = "name", strand = "strand", # fill = "#8282d2", stacking = "dense", # name = "Other RefSeq") # # ensGenes <- UcscTrack(genome = "mm9", chromosome = "chrX", # track = "ensGene", from = from, to = to, # trackType = "GeneRegionTrack", # rstarts = "exonStarts", rends = "exonEnds", # gene = "name", symbol = "name2", # transcript = "name", strand = "strand", # fill = "#960000", name = "Ensembl Genes") ## ----ucscTrack3, eval=FALSE--------------------------------------------------- # cpgIslands <- UcscTrack(genome = "mm9", chromosome = "chrX", # track = "cpgIslandExt", from = from, to = to, # trackType = "AnnotationTrack", # start = "chromStart", end = "chromEnd", # id = "name", shape = "box", fill = "#006400", # name = "CpG Islands") # # snpLocations <- UcscTrack(genome = "mm9", chromosome = "chrX", # track = "snp128", from = from, to = to, # trackType = "AnnotationTrack", # start = "chromStart", end = "chromEnd", # id = "name", feature = "func", # strand = "strand", shape = "box", # stacking = "dense", fill = "black", # name = "SNPs") ## ----ucscTrack4, eval=FALSE--------------------------------------------------- # conservation <- UcscTrack(genome = "mm9", chromosome = "chrX", # track = "Conservation", # table = "phyloP30wayPlacental", # from = from, to = to, trackType = "DataTrack", # start = "start", end = "end", data = "score", # type = "hist", window = "auto", # col.histogram = "darkblue", # fill.histogram = "darkblue", # ylim = c(-3.7, 4), name = "Conservation") # # gcContent <- UcscTrack(genome = "mm9", chromosome = "chrX", # track = "GC Percent", table = "gc5Base", # from = from, to = to, trackType = "DataTrack", # start = "start", end = "end", data = "score", # type = "hist", window = -1, windowSize = 1500, # fill.histogram = "black", col.histogram = "black", # ylim = c(30, 70), name = "GC Percent") ## ----ucscTrack5, eval=FALSE--------------------------------------------------- # axTrack <- GenomeAxisTrack() # idxTrack <- IdeogramTrack(genome="mm9", chromosome="chrX") ## ----ucscTrackLoad, echo=FALSE, results='hide'-------------------------------- data(ucscItems) ## ----ucscTrack6, results='hide', fig.width=7.5, fig.height=5.5---------------- plotTracks(list(idxTrack, axTrack, knownGenes, refGenes, ensGenes, cpgIslands, gcContent, conservation, snpLocations), from = from, to = to, showTitle = FALSE) ## ----HighlightTrack, fig.width=7.5, fig.height=4------------------------------ ht <- HighlightTrack(trackList = list(atrack, grtrack, dtrack), start = c(26705000, 26720000), width = 7000, chromosome = 7) plotTracks(list(itrack, gtrack, ht), from = lim[1], to = lim[2]) ## ----HighlightTrack2, fig.width=7.5, fig.height=4----------------------------- ht1 <- HighlightTrack(trackList=list(itrack, gtrack, atrack), start = c(26705000, 26720000), width = 7000, chromosome = 7) ht2 <- HighlightTrack(trackList = dtrack, start = c(26705000, 26720000), width = 7000, chromosome = 7) plotTracks(list(ht1, grtrack, ht2), from = lim[1], to = lim[2]) ## ----HighlightTrackClassTable, echo=FALSE, results='asis'--------------------- addParTable(xtabDetails,"HighlightTrack", out_type = out_type) ## ----OverlayTrack, fig.width=7.5, fig.height=3-------------------------------- dat <- runif(100, min = -2, max = 22) dtrack2 <- DataTrack(data = dat, start = coords[-length(coords)], end = coords[-1], chromosome = chr, genome = gen, name = "Uniform2", groups = factor("sample 2", levels = c("sample 1", "sample 2")), legend = TRUE) displayPars(dtrack) <- list(groups = factor("sample 1", levels = c("sample 1", "sample 2")), legend = TRUE) ot <- OverlayTrack(trackList=list(dtrack2, dtrack)) ylims <- extendrange(range(c(values(dtrack), values(dtrack2)))) plotTracks(list(itrack, gtrack, ot), from = lim[1], to = lim[2], ylim = ylims, type = c("smooth", "p")) ## ----OverlayTrack2, fig.width=7.5, fig.height=3------------------------------- displayPars(dtrack) <- list(alpha.title = 1, alpha = 0.5) displayPars(dtrack2) <- list(alpha.title = 1, alpha = 0.5) ot <- OverlayTrack(trackList = list(dtrack, dtrack2)) plotTracks(list(itrack, gtrack, ot), from = lim[1], to = lim[2], ylim = ylims, type = c("hist"), window = 30) ## ----multPlot1---------------------------------------------------------------- chroms <- c("chr1", "chr2", "chr3", "chr4") maTrack <- AnnotationTrack(range=GRanges(seqnames = chroms, ranges = IRanges(start = 1, width = c(100, 400, 200,1000)), strand = c("+", "+", "-", "+")), genome = "mm9", chromosome = "chr1", name = "foo") mdTrack <- DataTrack( range = GRanges(seqnames = rep(chroms, c(10, 40, 20, 100)), ranges = IRanges(start = c(seq(1, 100, len = 10), seq(1, 400, len = 40), seq(1, 200, len = 20), seq(1, 1000, len = 100)), width = 9), values = runif(170)), data = "values", chromosome = "chr1", genome = "mm9", name = "bar") ## ----multPlot2---------------------------------------------------------------- mgTrack <- GenomeAxisTrack(scale = 50, labelPos = "below", exponent = 3) chromosome(itrack) <- "chr1" ## ----multPlot3, results='hide', fig.width=7.5, fig.height=4------------------- ncols <- 2 nrows <- length(chroms) %/% ncols grid.newpage() pushViewport(viewport(layout = grid.layout(nrows, ncols))) for(i in seq_along(chroms)) { pushViewport(viewport(layout.pos.col = ((i - 1) %% ncols) + 1, layout.pos.row = (((i) - 1) %/% ncols) + 1)) plotTracks(list(itrack, maTrack, mdTrack, mgTrack), chromosome = chroms[i], add = TRUE) popViewport(1) } ## ----multPlot4, results='hide', fig.width=7.5, fig.height=4------------------- library(lattice) chroms <- data.frame(chromosome = chroms) xyplot(1 ~ chromosome | chromosome, data = chroms, panel = function(x) { plotTracks(list(itrack , maTrack, mdTrack, mgTrack), chromosome = x, add = TRUE, showId = FALSE) }, scales = list(draw = FALSE), xlab = NULL, ylab = NULL) ## ----biocStruct1, echo=FALSE, results='asis'---------------------------------- dt <- data.frame(`Gviz class` = rep(c("AnnotationTrack","GeneRegionTrack","DataTrack","SequenceTrack"), c(4,5,3,2)), `Bioconductor class`=c("data.frame","IRanges","GRanges","GRangesList", "data.frame","IRanges","GRanges","GRangesList","TxDb", "data.frame","IRanges","GRanges", "DNAStringSet", "BSgenome"), `Method`=c("Constructor","Constructor + additional arguments","Constructor or setAs method, additional data in metadata columns","Constructor or setAs method", "Constructor","Constructor + additional arguments","Constructor or setAs method, additional data in metadata columns","Constructor or setAs method, additional data in metadata columns", "Constructor or setAs method", "Constructor","Constructor + additional data matrix","Constructor or setAs method, numeric data in metadata columns", "DNAStringSet & Constructor", "Constructor"), stringsAsFactors = FALSE, check.names=FALSE) dt[duplicated(dt[,1]),1] <- "" if (out_type == "html") { kable(dt) } else if (out_type == "latex") { kable(dt, "latex", booktabs=TRUE, longtable=TRUE) } ## ----biocStruct2, echo=FALSE, results='asis'---------------------------------- dt <- data.frame(`Gviz class`=rep(c("AnnotationTrack","GeneRegionTrack","DataTrack","SequenceTrack","AlignmentsTrack"), c(5, 4, 4, 2, 1)), `File type`=c("BED","GFF","GFF2","GFF3","BAM", "GTF","GFF","GFF2","GFF3", "BedGraph","WIG","BigWig","BAM", "FASTA","2Bit", "BAM"), `Extension`=c(".bed",".gff, .gff1, ",".gff2",".gff3",".bam", ".gtf",".gff, .gff1",".gff2",".gff3", ".bedGraph",".wig",".bigWig",".bam", ".fa, .fasta",".2bit", ".bam"), `Streaming`=c("no","no","no","no","YES", "no","no","no","no", "no","no","YES","YES", "YES","YES", "YES"), `Details`=c("Genomic locations from the mandatory `chrom`, `chromStart` and `chromEnd` fields, and optionally the strand from the strand field. If present, the information in the field is mapped to track item ids, and is mapped to track item feature type. All other fields are currently ignored.", "Only the following basic GFF fields are recognized: `seqname`, `start`, `end`, `strand`, (mapped to track item feature type) and `group` (to allow for track item grouping).", "Same as above, but feature grouping information may be provided either as `Group` or `Parent` attribute. Feature ids are mapped to one of the ID, Name or Alias attributes.", "Same as above, but feature grouping information has to be provided as the `Parent` attribute.", "Only start and end locations as well as the strand information for the reads are used. Read identifiers are used for track item grouping.", "A somewhat looser format definition for `gtf` files is applied here where gene, transcript and exon identifiers and names can be parsed from the `gene_id`, `gene_name`, `transcript_id`, `transcript_name`, `exon_id`, or `exon_id attributes`", "This only supports very limited item grouping and thus complete gene models can not be properly encoded.", "In most instances this is identical to the `GTF` standard and it could make sense to rename the file accordingly.", "The gene-to-transcript and transcript-to- exon relationships are encoded in the parent and `type` attributes and the parser tries to accommodate most of the existing `GFF3` variants.", "", "", "", "Read coverage only is extracted from the bam file.", "Streaming only possible if an index file is found in the same directory as the original fasta file.", "", "Always needs an index file is found in the same directory as the original `BAM` file."), stringsAsFactors = FALSE, check.names=FALSE) dt[duplicated(dt[,1]),1] <- "" if (out_type == "html") { kable(dt) } else if (out_type == "latex") { kable(dt, "latex", booktabs=TRUE, longtable=TRUE) } ## ----session-info------------------------------------------------------------- sessionInfo()