Skip to main content

scATrans

PyPI version PyPI downloads Bioconda Conda downloads Python versions Documentation Status CI License DOI

scATrans answers a simple follow-up after differential expression (DE): among the genes that changed, which look transcription-driven and which look stabilization-driven? It uses the nascent (unspliced) residual on top of a normal DE step—something total-count fold change alone cannot sort out.

Step What it does
DE Chooses which genes make the list
Mechanism Labels those genes (transcription vs. stabilization)
Detection (optional) Extra nascent-activity scores; does not rewrite mechanism labels

Pathway- or program-level summaries (gene_sets=) are usually more useful than single-gene labels. Without spliced/unspliced layers, the package still runs ordinary DE, enrichment, and plots.

Docs: Read the Docs.

What you need

  • Python 3.9+ (tested 3.9–3.12)
  • An AnnData object with a condition column in .obs
  • For mechanism analysis: spliced/unspliced (or mature/nascent) layers
  • Nothing yet? scat.datasets.load_toy() ships a synthetic example — see First run.

Install

pip install scatrans
# or: conda install -c conda-forge -c bioconda scatrans

Optional extras (PyDESeq2, GSEA, scVelo, …): installation guide.

First run

No data on hand yet? This runs standalone, with no download, against a bundled synthetic example — good for checking your install works before touching real data:

import scatrans as scat

adata = scat.datasets.load_toy()  # synthetic, spliced/unspliced included

result = scat.partition_de_by_mechanism(
    adata,
    groupby="condition",
    target_group="Disease",
    reference_group="Control",
    organism="mouse",  # or "human"
    de="builtin",
    # sample_col="sample",   # set this when you have biological replicates
    # gene_sets=my_pathways, # optional pathway / program table
    # induction_matched=True,
)
print(result.regime)           # data-quality check on unspliced capture
print(result.selected.head())  # DE genes + soft mechanism labels
print(result.summary())
# Absolute program placement (optional):
# scat.program_mechanism_permutation_calibrated(adata, gene_sets, de=frozen_de, ...)

Swap in your own AnnData once that works end to end. Don't have spliced/unspliced (or mature/nascent) layers yet? See Preparing spliced/unspliced data for velocyto / kb-python / STARsolo / alevin-fry commands.

That is the recommended entry point. Next:

  1. Quickstart
  2. Tutorials
  3. FAQ if something looks off

Status

0.10.x (Beta). Import as import scatrans as scat and stick to names in scatrans.__all__, scat.pl, and scat.qc. Details: API stability.

Citation

Please cite the preprint:

Li, Z., James, A. W. & Li, S. scATrans: annotating single-cell differential expression as transcription- or stabilization-weighted using unspliced RNA. bioRxiv (2026). doi:10.64898/2026.08.03.740741

For the software itself, cite the Zenodo DOI above. For analyses tied to package version 0.10.9, use scatrans==0.10.9. See CITATION.cff.

License

Software: Apache License 2.0. Bundled GO/KEGG data may carry separate terms—see the license page before commercial redistribution.

Author

Zhao Li (李钊)
Email: leelieber@gmail.com

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scatrans-0.10.10.tar.gz (14.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scatrans-0.10.10-py3-none-any.whl (9.1 MB view details)

Uploaded Python 3

File details

Details for the file scatrans-0.10.10.tar.gz.

File metadata

  • Download URL: scatrans-0.10.10.tar.gz
  • Upload date:
  • Size: 14.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for scatrans-0.10.10.tar.gz
Algorithm Hash digest
SHA256 b154d3cd4cf17806b18add24f01f6f3fc9820df59d545a330314526ec12a6a18
MD5 cdabe71ae5aea0086f66826b983673a5
BLAKE2b-256 beb1bee771573ad820affa8a32468241ebf6dbac096f62d6026e1d9431c4bd2d

See more details on using hashes here.

Provenance

The following attestation bundles were made for scatrans-0.10.10.tar.gz:

Publisher: publish.yml on leelieber2025/scATrans

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scatrans-0.10.10-py3-none-any.whl.

File metadata

  • Download URL: scatrans-0.10.10-py3-none-any.whl
  • Upload date:
  • Size: 9.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for scatrans-0.10.10-py3-none-any.whl
Algorithm Hash digest
SHA256 4b117d698cd38701f5dd3cfe8b4f54d1217350cc7b328c77cdb2efa727ea69b9
MD5 78550bc3e1a11a99fc061bafe1a73c9a
BLAKE2b-256 97158511ecfed1b5363b8b942f9a9299e66a52b4b659f557049d8b7c2170fe50

See more details on using hashes here.

Provenance

The following attestation bundles were made for scatrans-0.10.10-py3-none-any.whl:

Publisher: publish.yml on leelieber2025/scATrans

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.10.16

2 files

0.10.15

2 files

0.10.14

2 files

0.10.13

2 files

0.10.12

2 files

0.10.11

2 files

This release

0.10.10 This release

2 files

0.10.9

2 files

0.10.8

2 files

0.10.7

2 files

0.10.6

2 files

0.10.5

2 files

0.10.4

2 files

0.10.3

2 files

0.10.2

2 files

0.10.1

2 files

0.9.9

2 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