| geom_chevron {ggbio} | R Documentation | 
Break normal intervals stroed in GRanges object and show them
as chevron, useful for showing model or splice summary.
## S4 method for signature 'GRanges'
geom_chevron(data, ..., xlab, ylab, main,
             offset = 0.1,
             facets = NULL,
             stat = c("stepping", "identity"),
             chevron.height.rescale = c(0.1, 0.8),
             group.selfish = TRUE)
data | 
 A GRanges object.  | 
... | 
 Extra parameters passed to autoplot function.  | 
xlab | 
 Label for x  | 
ylab | 
 Label for y  | 
main | 
 Title for plot.  | 
offset | 
 A nunmeric value or characters. If it's numeric value, indicate how
much you want the chevron to wiggle, usually the rectangle for
drawing   | 
facets | 
 faceting formula to use.  | 
stat | 
 character vector specifying statistics to use. "stepping" with
randomly assigned stepping levels as y varialbe. "identity" allow
users to specify   | 
chevron.height.rescale | 
 A numeric vector of length 2. When the offset parameters is a character which is one of the data columns, this parameter rescale the offset.  | 
group.selfish | 
 Passed to   | 
To draw a normal GRanges as Chevron, we need to provide a special geom for
this purpose. Chevron is popular in gene viewer or genomoe browser,
when they try to show isoforms or gene model.geom_chevron,
just like any other geom_* function in ggplot2, you can pass
aes() to it to use height of chevron or width
of chevron to show statistics summary.
A 'Layer'.
Tengfei Yin
set.seed(1)
N <- 100
require(GenomicRanges)
## ======================================================================
##  simmulated GRanges
## ======================================================================
gr <- GRanges(seqnames = 
              sample(c("chr1", "chr2", "chr3"),
                     size = N, replace = TRUE),
              IRanges(
                      start = sample(1:300, size = N, replace = TRUE),
                      width = sample(70:75, size = N,replace = TRUE)),
              strand = sample(c("+", "-", "*"), size = N, 
                replace = TRUE),
              value = rnorm(N, 10, 3), score = rnorm(N, 100, 30),
              sample = sample(c("Normal", "Tumor"), 
                size = N, replace = TRUE),
              pair = sample(letters, size = N, 
                replace = TRUE))
## ======================================================================
##  default
##
##  ======================================================================
ggplot(gr) + geom_chevron()
 
## or
ggplot() + geom_chevron(gr)
 
## ======================================================================
##  facetting and aesthetics
## ======================================================================
ggplot(gr) + geom_chevron(facets = sample ~ seqnames, aes(color = strand))
 
## ======================================================================
##  stat:identity
## ======================================================================
ggplot(gr) + geom_chevron(stat = "identity", aes(y = value))
 
## ======================================================================
##  stat:stepping
## ======================================================================
ggplot(gr) + geom_chevron(stat = "stepping", aes(group = pair))
 
## ======================================================================
##  group.selfish controls when 
## ======================================================================
ggplot(gr) + geom_chevron(stat = "stepping", aes(group = pair), group.selfish = FALSE,
                        xlab = "xlab", ylab = "ylab", main = "main")
 
p <- qplot(x = mpg, y = cyl, data = mtcars)
## ======================================================================
##  offset
## ======================================================================
gr2 <- GRanges("chr1", IRanges(c(1, 10, 20), width = 5))
gr2.p <- gaps(gr2)
## resize to connect them
gr2.p <- resize(gr2.p, fix = "center", width = width(gr2.p)+2)
ggplot(gr2) + geom_rect() + geom_chevron(gr2.p)
## Scale for 'y' is already present. Adding another scale for 'y', which will
## replace the existing scale.
 
## notice the rectangle height is 0.8
## offset = 0 just like a line
ggplot(gr2) + geom_rect() + geom_chevron(gr2.p, offset = 0)
## Scale for 'y' is already present. Adding another scale for 'y', which will
## replace the existing scale.
 
## equal height
ggplot(gr2) + geom_rect() + geom_chevron(gr2.p, offset = 0.4)
## Scale for 'y' is already present. Adding another scale for 'y', which will
## replace the existing scale.
 
## ======================================================================
##  chevron.height
## ======================================================================
values(gr2.p)$score <- c(100, 200)
ggplot(gr2) + geom_rect() + geom_chevron(gr2.p, offset = "score")
## Scale for 'y' is already present. Adding another scale for 'y', which will
## replace the existing scale.
 
## chevron.height
ggplot(gr2) + geom_rect() + geom_chevron(gr2.p, offset = "score",
                                         chevron.height.rescale = c(0.4, 10))
## Scale for 'y' is already present. Adding another scale for 'y', which will
## replace the existing scale.