scATrans
scATrans is a Python package for mechanism-aware single-cell differential analysis. A standard differential expression (DE) step defines which genes changed; scATrans partitions those genes into transcription-driven versus stabilization-driven classes using the nascent (unspliced) RNA residual—a distinction that total-count fold change alone cannot resolve.
| Component | Role |
|---|---|
| DE | Gene-list membership |
| Mechanism annotation | Residual-based transcription vs. stabilization labels |
| Detection (optional) | add_nascent_score=True adds active-transcription scores; does not drive mechanism labels |
The primary workflow requires spliced and unspliced layers (or mature and nascent layers, e.g. from kb-python) and is most informative at the pathway or program level. The package also supports conventional DE without nascent layers (scanpy, PyDESeq2 pseudobulk, linear mixed models, optional Memento), enrichment (ORA, GSEA, GO, KEGG), and plotting.
Full documentation: Read the Docs.
Requirements
- Python 3.10+
- AnnData object with a condition column in
.obs - For mechanism analysis:
spliced/unsplicedormature/nascentlayers
Installation
pip install scatrans
# or: conda install -c conda-forge -c bioconda scatrans
Optional extras (scVelo, gene-feature CLI, PyDESeq2, Memento, GSEA) and development installs: installation guide.
Quickstart
import scatrans as scat
result = scat.partition_de_by_mechanism(
adata, # AnnData with spliced/unspliced or mature/nascent layers
groupby="condition",
target_group="Disease",
reference_group="Control",
organism="mouse",
de="builtin", # method name, kwargs dict, DataFrame, or callable
# add_nascent_score=True, # optional detection columns
gene_sets=my_pathways, # optional program-level table
)
result.regime # reliability pre-flight (global unspliced fraction)
result.selected # DE-selected genes with mechanism annotation
result.programs # program-level table when gene_sets is provided
Further reading:
- Quickstart
- Tutorials
- User Guide
- FAQ (scope and limitations)
- Statistical Guidance
Status
scATrans is 0.10.x (Beta). Prefer import scatrans as scat and names in
scatrans.__all__, scat.pl, and scat.qc. See
API stability.
Citation
If you use scATrans in published work, cite the software via the Zenodo DOI
above and the manuscript when available. See CITATION.cff.
License
Software: Apache License 2.0. Bundled gene-set data (GO, KEGG) 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file scatrans-0.10.7.tar.gz.
File metadata
- Download URL: scatrans-0.10.7.tar.gz
- Upload date:
- Size: 14.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f71020863a650d175a2b733a308523bca1589e01226f48e2758115b386b8859c
|
|
| MD5 |
09562129cfd3dc598a096d1d190f5426
|
|
| BLAKE2b-256 |
ce5174c1e85575e0917f79ec528844c21ba70765b8ce16885f90de6971e894f7
|
Provenance
The following attestation bundles were made for scatrans-0.10.7.tar.gz:
Publisher:
publish.yml on leelieber2025/scATrans
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
scatrans-0.10.7.tar.gz -
Subject digest:
f71020863a650d175a2b733a308523bca1589e01226f48e2758115b386b8859c - Sigstore transparency entry: 2209453614
- Sigstore integration time:
-
Permalink:
leelieber2025/scATrans@ba22e832276bfc9716d4b6952823f97a9e4aa84b -
Branch / Tag:
refs/heads/main - Owner: https://github.com/leelieber2025
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ba22e832276bfc9716d4b6952823f97a9e4aa84b -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file scatrans-0.10.7-py3-none-any.whl.
File metadata
- Download URL: scatrans-0.10.7-py3-none-any.whl
- Upload date:
- Size: 9.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
17a2115508eef89353981354c846c2d553ee126df730813da9c02ff8456539f5
|
|
| MD5 |
55c00c4c7a81ac248eb0b924898a40b9
|
|
| BLAKE2b-256 |
ec7934290c7f75dee172d596187df1a782e007cc05cb95d235d05ed9adf91f90
|
Provenance
The following attestation bundles were made for scatrans-0.10.7-py3-none-any.whl:
Publisher:
publish.yml on leelieber2025/scATrans
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
scatrans-0.10.7-py3-none-any.whl -
Subject digest:
17a2115508eef89353981354c846c2d553ee126df730813da9c02ff8456539f5 - Sigstore transparency entry: 2209453635
- Sigstore integration time:
-
Permalink:
leelieber2025/scATrans@ba22e832276bfc9716d4b6952823f97a9e4aa84b -
Branch / Tag:
refs/heads/main - Owner: https://github.com/leelieber2025
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ba22e832276bfc9716d4b6952823f97a9e4aa84b -
Trigger Event:
workflow_dispatch
-
Statement type: