Scanpy compatibility
Supports Scanpy 1.11.5 through 1.12.x.
Scanpy 1.12.4 cannot compute PAGA tree layouts (rt or rt_circular). Supply
positions with pos=... or use another layout. Other supported PAGA calls work.
Available plots
See the guides for examples and the API reference for arguments and defaults.
Plot family |
Available calls |
Guide |
Embeddings |
embedding, umap, tsne, diffmap, draw_graph, pca, pca_scatter
|
UMAP and embeddings |
Cell or gene scatter |
scatter
|
UMAP and embeddings |
PCA diagnostics |
pca_loadings, pca_variance_ratio, pca_overview
|
PCA diagnostics |
Grouped expression |
dotplot, matrixplot, DotPlot, MatrixPlot
|
Expression plots |
Individual-cell expression |
heatmap, clustermap, tracksplot
|
Expression plots, tracks |
Matrices and trees |
matrix, correlation_matrix, dendrogram
|
Expression plots |
Ranked genes |
ranking, rank_genes_groups, rank_genes_groups_dotplot, rank_genes_groups_matrixplot, rank_genes_groups_heatmap
|
Ranked genes |
Embedding density |
embedding_density
|
UMAP and embeddings |
Quality checks |
highest_expr_genes, highly_variable_genes, filter_genes_dispersion, scrublet_score_distribution
|
Data checks |
Profiles and trajectories |
timeseries, timeseries_subplot, timeseries_as_heatmap, sim, dpt_groups_pseudotime, dpt_timeseries
|
Profiles and simulations |
PAGA |
paga, paga_compare, paga_path, paga_adjacency
|
PAGA graphs and paths |
Brush-linked summaries |
EmbeddingSummary
|
Linked expression summaries |
EmbeddingSummary is a GenomeSpy addition, rather than a Scanpy class. It links
an embedding brush to group means, histograms, composition bars or gene tracks.
Not yet available: violin, stacked_violin, StackedViolin, their ranked
violin variants, rank_genes_groups_tracksplot and spatial. Keep using Scanpy
for those plots and its global style-setting helpers.
Shared differences from Scanpy
Analysis stays in Scanpy. Compute embeddings, gene rankings, density and
scores before plotting. Requested missing dendrograms may be computed through
Scanpy; clustermap can compute cell/gene linkage, and PAGA can compute layout
positions. These operations do not rerun the underlying embedding or ranking.
Results are native GenomeSpy charts. Use show=False to receive a chart for
configuration, composition or saving. show=True displays it and ordinarily
returns None; show=None follows Scanpy’s autoshow setting. Builders return
a chart through .to_chart().
Matplotlib objects are not part of this API. ax, return_fig, figure/artist
access and Matplotlib styling objects are unsupported. Unsupported options
raise named errors rather than being silently ignored.
Sizing and colors use GenomeSpy. width and height are plot-area sizes in
logical pixels; axes, titles and legends add space. Native schemes and CSS
colors are supported. Matplotlib colormap and normalization objects are not.
Fonts, palette interpolation and layout can differ from Scanpy’s rendering.
Saving uses the returned chart. chart.save("plot.html", inline=True) creates
interactive HTML; JSON is also supported. Scanpy’s automatic image-saving
options are unsupported. Use save=False if Scanpy autosave is enabled.
Browser interactions work in exported HTML. Reading selected cells back into
Python requires a live notebook kernel. The guides document each plot’s hover,
navigation and selection controls.
Known limitations
Storage support varies by plot. Cell-expression views require resident
expression. They have no fixed cell or value cap. Preparation reads the chosen
genes; its memory use depends on cells × genes. Clustermap computes pairwise
distances unless linkage is supplied.
Linked selections have a boundary mismatch. In EmbeddingSummary, cells
exactly on a brush’s upper or right edge can appear in summaries but be omitted
from the displayed count and Python selection results.
Changing linked heatmap genes can misplace rows. With bundled GenomeSpy
Core 1.2.0, a gene-menu change can leave tiles or value labels at old positions.
Choose genes in Python when reliable row placement is required.
Some legends can clip. Large symbols or vertical legends with multiple
columns can exceed their allocated space in the bundled runtime. Inspect the
final layout, especially with many categories.
Large live counts can slow brushing. Exact counting currently scans plotted
cells on brush updates. The faster native path awaits an adopted published
Core release.