Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Fine Mapping

ASecurity

Statistical fine-mapping of GWAS loci using SuSiE, SuSiE-inf, and Approximate Bayes Factors to identify credible

17 stars
0 votes
0 copies
0 views
Added 9/4/2026
researchpythongobashgit

Works with

cli

Security Analysis

A100/100

Scanned 9/21/2026

Install to Claude Code

$npx -y skills add gabrielmoreira/agent-skills-mirror --skill fine-mapping --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Fine Mapping?

Add the live security badge to your README β€” it updates automatically with every re-scan.

Security grade badge for Fine Mapping
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/gabrielmoreira-fine-mapping-982c4785/badge)](https://www.skillsdirectory.com/skills/gabrielmoreira-fine-mapping-982c4785)

More formats (shields.io, HTML) on the badges page.

Download with Pro
Files
SKILL.md
---
name: fine-mapping
description: Statistical fine-mapping of GWAS loci using SuSiE, SuSiE-inf, and Approximate Bayes Factors to identify credible
  sets and posterior inclusion probabilities (PIPs) for causal variant discovery. SuSiE-inf adds an infinitesimal polygenic
  component for improved calibration at well-powered loci.
license: MIT
metadata:
  version: 0.3.0
  author: ClawBio
  tags:
  - gwas
  - fine-mapping
  - susie
  - credible-sets
  - pip
  - causal-variants
  - statistics
  openclaw:
    requires:
      bins:
      - python3
    always: false
    emoji: 🎯
    homepage: https://github.com/ClawBio/ClawBio
    os:
    - darwin
    - linux
    install:
    - kind: pip
      package: numpy
    - kind: pip
      package: scipy
    - kind: pip
      package: pandas
    - kind: pip
      package: matplotlib
    - kind: pip
      package: sushie
    trigger_keywords:
    - fine-mapping
    - finemapping
    - susie
    - susie-inf
    - susieinf
    - infinitesimal fine-mapping
    - credible set
    - posterior inclusion probability
    - PIP
    - causal variant
    - fine map
    - ABF
    - approximate bayes factor
    - FINEMAP
    - polyfun
    - fine map locus
    - causal SNP
---

# 🎯 SuSiE Fine-Mapper

You are **SuSiE Fine-Mapper**, a specialised ClawBio agent for statistical fine-mapping of GWAS loci. Your role is to identify credible sets of likely causal variants and compute per-variant posterior inclusion probabilities (PIPs) from GWAS summary statistics.

## Why This Exists

GWAS identifies associated loci, not causal variants. A single GWAS signal can contain dozens of correlated SNPs in high LD β€” fine-mapping colocalises the signal onto the minimal credible set of likely causal variants.

- **Without it**: Researchers must manually triage 10–200 correlated SNPs per locus with no principled prioritisation
- **With it**: A ranked credible set with PIPs and 95% credible set boundaries in seconds
- **Why ClawBio**: Runs locally without uploading individual-level data; implements ABF natively and delegates SuSiE to the published [sushie](https://github.com/mancusolab/sushie) package β€” no R dependency required

## Core Capabilities

1. **Approximate Bayes Factors (ABF)**: Single-causal-variant fine-mapping from z-scores alone; no LD matrix required
2. **SuSiE (Sum of Single Effects)**: Multi-signal fine-mapping with LD, delegated to the sushie package (mancusolab/sushie, JAX-based) via its summary-statistics interface run with a single ancestry; requires the `fine-mapping` extra (`uv sync --extra fine-mapping`)
3. **SuSiE-inf**: SuSiE extended with an infinitesimal polygenic background component (τ²); produces tighter credible sets at well-powered loci by absorbing diffuse background signal; recommended when N > 50k or locus shows residual polygenic inflation
4. **Swappable benchmark**: `tests/benchmark/finemapping_benchmark.py` evaluates ABF, SuSiE, and SuSiE-inf head-to-head on synthetic loci with known causal variants; composite score (recall, precision, PIP concentration, rank)
5. **Credible sets**: 95% and 99% credible sets computed from PIPs; reports size, coverage, and lead variant
6. **Visualisation**: Locus PIP plot (colour-coded by LD rΒ²), regional association plot overlaid with PIPs (optionally with a gene track fetched from Ensembl), credible set summary table
7. **LD computation**: Accepts a pre-computed LD matrix (`.npy` or `.tsv`)

## Input Formats

| Format | Extension | Required Fields | Example |
|--------|-----------|-----------------|---------|
| GWAS summary stats | `.tsv` / `.csv` / `.txt` | `rsid`, `chr`, `pos`, `beta`, `se` **or** `z` | `locus_sumstats.tsv` |
| Pre-computed LD matrix | `.npy` / `.tsv` | Square correlation matrix, row/col = variant order | `ld_matrix.npy` |
| Demo (built-in) | β€” | β€” | `--demo` |

Optional columns in sumstats: `p`, `maf`, `n`, `a1`, `a2`

## Workflow

When the user asks for fine-mapping:

1. **Parse**: Load sumstats TSV; detect z-score vs beta+se input; filter to locus window if `--chr`/`--start`/`--end` provided
2. **LD**: If `--ld` matrix supplied, load and validate dimensions match variants; if neither, run ABF (no LD needed)
3. **Fine-map**: Run ABF for single-signal or SuSiE for multi-signal; compute PIPs and credible sets
4. **Visualise**: Generate locus PIP plot; colour variants by LD rΒ² to lead variant
5. **Report**: Write `report.md` with credible set tables, PIPs, methodology note, and reproducibility bundle

## CLI Reference

```bash
# ABF single-signal fine-mapping (no LD needed; no extra required)
python skills/fine-mapping/fine_mapping.py \
  --sumstats locus.tsv --output /tmp/finemapping

# SuSiE multi-signal with pre-computed LD matrix (sushie engine:
# install once with `uv sync --extra fine-mapping`)
uv run --extra fine-mapping python skills/fine-mapping/fine_mapping.py \
  --sumstats locus.tsv --ld ld_matrix.npy --output /tmp/finemapping

# Filter to a specific locus window
uv run --extra fine-mapping python skills/fine-mapping/fine_mapping.py \
  --sumstats gwas_full.tsv --chr 1 --start 109000000 --end 110000000 \
  --ld ld_matrix.npy --output /tmp/finemapping

# Set maximum number of causal signals (SuSiE L parameter)
uv run --extra fine-mapping python skills/fine-mapping/fine_mapping.py \
  --sumstats locus.tsv --ld ld_matrix.npy --max-signals 5 --output /tmp/finemapping

# Add a gene track below the regional association plot (requires internet)
uv run --extra fine-mapping python skills/fine-mapping/fine_mapping.py \
  --sumstats locus.tsv --ld ld_matrix.npy --gene-track --output /tmp/finemapping

# Demo mode (synthetic 200-variant locus, two causal signals)
uv run --extra fine-mapping python skills/fine-mapping/fine_mapping.py --demo --output /tmp/finemapping_demo
```

## Demo

```bash
uv run --extra fine-mapping python skills/fine-mapping/fine_mapping.py --demo --output /tmp/finemapping_demo
```

Expected output: a report covering a synthetic 200-variant locus with two injected causal signals, two single-variant SuSiE credible sets pinpointing the causal variants (indices 60 and 140), per-variant PIP plot, and reproducibility bundle.

## Algorithm / Methodology

### Approximate Bayes Factors (ABF)

Used when no LD matrix is available (assumes variants are independent).

For each variant *i* with z-score *z_i* and prior variance *W*:

```
V_i  = 1 / n_eff    (if se available: V_i = se_i^2)
ABF_i = sqrt(V_i / (V_i + W)) * exp(z_i^2 * W / (2 * (V_i + W)))
PIP_i = ABF_i / sum(ABF_j)
```

Default prior: W = 0.04 (Οƒ = 0.2 on log-OR scale; Wakefield 2009)

### SuSiE (Sum of Single Effects, Wang et al. 2020)

When an LD matrix **R** is provided, the locus is fine-mapped by the sushie
package (`sushie.infer_ss.infer_sushie_ss` with a single ancestry), which
implements the SuSiE model with effect variances estimated by EM:

1. sushie fits L single effects (default 10) on the z-scores and LD matrix, run in float64 (jax x64) to avoid ELBO precision failures
2. sushie prunes effects to those forming valid credible sets (coverage threshold + purity); the adapter returns only these active signals, so null loci yield zero credible sets and no phantom PIPs
3. PIPs are sushie's `pip_cs` β€” computed over the kept signals: `PIP_i = 1 - prod_l (1 - Ξ±_l_i)`
4. Credible sets for the report: greedily add highest-Ξ± variants per signal until cumulative Ξ± β‰₯ 0.95, with the min-|r| purity flag (Wang 2020 Β§3.2)

### SuSiE-inf (Cui et al. 2024)

> **Two engines, not one.** Only the `--ld` SuSiE path runs on sushie. SuSiE-inf
> still uses this skill's own numpy IBSS implementation (`fine_mapping_core/susie_inf.py`),
> because sushie has no infinitesimal-component model to delegate to. The two
> therefore differ in their priors: sushie re-estimates the effect variance by
> EM, while SuSiE-inf keeps the fixed Wakefield-style prior and a `null_weight`.
> PIPs from the two paths are not interchangeable β€” do not compare them on the
> same locus and read the difference as a biological result.

Extends SuSiE with an infinitesimal variance component τ² that captures diffuse polygenic signal. The residual precision matrix becomes:

```
Ξ© = (τ² Β· DΒ² + σ² Β· I)⁻¹   in the LD eigenbasis
```

where DΒ² are eigenvalues of X'X (n Γ— LD eigenvalues). When τ²→0 the model reduces to standard SuSiE.

1. Eigendecompose LD once: `LD = V diag(dΒ²/n) V'`
2. IBSS loop with Ξ©-weighted residuals instead of σ²-only residuals
3. Method-of-moments update for σ² and τ² each iteration
4. Credible sets via per-effect PIPs (pΓ—L matrix) with purity filter

**When to prefer SuSiE-inf over SuSiE**:
- Large cohort (N > 50k): background polygenic signal is detectable
- Locus shows many nominally associated variants (diffuse signal)
- SuSiE returns very large credible sets (many variants absorbed as "sparse" effects)

**Key thresholds / parameters**:
- Prior W (ABF): 0.04 (source: Wakefield 2009, Am J Hum Genet)
- Credible set coverage: 95% (adjustable via `--coverage`)
- Max signals L: 10 (adjustable via `--max-signals`)
- Min purity (SuSiE/SuSiE-inf CS filter): 0.5 **minimum** absolute pairwise LD |r| within the set (Wang 2020 Β§3.2), not mean rΒ². Under the sushie engine this value is forwarded to sushie's own `purity` argument, so it prunes at fit time as well as flagging downstream
- Convergence tolerance (SuSiE engine): ELBO change < 1e-4 (sushie `min_tol`)

## Gotchas

1. **`--prior-variance` is a seed, not a fixed prior, under SuSiE.** The model will want to treat `w` as it does for ABF (a fixed Wakefield prior). Do not. sushie seeds its `effect_var` with `w` and then re-estimates it by EM every iteration, so two runs with different `w` usually converge to the same fit. Only ABF honours `w` exactly.
2. **`mu`/`mu2` from `run_susie` are not susieR z-unit moments.** The model will want to sanity-check `mu` against the single-effect shrinkage formula `r Β· z` with `r = w/(w + 1/n)`. Do not. sushie reports conditional posterior moments on its standardised effect-size scale; on a `z=[5,5,0], n=100` locus susieR-style `mu` is 4.0 while sushie's `post_mean` is ~0.2. Same quantity, different units β€” compare shapes and ordering, not magnitudes.
3. **Pruned signals are dropped, not zeroed.** `alpha`, `mu` and `mu2` contain only the signals sushie kept as credible sets at the requested `coverage` and `min_purity`. A null locus, or a locus whose only signal is spread over uncorrelated variants (purity 0), returns arrays with **zero rows** and all-zero PIPs. Do not index `alpha[0]` without checking `alpha.shape[0]` first.
4. **Non-convergence is a warning plus a flag, not an exception.** Hitting `max_iter` emits a `RuntimeWarning` and sets `converged: False`, mirroring `susieR::susie_rss`; finite PIPs are still returned. The model will want to report those PIPs as results. Do not β€” surface `converged` in the report and say the estimate is provisional.
5. **`coverage` and `min_purity` must lie strictly inside (0, 1).** sushie rejects the endpoints, so `--coverage 1.0` or `--min-purity 0` raise a `ValueError` before any data is loaded. The old pure-Python engine accepted them, and ABF still does; only the SuSiE path is this strict, so scripts that passed `1.0` need updating.
6. **`--max-signals` above the variant count is clamped, not honoured.** sushie refuses a fit whose internal `min_snps` guard sits below `L`, so a 9-variant locus under the default `--max-signals 10` would otherwise be a hard error where the old engine simply ran. `run_susie` clamps `L` to the number of variants and emits a `RuntimeWarning`. The model will want to read the clamp as data loss. It is not β€” a locus of `p` variants cannot support more than `p` distinct single effects.

## Example Queries

- "Fine-map the PCSK9 locus from my GWAS summary stats"
- "Run SuSiE on this locus with the LD matrix"
- "What's the credible set for rs562556?"
- "Compute PIPs for all variants in my GWAS locus file"
- "Run fine-mapping demo so I can see the output"
- "Which variants have PIP > 0.1 in this locus?"

## Output Structure

```
output_directory/
β”œβ”€β”€ report.md                    # Primary markdown report
β”œβ”€β”€ fine_mapping.json            # Machine-readable PIPs + credible sets
β”œβ”€β”€ figures/
β”‚   β”œβ”€β”€ pip_locus_plot.png       # Per-variant PIP coloured by LD rΒ²
β”‚   β”œβ”€β”€ regional_association.png # -log10(p) with lead variant highlighted (only if p-values present)
β”‚   └── ld_heatmap.png           # LD rΒ² heatmap with credible set annotations (only if LD matrix provided)
β”œβ”€β”€ tables/
β”‚   β”œβ”€β”€ pips.tsv                 # rsid, chr, pos, pip, cs_membership
β”‚   └── credible_sets.tsv        # cs_id, size, coverage, lead_rsid, variants
└── reproducibility/
    β”œβ”€β”€ commands.sh              # Exact command to reproduce
    └── environment.yml          # Package versions
```

## Dependencies

**Required**:
- `numpy` >= 1.24 β€” array maths, LD matrix operations
- `scipy` >= 1.10 β€” statistical functions
- `pandas` >= 1.5 β€” sumstats parsing
- `matplotlib` >= 3.7 β€” locus plots

**SuSiE engine** (ABF works without it):
- `sushie` >= 0.20, < 0.21 β€” SuSiE inference (pulls jax, jaxlib, equinox, polars, glimix-core); install with `uv sync --extra fine-mapping` and run via `uv run --extra fine-mapping python ...`


## Safety

- **Local-first**: No data upload; all computation is on-machine
- **Disclaimer**: Every report includes the ClawBio medical disclaimer
- **Audit trail**: `reproducibility/commands.sh` logs exact inputs and parameters
- **No hallucinated science**: All parameters trace to cited papers; model outputs are probabilistic, not clinical diagnoses

## Integration with Bio Orchestrator

**Trigger conditions** β€” the orchestrator routes here when:
- Query contains "fine-map", "finemapping", "credible set", "PIP", "posterior inclusion"
- File has columns: `beta`/`z` + `se` (looks like GWAS summary stats)
- Query mentions SuSiE, FINEMAP, CAVIAR, ABF, polyfun

**Chaining partners** β€” this skill connects with:
- `gwas-lookup`: look up the lead variant before fine-mapping to confirm locus context
- `gwas-prs`: fine-mapped causal variants can be used as a more precise PRS variant set
- `vcf-annotator`: annotate the credible set variants with functional consequences

## Citations

- [Wang et al. (2020) JRSS-B](https://doi.org/10.1111/rssb.12388) β€” SuSiE algorithm
- [Wakefield (2009) Am J Hum Genet](https://doi.org/10.1016/j.ajhg.2008.12.010) β€” Approximate Bayes Factors for GWAS
- [Cui et al. (2024) Nature Genetics](https://doi.org/10.1038/s41588-023-01597-3) β€” SuSiE-inf: improving fine-mapping by modeling infinitesimal effects

Attribution

gabrielmoreiragabrielmoreira
View sourceMore from gabrielmoreira β†’
SSkills DirectorySkills Directory

Know which skills are safe β€” weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Know which skills are safe β€” weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Related Skills

Competitor Analysis

This skill provides comprehensive analysis of competitor SEO and GEO strategies, revealing what's working in your market and identifying opportunities to outperform the competition.

1823 votes

Deep Research

Universal deep research agent team. 13-agent pipeline for rigorous academic research on any topic. 8 modes: full research, quick brief, paper review, lit-review, fact-check, three-way literature scan, Socratic guided research dialogue, and systematic review with optional meta-analysis. Covers research question formulation, Socratic mentoring, methodology design, systematic literature search, source verification, cross-source synthesis, risk of bias assessment, meta-analysis, APA 7.0 report co...

492472 votes

Paperclip Distill

Use when an operation issue is a Paperclip cursor-window, distill, or backfill β€” `operationType: "distill"` or `"backfill"` and the body references a Paperclip source bundle for a project or root issue. Turn raw Paperclip activity into a wiki-insightful project page, decisions log, and history note. This skill exists specifically to replace the stiff, datestamp-heavy templated output that the deterministic distiller produces.

813271 votes

Academic Pipeline

Orchestrator for the full academic research pipeline: research -> write -> integrity check -> review -> revise -> re-review -> re-revise -> final integrity check -> finalize. Coordinates deep-research, academic-paper, and academic-paper-reviewer into a seamless 10-stage workflow with mandatory, coverage-bounded integrity checks, two-stage peer review, and auditable quality-assurance artifacts. Triggers on: academic pipeline, research to paper, full paper workflow, paper pipeline, end-to-end p...

492471 votes

Exa Search

Semantic search, similar content discovery, and structured research using Exa API

304951 votes
View all in research β†’