Skip to content
Data
Skill

/proteomics-clock

Synthetic 20-sample Olink NPX dataset (26 proteins)

From plugin
clawbio
1.1k97 skills4 commands
Install
$ npx -y skills add ClawBio/ClawBio --skill proteomics-clock --agent claude-code

How 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.md
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 aging

Proteomics 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
Ships withclawbio

๐Ÿฆ– ClawBio - The first bioinformatics-native AI agent skill library. Local-first. Reproducible. Open. Free.

Get the whole plugin