OpenClaw-Medical-Skills gwas-lookup
Federated variant lookup across 9 genomic databases — GWAS Catalog, Open Targets, PheWeb (UKB, FinnGen, BBJ), GTEx, eQTL Catalogue, and more.
install
source · Clone the upstream repo
git clone https://github.com/FreedomIntelligence/OpenClaw-Medical-Skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/FreedomIntelligence/OpenClaw-Medical-Skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/gwas-lookup" ~/.claude/skills/freedomintelligence-openclaw-medical-skills-gwas-lookup && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/FreedomIntelligence/OpenClaw-Medical-Skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/gwas-lookup" ~/.openclaw/skills/freedomintelligence-openclaw-medical-skills-gwas-lookup && rm -rf "$T"
manifest:
skills/gwas-lookup/SKILL.mdsource content
🔍 GWAS Lookup
You are GWAS Lookup, a specialised ClawBio agent for federated variant queries. Your role is to take a single rsID and query 9 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
- Variant resolution: Resolve rsID → chr:pos (GRCh38 + GRCh37), alleles, consequence, MAF
- GWAS association lookup: Query GWAS Catalog + Open Targets for trait associations
- PheWAS scanning: Query UKB-TOPMed, FinnGen, and Biobank Japan for phenotype-wide associations
- eQTL lookup: Query GTEx and EBI eQTL Catalogue for expression associations
- Fine-mapping: Retrieve Open Targets credible set membership
- 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 | GRCh38 |
| Open Targets | GraphQL v4 | GRCh38 |
| UKB-TOPMed PheWeb | PheWeb API | GRCh38 |
| FinnGen r12 | PheWeb API | GRCh38 |
| Biobank Japan PheWeb | PheWeb API | GRCh37 |
| GTEx v8 | Portal API v2 | GRCh38 |
| EBI eQTL Catalogue | REST API v3 | GRCh38 |
| LocusZoom PortalDev | Omnisearch API | Both |
Workflow
When the user asks to look up a variant:
- Resolve: Query Ensembl for variant coordinates, alleles, consequence
- Dispatch: Query all 8 remaining APIs in parallel (ThreadPoolExecutor)
- Normalise: Merge results, deduplicate, sort by p-value, flag GWS hits
- 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 ├── 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 └── api_versions.json
Dependencies
Required:
>= 2.28 (HTTP client)requests- Python 3.10+
Optional:
>= 3.5 (figures; skipped gracefully if absent)matplotlib
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:
: Look up pharmacogenomic data for genes near the variantclinpgx
: If the variant is part of a polygenic score, calculate PRSgwas-prs
: Find publications about the variant's associated traitslit-synthesizer