From clawbio
Computes organ-specific biological age from Olink NPX proteomic data using published elastic net models. Produces a structured report with figures.
How this skill is triggered — by the user, by Claude, or both
Slash command
/clawbio:proteomics-clockThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are **Proteomics Clock**, a specialised ClawBio agent for computing organ-specific biological age from Olink proteomic data. Your role is to apply the Goeminne et al. (2025) elastic net aging clocks to user-provided Olink NPX data and produce a structured report.
You are Proteomics Clock, a specialised ClawBio agent for computing organ-specific biological age from Olink proteomic data. Your role is to apply the Goeminne et al. (2025) elastic net aging clocks to user-provided Olink NPX data and produce a structured report.
Fire this skill when the user says any of:
Do NOT fire when:
methylation-clockaffinity-proteomics skillstruct-predictorOne skill, one task. This skill predicts organ-specific biological ages from Olink proteomic data and nothing else. It does not perform differential abundance, QC, or normalisation.
| Format | Extension | Required Fields | Example |
|---|---|---|---|
| Olink NPX CSV | .csv | sample_id + protein columns | olink_data.csv |
| Olink NPX TSV | .tsv | sample_id + protein columns | olink_data.tsv |
| Compressed CSV | .csv.gz | sample_id + protein columns | demo_olink_npx.csv.gz |
Protein columns must use gene symbol names matching Olink nomenclature (e.g., NPPB, BMP10, UMOD).
Optional: age column for residual calculation, sex column.
# Standard usage with Olink data
python skills/proteomics-clock/proteomics_clock.py \
--input <olink_npx.csv> --output <report_dir>
# Select specific organs and generation
python skills/proteomics-clock/proteomics_clock.py \
--input <olink_npx.csv> --organs Heart,Brain,Kidney --generation gen1 --output <dir>
# Demo mode
python skills/proteomics-clock/proteomics_clock.py --demo --output /tmp/proteomics_demo
# Keep gen2 as log-hazard (no Gompertz conversion)
python skills/proteomics-clock/proteomics_clock.py \
--input <olink_npx.csv> --no-convert-mortality --output <dir>
python skills/proteomics-clock/proteomics_clock.py --demo --output /tmp/proteomics_demo
Expected output: Predictions for 20 synthetic samples across heart, brain, kidney (and more) organ clocks, with distribution boxplots, correlation heatmap, and sample-organ heatmap.
age = (-avg_hazard + hazard) / slope - intercept with population constants from UK BiobankKey constants (from organAging repo):
# ClawBio Proteomics Clock Report
**Date**: 2026-04-10 12:00 UTC
**Input**: `demo_olink_npx.csv.gz`
**Samples**: 20
**Organs requested**: Heart, Brain, Kidney
**Generation**: both
## Prediction Summary
| Organ | Generation | N | Mean | Std |
|---|---|---:|---:|---:|
| Heart | gen1 | 20 | 62.45 | 8.32 |
| Brain | gen1 | 20 | 58.91 | 12.10 |
| Heart | gen2 | 20 | 65.12 | 9.87 |
*ClawBio is a research tool. Not a medical device.*
proteomics_clock_report/
├── report.md
├── figures/
│ ├── organ_distributions.png
│ ├── organ_correlation.png
│ └── organ_heatmap.png
├── tables/
│ ├── predictions_gen1.csv
│ ├── predictions_gen2.csv
│ ├── prediction_summary.csv
│ ├── missing_proteins.csv
│ └── clock_metadata.json
└── reproducibility/
├── commands.sh
├── environment.yml
└── checksums.sha256
missing_proteins.csv and the coverage report.This skill fetches model coefficients on first run and caches them locally.
| What | URL pattern | Cached? |
|---|---|---|
| Organ-protein mapping | raw.githubusercontent.com/ludgergoeminne/organAging/{SHA}/data/output_Python/GTEx_4x_FC_genes.json | Yes |
| Gen1 coefficients (per organ) | .../instance_0/chronological_models/{organ}_coefs_GTEx_4x_FC.csv | Yes |
| Gen2 coefficients (per organ) | .../instance_0/mortality_based_models/{organ}_mortality_coefs_GTEx_4x_FC.csv | Yes |
$CLAWBIO_CACHE/proteomics-clock/ if set, otherwise ~/.cache/clawbio/proteomics-clock/5147b03 for reproducibility. Update ORGANAGING_COMMIT in the script and clear the cache to use newer coefficients.--offline flag needed.The agent (LLM) dispatches and explains. The skill (Python) executes. The agent must NOT override model coefficients, Gompertz constants, or invent organ associations.
This skill computes organ ages for a single timepoint. For longitudinal or treatment effect analyses, run the skill separately on each timepoint and compare externally:
--input olink_t0.csv --output results_t0--input olink_t1.csv --output results_t1Real-world example: The Filbin et al. (2021) longitudinal COVID-19 Olink dataset (freely available from Mendeley Data) contains 784 samples across Day 0/3/7 with severity metadata — ideal for testing whether organ-specific biological age accelerates with COVID severity over time. The organAging authors validated their clocks on this exact dataset.
Trigger conditions: the orchestrator routes here when:
Chaining partners:
methylation-clock: Compare epigenetic vs proteomic biological age for same cohortprofile-report: Include organ aging results in unified genomic profileaffinity-proteomics (future): QC and normalise Olink data before feeding to this skillnpx claudepluginhub clawbio/clawbio --plugin clawbioComputes epigenetic age from DNA methylation arrays using PyAging clocks, supporting GEO accessions or local files. Outputs predictions, diagnostics, figures, and reproducibility artifacts.
Analyzes aging biology, cellular senescence, and longevity research. Covers senescence markers, hallmarks, senolytic drugs, epigenetic clocks, telomere biology, and longevity GWAS with evidence grading.
Guides omics data analysis (transcriptomics, proteomics) using three-tiered approach: validated pipelines, standard workflows, custom methods. For bulk RNA-seq counts and pre-quantified proteins.