scATrans: annotating single-cell differential expression as transcription- or stabilization-weighted using unspliced RNA
Discuss this preprint
Start a discussion What are Sciety discussions?Listed in
This article is not in any list yet, why not save it to one of your lists.Abstract
Single-cell differential expression (DE) reports changes in mature mRNA abundance, but the same fold-change can reflect faster synthesis or slower decay. Metabolic labeling resolves this ambiguity but is costly and cannot be applied retrospectively to the vast majority of published scRNA-seq. scATrans closes this gap using layers every standard pipeline already generates: from DE-selected genes, a reference-corrected unspliced residual annotates each change as transcription- or stabilization-weighted, with no additional experiment. Benchmarked against metabolic-labeling systems with independent kinetic ground truth, the residual separates the two mechanisms at matched mature abundance (ROC-AUC 0.68–0.74, full-length NASC-seq2 K562; 0.59–0.63, 3′ scEU-seq RPE1); effect size scales with intron capture, not model complexity, and explicit kinetic fitting adds nothing over the static contrast. Per-gene, the residual recovers the classical bulk exon–intron contrast (EISA); what scATrans adds is the inference layer single-cell reanalysis actually needs—DE-defined membership, gene-structure correction, a capture-regime reliability pre-flight, induction-matched testing, and a permutation-calibrated program score—so that confident calls are reserved for where the data support them: gene programs, not single genes. Applied to standard 10x data with no labeling, scATrans recovers textbook post-transcriptional biology: a curated AU-rich-element program is called stabilization-weighted in LPS-stimulated PBMCs (confirmed by per-donor pseudobulk DE in an independent four-donor cohort), while a glucocorticoid-response program is called transcription-weighted in dexamethasone-treated A549 cells— opposite mechanisms recovered from unlabeled counts. scATrans turns any spliced/unspliced-resolved DE table into a mechanism-typed one, retrospectively and at scale.
Availability and implementation
scATrans requires Python ≥3.9, interoperates with the scverse ecosystem (AnnData, Scanpy), and is released under the Apache-2.0 license. Install with pip install scatrans or from Bioconda. Documentation and tutorials: https://scatrans.readthedocs.io . Analyses in this manuscript use software version 0.10.9.