tsnes#

tsnes(data: AnnData, keys: Sequence[str], *, mapping: FeatureSpec | None = None, use_key: str | None = None, xy: tuple[int, int] | Sequence[int] = (1, 2), size: float | None = 0.8, variable_keys: Sequence[str] | str | None = None, tooltips: Literal['none'] | Sequence[str] | FeatureSpec | None = None, interactive: bool = False, observations_name: str = 'Barcode', color_low: str = '#e6e6e6', color_mid: str | None = None, color_high: str = '#377eb8', mid_point: Literal['mean', 'median', 'mid'] | float = 'median', axis_type: Literal['axis', 'arrow'] | None = None, arrow_length: float = 0.25, arrow_size: float = 1, arrow_color: str = '#3f3f3f', arrow_angle: float = 10, legend_ondata: bool = False, ondata_size: float = 12, ondata_color: str = '#3f3f3f', ondata_fontface: str = 'bold', ondata_family: str = 'sans', ondata_alpha: float = 1, ondata_weighted: bool = True, share_labels: bool = False, share_axis: bool = False, layers: Sequence[FeatureSpec | LayerSpec] | FeatureSpec | LayerSpec | None = None, ncol: int | None = None, sharex: str | None = None, sharey: str | None = None, widths: list[float] | None = None, heights: list[float] | None = None, hspace: float | None = None, vspace: float | None = None, fit: bool | None = None, align: bool | None = None, guides: str = 'auto', **point_kwargs) SupPlotsSpec#

Grid of dimensionality reduction plots.

Parameters:
  • data (AnnData) – The AnnData object of the single cell data.

  • keys (list[str] | tuple[str] | Sequence[str]) – The keys (cell features) to color the points by. e.g., ‘leiden’ or ‘louvain’ to color by clusters or gene name for expression.

  • mapping (FeatureSpec | None, default None) – Additional aesthetic mappings for the plot, the result of aes().

  • xy (tuple[int, int] | Sequence[int], default (1, 2)) – The x and y axes to use for the plot. e.g., (1, 2) for UMAP1 and UMAP2.

  • use_key (str, default None) – The specific key to use for the desired dimensions. e.g., ‘X_umap_2d’ or ‘X_pca_2d’. Otherwise, the function will decide on the key based on the dimensions.

  • size (float | None, default 0.8) – The size of the points.

  • variable_keys (str | Sequence[str] | None, default None) – Variable keys to add to the DataFrame. If None, no additional keys are added.

  • tooltips ({'none'} | Sequence[str] | FeatureSpec | None, default None) – Tooltips to show when hovering over the geom. Accepts Sequence[str] or result of layer_tooltips() for more complex tooltips. Use ‘none’ to disable tooltips.

  • interactive (bool, default False) – Whether to make the plot interactive.

  • cluster_name (str, default 'Cluster') – The name to overwrite the clustering key in the dataframe and the plot.

  • observations_name (str, default 'Barcode') – The name to give to barcode (or index) column in the dataframe.

  • color_low (str, default '#e6e6e6') –

    The color to use for the low end of the color gradient.

    Accepts:

    • Applies to continuous (non-categorical) data.

  • color_mid (str, default None) –

    The color to use for the middle part of the color gradient.

    Accepts:

    • Applies to continuous (non-categorical) data.

  • color_high (str, default '#377EB8') –

    The color to use for the high end of the color gradient.

    Accepts:

    • Applies to continuous (non-categorical) data.

  • mid_point ({'mean', 'median', 'mid'} | float, default 'median') – The midpoint (in data value) of the color gradient. Can be ‘mean’, ‘median’ and ‘mid’ or a number (float or int). - If ‘mean’, the midpoint is the mean of the data. - If ‘median’, the midpoint is the median of the data. - If ‘mid’, the midpoint is the mean of ‘min’ and ‘max’ of the data.

  • axis_type ({'axis', 'arrow'} | None) – Whether to use regular axis or arrows as the axis.

  • arrow_length (float, default 0.25) – Length of the arrow head (px).

  • arrow_size (float, default 1) – Size of the arrow.

  • arrow_color (str, default '#3f3f3f') –

    Color of the arrows.

    Accepts:

arrow_anglefloat, default=10

Angle of the arrow head in degrees.

legend_ondata: bool, default=False

whether to show legend on data

ondata_size: float, default=12

size of the legend (text) on data.

ondata_color: str, default=’#3f3f3f’

color of the legend (text) on data

ondata_fontface: str, default=’bold’

fontface of the legend (text) on data. https://lets-plot.org/python/pages/aesthetics.html#font-face

ondata_family: str, default=’sans’

family of the legend (text) on data. https://lets-plot.org/python/pages/aesthetics.html#font-family

ondata_alpha: float, default=1

alpha (transparency) of the legend on data.

ondata_weighted: bool, default=True

whether to use weighted mean for the legend on data. If True, the weighted mean of the group means is used. If False, the arithmetic mean of the group means is used.

share_labelsbool, default=False

Whether to share the labels across all plots. If True, only X labels on bottom row and Y labels on left column are shown.

share_axisbool, default=False

Whether to share the axis across all plots. If True, only X axis on bottom row and Y axis on left column is shown.

layersSequence[FeatureSpec|LayerSpec] | FeatureSpec | LayerSpec | None, default=None

Layers to add to all the plots in the grid.

ncolint, default=None

Number of columns in grid. If not specified, shows plots horizontally, in one row.

sharex, shareybool, default=None

Controls sharing of axis limits between subplots in the grid. all/True - share limits between all subplots. none/False - do not share limits between subplots. row - share limits between subplots in the same row. col - share limits between subplots in the same column.

widthslist[float], default=None

Relative width of each column of grid, left to right.

heightslist[float], default=None

Relative height of each row of grid, top-down.

hspacefloat | None, default=None

Cell horizontal spacing in px.

vspacefloat | None, default=None

Cell vertical spacing in px.

fitbool, default=True

Whether to stretch each plot to match the aspect ratio of its cell (fit=True), or to preserve the original aspect ratio of plots (fit=False).

alignbool, default=False

If True, align inner areas (i.e. “geom” bounds) of plots. However, cells containing other (sub)grids are not participating in the plot “inner areas” layouting.

guidesstr, default=’auto’
Specifies how guides (legends and colorbars) should be treated in the layout.
  • ‘collect’ collect guides from all subplots, removing duplicates.

  • ‘keep’ keep guides in their original subplots; do not collect at this level.

  • ‘auto’ allow guides to be collected if an upper-level layout uses guides=’collect’;

otherwise, keep them in subplots. Duplicates are identified by comparing visual properties: For legends: title, labels, and all aesthetic values (colors, shapes, sizes, etc.). For colorbars: title, domain limits, breaks, and color gradient.

For more information on gggrid parameters: https://lets-plot.org/python/pages/api/lets_plot.gggrid.html

**point_kwargs

Additional parameters for the geom_point layer. For more information on geom_point parameters, see: https://lets-plot.org/python/pages/api/lets_plot.geom_point.html

Returns:

SupPlotsSpec – Grid of dimensionality reduction plots.

Examples

Grid of dimensionality reduction plots via multiple keys.

import scanpy as sc
from lets_plot import *

import cellestial as cl

data = sc.read_h5ad("data/pbmc3k_pped.h5ad")

cl.tsnes(
    data,
    keys=["cell_type_lvl1", "sample", "MALAT1", "YBX3"],
    axis_type="arrow",
    color_high="red",
    ncol=2,
)