Plotting the per base coverage of genomic features
The kpPlotCoverage function is similar to
kpPlotDensity
but instead of plotting the number of features overalpping a certain genomic window,
it plots the actual number of features overlapping every single base of the genome.
Conceptually, it is equivalent to kpPlotDensity with window.size set to 1 but
much faster, since internally it uses the coverage method from
GenomicRanges.
As an example, we’ll create ten thousand random regions of one megabase of mean
length using createRandomRegions from package
regioneR. We set
non.overlapping to FALSE to allow for overlapping between random regions.
library(karyoploteR)
regions <- createRandomRegions(nregions=10000, length.mean = 1e6, mask=NA, non.overlapping=FALSE)
kp <- plotKaryotype()
kpPlotCoverage(kp, data=regions)

The actual representation of the data is also different than that of
kpPlotDensity: kpPlotCoverage uses kpBars to create the plot, giving
it a histogram-like appearance.
We can plot the actual regions in data panel 2 to see how they relate
kp <- plotKaryotype(plot.type=2, chromosomes = "chr21")
kpPlotCoverage(kp, data=regions)
kpPlotRegions(kp, data=regions, data.panel=2)

It is possible to customize the appearance of the coverage plot using the same parameters used for kpRect.
more.regions <- createRandomRegions(nregions=40000, length.mean = 1e6, mask=NA, non.overlapping = FALSE)
kp <- plotKaryotype(plot.type=1, chromosomes = "chr21")
kpPlotCoverage(kp, data=more.regions, r0=0.7, r1=1, col="#0e87eb")
kpPlotCoverage(kp, data=more.regions, r0=0.7, r1=0.85, col="#ffdb50")
kpPlotRegions(kp, data=more.regions, r0=0.65, r1=0)

