← LeaderboardThe Skill Leaderboard

gwas-lookup

Federated variant lookup across 8 genomic databases — GWAS Catalog, Open Targets, PheWeb (UKB, FinnGen, BBJ), GTEx, and more.

Published by ClawBio ↗ClawBio/ClawBio

Try your first task

gwas-lookup

Start a fresh conversation. Replace the highlighted placeholders.

Use gwas-lookup to look up [rsID] across the supported public genomic databases and produce a normalized markdown report with CSV tables and available figures.

Required inputs

  • [rsID]

User-approved starter prompt based on a pinned source version; check current skill requirements before running. Task evidence ↗

SKILL.md

name: gwas-lookupdescription: Federated variant lookup across 8 genomic databases — GWAS Catalog, Open Targets, PheWeb (UKB, FinnGen, BBJ),  GTEx, and more.license: MITmetadata:   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.

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

DatabaseEndpointCoordinates
EnsemblREST /variation + /vepGRCh38
GWAS CatalogEBI REST API v2GRCh38
Open Targets PlatformGraphQL v4 (GWAS credible sets)GRCh38
UKB-TOPMed PheWebPheWeb APIGRCh38
FinnGen r12PheWeb APIGRCh38
Biobank Japan PheWebPheWeb APIGRCh37
GTEx v8Portal API v2GRCh38
LocusZoom PortalDevOmnisearch APIBoth

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

Dependencies

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