runPCA {scater} | R Documentation |
Produce a principal components analysis (PCA) plot of two or more principal
components for an SingleCellExperiment
dataset.
runPCA(object, ntop = 500, ncomponents = 2, exprs_values = "logcounts", feature_set = NULL, scale_features = TRUE, pca_data_input = "logcounts", selected_variables = NULL, detect_outliers = FALSE) plotPCASCE(object, colour_by = NULL, shape_by = NULL, size_by = NULL, return_SCE = FALSE, draw_plot = TRUE, theme_size = 10, legend = "auto", rerun = FALSE, ncomponents = 2, detect_outliers = FALSE, ...) ## S4 method for signature 'SingleCellExperiment' plotPCA(object, colour_by = NULL, shape_by = NULL, size_by = NULL, return_SCE = FALSE, draw_plot = TRUE, theme_size = 10, legend = "auto", rerun = FALSE, ncomponents = 2, detect_outliers = FALSE, ...)
object |
an |
ntop |
numeric scalar indicating the number of most variable features to
use for the PCA. Default is |
ncomponents |
numeric scalar indicating the number of principal
components to plot, starting from the first principal component. Default is
2. If |
exprs_values |
character string indicating which values should be used
as the expression values for this plot. Valid arguments are |
feature_set |
character, numeric or logical vector indicating a set of
features to use for the PCA. If character, entries must all be in
|
scale_features |
logical, should the expression values be standardised
so that each feature has unit variance? Default is |
pca_data_input |
character argument defining which data should be used
as input for the PCA. Possible options are |
selected_variables |
character vector indicating which variables in
|
detect_outliers |
logical, should outliers be detected in the PC plot?
Only an option when |
colour_by |
character string defining the column of |
shape_by |
character string defining the column of |
size_by |
character string defining the column of |
return_SCE |
logical, should the function return an |
draw_plot |
logical, should the plot be drawn on the current graphics
device? Only used if |
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
|
rerun |
logical, should PCA be recomputed even if |
... |
further arguments passed to |
The function prcomp
is used internally to do the PCA.
The function checks whether the object
has standardised
expression values (by looking at stand_exprs(object)
). If yes, the
existing standardised expression values are used for the PCA. If not, then
standardised expression values are computed using scale
(with
feature-wise unit variances or not according to the scale_features
argument), added to the object and PCA is done using these new standardised
expression values.
If the arguments detect_outliers
and return_SCE
are both
TRUE
, then the element $outlier
is added to the pData
(phenotype data) slot of the SingleCellExperiment
object. This element contains
indicator values about whether or not each cell has been designated as an
outlier based on the PCA. These values can be accessed for filtering
low quality cells with, for example, example_sce$outlier
.
either a ggplot plot object or an SingleCellExperiment object
## Set up an example SingleCellExperiment data("sc_example_counts") data("sc_example_cell_info") example_sce <- SingleCellExperiment( assays = list(counts = sc_example_counts), colData = sc_example_cell_info) example_sce <- normalize(example_sce) drop_genes <- apply(exprs(example_sce), 1, function(x) {var(x) == 0}) example_sce <- example_sce[!drop_genes, ] ## Examples plotting PC1 and PC2 plotPCA(example_sce) plotPCA(example_sce, colour_by = "Cell_Cycle") plotPCA(example_sce, colour_by = "Cell_Cycle", shape_by = "Treatment") plotPCA(example_sce, colour_by = "Cell_Cycle", shape_by = "Treatment", size_by = "Mutation_Status") plotPCA(example_sce, shape_by = "Treatment", size_by = "Mutation_Status") plotPCA(example_sce, feature_set = 1:100, colour_by = "Treatment", shape_by = "Mutation_Status") ## experiment with legend example_subset <- example_sce[, example_sce$Treatment == "treat1"] plotPCA(example_subset, colour_by = "Cell_Cycle", shape_by = "Treatment", legend = "all") plotPCA(example_sce, shape_by = "Treatment", return_SCE = TRUE) ## Examples plotting more than 2 PCs plotPCA(example_sce, ncomponents = 8) plotPCA(example_sce, ncomponents = 4, colour_by = "Treatment", shape_by = "Mutation_Status")