Skip to content
Agentmart
Submit a tool

affinity-proteomics

Unified analysis pipeline for affinity-based proteomics platforms — Olink (PEA, NPX) and SomaLogic SomaScan (SOMAmer, RFU).

Skill by Reza

IndexedMIT★ 1,166
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/clawbio-affinity-proteomics

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

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.

Use cases: data, data-analysis

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/affinity-proteomics

What's inside

Skill 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
author: Reza · version: 0.1.0
Instructions
139 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts

Files (7)

  • SKILL.md
  • affinity_proteomics.py
  • olink_demo_meta.csv · example_data/
  • olink_demo_npx.csv · example_data/
  • requirements.txt
  • __init__.py · tests/
  • test_affinity_proteomics.py · tests/

SKILL.md (first lines)

# 🧪 Affinity Proteomics Pipeline

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.

## Why This Exists

- **Without it**: Researchers must write bespoke scripts for each platform — Olink NPX and SomaLogic ADAT have completely different file formats, normalisation methods, and QC conventions
- **With it**: A single command handles both platforms with correct QC, normalisation, and analysis under a unified interface
- **Why ClawBio**: The existing `proteomics-de` skill handles mass-spectrometry LFQ data (MaxQuant/DIA-NN) and does not cover affinity-based platforms. This skill fills that gap

## Core Capabilities

1. **Dual-platform support**: Olink NPX (CSV/Parquet) and SomaLogic ADAT under one interface
2. **Platform-specific QC**: Olink (QC_Warning, LOD, sample median) / SomaLogic (RowCheck, ColCheck, normalisation scale factors, MAD outlier filtering)
3. **Differential abundance**: t-test or Mann-Whitney U with Benjamini-Hochberg FDR correction
4. **Visualisation**: Volcano plot, heatmap (top N proteins), PCA plot
5. **Structured reporting**: Markdown report, result.json, per-protein TSV, reproducibility bundle
6. **Skill Action Menu**: `result.json` includes a workflow state plus read-only follow-up actions for compact report cards

## Input Formats

| 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` |

## CLI Reference

```bash
# 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
```

## Demo

```bash
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.

## Output Structure

- `report.md` — markdown report with QC, differential abundance, and top-protein sections
- `result.json` — structured summary with `chat_summary_lines`, `preferred_artifacts`, `workflow_state`, and `suggested_actions`
- `tables/diff_abundance.tsv` — per-protein differential abundance table
- `figures/volcano.png`, `figures/heatmap.png`, `figures/pca.png` — standard demo figures
- `reproducibility/` — `commands.sh`, `environment.yml`, `checksums.sha256` (verify with `sha256sum -c` from the output dir), and `software_versions.json`

## Suggested Actions

The 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.

```json
{
  "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"}
        ]
      }
    }
  ]
}
```

## Dependencies

**Required**:
- `somadata` >= 1.2 — SomaLogic ADAT parsing
- `scipy` >= 1.10 — statistical tests
- `statsmodels` >= 0.14 — multiple testing correction
- `matplotlib` >= 3.7 — plotting
- `seaborn` >= 0.13 — heatmaps
- `numpy` >= 1.24 — numerical operations
- `pandas` >= 2.0 — data manipulation
- `scikit-learn` >= 1.3 — PCA dimensionality reduction for sample-level QC plots

## Safety

- **Local-first**: All computation runs locally; no data uploaded
- **Disclaimer**: Every report includes the ClawBio medical disclaimer
- **Platform-aware**: Applies correct QC and normalisation per platform

From ClawBio/ClawBio, MIT.

More from ClawBio/ClawBio

Signals

Stars
1,166
Forks
288
Open issues
27
Last commit (this folder)
Oct 14, 2026 (13 days ago)
Last release
Sep 11, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

Version
0.1.0
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

Same skill elsewhere

Copies of this SKILL.md published by others; search shows only one of them.

More from Reza

Cite this page

affinity-proteomics skill. Agent Mart. https://agentmart.dev/skills/clawbio-affinity-proteomics (last updated 2026-10-24)