Computes t-SNE into two dimensions and plots changes according to time.
All the observations of a single subject are connected by an arrow ending at
the last observation. In case there are missing values, PCA is performed
using the nipals method of pca, the method can be
changed to "ppca" if nipals fails.
Usage
plot_tsne_arrows(
object,
all_features = FALSE,
center = TRUE,
scale = "uv",
perplexity = 30,
pca_method = "nipals",
color,
time,
subject,
alpha = 0.6,
arrow_style = arrow(),
title = "t-SNE changes",
subtitle = paste("Perplexity:", perplexity),
color_scale = getOption("notame.color_scale_dis"),
text_base_size = 14,
line_width = 0.5,
assay.type = NULL,
...
)Arguments
- object
a SummarizedExperiment or MetaboSet object
- all_features
logical, should all features be used? If FALSE (the default), flagged features are removed before visualization.
- center
logical, should the data be centered prior to PCA? (usually yes)
- scale
scaling used, as in
prep. Default is "uv" for unit variance- perplexity
the perplexity used in t-SNE
- pca_method
the method used in PCA if there are missing values
- color
character, name of the column used for coloring the points
- time
character, name of the column containing timepoints
- subject
character, name of the column containing subject identifiers
- alpha
numeric, value for the alpha parameter of the arrows (transparency)
- arrow_style
a description of arrow heads, the size and angle can be modified, see
?arrow- title, subtitle
the titles of the plot
- color_scale
the color scale as returned by a ggplot function
- text_base_size
the base size of the text
- line_width
the width of the arrows
- assay.type
character, assay to be used in case of multiple assays
- ...
additional arguments passed to
Rtsne
Value
A ggplot object. If density is TRUE, the plot will
consist of multiple parts and is harder to modify.
Examples
data(example_set)
plot_tsne_arrows(drop_qcs(example_set), perplexity = 10, color = "Group",
time = "Time", subject = "Subject_ID")
# If the sample size is large, plot groups separately
plot_tsne_arrows(drop_qcs(example_set), perplexity = 10, color = "Group",
time = "Time", subject = "Subject_ID") +
facet_wrap(~Group)