GWAS Catalog Database

SkillDev tools

Query the NHGRI-EBI GWAS Catalog REST API for SNP-trait associations, retrieving variants by rs ID, disease/trait, or gene along with p-values and summary statistics. Use when investigating genome-wide association study hits, mapping a SNP or rsID to traits, building polygenic risk scores, or doing genetic epidemiology lookups. Part of the AlterLab Academic Skills suite.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the GWAS Catalog Database skill

What this skill tells your AI

The instructions your AI receives, as published by alterlab-ieu/alterlab-academic-skills in skills/databases/alterlab-gwas/SKILL.md and read by ahel’s review.

Overview

The GWAS Catalog is a curated repository of published genome-wide association studies maintained by NHGRI and EBI. It contains SNP-trait associations from thousands of GWAS publications — genetic variants, associated traits and diseases, p-values, effect sizes, and full summary statistics for many studies.

Scripts

scripts/query_gwas.py — query the GWAS Catalog REST API (stdlib only, JSON to stdout):

python scripts/query_gwas.py variant rs7903146           # associations for a SNP
python scripts/query_gwas.py trait MONDO_0005148 --size 100  # associations for a trait
python scripts/query_gwas.py study GCST001795            # study metadata

When to Use This Skill

Use this skill for:

  • Genetic variant associations — SNPs associated with diseases or traits
  • SNP lookups — information about specific variants (rs IDs)
  • Trait/disease searches — genetic associations for phenotypes
  • Gene associations — variants in or near specific genes
  • GWAS summary statistics — complete genome-wide association data
  • Study metadata — publication and cohort information
  • Population genetics — ancestry-specific associations
  • Polygenic risk scores — variants for risk prediction models
  • Functional genomics / systematic reviews — variant effects, literature synthesis

Data Model

Four core entities, each with a canonical identifier:

  • StudiesGCST accessions (e.g., GCST001234)
  • Associations → SNP-trait links with p-values (genome-wide significant: p ≤ 5×10⁻⁸)
  • Variantsrs numbers (e.g., rs7903146)
  • Traits → trait ontology short-forms (e.g., MONDO_0005148 = type 2 diabetes on the main REST API); genes use HGNC symbols (e.g., TCF7L2)

Trait-ID gotcha (verified): the two APIs disagree on trait IDs. The main REST API has migrated many traits to MONDO / current EFO short-forms, so efoTraits/MONDO_0005148 works but the legacy efoTraits/EFO_0001360 now 404s. The Summary Statistics API still uses the legacy ID: traits/EFO_0001360 works there but traits/MONDO_0005148 404s. If a trait path 404s, look up the current short-form with /efoTraits/search/findByTrait?trait=... (main API) before assuming the trait is absent.

APIs

Two free, no-key REST APIs:

  • GWAS Catalog API: https://www.ebi.ac.uk/gwas/rest/api (curated associations, studies, variants, traits)
  • Summary Statistics API: https://www.ebi.ac.uk/gwas/summary-statistics/api (all tested variants, not just significant hits)

Core endpoints: /studies/{GCST}, /efoTraits/{efoID}/associations, /singleNucleotidePolymorphisms/{rsID} and /{rsID}/associations. Responses are HAL+JSON with _embedded results, _links for related resources, and pagination (page, size).

Core Workflow

  1. Identify the entity — get the EFO ID (trait), rs ID (variant), GCST (study), or HGNC symbol (gene). Use the web interface for free-text → EFO mapping.
  2. Query the matching endpoint — trait/variant/study/region; iterate pages via page/size.
  3. Filter — by p-value (≤ 5×10⁻⁸ for genome-wide significance), ancestry, sample size, discovery/replication status.
  4. Extract — rs IDs, effect alleles/directions, effect sizes (OR or beta), p-values.
  5. Cross-reference — Ensembl (consequences), gnomAD (frequencies), Open Targets, PGS Catalog.
  6. For genome-wide analyses — pull full summary statistics via the Summary Statistics API or FTP rather than scraping the association endpoints.

Routing Guidance

  • Writing API calls / want copy-paste code (endpoints, the four worked examples, summary-stats access, cross-referencing, full paginated Python helper) → references/query_examples.md.
  • Following a multi-step task (disease-, variant-, gene-centric, systematic review, summary-stats analysis) or web-interface search syntaxreferences/query_workflows.md.
  • Need response field names, pagination details, or best-practice / data-quality guidancereferences/data_fields_and_best_practices.md.
  • Deep endpoint specs, all query params, error handling, advanced filteringreferences/api_reference.md.

Reference Index

  • references/query_examples.md — REST endpoint code, four canonical query examples (disease, variant, summary stats, chromosomal region), summary-statistics access, cross-referencing, and a complete paginated Python integration returning a DataFrame.
  • references/query_workflows.md — Five step-by-step query workflows (disease, variant, gene, systematic review, summary statistics) plus web-interface search modes.
  • references/data_fields_and_best_practices.md — Association/study response fields, pagination, query and interpretation best practices, rate-limiting ethics, and data-quality considerations.
  • references/api_reference.md — Comprehensive endpoint specifications, query parameters/filters, response formats, error handling, and integration with external databases.

Citation and Resources

When using GWAS Catalog data, cite:

Signals

GitHub stars
66
Forks
13
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
alterlab-gwas
Source
github.com/alterlab-ieu/alterlab-academic-skills