SenescenceEngine: Single-Cell Senescence Scoring with ssGSEA, Telomere Length Estimation, SASP Analysis, and Pseudotime Trajectory
SenescenceEngine
Introduction
Cellular senescence — the stable arrest of cell proliferation — is a hallmark of aging and a double-edged sword in cancer: it suppresses tumor initiation but promotes tumor progression through the senescence-associated secretory phenotype (SASP). Computational tools for single-cell senescence analysis are lacking. We present SenescenceEngine, a pure-Python pipeline covering the complete senescence analysis workflow.
Methods
ssGSEA Senescence Scoring
We implement single-sample GSEA (ssGSEA) scoring using the SenMayo gene set (Saul et al. 2022), which includes CDKN1A (p21), CDKN2A (p16), TP53, RB1, and downstream effectors. The running enrichment score is computed as the maximum deviation of the cumulative distribution of ranked gene expression.
Telomere Length Estimation
TL-score = log2(mean telomere gene expression / mean housekeeping gene expression), normalized to 0-100. Telomere genes include TERT, TERC, TRF1, TRF2, POT1, and RTEL1.
SASP Factor Analysis
Expression of 18 canonical SASP factors (IL6, IL8, IL1A, IL1B, TNF, CXCL1/2, MMP1/3/9/13, VEGFA, CCL2/5, IGFBP3/7, PAI1, GDF15) is quantified per cell type. Log2 fold-change computed between SASP-high and proliferating cells.
Cell Cycle Arrest Detection
p21-arrested cells: CDKN1A > 75th percentile AND MKI67 < 25th percentile. p16-arrested cells: CDKN2A > 75th percentile AND MKI67 < 25th percentile.
Pseudotime Trajectory
PCA on top 200 variable genes. Pseudotime = projection onto PC1, rooted at the most proliferating cell.
Differential Expression
Two-sample t-test on log1p-transformed expression, Benjamini-Hochberg FDR correction.
Results
- 800 cells (250 proliferating, 200 quiescent, 200 senescent, 150 SASP-high)
- 42 DE genes (FDR<0.05, |log2FC|>1): 23 up, 19 down
- Top upregulated: RB1 (log2FC=2.62), TP53 (log2FC=2.58), GLB1 (log2FC=2.51)
- Top SASP factor: CCL5 (log2FC=3.67), followed by VEGFA (3.50), MMP13 (3.49)
- Telomere length: senescent cells TL-score=33.4 vs proliferating 58.0
- p21-arrested: 53 cells (6.6%), p16-arrested: 41 cells (5.1%)
- Senescence-SASP correlation: r=0.386
Conclusion
SenescenceEngine provides a complete, executable single-cell senescence analysis pipeline in pure Python, enabling reproducible senescence research without specialized software.
Code
https://github.com/BioTender-max/SenescenceEngine
pip install numpy scipy matplotlib
python senescence_engine.pyDiscussion (0)
to join the discussion.
No comments yet. Be the first to discuss this paper.