Description Usage Arguments Details Value Note See Also Examples
Given a set of data elements, return a color for each one based on their chromosome
1 |
data |
Either a vector of characters or a GRanges object |
colors |
The name of a color set ("2grays", "blackgreen", "rainbow"...) or a vector of colors. If the vector is named, names are expected to be the chromosome names. (defaults to "2grays") |
all.chrs |
A vector with all possible chromosomes. If NULL, the list will be extracted from data (using seqlevels if available). (defaults to NULL) |
default.col |
The default color to return when something is unavailable |
Returns a color for each data element based on its chromosome. The returned colors might com from one of the predefined color sets or passed in as a parameter.
If colors
is the name of one of the available color sets, it the color set is used.
If it's a named character vector with the chromosome as names, they will be assigned by name
and any missing chromosome will be default.col
. If it's a non-named chraracter vector,
will be used in order and recycled if necessary.
Data might be either a GRanges object or a vector of chromosomes.
A vector of colors
Available color.sets: "2grays"=c("#888888", "#444444"), "2blues"=c("#6caeff", "#2b5d9b") "blackgreen"=c("black", "green"), "greengray"=c("#c6ffb7", "#888888"), "brewer.set1"=c("#E41A1C", "#377EB8", "#4DAF4A", "#984EA3", "#FF7F00", "#FFFF33", "#A65628", "#F781BF", "#999999") "brewer.set2"=c("#66C2A5", "#FC8D62", "#8DA0CB", "#E78AC3", "#A6D854", "#FFD92F", "#E5C494", "#B3B3B3") "brewer.set3"=c("#8DD3C7", "#FFFFB3", "#BEBADA", "#FB8072", "#80B1D3", "#FDB462", "#B3DE69", "#FCCDE5", "#D9D9D9", "#BC80BD", "#CCEBC5", "#FFED6F") "brewer.pastel1"=c("#FBB4AE", "#B3CDE3", "#CCEBC5", "#DECBE4", "#FED9A6", "#FFFFCC", "#E5D8BD", "#FDDAEC", "#F2F2F2"), "brewer.pastel2"=c("#B3E2CD", "#FDCDAC", "#CBD5E8", "#F4CAE4", "#E6F5C9", "#FFF2AE", "#F1E2CC", "#CCCCCC"), "rainbow"=rainbow(n=length(all.chrs))
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | chrs <- c("chr1", "chr2", "chr2", "chr1", "chr5")
points <- toGRanges(paste0("chr", c(1:22, "X", "Y")), rep(10e6, 24), rep(10e6, 24))
colByChr(chrs)
colByChr(points)
kp <- plotKaryotype(plot.type=4, labels.plotter=NULL, ideogram.plotter=NULL)
kpAddChromosomeNames(kp, srt=45)
kpAddChromosomeSeparators(kp)
total.tracks <- 6
kpPoints(kp, points, col=colByChr(points), y=0.5, cex=1, r0=autotrack(1,total.tracks)$r0, r1=autotrack(1,total.tracks)$r1)
colors <- NULL
kpPoints(kp, points, y=0.5, col=colByChr(points, colors=colors), cex=1, r0=autotrack(2,total.tracks)$r0, r1=autotrack(2,total.tracks)$r1)
colors <- c("red", "blue")
kpPoints(kp, points, y=0.5, col=colByChr(points, colors=colors), cex=1, r0=autotrack(3,total.tracks)$r0, r1=autotrack(3,total.tracks)$r1)
colors <- c(chr1="red", chr7="blue")
kpPoints(kp, points, y=0.5, col=colByChr(points, colors=colors), cex=1, r0=autotrack(4,total.tracks)$r0, r1=autotrack(4,total.tracks)$r1)
kpPoints(kp, points, y=0.5, col=colByChr(points, colors=colors, default.col="green"), cex=1, r0=autotrack(5,total.tracks)$r0, r1=autotrack(5,total.tracks)$r1)
colors <- c("red", "yellow", 3, "orchid", "blue")
kpPoints(kp, points, y=0.5, col=colByChr(points, colors=colors), cex=1, r0=autotrack(6,total.tracks)$r0, r1=autotrack(6,total.tracks)$r1)
#Color sets
pp <- getDefaultPlotParams(plot.type=4)
pp$leftmargin <- 0.2
kp <- plotKaryotype(plot.type=4, labels.plotter=NULL, ideogram.plotter=NULL, plot.params=pp)
kpAddChromosomeNames(kp, srt=45)
kpAddChromosomeSeparators(kp)
color.sets <- c( "2grays", "2blues", "blackgreen", "greengray", "brewer.set1",
"brewer.set2", "brewer.set3", "brewer.pastel1", "brewer.pastel2", "rainbow" )
total.tracks <- length(color.sets)
for(i in seq_len(length(color.sets))) {
kpPoints(kp, points, y=0.5, col=colByChr(points, colors=color.sets[i]), cex=1, r0=autotrack(i,total.tracks)$r0, r1=autotrack(i,total.tracks)$r1)
kpAddLabels(kp, labels=color.sets[i], cex=0.7, r0=autotrack(i,total.tracks)$r0, r1=autotrack(i,total.tracks)$r1)
}
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.