esetTsne: plot a t-SNE of an eSet object

Description Usage Arguments Value Author(s) References See Also Examples

View source: R/esetTsne.R

Description

esetTsne reduces the dimension of the data contained in the eSet via t-Distributed Stochastic Neighbor Embedding with the Rtsne function and plot the subsequent biplot, possibly with sample annotation contained in the eSet.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
esetTsne(eset, psids = 1:nrow(eset), trace = TRUE,
  colorVar = character(), color = if (length(colorVar) == 0) "black"
  else character(), shapeVar = character(), shape = if
  (length(shapeVar) == 0) 15 else numeric(), sizeVar = character(),
  size = if (length(sizeVar) == 0) {     ifelse(typePlot == "interactive"
  && length(packageInteractivity) == 1 && packageInteractivity == "rbokeh",
  5, 2.5) } else {     numeric() }, sizeRange = numeric(),
  alphaVar = character(), alpha = if (length(alphaVar) == 0) 1 else
  numeric(), alphaRange = numeric(), title = "",
  Rtsne.args = list(perplexity = floor((ncol(eset) - 1)/3), theta = 0.5,
  dims = 2, initial_dims = 50), fctTransformDataForInputTsne = NULL,
  symmetryAxes = c("combine", "separate", "none"),
  packageTextLabel = c("ggrepel", "ggplot2"), topSamples = 10,
  topSamplesCex = 2.5, topSamplesVar = character(),
  topSamplesJust = c(0.5, 0.5), topSamplesColor = "black",
  includeLegend = TRUE, includeLineOrigin = TRUE,
  typePlot = c("static", "interactive"),
  packageInteractivity = c("rbokeh", "ggvis"),
  figInteractiveSize = c(600, 400), ggvisAdjustLegend = TRUE,
  interactiveTooltip = TRUE, interactiveTooltipExtraVars = character(),
  returnAnalysis = FALSE, returnEsetPlot = FALSE)

Arguments

eset

expressionSet (or SummarizedExperiment) object with data

psids

featureNames of genes to include in the plot, all by default

trace

logical, if TRUE (by default), print some messages during tsne is running

colorVar

name of variable (in varLabels of the eset) used for coloring, empty by default

color

character or factor with specified color(s) for the points, replicated if needed. This is used only if colorVar is empty. By default: 'black' if colorVar is not specified and default ggplot palette otherwise

shapeVar

name of variable (in varLabels of the eset) used for the shape, empty by default

shape

character or factor with specified shape(s) (pch) for the points, replicated if needed. This is used only if shapeVar is empty. By default: '15' (filled square) if shapeVar is not specified and default ggplot shape(s) otherwise

sizeVar

name of variable (in varLabels of the eset) used for the size, empty by default

size

character or factor with specified size(s) (cex) for the points, replicated if needed. This is used only if sizeVar is empty. By default: '2.5' if sizeVar is not specified and default ggplot size(s) otherwise

sizeRange

size (cex) range used in the plot, possible only if the sizeVar is 'numeric' or 'integer'

alphaVar

name of variable (in varLabels of the eset) used for the transparency, empty by default. This parameter is currently only available for static plot and ggvis (only numeric in this case).

alpha

character or factor with specified transparency(s) for the points, replicated if needed. This is used only if shapeVar is empty. By default: '1' if alphaVar is not specified and default ggplot alpha otherwise This parameter is currently only available for static and ggvis.

alphaRange

transparency (alpha) range used in the plot, possible only if the alphaVar is 'numeric' or 'integer' This parameter is currently only available for static and ggvis plot.

title

plot title, ” by default

Rtsne.args

arguments for the Rtsne function, by default: perplexite parameter = optimal number of neighbours, theta = speed/accuracy trade-off (increase for less accuracy), set to 0.0 for exact TSNE

fctTransformDataForInputTsne

function which transform the data in the eSet object before calling the Rtsne function. This should be a function which takes a matrix as input and return a matrix, e.g. the dist function.

symmetryAxes

set symmetry for axes, either:

  • 'combine' (by default): both axes are symmetric and with the same limits

  • 'separate': each axis is symmetric and has its own limits

  • 'none': axes by default (plot limits)

packageTextLabel

package used to label the outlying genes/samples/gene sets, either ggrepel (by default, only used if package ggrepel is available), or ggplot2

topSamples

