en un clic
affinity-proteomics
// Unified analysis pipeline for affinity-based proteomics platforms — Olink (PEA, NPX) and SomaLogic SomaScan (SOMAmer, RFU). Platform-aware QC, normalisation, differential abundance, volcano plots, heatmaps, and PCA.
// Unified analysis pipeline for affinity-based proteomics platforms — Olink (PEA, NPX) and SomaLogic SomaScan (SOMAmer, RFU). Platform-aware QC, normalisation, differential abundance, volcano plots, heatmaps, and PCA.
Render a 4-panel regional LocusCompare diagnostic for one (lead variant, exposure study, outcome study) tuple - overlays GWAS Manhattan, QTL Manhattan, GENCODE gene track, and cross-trait scatter colored by LD r². Use when an agent needs visual confirmation that two GWAS / QTL signals share the same causal variant (the Liu 2019 LocusCompare convention). Inputs: lead variant + two pre-fetched harmonised sumstats slices (or eQTL Catalogue / GWAS Catalog identifiers for bundled fetch). Output: PNG + JSON manifest.
Meta-agent that routes bioinformatics requests to specialised sub-skills. Handles file type detection, analysis planning, report generation, and reproducibility export.
Summarise pre-computed differential expression results with ranked gene lists, biological themes, and publication-ready interpretation.
Compute epigenetic age from DNA methylation arrays using PyAging clocks from GEO accessions or local files.
Compute organ-specific biological age from Olink proteomic data using Goeminne et al. (2025) elastic net aging clocks.
Cell segmentation in fluorescence microscopy images. Supports Cellpose/cpsam (Cellpose 4.0) with additional backends planned. Produces segmentation masks, per-cell morphology metrics (area, diameter, centroid, eccentricity), overlay figures, and a report.md.
| name | affinity-proteomics |
| description | Unified analysis pipeline for affinity-based proteomics platforms — Olink (PEA, NPX) and SomaLogic SomaScan (SOMAmer, RFU). Platform-aware QC, normalisation, differential abundance, volcano plots, heatmaps, and PCA. |
| license | MIT |
| metadata | {"version":"0.1.0","author":"Reza","tags":["proteomics","olink","somalogic","somascan","npx","affinity","differential-abundance","biomarker"],"openclaw":{"requires":{"bins":["python3"]},"always":false,"emoji":"🧪","homepage":"https://github.com/ClawBio/ClawBio","os":["darwin","linux"],"install":[{"kind":"pip","package":"somadata"},{"kind":"pip","package":"scipy"},{"kind":"pip","package":"statsmodels"},{"kind":"pip","package":"seaborn"},{"kind":"pip","package":"scikit-learn"}],"trigger_keywords":["Olink","SomaLogic","SomaScan","NPX","proteomics","affinity proteomics","protein biomarker","plasma proteomics","ADAT"]}} |
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 results