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.
Usage
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 class 'MSnSet'
plot3D(
object,
fcol = "markers",
dims = c(1, 2, 3),
radius1 = 0.1,
radius2 = radius1 * 2,
plot = TRUE,
...
)
Arguments
- object
An instance of class
MSnSet
.- fcol
Feature meta-data label (fData column name) defining the groups to be differentiated using different colours. Default is
markers
. UseNULL
to suppress any colouring.- fpch
Featre meta-data label (fData column name) desining the groups to be differentiated using different point symbols.
- unknown
A
character
(default is"unknown"
) defining how proteins of unknown/un-labelled localisation are labelled.- dims
A
numeric
of length 2 (or 3 forplot3D
) defining the dimensions to be plotted. Defaults arec(1, 2)
andc(1, 2, 3)
. Always1:2
for MDS.- score
A numeric specifying the minimum organelle assignment score to consider features to be assigned an organelle. (not yet implemented).
- method
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 (seeprcomp
), classical multidimensional scaling (seecmdscale
), kernel PCA (seekpca
), nipals (principal component analysis by NIPALS, non-linear iterative partial least squares which support missing values; seenipals
) t-SNE (seeRtsne
) or linear discriminant analysis (seelda
). The last method usesfcol
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 usefcol
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 fromhexbin
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 anMSnSet
or amatrix
(as invisibly returned byplot2D
). This enables to re-generate the figure without computing the dimensionality reduction over and over again, which can be time consuming for certain methods. Ifobject
is amatrix
, anMSnSet
containing the feature metadata must be provided inmethargs
(see below for details).Available methods are listed in
plot2Dmethods
.- methargs
A
list
of arguments to be passed whenmethod
is called. If missing, the data will be scaled and centred prior to PCA and t-SNE (i.e.Rtsne
's argumentspca_center
andpca_scale
are set toTRUE
). Ifmethod = "none"
andobject
is amatrix
, then the first and only argument ofmethargs
must be anMSnSet
with matching features withobject
.- axsSwitch
A
logical
indicating whether the axes should be switched.- mirrorX
A
logical
indicating whether the x axis should be mirrored?- mirrorY
A
logical
indicating whether the y axis should be mirrored?- col
A
character
of appropriate length defining colours.- pch
A
character
of appropriate length defining point character.- cex
Character expansion.
- index
A
logical
(default isFALSE
, indicating of the feature indices should be plotted on top of the symbols.- idx.cex
A
numeric
specifying the character expansion (default is 0.75) for the feature indices. Only relevant whenindex
is TRUE.- addLegend
A character indicating where to add the legend. See
addLegend
for details. If missing (default), no legend is added.- identify
A logical (default is
TRUE
) defining if user interaction will be expected to identify individual data points on the plot. See alsoidentify
.- plot
A
logical
defining if the figure should be plotted. Useful when retrieving data only. Default isTRUE
.- grid
A
logical
indicating whether a grid should be plotted. Default isTRUE
.- ...
Additional parameters passed to
plot
andpoints
.- radius1
A
numeric
specifying the radius of feature of unknown localisation. Default is 0.1, which is specidied on the data scale. Seeplot3d
for details.- radius2
A
numeric
specifying the radius of marker feature. Default isradius
* 2.
Value
Used for its side effects of generating a plot. Invisibly returns the 2 or 3 dimensions that are plotted.
Details
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 ingetStockcol
. In such cases, the default colours are recycled using the default plotting characters defined ingetStockpch
. See the example for an illustration. Thealpha
argument is also depreciated in version 1.3.6. UsesetStockcol
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 tomethod
as amatrix
, in previous versions). Ifobject
is anMSnSet
, the untransformed values in the assay data will be plotted. Ifobject
is amatrix
with coordinates, then a matchingMSnSet
must be passed tomethargs
.
See also
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.
Examples
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))