SenSASP: A Unified, Multi-Layer Database of Senescence and SASP Genes
A fully scripted, one-command-reproducible pipeline that unifies four senescence / SASP gene resources onto a single canonical identifier and enriches every gene with cross-species conservation, tissue/cell-type expression, and protein–protein interaction annotation.
Quick start
./main.sh # install deps, run the data pipeline, regenerate all figures
./main.sh --no-figs # data pipeline only (skip the notebook)
Everything is fetched from public APIs at run time — no manual downloads, no credentials. Total runtime is a few minutes (the Human Protein Atlas step makes one request per gene and dominates the wall time).
What it does
| Step | Module | Output |
|---|---|---|
| 1 | step1_acquire.py |
Download CellAge, GenAge, SenMayo, Reactome → data/raw/seed_lists_raw.json |
| 2 | step2_harmonize.py |
Map symbols→Ensembl/UniProt/Entrez via MyGene.info → data/processed/id_map.{json,csv} |
| 3 | step3_unify.py |
Collapse to unique genes on Ensembl ID, record provenance (RQ1) → data/processed/unified_core.json, results/source_overlap.csv |
| 4 | step4_conservation.py |
Mouse + zebrafish orthologs via Ensembl BioMart → data/processed/conservation.json |
| 5 | step5_expression.py |
GTEx v8 (54 tissues) + Human Protein Atlas → data/processed/expression.json |
| 6 | step6_interactions.py |
STRING v12 high-confidence network (score≥700) → data/processed/interaction.json, string_network.json |
| 7 | step7_assemble.py |
Merge all layers → results/senescence_sasp_database.{json,csv} |
| 8 | step8_metrics.py |
Outcome metrics (RQ1/RQ2) → results/build_metrics.json, summary_report.md |
Figures are generated separately from the pipeline outputs by
notebooks/figures.ipynb.
Running individual steps
PYTHONPATH=. python run_pipeline.py # all steps
PYTHONPATH=. python run_pipeline.py 4 5 6 # only these (reuse earlier outputs)
Layout
senescence_db_pipeline/
├── main.sh # one-click reproduction
├── run_pipeline.py # step runner
├── requirements.txt
├── pipeline/ # step1..step8 modules + config.py
├── notebooks/figures.ipynb # all figure-generation code
├── data/raw, data/processed
├── results/ # database + metrics + report
├── figures/ # generated PNGs
└── paper/paper.md # manuscript (Intro/Methods/Data/Results/Discussion)
Data sources
CellAge & GenAge (HAGR), SenMayo (MSigDB SAUL_SEN_MAYO / M45803, Saul et al.
2022), Reactome Cellular Senescence (R-HSA-2559583); annotation via MyGene.info,
Ensembl BioMart, GTEx v8, Human Protein Atlas, and STRING v12.
Web database (GitHub Pages)
The interactive database is served from docs/ via GitHub Pages:
https://xuan13hao.github.io/sensasp
To enable: Settings → Pages → Source: Deploy from branch → Branch: main → Folder: /docs
To regenerate site data after re-running the pipeline:
python3 generate_site_data.py
This rebuilds docs/data/genes.json, genes_full.json, metrics.json, and sources.json.
Key results
1,460 summed source entries → 1,250 unique genes (210 redundant collapsed, 14.4%); 173 genes confirmed by ≥2 sources, 2 (IL6, JUN) by all four. Net-new annotation reaches 95.8% (conservation), 97.8% (expression), 92.9% (interactions), with 89.3% complete across all three layers.
Release files for sensasp-mcp 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| sensasp_mcp-1.0.0.tar.gz | 303.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sensasp_mcp-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 620.4 kB
Release files / sensasp_mcp-1.0.0.tar.gz
| Download URL | sensasp_mcp-1.0.0.tar.gz |
|---|---|
| Size | 303.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7e79c3dbf2be1fd74dbb5db6e89d3603daf48c9ad676b21dbcf7950458d3577a
|
|
BLAKE2b-256 checksum How to use checksums |
237c9e834c43dccc6aa4fd1077864f83c8b25b33ba6705f789343378245c3419
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.12
|
Release files / sensasp_mcp-1.0.0-py3-none-any.whl
| Download URL | sensasp_mcp-1.0.0-py3-none-any.whl |
|---|---|
| Size | 317.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3a9afe0cc90d6b964b4c7d8450d69143d5a989e5c331df32523382c59180e1f8
|
|
BLAKE2b-256 checksum How to use checksums |
18f506cadd9befbfce3a95db221a5f69956b327c279ea8a74918b9d936026969
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.12
|