Generate 2 or 3 dimensional feature distribution plots to
illustrate localistation clusters. Rows/features containing
NA
values are removed prior to dimension reduction except
for the "nipals"
method. For this method, it is advised to
set the method argument `ncomp` to a low number of dimensions to
avoid computing all components when analysing large datasets.
plot2D(
object,
fcol = "markers",
fpch,
unknown = "unknown",
dims = 1:2,
score = 1,
method = "PCA",
methargs,
axsSwitch = FALSE,
mirrorX = FALSE,
mirrorY = FALSE,
col,
pch,
cex,
index = FALSE,
idx.cex = 0.75,
addLegend,
identify = FALSE,
plot = TRUE,
grid = TRUE,
...
)
# S4 method for MSnSet
plot3D(
object,
fcol = "markers",
dims = c(1, 2, 3),
radius1 = 0.1,
radius2 = radius1 * 2,
plot = TRUE,
...
)
An instance of class MSnSet
.
Feature meta-data label (fData column name) defining
the groups to be differentiated using different
colours. Default is markers
. Use NULL
to
suppress any colouring.
Featre meta-data label (fData column name) desining the groups to be differentiated using different point symbols.
A character
(default is "unknown"
)
defining how proteins of unknown/un-labelled localisation are
labelled.
A numeric
of length 2 (or 3 for plot3D
)
defining the dimensions to be plotted. Defaults are c(1,
2)
and c(1, 2, 3)
. Always 1:2
for MDS.
A numeric specifying the minimum organelle assignment score to consider features to be assigned an organelle. (not yet implemented).
A character
describe how to transform the
data or what to plot. One of "PCA"
(default),
"MDS"
, "kpca"
, "nipals"
, "t-SNE"
or "lda"
, defining what dimensionality reduction is
applied: principal component analysis (see
prcomp
), classical multidimensional scaling (see
cmdscale
), kernel PCA (see
kpca
), nipals (principal component
analysis by NIPALS, non-linear iterative partial least squares
which support missing values; see
nipals
) t-SNE (see
Rtsne
) or linear discriminant analysis
(see lda
). The last method uses
fcol
to defined the sub-cellular clusters so that the
ration between within ad between cluster variance is
maximised. All the other methods are unsupervised and make use
fcol
only to annotate the plot. Prior to t-SNE,
duplicated features are removed and a message informs the user
if such filtering is needed.
"scree"
can also be used to produce a scree
plot. "hexbin"
applies PCA to the data and uses
bivariate binning into hexagonal cells from
hexbin
to emphasise cluster density.
If none is used, the data is plotted as is, i.e. without any
transformation. In this case, object
can either be an
MSnSet
or a matrix
(as invisibly returned by
plot2D
). This enables to re-generate the figure without
computing the dimensionality reduction over and over again,
which can be time consuming for certain methods. If object
is a matrix
, an MSnSet
containing the feature
metadata must be provided in methargs
(see below for
details).
Available methods are listed in plot2Dmethods
.
A list
of arguments to be passed when
method
is called. If missing, the data will be scaled
and centred prior to PCA and t-SNE (i.e. Rtsne
's
arguments pca_center
and pca_scale
are set to
TRUE
). If method = "none"
and object
is a
matrix
, then the first and only argument of
methargs
must be an MSnSet
with matching
features with object
.
A logical
indicating whether the axes
should be switched.
A logical
indicating whether the x axis
should be mirrored?
A logical
indicating whether the y axis
should be mirrored?
A character
of appropriate length defining
colours.
A character
of appropriate length defining point
character.
Character expansion.
A logical
(default is FALSE
, indicating
of the feature indices should be plotted on top of the
symbols.
A numeric
specifying the character expansion
(default is 0.75) for the feature indices. Only relevant when
index
is TRUE.
A character indicating where to add the
legend. See addLegend
for details. If missing
(default), no legend is added.
A logical (default is TRUE
) defining if
user interaction will be expected to identify individual data
points on the plot. See also identify
.
A logical
defining if the figure should be
plotted. Useful when retrieving data only. Default is
TRUE
.
A logical
indicating whether a grid should
be plotted. Default is TRUE
.
Additional parameters passed to plot
and
points
.
A numeric
specifying the radius of feature
of unknown localisation. Default is 0.1, which is specidied on
the data scale. See plot3d
for details.
A numeric
specifying the radius of marker
feature. Default is radius
* 2.
Used for its side effects of generating a plot. Invisibly returns the 2 or 3 dimensions that are plotted.
plot3D
relies on the ##' rgl
package, that will be
loaded automatically.
Note that plot2D
has been update in version 1.3.6 to
support more organelle classes than colours defined in
getStockcol
. In such cases, the default
colours are recycled using the default plotting characters
defined in getStockpch
. See the example for
an illustration. The alpha
argument is also
depreciated in version 1.3.6. Use setStockcol
to set
colours with transparency instead. See example below.
Version 1.11.3: to plot data as is, i.e. without any
transformation, method
can be set to "none" (as
opposed to passing pre-computed values to method
as a
matrix
, in previous versions). If object
is an
MSnSet
, the untransformed values in the assay data
will be plotted. If object
is a matrix
with
coordinates, then a matching MSnSet
must be passed to
methargs
.
addLegend
to add a legend to plot2D
figures (the legend is added by default on plot3D
) and
plotDist
for alternative graphical
representation of quantitative organelle proteomics
data. plot2Ds
to overlay 2 data sets on the same
PCA plot. The plotEllipse
function can be used
to visualise TAGM models on PCA plots with ellipses.
library("pRolocdata")
data(dunkley2006)
plot2D(dunkley2006, fcol = NULL)
plot2D(dunkley2006, fcol = NULL, col = "black")
plot2D(dunkley2006, fcol = "markers")
addLegend(dunkley2006,
fcol = "markers",
where = "topright",
cex = 0.5, bty = "n", ncol = 3)
title(main = "plot2D example")
## available methods
plot2Dmethods
#> [1] "PCA" "MDS" "kpca" "lda" "t-SNE" "nipals" "hexbin" "none"
#> [9] "scree"
plot2D(dunkley2006, fcol = NULL, method = "kpca", col = "black")
plot2D(dunkley2006, fcol = NULL, method = "kpca", col = "black",
methargs = list(kpar = list(sigma = 1)))
plot2D(dunkley2006, method = "lda")
plot2D(dunkley2006, method = "hexbin")
## Using transparent colours
setStockcol(paste0(getStockcol(), "80"))
plot2D(dunkley2006, fcol = "markers")
## New behavious in 1.3.6 when not enough colours
setStockcol(c("blue", "red", "green"))
getStockcol() ## only 3 colours to be recycled
#> [1] "blue" "red" "green"
getMarkers(dunkley2006)
#> organelleMarkers
#> ER lumen ER membrane Golgi Mitochondrion PM
#> 14 45 28 55 46
#> Plastid Ribosome TGN unknown vacuole
#> 20 19 13 428 21
plot2D(dunkley2006)
#> Not enough colours: using colours and pch.
## reset colours
setStockcol(NULL)
plot2D(dunkley2006, method = "none") ## plotting along 2 first fractions
plot2D(dunkley2006, dims = c(3, 5), method = "none") ## plotting along fractions 3 and 5
## pre-calculate PC1 and PC2 coordinates
pca <- plot2D(dunkley2006, plot=FALSE)
head(pca)
#> PC1 (64.36%) PC2 (22.34%)
#> AT1G09210 -4.734261 -0.8204175
#> AT1G21750 -4.615276 -1.1891468
#> AT1G51760 -4.770573 -1.6292717
#> AT1G56340 -5.318056 -0.9972462
#> AT2G32920 -5.135122 -1.5283630
#> AT2G47470 -4.899410 -0.8145343
plot2D(pca, method = "none", methargs = list(dunkley2006))
## plotting in 3 dimenstions
plot3D(dunkley2006)
#> Loading required package: rgl
#> Warning: RGL: unable to open X11 display
#> Warning: 'rgl.init' failed, running with 'rgl.useNULL = TRUE'.
plot3D(dunkley2006, radius2 = 0.3)
plot3D(dunkley2006, dims = c(2, 4, 6))