Last chance! 50% off unlimited learning
Sale ends in
"plotMDS"(x, top = 500, labels = NULL, pch = NULL, cex = 1,
dim.plot = c(1,2), ndim = max(dim.plot), gene.selection = "pairwise",
xlab = NULL, ylab = NULL, method = "logFC", prior.count = 2,
...)
DGEList
object.x
has no column names, then defaults the index of the samples.points
for possible values. Ignored if labels
is non-NULL
.text
for possible values."pairwise"
to choose the top genes separately for each pairwise comparison between the samples, or "common"
to select the same genes for all comparisons. Only used when method="logFC"
."bcv"
.method="logFC"
.plot
.MDS
is invisibly returned and a plot is created on the current graphics device.
method="logFC"
) is to convert the counts to log-counts-per-million using cpm
and to pass these to the limma plotMDS
function.
This method calculates distances between samples based on log2 fold changes.
See the plotMDS help page
for details.The alternative method (method="bcv"
) calculates distances based on biological coefficient of variation.
A set of top genes are chosen that have largest biological variation between the libraries
(those with largest genewise dispersion treating all libraries as one group).
Then the distance between each pair of libraries (columns) is the biological coefficient of variation (square root of the common dispersion) between those two libraries alone, using
the top genes.
The number of genes (top
) chosen for this exercise should roughly correspond to the number of differentially expressed genes with materially large fold-changes.
The default setting of 500 genes is widely effective and suitable for routine use, but a smaller value might be chosen for when the samples are distinguished by a specific focused molecular pathway.
Very large values (greater than 1000) are not usually so effective.
Note that the "bcv"
method is slower than the "logFC"
method when there are many libraries.
plotMDS
, cmdscale
, as.dist
# Simulate DGE data for 1000 genes and 6 samples.
# Samples are in two groups
# First 200 genes are differentially expressed in second group
ngenes <- 1000
nlib <- 6
counts <- matrix(rnbinom(ngenes*nlib, size=1/10, mu=20),ngenes,nlib)
rownames(counts) <- paste("gene",1:ngenes, sep=".")
group <- gl(2,3,labels=c("Grp1","Grp2"))
counts[1:200,group=="Grp2"] <- counts[1:200,group=="Grp2"] + 10
y <- DGEList(counts,group=group)
y <- calcNormFactors(y)
# without labels, indexes of samples are plotted.
col <- as.numeric(group)
mds <- plotMDS(y, top=200, col=col)
# or labels can be provided, here group indicators:
plotMDS(mds, col=col, labels=group)
Run the code above in your browser using DataLab