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

This uses a bundled synthetic AnnData (load_toy()). No download. Swap in your own object after the call works.

import scatrans as scat

adata = scat.datasets.load_toy()  # Control/Disease, sample, spliced/unspliced

result = scat.partition_de_by_mechanism(
    adata,
    groupby="condition",
    target_group="Disease",
    reference_group="Control",
    organism="mouse",          # "human" for human gene symbols
    sample_col="sample",       # toy has this column; pass yours when you have replicates
)
print(result.regime)           # capture quality (reliability in [0, 1])
print(result.selected.head())  # DE genes + mechanism labels
print(result.summary())        # cutoffs used, how many genes were selected

What to expect:

  • result.selected is the DE gene list. Mechanism columns annotate it; they do not drop genes.
  • Default gates are padj < 0.05 and logFC > 1.0. If selected is empty, lower logfc_cutoff (for example 0.25) or check the contrast.
  • Omit sample_col only when you have no biological replicates (cell-level DE).
  • Per-gene mechanism_class is exploratory. For claims, pass gene_sets= and/or run program_mechanism_permutation_calibrated.

No spliced/unspliced (or mature/nascent) layers? You can still run DE and enrichment — see Quickstart. To build those layers: Preparing spliced/unspliced data.

Next: Quickstart · Tutorials · FAQ

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. Pin the installed version in Methods (this tree is scatrans==0.10.11). 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.11.tar.gz (14.3 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.11-py3-none-any.whl (9.1 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: scatrans-0.10.11.tar.gz
  • Upload date:
  • Size: 14.3 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.11.tar.gz
Algorithm Hash digest
SHA256 bc12a63bf197ae2f0cc3d2386b6cef241438a6de2727a1f374d0398806de62cb
MD5 fc39142b8055bfd887d0d51096aed5b3
BLAKE2b-256 63c3cfc49456a5832fa8ea58e62166a796a1293e276a29f6c4b100e83b6fed74

See more details on using hashes here.

Provenance

The following attestation bundles were made for scatrans-0.10.11.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.11-py3-none-any.whl.

File metadata

  • Download URL: scatrans-0.10.11-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.11-py3-none-any.whl
Algorithm Hash digest
SHA256 f3b7afb6a88d7c8478808d79dc8965164291c1b134d7ec2f857bb71bf2152297
MD5 96f4c580861919452c12679f59d7921f
BLAKE2b-256 9273eb3053ad533b14ba566fe109d2abda37329fdaa680c3ea61bbc031a3d19b

See more details on using hashes here.

Provenance

The following attestation bundles were made for scatrans-0.10.11-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

This release

0.10.11 This release

2 files

0.10.10

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