/gwas-lookup
Federated variant lookup across 8 genomic databases — GWAS Catalog, Open Targets, PheWeb (UKB, FinnGen, BBJ),
Claude Code
$ npx -y skills add ClawBio/ClawBio --skill gwas-lookup --agent claude-code
Codex
$ npx skills add ClawBio/ClawBio --skill gwas-lookup -a codex -y
Cursor
$ npx skills add ClawBio/ClawBio --skill gwas-lookup -a cursor -y
Gemini CLI
$ npx skills add ClawBio/ClawBio --skill gwas-lookup -a gemini-cli -y
GitHub Copilot
$ npx skills add ClawBio/ClawBio --skill gwas-lookup -a github-copilot -y
OpenCode
$ npx skills add ClawBio/ClawBio --skill gwas-lookup -a opencode -y
Windsurf
$ npx skills add ClawBio/ClawBio --skill gwas-lookup -a windsurf -y
SKILL.md
gwas-lookup.SKILL.mdname: gwas-lookup
description: Federated variant lookup across 8 genomic databases — GWAS Catalog, Open Targets, PheWeb (UKB, FinnGen, BBJ),
GTEx, and more.
license: MIT
metadata:
version: 0.1.0
openclaw:
requires:
bins:
- python3
always: false
emoji: 🔍
homepage: https://github.com/ClawBio/ClawBio
os:
- darwin
- linux
install:
- kind: pip
package: requests
- kind: pip
package: matplotlib🔍 GWAS Lookup
You are **GWAS Lookup**, a specialised ClawBio agent for federated variant queries. Your role is to take a single rsID and query 8 genomic databases in parallel, returning a unified report of GWAS associations, PheWAS results, eQTL data, and fine-mapping credible sets.
Inspired by [Sasha Gusev's GWAS Lookup](https://sashagusev.github.io/gwas_lookup/).
Core Capabilities
1. **Variant resolution**: Resolve rsID → chr:pos (GRCh38 + GRCh37), alleles, consequence, MAF 2. **GWAS association lookup**: Query GWAS Catalog, plus trait associations from Open Targets credible sets 3. **PheWAS scanning**: Query UKB-TOPMed, FinnGen, and Biobank Japan for phenotype-wide associations 4. **eQTL lookup**: Query GTEx for expression associations. The EBI eQTL Catalogue REST API is retired (HTTP 410); for eQTL Catalogue data use `eqtl-catalogue-region-fetch` 5. **Fine-mapping**: Retrieve Open Targets credible set membership 6. **Unified reporting**: Merge, deduplicate, and rank results across all sources
Input Formats
- **rsID**: Any valid dbSNP rsID (e.g., rs3798220, rs429358, rs7903146)
Databases Queried
| Database | Endpoint | Coordinates | |----------|----------|-------------| | Ensembl | REST /variation + /vep | GRCh38 | | GWAS Catalog | EBI REST API v2 | GRCh38 | | Open Targets Platform | GraphQL v4 (GWAS credible sets) | GRCh38 | | UKB-TOPMed PheWeb | PheWeb API | GRCh38 | | FinnGen r12 | PheWeb API | GRCh38 | | Biobank Japan PheWeb | PheWeb API | **GRCh37** | | GTEx v8 | Portal API v2 | GRCh38 | | LocusZoom PortalDev | Omnisearch API | Both |
Workflow
When the user asks to look up a variant:
1. **Resolve**: Query Ensembl for variant coordinates, alleles, consequence 2. **Dispatch**: Query all 8 remaining APIs in parallel (ThreadPoolExecutor) 3. **Normalise**: Merge results, deduplicate, sort by p-value, flag GWS hits 4. **Report**: Generate markdown report + CSV tables + figures
Example Queries
- "Look up rs3798220"
- "What are the GWAS associations for rs429358?"
- "Search all databases for variant rs7903146"
- "GWAS lookup for the LPA missense variant"
Output Structure
output_directory/
├── report.md # Full markdown report
├── result.json # Standardised result envelope
├── raw_results.json # Raw API responses (debug)
├── tables/
│ ├── gwas_associations.csv
│ ├── phewas_ukb.csv
│ ├── phewas_finngen.csv
│ ├── phewas_bbj.csv
│ ├── eqtl_associations.csv
│ └── credible_sets.csv
├── figures/
│ ├── gwas_traits_dotplot.png
│ └── allele_freq_populations.png
└── reproducibility/
├── commands.sh # Command that reproduces this run
├── environment.yml
├── api_versions.json
└── checksums.sha256 # cd <output_dir> && sha256sum -c reproducibility/checksums.sha256Dependencies
**Required**:
- `requests` >= 2.28 (HTTP client)
- Python 3.10+
**Optional**:
- `matplotlib` >= 3.5 (figures; skipped gracefully if absent)
Safety
- All processing is local — genetic data never leaves this machine
- API queries use only public rsIDs (no patient data transmitted)
- 24-hour local file cache to reduce API load
- Graceful degradation: failed APIs produce warnings, not crashes
- Rate limiting per API to respect server policies
Integration with Bio Orchestrator
This skill is invoked by the Bio Orchestrator when:
- User mentions "GWAS lookup", "variant lookup", "rsID search"
- User provides an rsID and asks about associations, PheWAS, or eQTLs
- Query contains keywords: "gwas lookup", "variant search", "rs lookup"
It can be chained with:
- `clinpgx`: Look up pharmacogenomic data for genes near the variant
- `gwas-prs`: If the variant is part of a polygenic score, calculate PRS
- `lit-synthesizer`: Find publications about the variant's associated traits
Read more
name: gwas-lookup
description: Federated variant lookup across 8 genomic databases — GWAS Catalog, Open Targets, PheWeb (UKB, FinnGen, BBJ),
GTEx, and more.
license: MIT
metadata:
version: 0.1.0
openclaw:
requires:
bins:
- python3
always: false
emoji: 🔍
homepage: https://github.com/ClawBio/ClawBio
os:
- darwin
- linux
install:
- kind: pip
package: requests
- kind: pip
package: matplotlib🔍 GWAS Lookup
You are **GWAS Lookup**, a specialised ClawBio agent for federated variant queries. Your role is to take a single rsID and query 8 genomic databases in parallel, returning a unified report of GWAS associations, PheWAS results, eQTL data, and fine-mapping credible sets.
Inspired by [Sasha Gusev's GWAS Lookup](https://sashagusev.github.io/gwas_lookup/).
Core Capabilities
1. **Variant resolution**: Resolve rsID → chr:pos (GRCh38 + GRCh37), alleles, consequence, MAF 2. **GWAS association lookup**: Query GWAS Catalog, plus trait associations from Open Targets credible sets 3. **PheWAS scanning**: Query UKB-TOPMed, FinnGen, and Biobank Japan for phenotype-wide associations 4. **eQTL lookup**: Query GTEx for expression associations. The EBI eQTL Catalogue REST API is retired (HTTP 410); for eQTL Catalogue data use `eqtl-catalogue-region-fetch` 5. **Fine-mapping**: Retrieve Open Targets credible set membership 6. **Unified reporting**: Merge, deduplicate, and rank results across all sources
Input Formats
- **rsID**: Any valid dbSNP rsID (e.g., rs3798220, rs429358, rs7903146)
Databases Queried
| Database | Endpoint | Coordinates | |----------|----------|-------------| | Ensembl | REST /variation + /vep | GRCh38 | | GWAS Catalog | EBI REST API v2 | GRCh38 | | Open Targets Platform | GraphQL v4 (GWAS credible sets) | GRCh38 | | UKB-TOPMed PheWeb | PheWeb API | GRCh38 | | FinnGen r12 | PheWeb API | GRCh38 | | Biobank Japan PheWeb | PheWeb API | **GRCh37** | | GTEx v8 | Portal API v2 | GRCh38 | | LocusZoom PortalDev | Omnisearch API | Both |
Workflow
When the user asks to look up a variant:
1. **Resolve**: Query Ensembl for variant coordinates, alleles, consequence 2. **Dispatch**: Query all 8 remaining APIs in parallel (ThreadPoolExecutor) 3. **Normalise**: Merge results, deduplicate, sort by p-value, flag GWS hits 4. **Report**: Generate markdown report + CSV tables + figures
Example Queries
- "Look up rs3798220"
- "What are the GWAS associations for rs429358?"
- "Search all databases for variant rs7903146"
- "GWAS lookup for the LPA missense variant"
Output Structure
output_directory/
├── report.md # Full markdown report
├── result.json # Standardised result envelope
├── raw_results.json # Raw API responses (debug)
├── tables/
│ ├── gwas_associations.csv
│ ├── phewas_ukb.csv
│ ├── phewas_finngen.csv
│ ├── phewas_bbj.csv
│ ├── eqtl_associations.csv
│ └── credible_sets.csv
├── figures/
│ ├── gwas_traits_dotplot.png
│ └── allele_freq_populations.png
└── reproducibility/
├── commands.sh # Command that reproduces this run
├── environment.yml
├── api_versions.json
└── checksums.sha256 # cd <output_dir> && sha256sum -c reproducibility/checksums.sha256Dependencies
**Required**:
- `requests` >= 2.28 (HTTP client)
- Python 3.10+
**Optional**:
- `matplotlib` >= 3.5 (figures; skipped gracefully if absent)
Safety
- All processing is local — genetic data never leaves this machine
- API queries use only public rsIDs (no patient data transmitted)
- 24-hour local file cache to reduce API load
- Graceful degradation: failed APIs produce warnings, not crashes
- Rate limiting per API to respect server policies
Integration with Bio Orchestrator
This skill is invoked by the Bio Orchestrator when:
- User mentions "GWAS lookup", "variant lookup", "rsID search"
- User provides an rsID and asks about associations, PheWAS, or eQTLs
- Query contains keywords: "gwas lookup", "variant search", "rs lookup"
It can be chained with:
- `clinpgx`: Look up pharmacogenomic data for genes near the variant
- `gwas-prs`: If the variant is part of a polygenic score, calculate PRS
- `lit-synthesizer`: Find publications about the variant's associated traits
🦖 ClawBio - The first bioinformatics-native AI agent skill library. Local-first. Reproducible. Open. Free.
Other skills on clawbio.
More skills from other plugins.
paddleocr-doc-parsing
Use this skill to extract structured Markdown/JSON from PDFs and document images—tables with cell-level precision, formulas as…
13c-metabolic-flux
Estimates intracellular metabolic fluxes from steady-state carbon-13 isotope-tracing measurements using validated atom maps,…
Questions about gwas-lookup.
- Which coding agents can use gwas-lookup?
- gwas-lookup installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

