Title: | Class Unions, Matrix Operations, and Color Schemes for OOMPA |
---|---|
Description: | Provides the class unions that must be preloaded in order for the basic tools in the OOMPA (Object-Oriented Microarray and Proteomics Analysis) project to be defined and loaded. It also includes vectorized operations for row-by-row means, variances, and t-tests. Finally, it provides new color schemes. Details on the packages in the OOMPA project can be found at <http://oompa.r-forge.r-project.org/>. |
Authors: | Kevin R. Coombes |
Maintainer: | Kevin R. Coombes <[email protected]> |
License: | Apache License (== 2.0) |
Version: | 3.2.9 |
Built: | 2024-10-11 02:42:33 UTC |
Source: | https://github.com/r-forge/oompa |
This class represents a vector of (x,y) pairs, each of which should be plotted in a specific color with a specific symbol.
ColorCodedPair(x, y, ccl) ## S4 method for signature 'ColorCodedPair,missing' plot(x, y, ...)
ColorCodedPair(x, y, ccl) ## S4 method for signature 'ColorCodedPair,missing' plot(x, y, ...)
x |
numeric vector (for |
y |
numeric vector |
ccl |
list of |
... |
additional arguments are as in the underlying generic methods. |
It is often necessary with microarray data to produce multiple plots,
where each point on the plot corresponds to a gene or a spot on the
microarray. Across multiple plots, we often want to use symbols or colors
to mark subsets of he genes with certain properties. The
ColorCodedPair
class works in tandem with the
ColorCoding
class to make it easier to maintain consistent
plotting conventions across multiple graphs.
The constructor returns a valid ColorCodedPair
object.
The plot
method invisibly returns the object being plotted.
x
numeric vector
y
numeric vector
colorCodingList
list of ColorCoding
objects
Plot the ColorCodedPair
object, with
appropriate colors and symbols (of course).
Kevin R. Coombes [email protected], P. Roebuck [email protected]
showClass("ColorCodedPair") theta <- (0:360)*pi/180 x <- cos(theta) y <- sin(theta) xp <- x > 0 yp <- y > 0 colors <- list(ColorCoding(xp&yp, oompaColor$EXPECTED), ColorCoding(xp&!yp, oompaColor$OBSERVED), ColorCoding(!xp&yp, oompaColor$PERMTEST), ColorCoding(!xp&!yp, oompaColor$FITTED)) plot(ColorCodedPair(x, y, colors)) plot(ColorCodedPair(theta, x, colors)) plot(ColorCodedPair(theta, y, colors), xlab='angle in radians', ylab='sine', main='colored sine')
showClass("ColorCodedPair") theta <- (0:360)*pi/180 x <- cos(theta) y <- sin(theta) xp <- x > 0 yp <- y > 0 colors <- list(ColorCoding(xp&yp, oompaColor$EXPECTED), ColorCoding(xp&!yp, oompaColor$OBSERVED), ColorCoding(!xp&yp, oompaColor$PERMTEST), ColorCoding(!xp&!yp, oompaColor$FITTED)) plot(ColorCodedPair(x, y, colors)) plot(ColorCodedPair(theta, x, colors)) plot(ColorCodedPair(theta, y, colors), xlab='angle in radians', ylab='sine', main='colored sine')
A class for associating plotting symbols and colors with a logical vector or with levels of a factor.
ColorCoding(v, color, mark = 1) colorCode(fac, colorScheme = 1:length(levels(fac)), mark = 1)
ColorCoding(v, color, mark = 1) colorCode(fac, colorScheme = 1:length(levels(fac)), mark = 1)
v |
a logical vector |
color |
a string or integer representing a color |
mark |
an integer representing a plotting symbol, or list of
plotting symbols that should be associated with levels of the factor
|
fac |
A factor |
colorScheme |
A list of colors that should be associated with
levels of the factor |
It is often necessary with microarray data to produce multiple plots,
where each point on the plot corresponds to a gene or a spot on the
microarray. Across multiple plots, we often want to use symbols or
colors to mark subsets of he genes with certain properties. The
ColorCoding
class works in tandem with the
ColorCodedPair
class to make it easier to maintain
consistent plotting conventions across multiple graphs.
The constructor returns a valid object of the ColorCoding
class.
The colorCode
function provides a simple interface to associate
colors and symbols with the levels of a factor. It returns a list of
valid ColorCoding
objects that can be passed directly to the
constructor of a ColorCodedPair
object.
Although objects can be created using new
, the preferred method
is to use the constructor function, ColorCoding
. To create a
set of colors and symbols associated with different levels of a
factor, use the colorCode
function.
v
a logical vector
color
a string or integer representing a color
mark
an integer representing a plotting symbol
There are no specialized methods for objects of this class; all activities can be performed by directly accessing the documented slots.
Kevin R. Coombes [email protected], P. Roebuck [email protected]
showClass("ColorCoding") theta <- (0:360)*pi/180 x <- cos(theta) y <- sin(theta) xp <- x > 0 yp <- y > 0 colors <- list(ColorCoding(xp&yp, oompaColor$BORING), ColorCoding(xp&!yp, oompaColor$TOP.TEN), ColorCoding(!xp&yp, oompaColor$BOTTOM.TEN), ColorCoding(!xp&!yp, oompaColor$CONFIDENCE.CURVE)) plot(ColorCodedPair(x, y, colors)) plot(ColorCodedPair(theta, x, colors)) plot(ColorCodedPair(theta, y, colors), xlab='angle in radians', ylab='sine', main='colored sine') fac <- factor(rep(c('left', 'right'), c(180, 181))) colors <- colorCode(fac, c('blue', 'red')) plot(ColorCodedPair(x, y, colors)) ## cleanup rm(x, y, xp, yp, theta, colors, fac) colorList <- c(oompaColor$BORING, oompaColor$SIGNIFICANT, oompaColor$EXPECTED, oompaColor$OBSERVED, oompaColor$PERMTEST, oompaColor$FITTED, oompaColor$CENTRAL.LINE, oompaColor$CONFIDENCE.CURVE, oompaColor$BAD.REPLICATE, oompaColor$WORST.REPLICATE, oompaColor$FOLD.DIFFERENCE, oompaColor$BAD.REPLICATE.RATIO, oompaColor$TOP.TEN, oompaColor$BOTTOM.TEN, oompaColor$TOP.TEN.SOLO, oompaColor$BOTTOM.TEN.SOLO ) plot(c(1,4), c(1,4), type='n') for (i in 1:4) { for (j in 1:4) { points(i,j, col=colorList[i + 4*(j-1)], pch=16, cex=4) } } rm(colorList, i, j)
showClass("ColorCoding") theta <- (0:360)*pi/180 x <- cos(theta) y <- sin(theta) xp <- x > 0 yp <- y > 0 colors <- list(ColorCoding(xp&yp, oompaColor$BORING), ColorCoding(xp&!yp, oompaColor$TOP.TEN), ColorCoding(!xp&yp, oompaColor$BOTTOM.TEN), ColorCoding(!xp&!yp, oompaColor$CONFIDENCE.CURVE)) plot(ColorCodedPair(x, y, colors)) plot(ColorCodedPair(theta, x, colors)) plot(ColorCodedPair(theta, y, colors), xlab='angle in radians', ylab='sine', main='colored sine') fac <- factor(rep(c('left', 'right'), c(180, 181))) colors <- colorCode(fac, c('blue', 'red')) plot(ColorCodedPair(x, y, colors)) ## cleanup rm(x, y, xp, yp, theta, colors, fac) colorList <- c(oompaColor$BORING, oompaColor$SIGNIFICANT, oompaColor$EXPECTED, oompaColor$OBSERVED, oompaColor$PERMTEST, oompaColor$FITTED, oompaColor$CENTRAL.LINE, oompaColor$CONFIDENCE.CURVE, oompaColor$BAD.REPLICATE, oompaColor$WORST.REPLICATE, oompaColor$FOLD.DIFFERENCE, oompaColor$BAD.REPLICATE.RATIO, oompaColor$TOP.TEN, oompaColor$BOTTOM.TEN, oompaColor$TOP.TEN.SOLO, oompaColor$BOTTOM.TEN.SOLO ) plot(c(1,4), c(1,4), type='n') for (i in 1:4) { for (j in 1:4) { points(i,j, col=colorList[i + 4*(j-1)], pch=16, cex=4) } } rm(colorList, i, j)
Create a vector of N
contiguous colors.
redscale(N) greenscale(N) bluescale(N) blueyellow(N) cyanyellow(N) redgreen(N) jetColors(N) grayscale(N) greyscale(N) wheel(N, sat = 1)
redscale(N) greenscale(N) bluescale(N) blueyellow(N) cyanyellow(N) redgreen(N) jetColors(N) grayscale(N) greyscale(N) wheel(N, sat = 1)
N |
an integer; the number of distinct levels in the color map |
sat |
a real number between 0 and 1; the saturation amount |
The color maps that ship with R (see, for example,
terrain.colors
) do not include the most common color
maps used in publications in the microarray literature. This
collection of color maps expands the available options. The functions
redscale
, greenscale
, and bluescale
each range
from pure black for low values to a pure primary color for high
values. The synonyms graysale
and greysale
range from
pure black to pure white.
The redgreen
color map ranges from pure green at the low end,
through black in the middle, to pure red at the high end. Although
this is the most common color map used in the microarray literature,
it will prove problematic for individuals with red-green color-blindness.
The blueyellow
color map ranges from pure blue at the low end,
through gray in the middle, to pure yellow at the high end.
The jetColors
map tries to reproduce the default "jet" color map
from MATLAB.
The cyanyellow
color map was added to provide a divergent map
that should be usable by the majority of individuals whose vision has
a color deficit. It ranges from cyan (a mixture of blue and green) at
the low to yellow (a mixture of red and green) at the high end. Since
the vast majority of color deficits arise because an individual lacks
cones for one of the three primary colors (red, green, or blue), this
colormap should stil provide adequate contrasts.
A character vector 'cv
' of color names. This can be used to
create a user-defined color palette for subsequent graphics by
'palette(cv)
' or directly in a 'col=
' specification in
'par
' or in graphics functions such as 'image
' or
'heatmap
'.
The names redgreen
and blueyellow
are inconsistent with
respect to which color represents low values and which color
represents high values. It is too late to fix this.
Kevin R. Coombes <[email protected]>
rainbow
, topo.colors
,
terrain.colors
, heat.colors
,
rgb
, image
, heatmap
,
palette
.
data <- matrix(1:1024, nrow=1024) image(data, col=bluescale(64)) image(data, col=redgreen(32)) image(data, col=redscale(128)) image(data, col=blueyellow(64)) image(data, col=jetColors(64)) image(data, col=grayscale(64)) image(data, col=cyanyellow(64)) rm(data) # cleanup
data <- matrix(1:1024, nrow=1024) image(data, col=bluescale(64)) image(data, col=redgreen(32)) image(data, col=redscale(128)) image(data, col=blueyellow(64)) image(data, col=jetColors(64)) image(data, col=grayscale(64)) image(data, col=cyanyellow(64)) rm(data) # cleanup
Utility functions for computing vectors of row-by-row means, variances, and t-statistics.
matrixMean(x,na.rm=FALSE) matrixVar(x, xmean, na.rm=FALSE) matrixT(m, v, na.rm=FALSE) matrixUnequalT(m, v) matrixPairedT(m, v, pf)
matrixMean(x,na.rm=FALSE) matrixVar(x, xmean, na.rm=FALSE) matrixT(m, v, na.rm=FALSE) matrixUnequalT(m, v) matrixPairedT(m, v, pf)
x |
a matrix |
xmean |
a numeric vector or single-column matrix |
m |
a matrix |
na.rm |
a logical value indicating whether means, variances, and t-statistics should be computed after omitting NA values from individual rows of the data matrix. |
v |
a logical vector of length equal to the number of columns of |
pf |
a numerical vector of length equal to the number of columns
of |
matrixMean
returns a single-column matrix containing the
row-by-row means of x
.
matrixVar
returns a single-column matrix containing the
row-by-row means of x
, assuming that xmean
contains the
corresponding mean values.
matrixT
returns a single-column matrix of t-statistics from a
two-sample t-test comparing the columns for which v
is true to
those for which v
is false.
matrixPairedT
returns a single-column matrix of t-statistics from a
paired t-test.
matrixUnequalT
returns a list with two components: tt
is
a single-column matrix of t-statistics from a two-sample unequal
variance t-test comparing the columns for which v
is true to
those for which v
is false, and df
is a single-column
matrix of the degrees of freedom associated with each row..
Kevin R. Coombes <[email protected]>
ng <- 1000 ns <- 50 dat <- matrix(rnorm(ng*ns), ncol=ns) clas <- factor(rep(c('Good', 'Bad'), each=25)) myMean <- matrixMean(dat) myVar <- matrixVar(dat, myMean) plot(myMean, myVar) myT <- matrixT(dat, clas) hist(myT) rm(ng, ns, dat, myMean, myVar, myT)
ng <- 1000 ns <- 50 dat <- matrix(rnorm(ng*ns), ncol=ns) clas <- factor(rep(c('Good', 'Bad'), each=25)) myMean <- matrixMean(dat) myVar <- matrixVar(dat, myMean) plot(myMean, myVar) myT <- matrixT(dat, clas) hist(myT) rm(ng, ns, dat, myMean, myVar, myT)
This class is a union that can represent either a numeric vector or a NULL value.
A virtual Class: No objects may be created from it.
No methods defined with class "numeric or NULL" in the signature.
Kevin R. Coombes <[email protected]>
A collection of predefined color names to help ensure consistency in multiple graphical displays of microarray data.
oompaColor
:a list containing named components allowing the user to systematically use colors for different interpretations.
oompaColor$BORING
:Used to mark uninteresting points in a plot; gray.
oompaColor$SIGNIFICANT
:Used to mark points that are statistically significant; red
oompaColor$EXPECTED
:Used to draw curves representing an expected distribution; blue
oompaColor$OBSERVED
:Used to draw curves indicating the observed distribution; darkgreen
oompaColor$PERMTEST
:Used to draw curves indicating distributions derived from a permutation test; magenta
oompaColor$FITTED
:Used to draw curves obtained by some fitting procedure, such as loess; orange
oompaColor$CENTRAL.LINE
:Used to draw lines through the centers of distributions or expected values; blue
oompaColor$CONFIDENCE.CURVE
:Used to draw confidence bounds around curves; red3
oompaColor$BAD.REPLICATE
:Used to indicate highly variable points; purple1
oompaColor$WORST.REPLICATE
:Used to mark extraordinarily variable points; purple3
oompaColor$FOLD.DIFFERENCE
:Used to indicate points with large fold difference; skyblue
oompaColor$BAD.REPLICATE.RATIO
:Used to flag points for which the ratios at replicate spots are highly variable; violetred
oompaColor$TOP.TEN
:Used to mark points in the "top ten" list; cadetblue
oompaColor$BOTTOM.TEN
:Used to mark points in "bottom ten" list of most underexpressed genes; pink
oompaColor$BOTTOM.TEN.SOLO
:Use unknown; palegreen
oompaColor$TOP.TEN.SOLO
:Use unknown; deeppink
oompaColor x <- seq(0, 2*pi, by=0.1) plot(x, sin(x), col=oompaColor$BORING)
oompaColor x <- seq(0, 2*pi, by=0.1) plot(x, sin(x), col=oompaColor$BORING)