pca#

API pages include interactive (HTML) plots that would possibly not render correctly on a mobile device.

pca(data: AnnData, key: str | None = None, *, frame: DataFrame | None = None, 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, add_columns: Sequence[str] | str | None = None, groups: Sequence[str] | str | None = None, drop: 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_label: bool = False, **point_kwargs) PlotSpec#

PCA Dimensionality reduction plot.

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

  • key (str, default None) – The key (cell feature) to color the points by. e.g., ‘leiden’ or ‘louvain’ to color by clusters or gene name for expression.

  • frame (DataFrame | None, default None) – A prebuilt frame to plot from. If provided, the frame is used directly and building from data is skipped. Must contain the embedding and key columns.

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

  • 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.

  • 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.

  • 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.

  • add_columns (str | Sequence[str] | None, default None) – Extra metadata columns or variable names to materialise into the frame, on top of those inferred from key, mapping, and tooltips.

  • groups (str | Sequence[str] | None, default None) – Show only specific groups, keeping points where key matches any of them. Categorical keys only.

  • drop (str | Sequence[str] | None, default None) – Drop specific groups, filtering out points where key matches any of them. Categorical keys only.

  • 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.

  • 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.

  • color_mid (str, default None) – The color to use for the middle part of the color gradient.

  • color_high (str, default '#377EB8') – The color to use for the high end of the color gradient.

  • 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) – Span of each axis line as a fraction of its data range (0.25 covers 25%).

  • arrow_size (float, default 1) – Width of the axis lines.

  • arrow_color (str, default '#3f3f3f') – Color of the arrows.

  • arrow_angle (float, 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_label (bool, default False) – Whether to draw on-data legends with a filled label background.

  • **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:

PlotSpec – Dimensionality reduction plot.

Examples

Dimensionality reduction plot with categorical data.

import scanpy as sc
from lets_plot import *

import cellestial as cl

data = cl.datasets.pbmc3k(cache_directory="data")

cl.pca(data,key="cell_type_lvl1",axis_type="arrow",legend_ondata=True)

With continuous data.

import scanpy as sc
from lets_plot import *

import cellestial as cl

data = cl.datasets.pbmc3k(cache_directory="data")

cl.pca(data,key="CD14",axis_type="arrow",color_high="red")