Learn R Programming

motifStack (version 1.16.2)

motifCircos: plot sequence logo stacks with a radial phylogenic tree and multiple color rings

Description

plot sequence logo stacks with a radial phylogenic tree and multiple color rings. The difference from plotMotifStackWithRadialPhylog is that it has more color setting and one more group of pfms.

Usage

motifCircos(phylog, pfms=NULL, pfms2=NULL, R=2.5,
            r.tree=1, col.tree.bg=NULL, col.tree.bg.alpha=1,
            cnodes=0, labels.nodes=names(phylog$nodes), clabel.nodes=0,
            r.leaves=NA,
            cleaves=1, labels.leaves=names(phylog$leaves), clabel.leaves=1,
            col.leaves=rep("black", length(labels.leaves)),
            col.leaves.bg=NULL, col.leaves.bg.alpha=1,
            r.pfms=NA, r.pfms2=NA,
            r.rings=0, col.rings=list(),
            col.inner.label.circle=NULL, inner.label.circle.width=0.02,
            col.outer.label.circle=NULL, outer.label.circle.width=0.02,
            draw.box=FALSE,
            clockwise =FALSE, init.angle=if(clockwise) 90 else 0,
            angle=360, pfmNameSpliter=";", rcpostfix="(RC)", 
            motifScale=c("linear","logarithmic"), ic.scale=TRUE,
            plotIndex=FALSE, IndexCol="black", IndexCex=.8,
            groupDistance=NA, groupDistanceLineCol="red", 
            plotAxis=FALSE)

Arguments

phylog
an object of class phylog
pfms
a list of objects of class pfm
pfms2
a list of objects of class pfm
R
radius of canvas
r.tree
half width of the tree
col.tree.bg
a vector of colors for tree background
col.tree.bg.alpha
a alpha value [0, 1] of colors for tree background
cnodes
a character size for plotting the points that represent the nodes, used with par("cex")*cnodes. If zero, no points are drawn
labels.nodes
a vector of strings of characters for the nodes labels
clabel.nodes
a character size for the nodes labels, used with par("cex")*clabel.nodes. If zero, no nodes labels are drawn
r.leaves
width of the leaves
cleaves
a character size for plotting the points that represent the leaves, used with par("cex")*cleaves. If zero, no points are drawn
labels.leaves
a vector of strings of characters for the leaves labels
clabel.leaves
a character size for the leaves labels, used with
col.leaves
a vector of colors for leaves labels
col.leaves.bg
a vector of colors for background of leaves labels
col.leaves.bg.alpha
alpha value [0, 1] for the colors of backgroud of leaves labels
r.pfms
width of the pfms
r.pfms2
width of the pfms2
r.rings
a vector of width of color rings
col.rings
a list of color rings
col.inner.label.circle
a vector of colors for inner cirlce of pfms
inner.label.circle.width
width for inner circle of pfms
col.outer.label.circle
a vector of colors for outer circle of pfms
outer.label.circle.width
width for outer circle of pfms
draw.box
if TRUE draws a box around the current plot with the function box()
clockwise
a logical value indicating if slices are drawn clockwise or counter clockwise
init.angle
number specifying the starting angle (in degrees) for the slices. Defaults to 0 (i.e., `3 o'clock`) unless clockwise is true where init.angle defaults to 90 (degrees), (i.e., `12 o'clock`)
angle
number specifying the angle (in degrees) for phylogenic tree. Defaults 360
pfmNameSpliter
spliter when name of pfms/pfms2 contain multiple node of labels.leaves
rcpostfix
the postfix for reverse complements
motifScale
the scale of logo size
ic.scale
logical. If TRUE, the height of each column is proportional to its information content. Otherwise, all columns have the same height.
plotIndex
logical. If TRUE, will plot index number in the motifLogo which can help user to describe the motifLogo
IndexCol
The color of the index number when plotIndex is TRUE.
IndexCex
The cex of the index number when plotIndex is TRUE.
groupDistance
show groupDistance on the draw
groupDistanceLineCol
groupDistance line color, default: red
plotAxis
logical. If TRUE, will plot distance axis.

Value

  • none

See Also

plotMotifStackWithRadialPhylog

Examples

Run this code
if(interactive()){
    library("MotifDb")
    matrix.fly <- query(MotifDb, "Dmelanogaster")
    motifs <- as.list(matrix.fly)
    motifs <- motifs[grepl("Dmelanogaster-FlyFactorSurvey-", names(motifs), fixed=TRUE)]
    names(motifs) <- gsub("Dmelanogaster_FlyFactorSurvey_", "", 
                gsub("_FBgn[0-9]+$", "", 
                  gsub("[^a-zA-Z0-9]","_", 
                     gsub("(_[0-9]+)+$", "", names(motifs)))))
    motifs <- motifs[unique(names(motifs))]
    pfms <- sample(motifs, 50)
    jaspar.scores <- MotIV::readDBScores(file.path(find.package("MotIV"), 
                                   "extdata", "jaspar2010_PCC_SWU.scores"))
    d <- MotIV::motifDistances(lapply(pfms, pfm2pwm))
    hc <- MotIV::motifHclust(d, method="average")
    phylog <- hclust2phylog(hc)
    leaves <- names(phylog$leaves)
    pfms <- pfms[leaves]
    pfms <- lapply(names(pfms), function(.ele, pfms){new("pfm",mat=pfms[[.ele]], 
                                                     name=.ele)},pfms)
    pfms <- DNAmotifAlignment(pfms, minimalConsensus=3)
    library(RColorBrewer)
    color <- brewer.pal(12, "Set3")
    motifCircos(phylog, pfms, cleaves = 0.5, clabel.leaves = 0.7, 
                     col.tree.bg=rep(color, each=5), col.leaves=rep(color, each=5),
                      r.rings=c(0.02, 0.03, 0.04), 
                      col.rings=list(sample(colors(), 50), 
                                     sample(colors(), 50), 
                                     sample(colors(), 50)))
  }

Run the code above in your browser using DataLab