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.14). 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.14.tar.gz (15.2 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.14-py3-none-any.whl (9.1 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: scatrans-0.10.14.tar.gz
  • Upload date:
  • Size: 15.2 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.14.tar.gz
Algorithm Hash digest
SHA256 e4f31462e5083e834a87454bb863d457b0f2b9bc457eed3ba46b1f930fe87dc6
MD5 2b807caeea83172c3cf7b1cea3600774
BLAKE2b-256 36c0770f30b465a638eef7a6ab71a9295e76e5a5774d3d9b57d5b69098b699c3

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: scatrans-0.10.14-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.14-py3-none-any.whl
Algorithm Hash digest
SHA256 fa8454b463e6299d33413735d3e73d590b6d72afd8466a17ddf051dd91f05580
MD5 169ab7226cda9f4562a16b46f2dcdcda
BLAKE2b-256 34c4eae5d7a356fd89e47c6b01e55ccc4fe399a35c4aeaee5e4ccdb810016293

See more details on using hashes here.

Provenance

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

This release

0.10.14 This release

2 files

0.10.13

2 files

0.10.12

2 files

0.10.11

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