Last data update: 2014.03.03

R: Produce a multidimensional scaling plot for an SCESet object
plotMDSR Documentation

Produce a multidimensional scaling plot for an SCESet object

Description

#' Produce an MDS plot from the cell pairwise distance data in an SCESet dataset.

Usage

plotMDS(object, ...)

plotMDSSCESet(object, ncomponents = 2, colour_by = NULL, shape_by = NULL,
  size_by = NULL, return_SCESet = FALSE, draw_plot = TRUE,
  theme_size = 10, legend = "auto")

## S4 method for signature 'SCESet'
plotMDS(object, ncomponents = 2, colour_by = NULL,
  shape_by = NULL, size_by = NULL, return_SCESet = FALSE,
  draw_plot = TRUE, theme_size = 10, legend = "auto")

Arguments

object

an SCESet object

...

arguments passed to S4 plotMDS method

ncomponents

numeric scalar indicating the number of principal components to plot, starting from the first principal component. Default is 2. If ncomponents is 2, then a scatterplot of PC2 vs PC1 is produced. If ncomponents is greater than 2, a pairs plots for the top components is produced. NB: computing more than two components for t-SNE can become very time consuming.

colour_by

character string defining the column of pData(object) to be used as a factor by which to colour the points in the plot.

shape_by

character string defining the column of pData(object) to be used as a factor by which to define the shape of the points in the plot.

size_by

character string defining the column of pData(object) to be used as a factor by which to define the size of points in the plot.

return_SCESet

logical, should the function return an SCESet object with principal component values for cells in the reducedDimension slot. Default is FALSE, in which case a ggplot object is returned.

draw_plot

logical, should the plot be drawn on the current graphics device? Only used if return_SCESet is TRUE, otherwise the plot is always produced.

theme_size

numeric scalar giving default font size for plotting theme (default is 10).

legend

character, specifying how the legend(s) be shown? Default is "auto", which hides legends that have only one level and shows others. Alternatives are "all" (show all legends) or "none" (hide all legends).

Details

The function cmdscale is used internally to compute the multidimensional scaling components to plot.

Value

If return_SCESet is TRUE, then the function returns an SCESet object, otherwise it returns a ggplot object.

Examples

## Set up an example SCESet
data("sc_example_counts")
data("sc_example_cell_info")
pd <- new("AnnotatedDataFrame", data = sc_example_cell_info)
example_sceset <- newSCESet(countData = sc_example_counts, phenoData = pd)
drop_genes <- apply(exprs(example_sceset), 1, function(x) {var(x) == 0})
example_sceset <- example_sceset[!drop_genes, ]
example_sceset <- calculateQCMetrics(example_sceset)

## define cell-cell distances
cellDist(example_sceset) <- as.matrix(dist(t(exprs(example_sceset))))

## Examples plotting
plotMDS(example_sceset)
plotMDS(example_sceset, colour_by = "Cell_Cycle")
plotMDS(example_sceset, colour_by = "Cell_Cycle",
shape_by = "Treatment")

## define cell-cell distances differently
cellDist(example_sceset) <- as.matrix(dist(t(counts(example_sceset)),
method = "canberra"))
plotMDS(example_sceset, colour_by = "Cell_Cycle",
shape_by = "Treatment", size_by = "Mutation_Status")

Results


R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> library(scater)
Loading required package: Biobase
Loading required package: BiocGenerics
Loading required package: parallel

Attaching package: 'BiocGenerics'

The following objects are masked from 'package:parallel':

    clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,
    clusterExport, clusterMap, parApply, parCapply, parLapply,
    parLapplyLB, parRapply, parSapply, parSapplyLB

The following objects are masked from 'package:stats':

    IQR, mad, xtabs

The following objects are masked from 'package:base':

    Filter, Find, Map, Position, Reduce, anyDuplicated, append,
    as.data.frame, cbind, colnames, do.call, duplicated, eval, evalq,
    get, grep, grepl, intersect, is.unsorted, lapply, lengths, mapply,
    match, mget, order, paste, pmax, pmax.int, pmin, pmin.int, rank,
    rbind, rownames, sapply, setdiff, sort, table, tapply, union,
    unique, unsplit

Welcome to Bioconductor

    Vignettes contain introductory material; view with
    'browseVignettes()'. To cite Bioconductor, see
    'citation("Biobase")', and for packages 'citation("pkgname")'.

Loading required package: ggplot2

Attaching package: 'scater'

The following object is masked from 'package:stats':

    filter

> png(filename="/home/ddbj/snapshot/RGM3/R_BC/result/scater/plotMDS.Rd_%03d_medium.png", width=480, height=480)
> ### Name: plotMDS
> ### Title: Produce a multidimensional scaling plot for an SCESet object
> ### Aliases: plotMDS plotMDS,SCESet-method plotMDSSCESet
> 
> ### ** Examples
> 
> ## Set up an example SCESet
> data("sc_example_counts")
> data("sc_example_cell_info")
> pd <- new("AnnotatedDataFrame", data = sc_example_cell_info)
> example_sceset <- newSCESet(countData = sc_example_counts, phenoData = pd)
> drop_genes <- apply(exprs(example_sceset), 1, function(x) {var(x) == 0})
> example_sceset <- example_sceset[!drop_genes, ]
> example_sceset <- calculateQCMetrics(example_sceset)
> 
> ## define cell-cell distances
> cellDist(example_sceset) <- as.matrix(dist(t(exprs(example_sceset))))
> 
> ## Examples plotting
> plotMDS(example_sceset)
> plotMDS(example_sceset, colour_by = "Cell_Cycle")
> plotMDS(example_sceset, colour_by = "Cell_Cycle",
+ shape_by = "Treatment")
> 
> ## define cell-cell distances differently
> cellDist(example_sceset) <- as.matrix(dist(t(counts(example_sceset)),
+ method = "canberra"))
> plotMDS(example_sceset, colour_by = "Cell_Cycle",
+ shape_by = "Treatment", size_by = "Mutation_Status")
Warning message:
Using size for a discrete variable is not advised. 
> 
> 
> 
> 
> 
> 
> dev.off()
null device 
          1 
>