COMPUTE, DON'T DESCRIBE
When analysis requires computation (statistics, data processing, scoring, enrichment), write and run Python code via Bash. Don't describe what you would do — execute it and report actual results. Use ToolUniverse tools to retrieve data, then Python (pandas, scipy, statsmodels, matplotlib) to analyze it.
Pathway-Disease Genetics: GWAS to Drug Targets via Pathways
Connect genome-wide association study (GWAS) variants to biological pathways for mechanistic understanding and drug target discovery.
When to Use
- "What pathways are disrupted in [disease] based on GWAS?"
- "Which GWAS genes for [trait] are in druggable pathways?"
- "Map [SNP/variant] to its causal gene and pathway"
- "Find drug targets from GWAS data for [disease]"
- "What is the eQTL evidence for [gene] in [tissue]?"
Core Reasoning Principles
Gene-to-Pathway Reasoning
A gene found in GWAS doesn't tell you which pathway is dysregulated. To connect gene -> pathway -> disease mechanism, ask: what biological process does this gene participate in? Use Reactome/KEGG to find pathways, then ask: which of these pathways is relevant to the disease phenotype?
For example, TCF7L2 is the strongest T2D GWAS gene. It participates in the Wnt signaling pathway. The question is then: how does disrupted Wnt signaling impair beta-cell function or insulin secretion? That reasoning step — from pathway membership to disease mechanism — requires combining pathway data with tissue expression (GTEx) and disease biology.
Non-coding GWAS variants (the majority) rarely affect the nearest gene. They act through regulatory elements that alter expression of genes sometimes hundreds of kilobases away. Always check eQTL evidence before assuming the nearest gene is causal.
Pathway Convergence
Multiple disease genes mapping to the same pathway is stronger evidence than a single gene. If 5 GWAS hits for a disease all map to the NF-kB pathway, that is strong mechanistic evidence — the pathway is likely causal, not just coincidentally hit. If GWAS genes scatter across unrelated pathways, the mechanism is unclear, and you may need to look at upstream regulators or gene network hubs that connect the scattered genes.
When running enrichment (Reactome, KEGG, STRING), prioritize pathways that appear across multiple databases. A pathway enriched in all three is more reliable than one that appears in only one analysis.
Druggability Reasoning
A pathway with existing drugs targeting its components is more actionable than a novel pathway. Before proposing a target as novel, check: are any pathway members already drug targets? Use DGIdb and OpenTargets to survey approved and clinical-stage drugs in the pathway.
Priorities: (1) approved drug for a different indication hitting a GWAS-supported target = strong repurposing opportunity; (2) drug in clinical trials hitting a GWAS-supported target = accelerated validation path; (3) druggable gene with no existing drugs + strong GWAS evidence = novel target opportunity.
"Undruggable" by current modalities does not mean permanently undruggable. Flag such genes but do not dismiss them — they may be actionable via gene therapy, RNA therapeutics, or downstream pathway intervention.
Tool Selection Guide
Phase 1: Disease Resolution and GWAS Collection
Resolve disease name to ontology ID first:
OpenTargetsmultientitysearchbyquerystring(queryString=<disease>) — returns EFO/MONDO IDs
Collect GWAS signals:
gwassearchassociations(query=<disease>) — broad search
gwasgetvariantsfortrait(trait=<trait>, pvaluethreshold=5e-8) — genome-wide significant hits
gwasgetsnpsforgene(gene_symbol=<gene>) — gene-centric search
Gotcha: gwasgetassociationsfortrait is broken — use gwassearchassociations instead. gwasgetsnpsforgene uses genesymbol, not mappedgene.
Phase 2: Variant Annotation and eQTL Evidence
Annotate variants:
EnsemblVEPannotatersid(variant_id=<rsid>) — functional consequence, nearest gene
- Response format is variable: list,
{data, metadata}, or {error} — handle all three
Query eQTL evidence in tissue relevant to the disease (e.g., pancreas for T2D, brain for neurological):
GTExqueryeqtl(geneinput=<gene>, tissue=<tissue>) — never pass empty geneinput
GTExgetexpressionsummary(geneinput=<gene>) — expression across all tissues
GTExgetmediangeneexpression(gencodeid=[<versionedid>], tissuesitedetailid=[<tissue>]) — use versioned Ensembl IDs (e.g., ENSG00000148737.11) and gtexv8
Phase 3: Pathway Enrichment
Run enrichment across multiple databases and cross-validate results:
ReactomeAnalysispathwayenrichment(identifiers="P04637 P38398 ...") — space-separated UniProt STRING, not an array
Reactomemapuniprottopathways(uniprot_id=<id>) — per-gene pathway membership
Reactomegetparticipants(pathway_id=<R-HSA-XXXXX>) — all genes in a pathway
KEGGgetgenepathways(geneid=<kegg_id>) — KEGG pathways for one gene
keggsearchpathway(query=<diseaseorprocess>) — keyword search
STRINGfunctionalenrichment(protein_ids=[<genes>], species=9606) — GO/KEGG/Reactome with FDR
PANTHERenrichment(genelist="GENE1,GENE2,...", organism=9606, annotation_dataset="GO:0008150") — comma-separated STRING, not array
MetaCyc note: Currently unavailable (BioCyc requires authentication). Use KEGG or Reactome for metabolic pathways.
Phase 4: Druggability and Drug Landscape
DGIdbgetgenedruggability(genes=[<genelist>]) — categories: clinically actionable, druggable, etc.
DGIdbgetdruggeneinteractions(genes=[<genelist>]) — use genes param (array), not genename
OpenTargetsgetassociateddrugsbytargetensemblID(ensemblId=<id>) — approved and clinical drugs
OpenTargetstargetdiseaseevidence(ensemblId=<id>, efoId=<diseaseid>) — genetic + other evidence score
Three-Step Workflow
Step 1: GWAS to Causal Gene
- Resolve disease ID via
OpenTargetsmultientitysearchbyquerystring
- Pull GWAS hits with
gwasgetvariantsfortrait (p < 5e-8)
- Annotate each lead SNP with VEP — is it coding or non-coding?
- For non-coding variants, check eQTL via GTEx in the disease-relevant tissue
- Prioritize genes where: GWAS SNP is also a significant eQTL AND the tissue is biologically relevant to the disease
- Cross-check with
OpenTargetstargetdisease_evidence for additional genetic evidence
Evidence tiers: High = GWAS p < 5e-8 + eQTL colocalization in relevant tissue + coding variant; Medium = GWAS p < 5e-8 + eQTL in any tissue; Low = GWAS p < 5e-8 + positional mapping only.
Step 2: Gene Set to Pathway Enrichment
- Collect prioritized gene list from Step 1
- Run
ReactomeAnalysispathwayenrichment and STRINGfunctionalenrichment
- Map each gene to KEGG pathways via
KEGGgetgene_pathways
- Identify pathways appearing across multiple databases (convergence = stronger evidence)
- For metabolic diseases, add tissue-specific network context via
humanbaseppianalysis (all 5 params required: genelist, tissue, maxnode, interaction, string_mode)
- Rank pathways by enrichment FDR x number of GWAS genes x biological plausibility
Step 3: Pathway to Drug Target
- From enriched pathways, extract all member genes via
Reactomegetparticipants and KEGGgetpathway_genes
- Assess druggability via
DGIdbgetgene_druggability
- Look up existing drugs via
OpenTargetsgetassociateddrugsbytargetensemblID
- Cross-reference pathway genes with GWAS genes: overlap = top candidate
- Classify each candidate: repurposing opportunity / novel target / undruggable (for now)
Final ranking: Genetic Evidence x Druggability x Pathway Centrality. Flag novel targets (strong genetic + no existing drugs) and repurposing opportunities (approved drug + genetic support in this disease).
Key Parameter Gotchas
gwasgetsnpsforgene: use genesymbol, not mappedgene
OpenTargetsmultientitysearchbyquerystring: use queryString, not query
GTExqueryeqtl: gene_input must never be empty
GTExgetmediangeneexpression: use versioned gencode IDs; use gtex_v8
ReactomeAnalysispathwayenrichment: identifiers is space-separated STRING, not array
DGIdbgetdruggeneinteractions: use genes (array), not gene_name
PANTHERenrichment: genelist is comma-separated STRING, not array
humanbaseppianalysis: all 5 params required
EnsemblVEPannotatersid: use variant_id, not rsid
keggfindgenes: include organism="hsa" for human genes
Limitations
- GTEx eQTL lookup is not formal statistical colocalization (coloc/ENLOC) — treat as suggestive evidence
- GWAS Catalog may not include recent publications; cross-check with Open Targets
- Reactome and KEGG define pathways differently; some biology is in one but not the other
- DGIdb druggability categories are heuristic — "undruggable" applies only to current modalities
- eQTLs are tissue-specific; querying the wrong tissue may miss causal effects
Related Skills
- tooluniverse-gwas-trait-to-gene: Focused GWAS-to-gene mapping
- tooluniverse-gene-enrichment: Detailed enrichment analysis
- tooluniverse-drug-target-validation: Deep target validation
- tooluniverse-network-pharmacology: Network-level drug analysis
- tooluniverse-variant-functional-annotation: Detailed variant interpretation