/proteomics-clock
Synthetic 20-sample Olink NPX dataset (26 proteins)
$ npx -y skills add ClawBio/ClawBio --skill proteomics-clock --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition โ
- You can call itInvoke it directly when you want it.
- Slash command
/proteomics-clock
Context preview
The summary Claude sees to decide when to auto-load this skill.
Synthetic 20-sample Olink NPX dataset (26 proteins)
SKILL.md
proteomics-clock.SKILL.mdname: proteomics-clock
description: Compute organ-specific biological age from Olink proteomic data using Goeminne et al. (2025) elastic net aging
clocks.
license: MIT
metadata:
version: 0.1.0
author: Maria Dermit
domain: proteomics
tags:
- proteomics
- aging
- olink
- organ-clock
- biological age
- Goeminne
inputs:
- name: input_file
type: file
format:
- csv
- tsv
- csv.gz
- tsv.gz
description: Olink NPX protein expression table (samples x proteins)
required: true
outputs:
- name: report
type: file
format: md
description: Organ aging analysis report
dependencies:
python: '>=3.11'
packages:
- pandas>=2.0
- numpy>=1.24
- matplotlib>=3.7
- seaborn>=0.12
- requests>=2.28
demo_data:
- path: data/demo_olink_npx.csv.gz
description: Synthetic 20-sample Olink NPX dataset (26 proteins)
endpoints:
cli: python skills/proteomics-clock/proteomics_clock.py --input {input_file} --output {output_dir}
openclaw:
requires:
bins:
- python3
always: false
emoji: ๐ฐ๏ธ
homepage: https://github.com/ClawBio/ClawBio
os:
- darwin
- linux
install:
- kind: pip
package: pandas
- kind: pip
package: numpy
- kind: pip
package: matplotlib
- kind: pip
package: seaborn
- kind: pip
package: requests
trigger_keywords:
- proteomics clock
- organ aging
- proteomic clock
- olink clock
- organ clock
- goeminne
- plasma protein aging
- organ-specific agingProteomics Clock
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.
Trigger
**Fire this skill when the user says any of:**
- "organ aging from proteomics"
- "proteomic clock" or "proteomics clock"
- "olink aging" or "olink clock"
- "Goeminne aging models"
- "plasma protein aging clocks"
- "organ-specific biological age"
- "predict organ age from Olink"
**Do NOT fire when:**
- User asks about methylation/epigenetic clocks โ route to `methylation-clock`
- User asks about Olink differential abundance โ route to future `affinity-proteomics` skill
- User asks about general protein structure โ route to `struct-predictor`
Why This Exists
- **Without it**: Researchers must manually download coefficients from the organAging GitHub repo, write R/Python scripts to multiply NPX values by weights, handle missing proteins, and convert mortality hazards to years
- **With it**: One command produces organ-specific biological age predictions, coverage reports, figures, and reproducibility bundles
- **Why ClawBio**: All coefficients come directly from the published organAging repo; no hallucinated parameters
Core Capabilities
1. **Multi-organ prediction**: 23 organ-specific clocks (Adipose through Thyroid, plus Organismal, Multi-organ, Conventional) 2. **Two generations**: Gen1 (chronological age) and Gen2 (mortality-based with Gompertz conversion to years) 3. **Missing protein reporting**: Tracks which proteins are absent per organ, reports coverage percentage 4. **Runtime coefficient download**: Fetches latest coefficients from GitHub, caches locally
Scope
**One 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.
Input Formats
| 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.
Workflow
1. **Load** input Olink NPX data (CSV/TSV) 2. **Download** elastic net coefficients from organAging GitHub (cached after first run) 3. **Predict** for each organ: gen1 age = intercept + sum(NPX * coef); gen2 hazard = sum(NPX * coef) 4. **Convert** gen2 log-hazards to years via Gompertz transform (optional) 5. **Report** missing proteins per organ, prediction summary, figures, reproducibility bundle
CLI Reference
# 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>
Demo
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.
Algorithm / Methodology
1. **Coefficient source**: Elastic net models trained on UK Biobank Olink Explore 3072 data (Goeminne et al. 2025) 2. **Gen1 (chronological)**: Regularised linear regression trained to predict chronological age. Output = intercept + weighted sum of NPX values 3. **Gen2 (mortality-based)**: Cox elastic net trained on time-to-death. Output = relative log(mortality hazard) 4. **Gompertz conversion**: Assumes `age = (-avg_hazard + hazard) / slope - intercept` with population constants from UK Biobank 5. **Missing proteins**: Ignored (co
Read more
name: proteomics-clock
description: Compute organ-specific biological age from Olink proteomic data using Goeminne et al. (2025) elastic net aging
clocks.
license: MIT
metadata:
version: 0.1.0
author: Maria Dermit
domain: proteomics
tags:
- proteomics
- aging
- olink
- organ-clock
- biological age
- Goeminne
inputs:
- name: input_file
type: file
format:
- csv
- tsv
- csv.gz
- tsv.gz
description: Olink NPX protein expression table (samples x proteins)
required: true
outputs:
- name: report
type: file
format: md
description: Organ aging analysis report
dependencies:
python: '>=3.11'
packages:
- pandas>=2.0
- numpy>=1.24
- matplotlib>=3.7
- seaborn>=0.12
- requests>=2.28
demo_data:
- path: data/demo_olink_npx.csv.gz
description: Synthetic 20-sample Olink NPX dataset (26 proteins)
endpoints:
cli: python skills/proteomics-clock/proteomics_clock.py --input {input_file} --output {output_dir}
openclaw:
requires:
bins:
- python3
always: false
emoji: ๐ฐ๏ธ
homepage: https://github.com/ClawBio/ClawBio
os:
- darwin
- linux
install:
- kind: pip
package: pandas
- kind: pip
package: numpy
- kind: pip
package: matplotlib
- kind: pip
package: seaborn
- kind: pip
package: requests
trigger_keywords:
- proteomics clock
- organ aging
- proteomic clock
- olink clock
- organ clock
- goeminne
- plasma protein aging
- organ-specific agingProteomics Clock
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.
Trigger
**Fire this skill when the user says any of:**
- "organ aging from proteomics"
- "proteomic clock" or "proteomics clock"
- "olink aging" or "olink clock"
- "Goeminne aging models"
- "plasma protein aging clocks"
- "organ-specific biological age"
- "predict organ age from Olink"
**Do NOT fire when:**
- User asks about methylation/epigenetic clocks โ route to `methylation-clock`
- User asks about Olink differential abundance โ route to future `affinity-proteomics` skill
- User asks about general protein structure โ route to `struct-predictor`
Why This Exists
- **Without it**: Researchers must manually download coefficients from the organAging GitHub repo, write R/Python scripts to multiply NPX values by weights, handle missing proteins, and convert mortality hazards to years
- **With it**: One command produces organ-specific biological age predictions, coverage reports, figures, and reproducibility bundles
- **Why ClawBio**: All coefficients come directly from the published organAging repo; no hallucinated parameters
Core Capabilities
1. **Multi-organ prediction**: 23 organ-specific clocks (Adipose through Thyroid, plus Organismal, Multi-organ, Conventional) 2. **Two generations**: Gen1 (chronological age) and Gen2 (mortality-based with Gompertz conversion to years) 3. **Missing protein reporting**: Tracks which proteins are absent per organ, reports coverage percentage 4. **Runtime coefficient download**: Fetches latest coefficients from GitHub, caches locally
Scope
**One 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.
Input Formats
| 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.
Workflow
1. **Load** input Olink NPX data (CSV/TSV) 2. **Download** elastic net coefficients from organAging GitHub (cached after first run) 3. **Predict** for each organ: gen1 age = intercept + sum(NPX * coef); gen2 hazard = sum(NPX * coef) 4. **Convert** gen2 log-hazards to years via Gompertz transform (optional) 5. **Report** missing proteins per organ, prediction summary, figures, reproducibility bundle
CLI Reference
# 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>
Demo
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.
Algorithm / Methodology
1. **Coefficient source**: Elastic net models trained on UK Biobank Olink Explore 3072 data (Goeminne et al. 2025) 2. **Gen1 (chronological)**: Regularised linear regression trained to predict chronological age. Output = intercept + weighted sum of NPX values 3. **Gen2 (mortality-based)**: Cox elastic net trained on time-to-death. Output = relative log(mortality hazard) 4. **Gompertz conversion**: Assumes `age = (-avg_hazard + hazard) / slope - intercept` with population constants from UK Biobank 5. **Missing proteins**: Ignored (co
๐ฆ ClawBio - The first bioinformatics-native AI agent skill library. Local-first. Reproducible. Open. Free.
Other skills on clawbio.
- /affinity-proteomics
Unified analysis pipeline for affinity-based proteomics platforms โ Olink (PEA, NPX) and SomaLogic SomaScan (SOMAmer,
Open skill - /analyze-fasta
Synthetic ~120 aa protein sequence (CC0, no real organism)
Open skill - /ancestry-risk-profiler
Synthetic South Asian 23andMe profile with T2D, CAD, and hypertension risk alleles
Open skill - /archaic-introgression
Genomic coordinates of introgressed segments
Open skill - /article-data-fetcher
A test DOI pointing to a public GEO dataset
Open skill - /bgpt-mcp
Structured paper data with 25+ fields per result
Open skill