numeric indicating which percentile (if <1) or number (if >=1) of samples most distant to the origin of the plot to annotate, by default: 10 samples are selected If no samples should be annotated, set this parameter to 0. Currently available for static plot.

topSamplesCex

cex for sample annotation (used when topSamples > 0)

topSamplesVar

variable of the phenoData used to label the samples, by default: empty, the sampleNames are used for labelling (used when topSamples > 0)

topSamplesJust

text justification for the samples (used when topSamples > 0 and if packageTextLabel is ggplot2), by default: c(0.5, 0.5) so centered

topSamplesColor

text color for the samples (used when topSamples > 0), black by default

includeLegend

logical if TRUE (by default) include a legend, otherwise not

includeLineOrigin

if TRUE (by default) include vertical line at x = 0 and horizontal line at y = 0

typePlot

type of the plot returned, either 'static' (static) or interactive' (potentially interactive)

packageInteractivity

if typePlot is 'interactive', package used for interactive plot, either 'rbokeh' (by default) or 'ggvis'

figInteractiveSize

vector containing the size of the interactive plot, as [width, height] by default: c(600, 400). This is passed to the width and height parameters of:

  • for rbokeh plots: the bokeh::figure function

  • for ggvis plots: the ggvis::set_options function

ggvisAdjustLegend

logical, if TRUE (by default) adjust the legends in ggvis to avoid overlapping legends when multiple legends

interactiveTooltip

logical, if TRUE, add hoover functionality showing sample annotation (variables used in the plot) in the plot

interactiveTooltipExtraVars

name of extra variable(s) (in varLabels of the eset) to add in rbokehEsetPlot to label the samples, empty by default

returnAnalysis

logical, if TRUE (FALSE by default), return also the output of the analysis, and the outlying samples in the topElements element if any, otherwise only the plot object

returnEsetPlot

logical, if TRUE return also the esetPlot object

Value

if returnAnalysis is TRUE, return a list:

otherwise return only the plot

Author(s)

Laure Cougnaud

References

L.J.P. van der Maaten and G.E. Hinton (2008). Visualizing High-Dimensional Data Using t-SNE. Journal of Machine Learning Research, 2579–2605

See Also

the function used internally: Rtsne or http://homepage.tudelft.nl/19j49/t-SNE.html for further explanations about this technique.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
library(ALL)
data(ALL)

## complete example (most of the parameters are optional)

# create custom color palette
colorPalette <- c("dodgerblue", colorRampPalette(c("white","dodgerblue2", "darkblue"))(5)[-1], 
	"red", colorRampPalette(c("white", "red3", "darkred"))(5)[-1])

# create tsne
print(esetTsne(eset = ALL, 
	title = "Acute lymphoblastic leukemia dataset \n Tsne complete",
	colorVar = "BT", color = colorPalette,
	shapeVar = "sex", shape = 15:16,
	sizeVar = "age", sizeRange = c(2, 6),
	symmetryAxes = "separate",
	topSamples = 15, topSamplesVar = "cod", topSamplesColor = "black",
	topSamplesJust = c(1, 0), topSamplesCex = 3)
)

Example output

Loading required package: Biobase
Loading required package: BiocGenerics
Loading required package: parallel

Attaching package: 'BiocGenerics'

The following objects are masked from 'package:parallel':

    clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,
    clusterExport, clusterMap, parApply, parCapply, parLapply,
    parLapplyLB, parRapply, parSapply, parSapplyLB

The following objects are masked from 'package:stats':

    IQR, mad, sd, var, xtabs

The following objects are masked from 'package:base':

    Filter, Find, Map, Position, Reduce, anyDuplicated, append,
    as.data.frame, cbind, colMeans, colSums, colnames, do.call,
    duplicated, eval, evalq, get, grep, grepl, intersect, is.unsorted,
    lapply, lengths, mapply, match, mget, order, paste, pmax, pmax.int,
    pmin, pmin.int, rank, rbind, rowMeans, rowSums, rownames, sapply,
    setdiff, sort, table, tapply, union, unique, unsplit, which,
    which.max, which.min

Welcome to Bioconductor

    Vignettes contain introductory material; view with
    'browseVignettes()'. To cite Bioconductor, see
    'citation("Biobase")', and for packages 'citation("pkgname")'.

Warning message:
Removed 5 rows containing missing values (geom_point). 

esetVis documentation built on Nov. 8, 2020, 4:51 p.m.