plot_mds | R Documentation |
This function plots a low-dimensional projection of an omic data matrix using multi-dimensional scaling.
plot_mds( dat, group = NULL, covar = NULL, metric = TRUE, dist = "euclidean", p = 2L, top = 500L, filter_method = "pairwise", center = FALSE, pcs = c(1L, 2L), label = FALSE, pal_group = "npg", pal_covar = "Blues", size = NULL, alpha = NULL, title = "MDS", legend = "right", hover = FALSE, D3 = FALSE )
dat |
Omic data matrix or matrix-like object with rows corresponding to
probes and columns to samples. It is strongly recommended that data be
filtered and normalized prior to plotting. Raw counts stored in |
group |
Optional character or factor vector of length equal to sample size, or up to two such vectors organized into a list or data frame. Supply legend title(s) by passing a named list or data frame. |
covar |
Optional continuous covariate. If non- |
metric |
Logical. Perform classical (i.e. metric) MDS or nonmetric MDS? See Details. |
dist |
Distance measure to be used. Supports all methods available in
|
p |
Power of the Minkowski distance. |
top |
Optional number (if > 1) or proportion (if < 1) of top probes to be used for MDS. |
filter_method |
String specifying whether to apply a |
center |
Center each probe prior to computing distances? |
pcs |
Vector specifying which principal coordinates to plot. Must be of
length two unless |
label |
Label data points by sample name? Defaults to |
pal_group |
String specifying the color palette to use if |
pal_covar |
String specifying the color palette to use if |
size |
Point size. |
alpha |
Point transparency. |
title |
Optional plot title. |
legend |
Legend position. Must be one of |
hover |
Show sample name by hovering mouse over data point? If |
D3 |
Render plot in three dimensions? |
MDS is an iterative algorithm for embedding high-dimensional manifolds in
two or three dimensions. Classical MDS is implemented by the
cmdscale
function, which finds the optimal two-dimensional
projection of a distance matrix by minimizing the strain of the coordinate
mapping (Torgerson, 1958). Nonmetric MDS (NMDS) is implemented by the
monoMDS
function, which uses isotonic regression to find the
monotonic transformation that minimizes the stress of the embedding
(Kruskal, 1964).
MDS requires a distance matrix as input. Available distance measures include:
"euclidean"
, "maximum"
, "manhattan"
, "canberra"
,
"minkowski"
, "cosine"
, "pearson"
, "kendall"
,
"spearman"
, "bray"
, "kulczynski"
, "jaccard"
,
"gower"
, "altGower"
, "morisita"
, "horn"
,
"mountford"
, "raup"
, "binomial"
, "chao"
, "cao"
,
"mahalanobis"
, "MI"
, or "KLD"
. Some distance measures
are unsuitable for certain types of data. See dist_mat
for more
details on these methods and links to documentation for each. Users may also
directly input a distance matrix calculated using some custom method.
If top
is non-NULL
, then data can either be filtered by
probewise variance (filter_method = "common"
) or using the leading
fold change method of Smyth et al. (filter_method = "pairwise"
). In
the latter case, pairwise distances are calculated using only the top
most differentially expressed probes between the two samples. This method is
appropriate when different molecular pathways are relevant for distinguishing
different pairs of samples. To run MDS on the complete data, set
top = NULL
. This is functionally equivalent to running PCA on the full
matrix when dist = "euclidean"
. See plot_pca
.
Cox, T.F. & Cox, M.A.A. (2001). Multidimensional Scaling. Second edition. Chapman and Hall.
Kruskal, J.B. (1964). Multidimensional scaling by optimizing goodness of fit to a nonmetric hypothesis. Psychometrika, 29(1): 1-27.
Ritchie, M.E., Phipson, B., Wu, D., Hu, Y., Law, C.W., Shi, W., & Smyth, G.K. (2015). limma powers differential expression analyses for RNA-sequencing and microarray studies. Nucleic Acids Res., 43(7): e47.
Torgerson, W.S. (1958). Theory and Methods of Scaling. New York: Wiley.
plotMDS
, plot_pca
mat <- matrix(rnorm(1000 * 5), nrow = 1000, ncol = 5) plot_mds(mat) library(DESeq2) dds <- makeExampleDESeqDataSet() dds <- rlog(dds) plot_mds(dds, group = colData(dds)$condition)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.