PIASO
Precise Integrative Analysis of Single-cell Omics
PIASO is a Python and Rust toolkit for single-cell omics (scRNA-seq, scATAC-seq and spatial transcriptomics), covering the analysis from raw counts through to the figures in a paper. Performance-critical routines are implemented in Rust.
Installation
Install from PyPI (stable release):
pip install piaso-tools
PIASO needs Python 3.10 or later. Pre-compiled wheels are built for
Linux on x86_64, CPython 3.10, 3.11 and 3.12, and there pip install has
nothing to build. On any other platform or Python (macOS, Windows, Linux on ARM,
Python 3.13 or later), pip builds PIASO from its source distribution, which needs
a Rust toolchain and a C compiler; without them the
installation stops with a build error.
This also installs cytome, the on-disk
dataset format PIASO reads and writes. Nothing extra to install to work with
.cytome files.
Install from GitHub (latest development version; builds from source, so it needs Rust on every platform):
pip install git+https://github.com/genecell/PIASO.git
The bioconda package (conda install -c bioconda piaso) is version 1.0.3, from before
the Rust extension; install from PyPI for the current release.
Documentation
piaso.org: tutorials, API reference and release notes.
Using PIASO with a coding agent
PIASO-for-agents makes the
PIASO ecosystem available to coding agents from one canonical knowledge base,
generating Claude skills, Cursor rules, AGENTS.md, llms.txt, and an MCP
server. Useful if you work in Claude Code, Cursor, Copilot, Codex, Windsurf,
Cline, or Aider and want the agent to know the current API rather than guess it.
Any model with web access can be pointed straight at:
https://piaso.org/llms.txt
https://piaso.org/llms-full.txt
A first analysis
import piaso, cosg
piaso.tl.infog(adata, n_top_genes=3000) # normalize + select
piaso.tl.runSVD(adata, layer="infog", n_components=50, key_added="X_svd")
piaso.tl.neighbors(adata, use_rep="X_svd"); piaso.tl.leiden(adata)
piaso.tl.umap(adata, use_rep="X_svd")
cosg.cosg(adata, groupby="leiden") # marker genes
piaso.pl.embedding(adata, color="leiden")
That whole workflow runs on a plain pip install piaso-tools, with no scanpy
required.
Who this is for
- You have a single-cell dataset and want an analysis, not a toolchain. Reading, QC, normalization, dimensionality reduction, clustering, marker genes, annotation and plotting are one package with one set of conventions.
- Your data outgrew memory. The same function calls run on an
AnnDatain RAM or stream from a cytome file on disk, where peak memory is set by the batch size instead of the cell count. Validated to several million cells. - You care what the figure looks like. The plotting suite and
piaso.settingsare built for publication figures rather than for quick looks. - You work with a coding agent. The API is published in an agent-readable form (see above), so the agent works from the current signatures.
If you only need one method, the pieces are usable on their own: cosg for
markers, cytome for storage.
The ecosystem
PIASO is the analysis layer of a small set of packages that fit together, and each is useful alone:
| PIASO | analysis: normalization, dimensionality reduction, clustering, annotation, plotting |
| cytome · cytome-r | a single-file format for single-cell multi-omics; what PIASO streams from · the same files from R |
| COSG | fast, accurate marker gene and marker region identification |
| cytorete | cell type-specific gene regulatory networks: regulons, their activity and their specificity |
| PIASO-data | genome references and tutorial datasets, fetched and cached on demand |
| PIASO-for-agents | the ecosystem in a form coding agents can read |
| LARIS · Emergene | spatial ligand-receptor analysis · per-cell differential analysis across conditions |
Contributing
Issues and pull requests are welcome at
github.com/genecell/PIASO. Bug
reports are most useful with the output of piaso.__version__ and a minimal
example.
Citation
If PIASO is useful for your research, please consider citing Wu, S.J., Dai, M. et al. Pyramidal neurons proportionately alter cortical interneuron subtypes. Nature (2026). https://doi.org/10.1038/s41586-025-09996-8
Contact
Min Dai dai@broadinstitute.org
Metadata
Release files for piaso-tools 1.2.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| piaso_tools-1.2.8.tar.gz | 928.6 kB | With provenance | Details for piaso_tools-1.2.8.tar.gz |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| piaso_tools-1.2.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.17+ x86-64 | Details for piaso_tools-1.2.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
| piaso_tools-1.2.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.17+ x86-64 | Details for piaso_tools-1.2.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
| piaso_tools-1.2.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.10 | CPython 3.10 | Linux glibc 2.17+ x86-64 | Details for piaso_tools-1.2.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
Total release size: 9.2 MB
Release files / piaso_tools-1.2.8.tar.gz
| Download URL | piaso_tools-1.2.8.tar.gz |
|---|---|
| Size | 928.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d7d94b9e55e88ab2dbe65ebfc077186e36f605c3e9d10c0e570ab2d6269c2c60
|
|
BLAKE2b-256 checksum How to use checksums |
05bf6c56152db308303acf2a77df0c4bc0245ac8ae89948a22990395ff571c75
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.
Transparency logRelease files / piaso_tools-1.2.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | piaso_tools-1.2.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 2.8 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
7cb6f2d84f9cead93b676e15e90574665c9cb879e76bd3cb233b3ec52a637058
|
|
BLAKE2b-256 checksum How to use checksums |
369f592f4cf7845ef2efa7aa3f1cb4184d06f22e51a459ad89f5706f68ec16e1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.
Transparency logRelease files / piaso_tools-1.2.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | piaso_tools-1.2.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 2.8 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
896393206fbbacda78cdc32df34b714095a927a9fe50797c7ca8d175fc382afa
|
|
BLAKE2b-256 checksum How to use checksums |
876a4eebab8a800971f8bce0b6dbdb496d43c6636566e3763a99044a5ccd45c6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.
Transparency logRelease files / piaso_tools-1.2.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | piaso_tools-1.2.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 2.8 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
75b0955383c3c135f7253b5088777b061ab7c105a32d151e6a5208c806ac11b8
|
|
BLAKE2b-256 checksum How to use checksums |
a7bca33cbccfff4eb2b5a3a934631f9e94dbfd46c706bf273252be114478a5aa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.
Transparency logSecurity for piaso-tools 1.2.8
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 4 files in this release have been uploaded with provenance metadata.
Attestation for piaso_tools-1.2.8.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.