esetTsne {esetVis} | R Documentation

## plot a t-SNE of an eSet object

### 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

    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 `topSample`s > 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:

- analysis: output of the spectral map analysis, whose elements can be given to the `esetPlotWrapper` function

  - dataPlotSamples: coordinates of the samples

  - esetUsed: expressionSet used in the plot

- topElements: list with top outlying elements if any, possibly genes, samples and gene sets

- plot: the plot output

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

    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)
    )

[Package esetVis version 1.10.0 Index]