-
Notifications
You must be signed in to change notification settings - Fork 0
Home
PALMS is an open-source, napari-based viewer for 10x Genomics Xenium spatial transcriptomics data, designed as an open alternative to the commercial Xenium Explorer, which ships no Linux build. It runs on Linux, macOS and WSL2. It provides interactive, high-resolution visualisation of cell-level gene expression data directly from Xenium 3.x output directories, with no data export or conversion required. The project is released under the MIT licence and is currently at version 1.0.0.
- Visualise cells coloured by gene expression level or clustering assignment
- Leiden clustering with adjustable resolution, computed directly on the dataset
- Transcript overlay with per-gene point layers and density heatmaps
- Linked UMAP viewer in a separate floating window
- Region-of-interest (ROI) analysis with differential gene expression
- Ligand-receptor interaction analysis (squidpy, over the OmniPath, LigRecExtra and CellPhoneDB databases)
- Neighbourhood enrichment analysis
- Co-occurrence analysis
- Spatial domain inference (Novae integration)
- Copy-number variation (CNV) inference with two backends — inferCNV and CopyKAT
- H&E image registration using landmark-based affine alignment
- ARMS fluorescence image overlay with landmark registration
- Custom segmentation pipeline support
- Annotation tools for labelling cells and regions
- Crop Dataset tool for exporting drawn regions as standalone, independently-openable datasets
- Reproducible analysis: every user action is recorded as a step in a provenance graph, exported as
analysis.pyandanalysis_notebook.ipynband carried across sessions - Customisable analysis templates: read, edit and validate the exact code each analysis button runs, per block, without touching the installation
- Cache health checking and repair, with recovery of user-generated data from a backup store
- On-disk inventory of everything a dataset holds, with selective deletion of viewer-created files
- Linux, macOS, or WSL2 (native Windows is not supported)
- Python 3.10 or newer. conda or mamba only for a source install, or for the CopyKAT CNV backend.
pip install palms
palms /path/to/xenium/output/PyQt6 carries Qt inside its wheel, so there is nothing else to install. To develop PALMS, run the test suite, or use the CopyKAT CNV backend, install from source instead:
./scripts/install.sh
conda activate palmsinstall.sh creates the environment from environment.yml and, on Linux and WSL, applies the environment-linux.yml overlay that a Qt6/GLX fix needs.
For full installation instructions, optional extras, and troubleshooting, see the Installation page.
| Page | Description |
|---|---|
| Installation | Full install guide, launch commands, optional extras, troubleshooting |
| Interface Overview | Canvas, control panel, layers, UMAP window, session persistence |
| Plots Window | The dock every figure is collected in, and where figures are written |
Listed in the order the tabs appear in the control panel. The name in brackets is the label on the tab itself, where it is abbreviated to fit.
| Tab | Group | Description |
|---|---|---|
| Clustering | Cells | Leiden clustering and cluster assignment |
| Cell Coloring (Coloring) | Cells | Colour cells by gene expression or metadata |
| Transcripts | Cells | Per-gene transcript point layers and heatmaps |
| UMAP | Cells | UMAP dimensionality reduction and linked viewer |
| Rank Genes | Genes | Rank marker genes per cluster |
| Markers | Genes | Marker gene panels and scoring |
| Gene Correlation (Correlation) | Genes | Pairwise gene correlation |
| CNV | Genes | Copy-number variation inference (inferCNV and CopyKAT) |
| ROI Analysis (ROI DEG) | Spatial | ROI-based differential gene expression |
| Ligand-Receptor (Lig-Rec) | Spatial | Ligand-receptor interaction analysis |
| Neighborhood Enrichment (Nhood Enrich) | Spatial | Spatial neighbourhood enrichment |
| Co-occurrence (Co-occur) | Spatial | Spatial co-occurrence scoring |
| Spatial Domains (Domains) | Spatial | Spatial domain inference with Novae |
| Annot Nhood | Spatial | Neighbourhood enrichment around annotation regions |
| Annot Distance (Annot Dist) | Spatial | Cell-to-annotation distance analysis |
| H&E Registration (H&E) | Images | H&E image landmark registration |
| ARMS Overlay (ARMS) | Images | ARMS fluorescence image overlay and registration |
| External Images (Ext Images) | Images | Load and align external image files |
| Patches | Images | Tile/patch-based overlays |
| Annotations | Tools | Draw and label annotation shapes |
| Segmentation | Tools | Custom cell segmentation pipeline |
| Crop Dataset | Tools | Export drawn regions as standalone datasets |
| Notebook | Tools | Recorded analysis steps, notebook and script export |
| Dataset | Tools | On-disk inventory and selective deletion |
| Cache | Tools | Cache health check, repair and recovery |
| Templates | Tools | View and edit the code each analysis button runs |
| Tutorial | Description |
|---|---|
| Tutorial-Getting-Started | Load a dataset and explore the interface |
| Tutorial-Clustering | Run Leiden clustering and inspect marker genes |
| Tutorial-HE-Registration | Align an H&E image to the Xenium coordinate space |
| Tutorial-ARMS-Overlay | Overlay and register an ARMS fluorescence image |
| Tutorial-ROI-Analysis | Draw ROIs and run differential gene expression |
| Tutorial-Annotations | Annotate cells and export results |
| Tutorial-Recovering-a-Cache | Diagnose and repair a damaged zarr cache without losing your work |
| Page | Description |
|---|---|
| Analysis Templates | What every analysis actually computes, its contract, and its full default source |
| API Reference | Calling the loading, analysis and persistence functions directly from a notebook |
Reference
Cells
Genes
Spatial
- ROI Analysis
- Ligand-Receptor
- Neighborhood Enrichment
- Co-occurrence
- Spatial Domains
- Annot Nhood
- Annot Distance
Images
Tools
Tutorials
- Getting Started
- Clustering and DEG
- H&E Registration
- ARMS Overlay
- ROI Analysis
- Annotations
- Recovering a Cache