Skip to main content

Plexora

Plexora is a viewer for multiplexed imaging and spatial transcriptomics. It opens large images where they are, without converting or copying them, draws segmentation masks and cell tables over them, and runs on a laptop, in a notebook, on a remote workstation or on an HPC cluster.

Documentation: https://nirmallab.github.io/plexora/

The Plexora viewer showing a multiplexed tissue image

Install

pip install plexora
plexora

plexora starts the viewer and opens it in your browser. Python 3.12 or 3.13 is required. A desktop app for macOS, Windows and Linux is on the releases page. See Installation.

Quick start

In the app, choose File → Import Sample… and pick an image, a folder of files, or a Xenium or Visium run. From Python:

import plexora

name = plexora.import_sample("slide.ome.tif", "slide_mask.tif", "cells.csv", wait=True)
plexora.view(name)   # in a notebook, shows the viewer inline

More in the quick start.

What it reads

  • Multiplexed images: OME-TIFF, TIFF, QPTIFF, OME-Zarr (local, https:// or s3://)
  • Brightfield whole-slide images: SVS, NDPI, SCN, BIF, MRXS, DICOM
  • 10x Genomics Xenium, Visium and Visium HD output folders
  • SpatialData stores and AnnData tables; CSV, TSV and Parquet cell tables
  • Segmentation masks (label images) and cell boundary polygons

The full list is in Supported formats.

Where to go next

I want to Read
Use the viewer and its tools Viewer, Tools
Script it from Python or a notebook Python, Notebooks
Look at data on a remote machine or cluster Remote and HPC
Write a plugin Plugin development
Look up a function or command Python API, Command line

Developing Plexora

git clone https://github.com/nirmallab/plexora.git
cd plexora
pip install -e ".[dev]"
python -m pytest -q -p no:randomly

See Development setup and, for the documentation site in website/, CONTRIBUTING_DOCS.md. Engineering notes live in docs/internal/.

Usage data

Plexora can send anonymous usage counts -- which features and plugins are used, how long tiles take to draw, which kinds of errors occur -- so we know what to improve. It never sends file, project, marker or gene names, cell data, coordinates, usernames, machine names, paths, prompts or anything typed into a tool; every field it may send is on an allowlist (plexora/telemetry/schema.py). Everything is queued on this machine first, nothing in Plexora waits for it, and it works air-gapped exactly as before.

It is on by default and a notice says so the first time. Any one of these turns it off:

plexora telemetry off        # or: Settings > Usage data
export DO_NOT_TRACK=1        # honoured everywhere
export PLEXORA_TELEMETRY=off

plexora telemetry preview prints exactly what the next upload would contain, and plexora telemetry status says which of the above is in force. docs/TELEMETRY.md has the details.

Free and Paid

Free is everything described above: every image, table and modality, every tool's manual features, remote, HPC and notebook viewing, and export. It needs no account, no activation and no network, and it never asks.

Paid adds AI features: guided gating sessions an agent runs with you, and the evidence and analysis tools it uses. Activate a seat key or install an offline licence file in Settings > License, or from a terminal:

plexora license status
plexora license activate PLEX-XXXX-XXXX-XXXX-XXXX              # this computer
plexora license activate PLEX-XXXX-XXXX-XXXX-XXXX --cluster    # a whole HPC cluster, once, from a login node
plexora license install lab.plexora                            # an offline licence file
plexora license trial                                          # 30 days of Paid

A licence check sends the licence certificate and a hash that identifies the environment. It never sends your data, file names, machine names or anything about what you are looking at. When a licence ends, everything Free keeps working, and every gate, ROI, figure and export you made, with or without AI, stays yours and editable. AI model providers your agent uses bill you separately. docs/LICENSING.md has the details.

License

Plexora is released under the Plexora Academic License 1.0 (see LICENSE). It is not an open source license. In short:

Academic research, teaching, personal study ✅ Free
Use by a nonprofit or government research institution ✅ Free (whatever the funding source)
Redistributing Plexora unmodified, with the license attached ✅ Allowed
Patching your own copy to fix a bug or a compatibility problem ✅ Allowed
Publishing a fork, a patched build, or a renamed version ❌ Not allowed
Commercial use of any kind ❌ Requires a paid license

Plugins are a deliberate exception. Anything you build against the documented extension interfaces — the plexora.plugins entry point group and the plexora.api package — is yours. You may distribute and sell your plugin under whatever license you like, and you do not need our permission. Extending Plexora through the plugin API is the supported way to change what it does; editing its source is not.

For a commercial license, contact Ajit Johnson Nirmal ajitjohnson.n@gmail.com.

Some bundled components carry their own licenses, which are unaffected by the above — see section 8 of LICENSE.

Metadata

Release files for plexora 0.0.27

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for plexora 0.0.27
File Size Uploaded
plexora-0.0.27.tar.gz 11.7 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for plexora 0.0.27
File Interpreter ABI Platform
plexora-0.0.27-py3-none-any.whl Python 3 none any Details

Total release size: 22.8 MB

Release files / plexora-0.0.27.tar.gz

Download URL plexora-0.0.27.tar.gz
Size 11.7 MB
Tags Source
SHA-256 checksum
How to use checksums
015de8043e7d2402bcc250204135b0ff17853e47fbf59ebe1c5b8558226e8775
BLAKE2b-256 checksum
How to use checksums
2eb07710cd74b3f96f18937871baf1e9603a5597b594e40f4cc2f41764fc46bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.14

Release files / plexora-0.0.27-py3-none-any.whl

Download URL plexora-0.0.27-py3-none-any.whl
Size 11.1 MB
Tags Python 3
SHA-256 checksum
How to use checksums
c589d6cc9337d279ce042ea7e1c9bef2d66bd4adcfe0e29681aa9b84bf85fd91
BLAKE2b-256 checksum
How to use checksums
7273db2f1440e17304ac23f8291f34bd4e57b93f595e8952cf20eced1f51d885
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.14

Release history Release notifications | RSS feed

This release

0.0.27 This release

2 release files

0.0.26

2 release files

0.0.23

2 release files

0.0.22

2 release files

0.0.21

2 release files

0.0.20

2 release files

0.0.19

2 release files

0.0.17

2 release files

0.0.16

2 release files

0.0.13

2 release files

0.0.12

2 release files

0.0.11

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page