Skip to contents

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.

See also

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)