scPyviewer: a Python-native interactive viewer from AnnData single-cell data
Abstract
Motivation: Interactive tools that let non-programmers explore an analyzed single-cell dataset, its embeddings, gene expression, cell metadata, and marker genes, have become standard laboratory infrastructure. Every actively maintained tool in this space (ShinyCell, ScRDAVis, sCIRCLE, scViewer) is built on R Shiny and requires a Seurat object as input. Laboratories whose primary analysis pipeline is Python/scanpy, the dominant framework for single-cell RNA-seq, spatial, and multi-omic analysis, therefore have no lightweight, language-native option that pairs a shareable web-based viewer with a scriptable Python API: sharing a scanpy result means either exporting to Seurat first or handing over a notebook that only a programmer can run. Results: We present scPyviewer, a web-based viewer that ingests AnnData objects directly and reproduces the core interaction patterns of the incumbent R Shiny tools without leaving the Python stack. In a feature-parity audit against three actively maintained R Shiny incumbents, scPyviewer matches or exceeds every baseline capability (7/7); among these, it uniquely offers native AnnData ingestion with no Seurat conversion, and cross-dataset comparison over shared genes and matched cell-type composition. Benchmarked head-to-head against the R/Seurat rendering substrate the incumbents are built on, identical operations, identical data, across three datasets spanning 22,315 to roughly 313,000 cells, scPyviewer renders every core view faster at every scale tested (up to 3.6x on a single view) and at a fraction of the memory (5.2x lower on the smallest dataset). At the largest scale tested, the gap becomes categorical rather than incremental: scPyviewer completes every view on a 313,000-cell dataset while the Seurat substrate exhausts an 8 GB memory budget and fails outright. Beyond the interactive app, scPyviewer installs via pip or conda and exposes a public Python API that returns Matplotlib figures and pandas tables for scripted, publication-ready output. Availability and implementation: scPyviewer is implemented in Python 3.11 (scanpy 1.11.5, anndata 0.12.19, streamlit 1.59.2, plotly 6.9.0) and distributed with a one-command reproduction interface that installs pinned dependencies, regenerates the benchmark and all figures, and launches the interactive app. Source code is available at https://github.com/xuan13hao/scPyviewer.git.
02 /Specification & Classification
Click any tag to browse matching papers- Citations
- 0
- Assay
- Research Focus
- Approach
Reproducibility ledger
Nobody has reported trying to reproduce this paper yet. Did you replicate an experiment or run the code? Your report saves the next lab a week.
Sign in to file a reproducibility report.
Related papers
- Single Cell Viewer (SCV): An interactive visualization data portal for single cell RNA sequence data
Shuoguo Wang, Constance Brett, … Kandasamy Ravi·bioRxiv·Jun 12, 2019
- Sciviewer enables interactive visual interrogation of single-cell RNA-Seq data from the Python programming environment
Dylan Kotliar, Andrés Colubri·BioinformaticsPeer-reviewed·Sep 30, 2021
- Comparison of visualisation tools for single-cell RNAseq data
Batuhan Çakır, Martin Prete, … Vladimir Yu Kiselev·NAR Genomics and BioinformaticsPeer-reviewed·Jul 29, 2020
- SCelVis: Powerful explorative single cell data analysis on the desktop and in the cloud
Benedikt Obermayer, Manuel Holtgrewe, … Dieter Beule·PeerJPeer-reviewed·Feb 19, 2020
- SciViewer- An interactive browser for visualizing single cell datasets
Dhawal S. Jain, Sikander Hayat, … Alexis Laux‐Biehlmann·bioRxiv·Feb 14, 2022
- scSVA: an interactive tool for big data visualization and exploration in single-cell omics
Marcin Tabaka, Joshua Gould, Aviv Regev·bioRxiv·Jan 6, 2019