vsMAPlot {vidger} | R Documentation

## MA plot from mean expression and log fold changes from different analytical objects

### Description

This function allows you to extract necessary results-based data from different output files to create a MA plot (i.e. a scatter plot) of log_{2} fold changes versus normalized mean counts while implementing ggplot2 aesthetics.

### Usage

    vsMAPlot(x, y, data, d.factor = NULL, type = c("cuffdiff", "deseq",
      "edger"), padj = 0.05, y.lim = NULL, lfc = NULL, title = TRUE,
      legend = TRUE, grid = TRUE, highlight = NULL, data.return = FALSE,
      xaxis.text.size = 10, yaxis.text.size = 10, xaxis.title.size = 10,
      yaxis.title.size = 10, main.title.size = 15, legend.text.size = 9)

### Arguments

`x` | treatment `x` for comparison (log_{2}(x/control)). This will be a factor level in your data.
`y` | treatment `y` for comparison (log_{2}(y/control)). This will be a factor level in your data.
`data` | output generated from calling the main routines of either `cuffdiff`, `DESeq2`, or `edgeR` analyses. For `cuffdiff`, this will be a `*_exp.diff` file. For `DESeq2`, this will be a generated object of class `DESeqDataSet`. For `edgeR`, this will be a generated object of class `DGEList`.
`d.factor` | a specified factor; for use with `DESeq2` objects only. This input equates to the first parameter for the contrast argument when invoking the `results()` function in `DESeq2`. Defaults to `NULL`.
`type` | an analysis classifier to tell the function how to process the data. Must be either `cuffdiff`, `deseq`, or `edger`. `cuffdiff` must be used with `cuffdiff` data; `deseq` must be used for `DESeq2` output; `edgeR` must be used with `edgeR` data. See the `data` parameter for further details.
`padj` | a user defined adjusted `p`-value cutoff point. Defaults to `0.05`.
`y.lim` | set manual limits (boundaries) to the y axis. Defaults to `NULL`.
`lfc` | log fold change level for setting conditonals. If no user input is added (`NULL`), value defaults to `1`.
`title` | display the main title of plot. Logical; defaults to `TRUE`. If set to `FALSE`, no title will display in plot.
`legend` | display legend of plot. Logical; defaults to `TRUE`. If set to `FALSE`, no legend will display in plot.
`grid` | display major and minor axis lines. Logical; defaults to `TRUE`. If set to `FALSE`, no axis lines will display in plot.
`highlight` | character string of IDs that will be highlighted. Set to `NULL` if you do not want highlighted data.
`data.return` | returns data output of plot Logical; defaults to `FALSE`. If set to `TRUE`, a data frame will also be called. Assign to object for reproduction and saving of data frame. See final example for further details.
`xaxis.text.size` | change the font size of the `x`-axis text. Defaults to `10`.
`yaxis.text.size` | change the font size of the `y`-axis text. Defaults to `10`.
`xaxis.title.size` | change the font size of the `x`-axis title text. Defaults to `10`.
`yaxis.title.size` | change the font size of the `y`-axis title text. Defaults to `10`.
`main.title.size` | change the font size of the plot title text. Defaults to `15`.
`legend.text.size` | change the font size of the legend body text. Defaults to `9`.

### Value

An object created by `ggplot`

### Author(s)

Brandon Monier, brandon.monier@sdstate.edu

### Examples

    # Cuffdiff example
    data("df.cuff")
    vsMAPlot(
         x = "hESC", y = "iPS", data = df.cuff, d.factor = NULL,
         type = "cuffdiff", padj = 0.05, y.lim = NULL, lfc = 1,
         title = TRUE, legend = TRUE, grid = TRUE, data.return = FALSE
    )

    # DESeq2 example
    data("df.deseq")
    require(DESeq2)
    vsMAPlot(
         x = "treated_paired.end", y = "untreated_paired.end",
         data = df.deseq, d.factor = "condition", type = "deseq",
         padj = 0.05, y.lim = NULL, lfc = NULL, title = TRUE,
         legend = TRUE, grid = TRUE, data.return = FALSE
    )

    # edgeR example
    data("df.edger")
    require(edgeR)
    vsMAPlot(
         x = "WM", y = "MM", data = df.edger, d.factor = NULL,
         type = "edger", padj = 0.1, y.lim = NULL, lfc = 1,
         title = FALSE, legend = TRUE, grid = TRUE, data.return = FALSE
    )

    # Highlight IDs
    data("df.deseq")
    require(DESeq2)
    hl <- c(
        "FBgn0022201",
        "FBgn0003042",
        "FBgn0031957",
        "FBgn0033853",
        "FBgn0003371"
    )
    vsMAPlot(
         x = "treated_paired.end", y = "untreated_paired.end",
         data = df.deseq, d.factor = "condition", type = "deseq",
         padj = 0.05, y.lim = NULL, lfc = NULL, title = TRUE,
         legend = TRUE, grid = TRUE, data.return = FALSE, highlight = hl
    )

    # Extract data frame from visualization
    data("df.cuff")
    tmp <- vsMAPlot(
         x = "hESC", y = "iPS", data = df.cuff,
         d.factor = NULL, type = "cuffdiff", padj = 0.05,
         y.lim = NULL, lfc = 1, title = TRUE, grid = TRUE,
         data.return = TRUE
    )
    df_ma <- tmp[[1]] ## or use tmp$data
    head(df_ma)

    # Show plot from object (see prior example for more details)
    tmp[[2]] ## or use tmp$plot

[Package vidger version 1.7.0 Index]