plotMD {limma} | R Documentation

## Mean-Difference Plot of Expression Data

### Description

Creates a mean-difference plot (aka MA plot) with color coding for highlighted points.

### Usage

    ## Default S3 method:
    plotMD(object, column = 1, xlab = "Average log-expression",
           ylab = "Expression log-ratio (this sample vs others)",
           main = colnames(object)[column], status=NULL, ...)
    ## S3 method for class 'EList'
    plotMD(object, column = 1, array = NULL, xlab = "Average log-expression",
           ylab = "Expression log-ratio (this sample vs others)",
           main = colnames(object)[column], status=object$genes$Status,
           zero.weights = FALSE, ...)
    ## S3 method for class 'RGList'
    plotMD(object, column = 1, array = NULL, xlab = "A", ylab = "M",
           main = colnames(object)[column], status=object$genes$Status,
           zero.weights = FALSE, ...)
    ## S3 method for class 'MAList'
    plotMD(object, column = 1, array = NULL, xlab = "A", ylab = "M",
           main = colnames(object)[column], status=object$genes$Status,
           zero.weights = FALSE, ...)
    ## S3 method for class 'MArrayLM'
    plotMD(object, column = ncol(object), coef = NULL, xlab = "Average log-expression",
           ylab = "log-fold-change", main = colnames(object)[column],
           status=object$genes$Status, zero.weights = FALSE, ...)

### Arguments

`object` | an `RGList`, `MAList`, `EList`, `ExpressionSet` or `MArrayLM` object. Alternatively a numeric `matrix`.
`column` | integer, column of `object` to be plotted.
`array` | alternative to `column` for microarray data objects. If specified, then `column` is ignored.
`coef` | alternative to `column` for fitted model objects. If specified, then `column` is ignored.
`xlab` | character string, label for x-axis.
`ylab` | character string, label for y-axis.
`main` | character string, title for plot.
`status` | vector giving the control status of each spot on the array, of same length as the number of rows of `object`. If `NULL`, then all points are plotted in the default color, symbol and size.
`zero.weights` | logical, should spots with zero or negative weights be plotted?
`...` | other arguments are passed to `plotWithHighlights`.

### Details

A mean-difference plot (MD-plot) is a plot of log-intensity ratios (differences) versus log-intensity averages (means). For two color data objects, a within-array MD-plot is produced with the M and A values computed from the two channels for the specified array. This is the same as a mean-difference plot (`mdplot`) with the red and green log2-intensities of the array providing the two columns.

For single channel data objects, a between-array MD-plot is produced. An articifial array is produced by averaging all the arrays other than the array specified. A mean-difference plot is then producing from the specified array and the artificial array. Note that this procedure reduces to an ordinary mean-difference plot when there are just two arrays total.

If `object` is an `MArrayLM` object, then the plot is an fitted model MD-plot in which the estimated coefficient is on the y-axis and the average A-value is on the x-axis.

The `status` vector can correspond to any grouping of the probes that is of interest. If `object` is a fitted model object, then `status` vector is often used to indicate statistically significance, so that differentially expressed points are highlighted. If `object` is a microarray data object, then `status` might distinguish control probes from regular probes so that different types of controls are highlighted.

The `status` can be included as the component `object$genes$Status` instead of being passed as an argument to `plotMD`.

See `plotWithHighlights` for how to set colors and graphics parameters for the highlighted and non-highlighted points.

### Value

A plot is created on the current graphics device.

### Note

This function is an alternative to `plotMA`, which was one of the original functions of the limma package in 2002. The history of mean-difference plots and MA-plots is reviewed in Ritchie et al (2015).

### Author(s)

Gordon Smyth

### References

Ritchie, ME, Phipson, B, Wu, D, Hu, Y, Law, CW, Shi, W, and Smyth, GK (2015). limma powers differential expression analyses for RNA-sequencing and microarray studies. Nucleic Acids Research Volume 43, e47. http://nar.oxfordjournals.org/content/43/7/e47

### See Also

The driver function for `plotMD` is `plotWithHighlights`. See also `mdplot` for a very basic mean-difference plot function.

An overview of plot functions available in LIMMA is given in 09.Diagnostics.

### Examples

    A <- runif(1000,4,16)
    y <- A + matrix(rnorm(1000*3,sd=0.2),1000,3)
    status <- rep(c(0,-1,1),c(950,40,10))
    y[,1] <- y[,1] + status
    plotMD(y, column=1, status=status, values=c(-1,1), hl.col=c("blue","red"))

    MA <- new("MAList")
    MA$A <- runif(300,4,16)
    MA$M <- rt(300,df=3)

    # Spike-in values
    MA$M[1:3] <- 0
    MA$M[4:6] <- 3
    MA$M[7:9] <- -3

    status <- rep("Gene",300)
    status[1:3] <- "M=0"
    status[4:6] <- "M=3"
    status[7:9] <- "M=-3"
    values <- c("M=0","M=3","M=-3")
    hl.col <- c("blue","red","green")

    plotMD(MA,main="MA-Plot with 12 spiked-in points",
           status=status, values=values, hl.col=hl.col)

    #  Same as above but setting graphical parameters as attributes
    attr(status,"values") <- values
    attr(status,"col") <- hl.col
    plotMD(MA, main="Mean-Difference Plot with 12 spiked-in points", status=status)

    #  Same as above but passing status as part of object
    MA$genes$Status <- status
    plotMD(MA, main="Mean-Difference Plot with 12 spiked-in points")

    #  Change settings for background points
    MA$genes$Status <- status
    plotMD(MA, bg.pch=1, bg.cex=0.5)

[Package limma version 3.42.2 Index]