I plot my NGS data using the Gviz
library. When I use a .bedGraph
file to construct a DataTrack
the data points appear between genomic coordinates (bases). The same is true for a corresponding .bw
file (not shown in code below). When I first read the .bedGraph
file and then construct a DataTrack
"manually" the data points appear centered on the genomic coordinates but shifted by -1
. I can correct this by adding +1
to start
and end
when constructing the DataTrack
.
library(Gviz)
bedGraph.data.track <- DataTrack("counts.bedGraph", genome = "sacCer3", chromosome = "chrII", name = "bedGraph")
tmp <- read.table(file = "counts.bedGraph", col.names = c("chr", "start", "end", "score"))
df.data.track <- DataTrack(start = tmp$start, end = tmp$end, data = tmp$score, genome = "sacCer3", chromosome = "chrII", name = "df")
shifted.df.data.track <- DataTrack(start = tmp$start + 1, end = tmp$end + 1, data = tmp$score, genome = "sacCer3", chromosome = "chrII", name = "shift.df")
axis.track <- GenomeAxisTrack()
library(BSgenome.Scerevisiae.UCSC.sacCer3)
sequence.track <- SequenceTrack(sequence = BSgenome.Scerevisiae.UCSC.sacCer3, chromosome = "chrII", genome = "sacCer3")
plotTracks(list(axis.track, sequence.track, bedGraph.data.track, df.data.track, shifted.df.data.track), chromosome = "chrII", from = 0, to = 5)
Is there an easy way to shift the coordinates by +0.5
for .bedGraph
(and .bw
)-based DataTrack
s, such that data points appear centered on the coordinates (bases)?
Thanks for bringing that up. There was a bug in the
Gviz
and I pushed fix into both branches (release 1.28.1 and devel 1.29.1). Now the data points, ticks and tick-marks should be aligned. Let me know if that works for you.BTW. When reading the
bedGraph
manually, keep in mind that start is "0-based" and end is "1-based" in the file itself. However in R/Bioc the both coordinates are "1-based". In this case, you should only add +1 to start positions. The built-in functions for import and export of UCSC file formats are doing that automatically. They are provided inrtracklayer
package andGviz
simply uses them to read those files.