Picture of a tuba


Object-Oriented Microarray and Proteomic Analysis

Note: This web page is now obsolete! You should change any bookmarks to point to

Version 2.12 News

OOMPA Version 2.12 includes experimental versions of two new packages:

  1. ArrayCube: builds on fundamental classes from BioConductor to define a structure that generalizes the MINiML format used at the Gene Expression Omnibus. The main enhancement over MINiML format is the inclusion of an annotated data frame containing sample characteristics. The package provides routines to convert an ArrayCube into either an AffyBatch or an RGList, as appropriate.
  2. MINiML: reads files in the MINiML format, as downloaded from the Gene Expression Omnibus, and stores them in R as ArrayCubes.
You can install these packages by setting groupName="arraycube" in the oompainstall function.

Version 2.11 News

OOMPA Version 2.11 includes the GenAlg package, which provides an R implementation of a genetic algorithm that can be used for feature selection. You can install this package by setting groupName="genalg" in the oompainstall function.


Initial distribution of packages provides source code and Windows binaries. Macintosh binaries are only prepared when we can find both spare time and someone with the correct machine and tools to build those binaries.


Beginning with Release 2.8, we set up a proper repository of R code. With Release 2.9, believing in the adage that good programmers write good code, but great programmers steal great code, we blithely stole the repository management scripts from BioConductor and adapted them to work for OOMPA. So, the simplest way to install the OOMPA packages is now to fire up your local version of R and use the command:

These commands will install the basic OOMPA packages. In order to get a slightly larger set of (default) packages, you can execute the command
If you want to get everything (which may include some experimental packages that are still being developed, then use the command
Here is a complete list of the allowed values of groupName:
default, lite, genalg, prediction, supercurve, arraycube, all
Alternatively, if you want more control over which packages get installed, execute the following command and select from the resulting list.
By default, the installation routines assume that you have already installed anything that they depend on from CRAN or BioConductor. In order to get those packages installed automatically, you need more elaborate R code:
setRepositories(graphics=FALSE, ind=c(1,4))
myRepos <- c(getOption("repos"), 

Source code and windows binaries are available. If someone wants to volunteer to put Macintosh binaries together, we will post those as well.

Older Versions

For versions of OOMPA that work on R 2.5.0 through R 2.7.0, go to this archived web page. For versions of OOMPA that work with even older versions of R, see this archive. The OOMPA suite of R libraries is the successor to the earlier Object-Oriented Microarray Analysis Library (OOMAL), which was originally written for S-Plus 2000. The incorporation of routines to analyze proteomics profiling data in addition to gene expression microarray data prompted a name change. (It also inspired our icon. It suggests some possibilities for theme music, but we're pretty sure we don't want to go there.)


OOMPA is a suite of R libraries for the analysis of gene expression (RNA) microarray data and of proteomics profiling mass spectrometry data. OOMPA uses S4 classes to construct object-oriented tools with a consistent user interface. All higher level analysis tools in OOMPA work with the expressionSet classes defined in BioConductor. The lower level processing tools offer an alternative to parts of BioConductor, but can also be used to enhance the existing BioConductor packages.

The packages included in the current release (OOMPA 2.9) are

oompaBase (Manual) (Vignette)
Contains definitions that are needed in order for other packages to load properly. Some definitions (like class unions) must be visible before loading a package that uses them, and cannot be defined in the same package.
PreProcess (Manual) (Vignette)
Basic library for low-level preprocessing of microarray data. Provides tools for using consistent color schemes in diagnostic and other plots. Also defines the Processor and Pipeline classes used so objects can maintain a history of how they were produced.
ClassComparison (Manual) (Vignette)
The ClassComparison library provides tools to perform "class comparison" analyses of microarray or proteomics data. Class comparison problems start with two or more known groups of samples, and ask the analyst to find genes or proteins that are different in some way between the two groups. Methods implemented in this release include
  • Two-sample t-test
  • Fixed-effects linear models with ANOVA
  • Beta-uniform mixture (BUM) model to account for multiple testing by controlling the false discovery rate (FDR).
  • Wilcoxon rank-sum test with empirical Bayes
  • Signficance Analysis of Microarrays (SAM)
  • Total Number of Misclassification (TNoM)
  • Dudoit's adjustment of p-values to control the family-wise error rate (FWER)
  • Smooth t-test
ClassDiscovery (Manual) (Vignette)
The ClassDiscovery library provides tools to perform "class discovery" analyses of microarray or proteomics data. Class discovery methods perform unsupervised analyses to try to "learn" or "discover" group structure in the data. Methods implemented in this release include
  • Nonparametric bootstrap to test the significance of clusters
  • Parametric bootstrap with gaussian noise to test the significance of clusters
  • Principal components analysis of the biological samples
  • Mosiac plots (i.e., the red-green two-way hierarchical clustering plots introduced into the microarray world by Mike Eisen)
  • PCANOVA, which provides an "analysis of variance" inspired method thatb uses principal components to test whether putative group structures are really present in the data
  • New! We now include functions to compute the bimodality index, a tool for ranking genes by how likely they are to follow a "useful" bimodal distribution. This method was introduced by Wang et al. in a manuscript to appear in Cancer Informatics.
TailRank (Manual) (Vignette)
The Tail Rank test is a new method we have developed for finding biomarkers in microarray or proteomics data sets. The method is essentially non-parametric, focusing on the tails of the distributions in the two classes being compared. The method allows analysts to perform realistic sample size and power computations.
SuperCurve (Manual) (Vignette)
SuperCurve is a package we have developed to analyze reverse-phase protein arrays. The package includes routines to load raw data files quantified by MicroVigene, to fit a four-parameter joint logistic model in order to estimate protein concentrations, along with methods to assess the quality of the fit.
SuperCurveGUI (Manual)
SuperCurveGUI provides a graphical user interface for the SUperCurvepackage.
SlideDesignerGUI (Manual)
SlideDesignerGUI is a graphicl tool to allow researchers to describe the location and concentration of different positive and negative controls on a reverse phase protein array..