view_motifs {universalmotif} | R Documentation |
Plot motif logos.
Description
Show sequence logo. If given a list of more than one motif, then the motifs
are aligned with the first in the list.
Usage
view_motifs(motifs, use.type = "ICM", method = "ALLR", tryRC = TRUE,
min.overlap = 6, min.mean.ic = 0.25, relative_entropy = FALSE,
normalise.scores = FALSE, min.position.ic = 0, score.strat = "sum",
return.raw = FALSE, dedup.names = TRUE, show.positions = TRUE,
show.positions.once = TRUE, show.names = TRUE, names.pos = c("top",
"right"), use.freq = 1, colour.scheme = NULL, fontDF = NULL,
min.height = 0.01, x.spacer = if (use.freq == 1) 0.04 else 0.1,
y.spacer = 0.01, sort.positions = !use.type %in% c("PCM", "PPM"),
sort.positions.decreasing = TRUE, text.size = 16, fit.to.height = if
(use.type == "PPM") 1 else NULL, RC.text = " [RC]", ...)
Arguments
motifs |
See convert_motifs() for acceptable motif formats.
|
use.type |
character(1) One of c('PCM', 'PPM', 'PWM', 'ICM') .
|
method |
character(1) One of PCC, EUCL, SW, KL, ALLR, BHAT, HELL,
SEUCL, MAN, ALLR_LL, WEUCL, WPCC. See details.
|
tryRC |
logical(1) Try the reverse complement of the motifs as well,
report the best score.
|
min.overlap |
numeric(1) Minimum overlap required when aligning the
motifs. Setting this to a number higher then the width of the motifs
will not allow any overhangs. Can also be a number between 0 and 1,
representing the minimum fraction that the motifs must overlap.
|
min.mean.ic |
numeric(1) Minimum mean information content between the
two motifs for an alignment to be scored. This helps prevent scoring
alignments between low information content regions of two motifs. Note that
this can result in some comparisons failing if no alignment passes the
mean IC threshold. Use average_ic() to filter out low IC motifs to get around
this if you want to avoid getting NA s in your output.
|
relative_entropy |
logical(1) Change the ICM calculation affecting
min.position.ic and min.mean.ic . See convert_type() .
|
normalise.scores |
logical(1) Favour alignments which leave fewer
unaligned positions, as well as alignments between motifs of similar length.
Similarity scores are multiplied by the ratio of
aligned positions to the total number of positions in the larger motif,
and the inverse for distance scores.
|
min.position.ic |
numeric(1) Minimum information content required between
individual alignment positions for it to be counted in the final alignment
score. It is recommended to use this together with normalise.scores = TRUE ,
as this will help punish scores resulting from only a fraction of an
alignment.
|
score.strat |
character(1) How to handle column scores calculated from
motif alignments. "sum": add up all scores. "a.mean": take the arithmetic
mean. "g.mean": take the geometric mean. "median": take the median.
"wa.mean", "wg.mean": weighted arithmetic/geometric mean. "fzt": Fisher
Z-transform. Weights are the
total information content shared between aligned columns.
|
return.raw |
logical(1) Instead of returning a plot, return the
aligned named matrices used to generate the plot. This can be useful
if you wish to use view_motifs() alignment capabilities for custom
plotting uses. Alignment is performed by adding empty columns to the
left or right of motifs to generate matrices of equal length.
|
dedup.names |
logical(1) Plotting motifs with duplicated names is
not allowed. Setting this to TRUE allows the names to be modified
for plotting.
|
show.positions |
logical(1) Show x-axis position tick labels.
|
show.positions.once |
logical(1) When plotting multiple motifs,
show x-axis position tick labels only once. If FALSE , then
x-axis tick labels are specific to each motif.
|
show.names |
logical(1) Add motif names when plotting multiple
motifs.
|
names.pos |
character(1) Motif name locations. Either above (top )
or to the right (right ) of the logos.
|
use.freq |
numeric(1) Plot higher order motifs from the multifreq
slot.
|
colour.scheme |
character A named character vector of colour names.
Default colours are provided for DNA, RNA, and AA motifs if left NULL .
|
fontDF |
data.frame or DataFrame Polygon data for letters used
for plotting, as generated by the createPolygons() function from the
gglogo package. See the fontDFroboto data object (which is used
by default when fontDF = NULL ). See Examples for how to generate
your own font set. Expected columns: x , y , order , group ;
additional columns will be ignored.
|
min.height |
numeric(1) Minimum height for a letter to be plotted.
The number is taken as the fraction of the total height of the plot.
The default value is to not show letters which take up 1% or less of the
vertical space. For smaller figures it is recommended to increase this
value, and vice versa for larger figures.
|
x.spacer |
numeric(1) Add horizontal spacing between letters. The
number is taken as the fraction of the width of an individual position.
Increasing this value is recommended for plotting multifreq motifs.
|
y.spacer |
numeric(1) Add vertical spacing between letters. The
number is taken as the fraction nof the total height of the plot.
|
sort.positions |
logical(1) Sort letters vertically per position
by height.
|
sort.positions.decreasing |
logical(1) Sort in decreasing or
increasing order based on letter height.
|
text.size |
numeric(1) Text size for labels.
|
fit.to.height |
numeric(1) Normalize the per position height to
this value. If NULL , no normalization is applied. Note that this
parameter is ignore if use.type %in% c("PWM", "ICM") .
|
RC.text |
character(1) The text to display alongside the name
of motifs shown as their reverse complement.
|
... |
Currently unused.
|
Details
See compare_motifs()
for more info on comparison parameters.
See view_logo()
to plot from a numeric matrix with arbitrary values instead
of a motif object.
Note: score.strat = "a.mean"
is NOT recommended, as view_motifs()
will
not discriminate between two alignments with equal mean scores, even if one
alignment is longer than the other.
Note: if you want to plot the motifs yourself, you can set
return.raw=TRUE
to get the numeric motif matrices and calculate
the polygon paths on your own or access the polygon path data directly from
the final ggplot
object using $data
.
Value
A ggplot
object. If return.raw = TRUE
, a list of matrices.
Author(s)
Benjamin Jean-Marie Tremblay, benjamin.tremblay@uwaterloo.ca
See Also
compare_motifs()
, add_multifreq()
, view_logo()
Examples
## Plotting multifreq motifs:
data(examplemotif2)
view_motifs(examplemotif2, use.freq = 2)
## Generate your own letter set:
## Not run:
library(gglogo) # install from CRAN first if needed
fontDFtimes <- createPolygons(LETTERS, "Times", 800, scale = TRUE)
view_motifs(examplemotif2, fontDF = fontDFtimes)
## Note: setting `scale = TRUE` is necessary to properly align letters
## vertically, but this has the effect of horizontally stretching out
## letters which shouldn't be stretched (such as "I"). If you need to plot
## letters which have been badly horizontally scaled, you can fix them
## manually as demonstrated here:
# Retrieve the x-coordinates for the desired letter:
tofix <- fontDFtimes$x[fontDFtimes$group == "I"]
# Scale the letter x-coordinates:
tofix <- tofix * 0.35
# Remember to center the letter around 0.5 again:
tofix <- tofix + (1 - max(tofix)) / 2
# Apply the fix:
fontDFtimes$x[fontDFtimes$group == "I"] <- tofix
view_motifs(create_motif("AIG", alphabet = "AA"), fontDF = fontDFtimes)
## End(Not run)
[Package
universalmotif version 1.10.2
Index]