## ----plotComp,echo=TRUE,fig.keep='none'---------------------------------- suppressPackageStartupMessages(library(Gviz)) library(rtracklayer) library(trackViewer) extdata <- system.file("extdata", package="trackViewer", mustWork=TRUE) gr <- GRanges("chr11", IRanges(122929275, 122930122), strand="-") fox2 <- importScore(file.path(extdata, "fox2.bed"), format="BED", ranges=gr) fox2$dat <- coverageGR(fox2$dat) viewTracks(trackList(fox2), gr=gr, autoOptimizeStyle=TRUE, newpage=FALSE) dt <- DataTrack(range=fox2$dat[strand(fox2$dat)=="-"] , genome="hg19", type="hist", name="fox2", window=-1, chromosome="chr11", fill.histogram="black", col.histogram="NA", background.title="white", col.frame="white", col.axis="black", col="black", col.title="black") plotTracks(dt, from=122929275, to=122930122, strand="-") ## ----Gviz,echo=FALSE,fig.cap='Plot data with **Gviz** and **trackViewer**. Note that **trackViewer** can generate similar figure as **Gviz** with several lines of simple codes.',fig.width=6,fig.height=1.5---- viewerStyle <- trackViewerStyle() setTrackViewerStyleParam(viewerStyle, "margin", c(.01, .13, .02, .02)) empty <- DataTrack(showAxis=FALSE, showTitle=FALSE, background.title="white") plotTracks(list(empty, dt), from=122929275, to=122930122, strand="-") pushViewport(viewport(0, .5, 1, .5, just=c(0, 0))) viewTracks(trackList(fox2), viewerStyle=viewerStyle, gr=gr, autoOptimizeStyle=TRUE, newpage=FALSE) popViewport() grid.text(label="Gviz track", x=.3, y=.4) grid.text(label="trackViewer track", x=.3, y=.9) ## ----lostcode,echo=TRUE,fig.keep='none'---------------------------------- gr <- GRanges("chr1", IRanges(c(1, 6, 10), c(3, 6, 12)), score=c(3, 4, 1)) dt <- DataTrack(range=gr, data="score", type="hist") plotTracks(dt, from=2, to=11) tr <- new("track", dat=gr, type="data", format="BED") viewTracks(trackList(tr), chromosome="chr1", start=2, end=11) ## ----GvizLost,echo=FALSE,fig.cap='Plot data with **Gviz** and **trackViewer**. Note that **trackViewer** is not only including more details but also showing all the data involved in the given range.',fig.width=6,fig.height=1.5---- plotTracks(list(empty, dt), from=2, to=11) pushViewport(viewport(0, .5, 1, .5, just=c(0, 0))) viewTracks(trackList(tr), viewerStyle=viewerStyle, chromosome="chr1", start=2, end=11, autoOptimizeStyle=TRUE, newpage=FALSE) popViewport() grid.text(label="Gviz track", x=.3, y=.4) grid.text(label="trackViewer track", x=.3, y=.9) ## ----importData---------------------------------------------------------- library(trackViewer) extdata <- system.file("extdata", package="trackViewer", mustWork=TRUE) repA <- importScore(file.path(extdata, "cpsf160.repA_-.wig"), file.path(extdata, "cpsf160.repA_+.wig"), format="WIG") ## because the wig file does not contain strand info, ## we need to set it manually strand(repA$dat) <- "-" strand(repA$dat2) <- "+" ## ----coverage------------------------------------------------------------ fox2 <- importScore(file.path(extdata, "fox2.bed"), format="BED", ranges=GRanges("chr11", IRanges(122929000, 122931000))) dat <- coverageGR(fox2$dat) ## we can split the data by strand into two different track channels ## here we set the dat2 slot to save the negative strand info, ## reverse order as previous. fox2$dat <- dat[strand(dat)=="+"] fox2$dat2 <- dat[strand(dat)=="-"] ## ----geneModel----------------------------------------------------------- library(TxDb.Hsapiens.UCSC.hg19.knownGene) trs <- geneModelFromTxdb(TxDb.Hsapiens.UCSC.hg19.knownGene, "chr11", 122929275, 122930122, "-") ## ----viewTracks,fig.cap='plot data and annotation information along genomic coordinates',fig.width=6,fig.height=1.5---- gr <- GRanges("chr11", IRanges(122929275, 122930122), strand="-") viewerStyle <- trackViewerStyle() setTrackViewerStyleParam(viewerStyle, "margin", c(.1, .05, .02, .02)) vp <- viewTracks(trackList(repA, fox2, trs), gr=gr, viewerStyle=viewerStyle, autoOptimizeStyle=TRUE) addGuideLine(c(122929767, 122929969), vp=vp) addArrowMark(list(x=122929650, y=unit(.39, "npc")), label="label", col="blue", vp=vp) ## ----optSty-------------------------------------------------------------- optSty <- optimizeStyle(trackList(repA, fox2, trs)) trackList <- optSty$tracks viewerStyle <- optSty$style ## ----viewTracksXaxis,fig.cap='plot data with x-scale',fig.width=6,fig.height=1.5---- setTrackViewerStyleParam(viewerStyle, "xaxis", FALSE) setTrackViewerStyleParam(viewerStyle, "margin", c(.01, .05, .01, .01)) setTrackXscaleParam(trackList[[1]], "draw", TRUE) setTrackXscaleParam(trackList[[1]], "gp", list(cex=.5)) viewTracks(trackList, gr=gr, viewerStyle=viewerStyle) ## ----viewTracksYaxis,fig.cap='plot data with y-axis in right side',fig.width=6,fig.height=1.5---- setTrackViewerStyleParam(viewerStyle, "margin", c(.01, .05, .01, .05)) setTrackYaxisParam(trackList[[1]], "main", FALSE) setTrackYaxisParam(trackList[[2]], "main", FALSE) viewTracks(trackList, gr=gr, viewerStyle=viewerStyle) ## ----viewTracksYlab,fig.cap='plot data with adjusted color and size of y label',fig.width=6,fig.height=1.5---- setTrackStyleParam(trackList[[1]], "ylabgp", list(cex=.8, col="green")) ## set cex to avoid automatic adjust setTrackStyleParam(trackList[[2]], "ylabgp", list(cex=.8, col="blue")) setTrackStyleParam(trackList[[2]], "marginBottom", .2) viewTracks(trackList, gr=gr, viewerStyle=viewerStyle) ## ----viewTracksYlabTopBottom,fig.cap='plot data with adjusted y label position',fig.width=6,fig.height=1.5---- setTrackStyleParam(trackList[[1]], "ylabpos", "bottomleft") setTrackStyleParam(trackList[[2]], "ylabpos", "topright") setTrackStyleParam(trackList[[2]], "marginTop", .2) viewTracks(trackList, gr=gr, viewerStyle=viewerStyle) ## ----viewTracksYlabUpsDown,fig.cap='plot data with adjusted transcripts name position',fig.width=6,fig.height=1.5---- trackListN <- trackList setTrackStyleParam(trackListN[[3]], "ylabpos", "upstream") setTrackStyleParam(trackListN[[4]], "ylabpos", "downstream") ## set cex to avoid automatic adjust setTrackStyleParam(trackListN[[3]], "ylabgp", list(cex=.6)) setTrackStyleParam(trackListN[[4]], "ylabgp", list(cex=.6)) gr1 <- range(unlist(GRangesList(sapply(trs, function(.ele) .ele$dat)))) start(gr1) <- start(gr1) - 2000 end(gr1) <- end(gr1) + 2000 viewTracks(trackListN, gr=gr1, viewerStyle=viewerStyle) ## ----viewTracksCol,fig.cap='plot data with adjusted track color',fig.width=6,fig.height=1.5---- setTrackStyleParam(trackList[[1]], "color", c("green", "black")) setTrackStyleParam(trackList[[2]], "color", c("black", "blue")) for(i in 3:length(trackList)) setTrackStyleParam(trackList[[i]], "color", "black") viewTracks(trackList, gr=gr, viewerStyle=viewerStyle) ## ----viewTracksHeight,fig.cap='plot data with adjusted track height',fig.width=6,fig.height=1.5---- trackListH <- trackList setTrackStyleParam(trackListH[[1]], "height", .1) setTrackStyleParam(trackListH[[2]], "height", .44) for(i in 3:length(trackListH)){ setTrackStyleParam(trackListH[[i]], "height", (1-(0.1+0.44))/(length(trackListH)-2)) } viewTracks(trackListH, gr=gr, viewerStyle=viewerStyle) ## ----viewTracksNames,fig.cap='change the track names',fig.width=6,fig.height=1.5---- names(trackList) <- c("cpsf160", "fox2", rep("HSPA8", 5)) viewTracks(trackList, gr=gr, viewerStyle=viewerStyle) ## ----viewTracksPaired,fig.cap='show two data in the same track',fig.width=6,fig.height=1.2---- cpsf160 <- importScore(file.path(extdata, "cpsf160.repA_-.wig"), file.path(extdata, "cpsf160.repB_-.wig"), format="WIG") strand(cpsf160$dat) <- strand(cpsf160$dat2) <- "-" setTrackStyleParam(cpsf160, "color", c("black", "red")) viewTracks(trackList(trs, cpsf160), gr=gr, viewerStyle=viewerStyle) ## ----viewTracksFlipped,fig.cap='show data in the flipped track',fig.width=6,fig.height=2---- viewerStyleF <- viewerStyle setTrackViewerStyleParam(viewerStyleF, "flip", TRUE) setTrackViewerStyleParam(viewerStyleF, "xaxis", TRUE) setTrackViewerStyleParam(viewerStyleF, "margin", c(.1, .05, .01, .01)) vp <- viewTracks(trackList, gr=gr, viewerStyle=viewerStyleF) addGuideLine(c(122929767, 122929969), vp=vp) addArrowMark(list(x=122929650, y=unit(.39, "npc")), label="label", col="blue", vp=vp) ## ----theme_bw,fig.cap='theme_bw',fig.width=6,fig.height=2---------------- optSty <- optimizeStyle(trackList(repA, fox2, trs), theme="bw") trackList <- optSty$tracks viewerStyle <- optSty$style vp <- viewTracks(trackList, gr=gr, viewerStyle=viewerStyle) ## ----theme_col,fig.cap='theme_col',fig.width=6,fig.height=2-------------- optSty <- optimizeStyle(trackList(repA, fox2, trs), theme="col") trackList <- optSty$tracks viewerStyle <- optSty$style vp <- viewTracks(trackList, gr=gr, viewerStyle=viewerStyle) ## ----viewTracksOperator1,fig.cap='show data with operator "+"',fig.width=6,fig.height=2---- newtrack <- repA ## must keep same format for dat and dat2 newtrack <- parseWIG(newtrack, "chr11", 122929275, 122930122) newtrack$dat2 <- newtrack$dat newtrack$dat <- fox2$dat2 setTrackStyleParam(newtrack, "color", c("blue", "red")) viewTracks(trackList(newtrack, trs), gr=gr, viewerStyle=viewerStyle, operator="+") ## ----viewTracksOperator2,fig.cap='show data with operator "-"',fig.width=6,fig.height=2---- viewTracks(trackList(newtrack, trs), gr=gr, viewerStyle=viewerStyle, operator="-") ## ----viewTracksOperator3,fig.cap='show data with operator "-"',fig.width=6,fig.height=2---- newtrack$dat <- GRoperator(newtrack$dat, newtrack$dat2, col="score", operator="-") newtrack$dat2 <- GRanges() viewTracks(trackList(newtrack, trs), gr=gr, viewerStyle=viewerStyle) ## ----sessionInfo, results='asis'----------------------------------------- sessionInfo()