Skip to main content

SenSASP: A Unified, Multi-Layer Database of Senescence and SASP Genes

PyPI bioRxiv GitHub Pages License: CC BY 4.0

1,250 unique human senescence / SASP genes unified from CellAge, GenAge, SenMayo, and Reactome, enriched with cross-species conservation, GTEx expression, and STRING interactions.

Xuan, H., Huang, Y., & Bian, J. (2026). SenSASP: A Unified, Multi-Layer Database of Senescence and SASP Genes. bioRxiv 2026.08.26.747427. https://doi.org/10.64898/2026.08.26.747427


Web database

Browse and search all genes interactively — no account or software required:

https://xuan13hao.github.io/sensasp

  • Searchable/sortable/filterable gene table (Tabulator.js)
  • Per-gene detail pages: sensasp/gene.html?gene=TP53
  • Coverage and source statistics
  • One-click citation export (APA + BibTeX)

MCP server (Claude AI integration)

SenSASP ships as an MCP server so Claude and other AI assistants can query the database in natural language.

Install

pip install sensasp-mcp

Connect to Claude Desktop

Add to your Claude Desktop config file:

  • Linux: ~/.config/claude/claude_desktop_config.json
  • Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "sensasp": {
      "command": "python3",
      "args": ["-m", "sensasp_mcp.server"]
    }
  }
}

Restart Claude Desktop. Then ask in natural language:

"Which SenSASP genes are confirmed by all four sources?" "Show me the full annotation for CDKN2A." "What are the top hub genes by STRING interaction degree?"

Zero-install with uvx

uvx sensasp-mcp

Available tools

Tool Description
search_genes Free-text + filter search (source, conservation, expression, STRING degree)
get_gene Full record for one gene: conservation, GTEx tissues, STRING partners
get_database_stats Gene count, coverage percentages, build metadata
list_sources The 4 seed databases with gene counts and URLs
get_top_hub_genes Top-N genes by STRING intra-set interaction degree
get_multi_source_genes All 173 genes confirmed by ≥2 sources

Remote / self-hosted

Run as an HTTP server that any MCP client can reach without a local install:

python3 -m sensasp_mcp.server --transport sse --port 8080

Users connect via:

{ "mcpServers": { "sensasp": { "url": "https://your-server.com/sse" } } }

Pipeline

A fully scripted pipeline that reproduces the database from scratch:

./main.sh            # install deps, run all steps, regenerate figures
./main.sh --no-figs  # data only

Everything is fetched from public APIs at run time — no manual downloads.

Steps

Step Module Output
1 step1_acquire.py CellAge, GenAge, SenMayo, Reactome → data/raw/
2 step2_harmonize.py Symbol → Ensembl/UniProt/Entrez via MyGene.info
3 step3_unify.py Collapse to unique genes, record provenance
4 step4_conservation.py Mouse + zebrafish orthologs (Ensembl BioMart)
5 step5_expression.py GTEx v8 (54 tissues) + Human Protein Atlas
6 step6_interactions.py STRING v12 high-confidence PPI (score ≥ 700)
7 step7_assemble.py Merge all layers → senescence_sasp_database.{json,csv}
8 step8_metrics.py Coverage metrics → build_metrics.json
PYTHONPATH=. python3 run_pipeline.py          # all steps
PYTHONPATH=. python3 run_pipeline.py 4 5 6   # specific steps only

Regenerate site data

After re-running the pipeline:

python3 generate_site_data.py

Rebuilds docs/data/genes.json, genes_full.json, metrics.json, sources.json, and the bundled data in sensasp_mcp/data/.


Repository layout

sensasp/
├── senescence_sasp_database.{json,csv}  # final database
├── generate_site_data.py                # regenerate docs/data/ + sensasp_mcp/data/
├── mcp_server.py                        # standalone MCP server (dev)
├── docs/                                # GitHub Pages site
│   ├── index.html                       # gene table
│   ├── gene.html                        # per-gene detail page
│   ├── cite.html                        # citation page
│   └── data/                            # JSON files served to the browser
├── sensasp_mcp/                         # PyPI package (pip install sensasp-mcp)
│   ├── server.py                        # MCP server with stdio + SSE transport
│   └── data/                            # bundled JSON for offline use
└── senescence_db_pipeline/              # reproducible pipeline
    ├── pipeline/                        # step1..step8 modules
    ├── notebooks/figures.ipynb
    └── results/                         # build metrics, summary report

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.9% (expression), 93.0% (interactions), with 89.4% complete across all three layers.


Citation

@article{Xuan2026.08.26.747427,
  author       = {Xuan, Hao and Huang, Yu and Bian, Jiang},
  title        = {SenSASP: A Unified, Multi-Layer Database of Senescence and SASP Genes},
  elocation-id = {2026.08.26.747427},
  year         = {2026},
  doi          = {10.64898/2026.08.26.747427},
  publisher    = {Cold Spring Harbor Laboratory},
  URL          = {https://www.biorxiv.org/content/early/2026/09/11/2026.08.26.747427},
  journal      = {bioRxiv}
}

Release files for sensasp-mcp 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sensasp-mcp 1.0.1
File Size Uploaded
sensasp_mcp-1.0.1.tar.gz 304.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sensasp-mcp 1.0.1
File Interpreter ABI Platform
sensasp_mcp-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 622.3 kB

Release files / sensasp_mcp-1.0.1.tar.gz

Download URL sensasp_mcp-1.0.1.tar.gz
Size 304.1 kB
Tags Source
SHA-256 checksum
How to use checksums
e16260191091a49250a32109fd8568d40faa5feef4221c0bd825840db6359017
BLAKE2b-256 checksum
How to use checksums
9b6dbfecb32ecc55cc976e3b468f4b15f6bb99b1594f1ae3968a99bdfe125771
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.1-py3-none-any.whl

Download URL sensasp_mcp-1.0.1-py3-none-any.whl
Size 318.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
852d16dfc715b25c4150365695eb5fee3b8ca7aba41750b593763e9741c9d87c
BLAKE2b-256 checksum
How to use checksums
13e9a1698d2e2afae1cef9313665b1ae55140ff45b74e4176f5880bf975e6cb1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0.0

2 release 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