From clawbio
Unified analysis pipeline for Olink (NPX) and SomaLogic SomaScan (ADAT) affinity proteomics data. Platform-aware QC, differential abundance, volcano plots, heatmaps, and PCA.
How this skill is triggered — by the user, by Claude, or both
Slash command
/clawbio:affinity-proteomicsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are **Affinity Proteomics**, a specialised ClawBio agent for Olink and SomaLogic SomaScan data analysis. Your role is to run platform-aware QC, differential abundance testing, and visualisation from affinity-based proteomics data.
You are Affinity Proteomics, a specialised ClawBio agent for Olink and SomaLogic SomaScan data analysis. Your role is to run platform-aware QC, differential abundance testing, and visualisation from affinity-based proteomics data.
proteomics-de skill handles mass-spectrometry LFQ data (MaxQuant/DIA-NN) and does not cover affinity-based platforms. This skill fills that gapresult.json includes a workflow state plus read-only follow-up actions for compact report cards| Format | Extension | Platform | Example |
|---|---|---|---|
| Olink NPX | .csv | Olink Explore / Target 96 | olink_demo_npx.csv |
| SomaLogic ADAT | .adat | SomaScan v4.0/v4.1 | example_data.adat (via somadata) |
| Sample metadata | .csv | Both (Olink requires separate file) | olink_demo_meta.csv |
# Olink demo
python skills/affinity-proteomics/affinity_proteomics.py \
--demo --platform olink --output /tmp/olink_demo
# SomaLogic demo
python skills/affinity-proteomics/affinity_proteomics.py \
--demo --platform somascan --output /tmp/soma_demo
# Real Olink data
python skills/affinity-proteomics/affinity_proteomics.py \
--platform olink --input data.csv --meta samples.csv \
--group-col Group --contrast "Case,Control" --output results/
# Via ClawBio runner
python clawbio.py run affprot --demo --platform olink
python clawbio.py run affprot --demo --platform olink
Expected output: Differential abundance report for 80 samples (40 Case / 40 Control) across 40 proteins, with 5 truly differentially expressed proteins recovered, volcano plot, heatmap, PCA, and reproducibility bundle.
report.md — markdown report with QC, differential abundance, and top-protein sectionsresult.json — structured summary with chat_summary_lines, preferred_artifacts, workflow_state, and suggested_actionstables/diff_abundance.tsv — per-protein differential abundance tablefigures/volcano.png, figures/heatmap.png, figures/pca.png — standard demo figuresreproducibility/ — command and software-version metadataThe demo result emits workflow_state.lifecycle: "ready" and offers two read-only actions: Top Proteins and Volcano Summary. In chat, the user sees those labels as numbered options; selecting one runs the stored structured request.
state_id is derived as a SHA-256 hash over a compact deterministic state payload: platform, contrast, protein counts, significant-protein direction counts, and the top protein rows carried in each action request. If a stored request's state_id no longer matches that payload, the skill returns a structured expired result instead of rendering a stale follow-up.
{
"workflow_state": {
"state_schema": "affinity_proteomics.workflow_state.v1",
"state_id": "sha256:...",
"lifecycle": "ready",
"state_label": "differential-abundance-ready",
"description": "OLINK differential abundance results for Case vs Control are available."
},
"suggested_actions": [
{
"action_id": "show-top-proteins",
"label": "Top Proteins",
"estimate": "~5s",
"request": {
"schema": "affinity_proteomics.action_request.v1",
"action": "top-proteins",
"state_schema": "affinity_proteomics.workflow_state.v1",
"state_id": "sha256:...",
"n": 5,
"platform": "olink",
"contrast": ["Case", "Control"],
"total_proteins_tested": 40,
"significant_proteins": 5,
"proteins": [
{"protein_id": "OID00001", "gene": "GENE1", "log2fc": 0.0, "padj": "0.00e+00"}
]
}
}
]
}
Required:
somadata >= 1.2 — SomaLogic ADAT parsingscipy >= 1.10 — statistical testsstatsmodels >= 0.14 — multiple testing correctionmatplotlib >= 3.7 — plottingseaborn >= 0.13 — heatmapsnumpy >= 1.24 — numerical operationspandas >= 2.0 — data manipulationscikit-learn >= 1.3 — PCA dimensionality reduction for sample-level QC plotsTrigger conditions — the orchestrator routes here when:
Chaining partners:
proteomics-de: Complementary — handles mass-spec LFQ; this skill handles affinity platformsdiff-visualizer: Downstream — enhanced visualisation of differential abundance resultsnpx claudepluginhub clawbio/clawbio --plugin clawbioGuides omics data analysis (transcriptomics, proteomics) using three-tiered approach: validated pipelines, standard workflows, custom methods. For bulk RNA-seq counts and pre-quantified proteins.
Analyzes mass spectrometry proteomics data for protein identification, quantification (LFQ, TMT, iTRAQ), differential expression, PTM analysis, and pathway enrichment.
Performs differential expression analysis on LFQ intensity data from MaxQuant and DIA-NN outputs, including preprocessing, imputation, statistical testing, and visualization.