Learn R Programming

ggbio (version 1.20.1)

geom_alignment: Alignment geoms for GRanges object

Description

Show interval data as alignment.

Usage

## S3 method for class 'GRanges':
geom_alignment(data, ..., xlab, ylab, main, facets = NULL, stat =
                 c("stepping", "identity"), range.geom = c("rect",
                 "arrowrect"), gap.geom = c("chevron", "arrow",
                 "segment"), rect.height = NULL, group.selfish = TRUE,
                  label = TRUE)

## S3 method for class 'TxDbOREnsDb': geom_alignment(data, ..., which, columns = c("tx_id", "tx_name", "gene_id"), names.expr = "tx_name", facets = NULL, truncate.gaps = FALSE, truncate.fun = NULL, ratio = 0.0025)

## S3 method for class 'GRangesList': geom_alignment(data, ..., which = NULL, cds.rect.h = 0.25, exon.rect.h = cds.rect.h, utr.rect.h = cds.rect.h/2, xlab, ylab, main, facets = NULL, geom = "alignment", stat = c("identity", "reduce"), range.geom = "rect", gap.geom = "arrow", utr.geom = "rect", names.expr = NULL, label = TRUE, label.color = "gray40", arrow.rate = 0.015, length = unit(0.1, "cm"))

## S3 method for class 'OrganismDb': geom_alignment(data, ..., which, columns = c("TXNAME", "SYMBOL", "TXID", "GENEID"), names.expr = "SYMBOL", facets = NULL, truncate.gaps = FALSE, truncate.fun = NULL, ratio = 0.0025 )

Arguments

data
A GRanges, data.frame, TxDb or EnsDb object.
...
Extra parameters such as aes() passed.
which
GRanges object to subset the TxDb or EnsDb object. For EnsDb: can also be a single, or a list of, filter object(s) extending BasicFilter-class.
cds.rect.h
cds heights.
exon.rect.h
exon heights.
utr.rect.h
utr heights.
label.color
label color.
arrow.rate
arrow rate.
length
arrow length.
columns
columns to get from object.
xlab
Label for x
ylab
Label for y
main
Title for plot.
facets
Faceting formula to use.
stat
For GRanges: Character vector specifying statistics to use. "stepping" with randomly assigned stepping levels as y varialbe. "identity" allow users to specify y value in aes.

For TxDb: defualt "identity" give full gene model and "reduce" for reduced model.

gap.geom
Geom for 'gap' computed from the data you passed based on the group information.
rect.height
Half height of the arrow body.
group.selfish
Passed to addStepping, control whether to show each group as unique level or not. If set to FALSE, if two groups are not overlapped with each other, they will probably be layout in the same level to save space.
truncate.gaps
logical value indicate to truncate gaps or not.
truncate.fun
shrinkage function. Please see shrinkagefun in package biovizBase.
ratio
used in maxGap.
geom
geometric object. only support "gene" now.
range.geom
geom for main intevals or exons.
utr.geom
geom for utr region.
names.expr
expression for showing y label.
label
logical value. Whether to label the intervals with names specified by argument names.expr.

Value

  • A 'Layer'.

Examples

Run this code
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_alignment()
## or
ggplot() + geom_alignment(gr)

## ======================================================================
##  facetting and aesthetics
## ======================================================================
ggplot(gr) + geom_alignment(facets = sample ~ seqnames, aes(color = strand, fill = strand))

## ======================================================================
##  stat:stepping
## ======================================================================
ggplot(gr) + geom_alignment(stat = "stepping", aes(group = pair))

## ======================================================================
##  group.selfish controls when
## ======================================================================
ggplot(gr) + geom_alignment(stat = "stepping", aes(group = pair), group.selfish = FALSE)

## =======================================
##  main/gap geom
## =======================================
ggplot(gr) + geom_alignment(range.geom = "arrowrect", gap.geom = "chevron")

## =======================================
##  For TxDb
## =======================================
library(TxDb.Hsapiens.UCSC.hg19.knownGene)
data(genesymbol, package = "biovizBase")
txdb <- TxDb.Hsapiens.UCSC.hg19.knownGene
## made a track comparing full/reduce stat.
ggbio() + geom_alignment(data = txdb, which = genesymbol["RBM17"])
p1 <- ggplot(txdb) + geom_alignment(which = genesymbol["RBM17"])
p1
p2 <- ggplot(txdb) + geom_alignment(which = genesymbol["RBM17"], stat = "reduce")
tracks(full = p1, reduce = p2, heights = c(3, 1))
tracks(full = p1, reduce = p2, heights = c(3, 1)) + theme_tracks_sunset()
tracks(full = p1, reduce = p2, heights = c(3, 1)) +
     theme_tracks_sunset(axis.line.color = NA)
## change y labels
ggplot(txdb) + geom_alignment(which = genesymbol["RBM17"], names.expr = "tx_id:::gene_id")

Run the code above in your browser using DataLab