## ----init, echo=FALSE, results='hide'----------------------------------------- knitr::opts_chunk$set( collapse = TRUE, ## comment = "#>", error = FALSE, warning = FALSE, message = FALSE, crop = NULL # fix vignette rendering based on yihui/knitr#1796 , added also error=FALSE to include_graphics ) ## stopifnot(requireNamespace("htmltools")) ## htmltools::tagList(rmarkdown::html_dependency_font_awesome()) ## check the output type out_type <- knitr::opts_knit$get("rmarkdown.pandoc.to") ## add styling if (out_type == "html") { BiocStyle::markdown() ## BiocStyle::markdown(css.files = c('custom.css')) } else if (out_type == "latex") { BiocStyle::latex() } ## ----init2, echo=FALSE, results='hide'---------------------------------------- library(knitr) 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) # %>% kable_styling(full_width = FALSE) } else if (out_type == "latex") { out <- kable(Parameters, format="latex", booktabs=TRUE, longtable=TRUE) # %>% kable_styling(full_width = FALSE, latex_options = "hold_position") } print(out) return(invisible()) } hasUcscConnection <- !is(try(rtracklayer::browserSession(), silent=TRUE), "try-error") oto <- options(timeout=5) hasBiomartConnection <- (!is(try(download.file("http://www.biomart.org", tempfile(), quiet=TRUE)), "try-error") && !is(try(biomaRt::listMarts(), silent=TRUE), "try-error")) ## hasBiomartConnection <- FALSE options(timeout=oto) ## ## 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.5--------------------- axisTrack <- GenomeAxisTrack() plotTracks(axisTrack, from=1e6, to=9e6) ## ----GenomeAxisTrackClass2, fig.width=7.5, fig.height=0.5--------------------- 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.5-------------------- plotTracks(axisTrack, from=1e6, to=9e6, showId=TRUE) ## ----GenomeAxisTrackClass3, fig.width=7.5, fig.height=0.5--------------------- plotTracks(axisTrack, from=1e6, to=9e6, add53=TRUE, add35=TRUE) ## ----GenomeAxisTrackClass4, fig.width=7.5, fig.height=0.5--------------------- plotTracks(axisTrack, from=1e6, to=9e6, add53=TRUE, add35=TRUE, littleTicks=TRUE) ## ----GenomeAxisTrackClass5, fig.width=7.5, fig.height=0.5--------------------- plotTracks(axisTrack, from=1e6, to=9e6, exponent=4) ## ----GenomeAxisTrackClass6, fig.width=7.5, fig.height=0.5--------------------- 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) ## ----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) # %>% kable_styling(full_width = FALSE) } else if (out_type == "latex") { kable(types, "latex", booktabs=TRUE, longtable=TRUE) # %>% kable_styling(full_width = FALSE, latex_options = "hold_position") } ## ----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")) { pushViewport(viewport(layout.pos.col=((i-1)%%1)+1, layout.pos.row=((i-1)%/%1)+1)) if(t != "horizon"){ names(dTrack) <- t plotTracks(dTrack, type=t, add=TRUE, cex.title=0.8, groups=rep(1:2, each=3), margin=0.5) }else{ 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) } i <- i+1 popViewport(1) } pushViewport(viewport(layout.pos.col=((i-1)%%1)+1, layout.pos.row=((i-1)%/%1)+1)) names(dTrack) <- "hor. hist." plotTracks(dTrack, type="histogram", stackedBars=FALSE, add=TRUE, cex.title=0.8, groups=rep(1:2, each=3), margin=0.5) popViewport(2) 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=0.35----------- feature(txTr) plotTracks(txTr) ## ----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{ biomTrack@filter <- list(with_refseq_mrna=TRUE) plotTracks(biomTrack, col.line=NULL, col=NULL, stackHeight=0.3) biomTrack@filter <- list() } ## ----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)% kable_styling(full_width = FALSE) %>% #column_spec(1, bold = TRUE) %>% collapse_rows(columns = 1, valign = "top") } else if (out_type == "latex") { kable(dt, "latex", booktabs=TRUE, longtable=TRUE) #%>% kable_styling(full_width = FALSE, latex_options = "hold_position") %>% #column_spec(1, bold = TRUE) %>% collapse_rows(columns = 1, valign = "top") } ## ----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) #%>% kable_styling(full_width = FALSE) %>% #column_spec(1, bold = TRUE) %>% collapse_rows(columns = 1, valign = "top") } else if (out_type == "latex") { kable(dt, "latex", booktabs=TRUE, longtable=TRUE) #%>% kable_styling(full_width = FALSE, latex_options = "hold_position") %>% #column_spec(1, bold = TRUE) %>% collapse_rows(columns = 1, valign = "top") } ## ----session-info------------------------------------------------------------- sessionInfo()