Transform GWAS signals into actionable drug targets and repurposing opportunities. Performs locus-to-gene mapping, target druggability assessment, existing drug identification, safety profile evaluation, and clinical trial matching. Use when discovering drug targets from GWAS data, finding drug repurposing opportunities from genetic associations, or translating GWAS findings into therapeutic leads.
Transform genome-wide association studies (GWAS) into actionable drug targets and repurposing opportunities.
IMPORTANT: Always use English terms in tool calls. Respond in the user's language.
This skill bridges genetic discoveries from GWAS with drug development by:
Key insight: Targets with genetic support have 2x higher probability of clinical approval (Nelson et al., Nature Genetics 2015).
GWAS-to-drug translation succeeds when you think causally. A genetic association provides causal direction that observational data cannot: if a loss-of-function variant protects against disease, an inhibitor of that gene's product is the hypothesis to test. The direction of effect (LOF vs. GOF) determines whether you need an inhibitor or an agonist — get this wrong and the drug works backwards. GWAS effect sizes are small (odds ratios of 1.1–1.5 are typical), but the drug effect may be much larger or smaller than the genetic effect; the genetic signal validates the target, not the dose. Always integrate multiple lines of evidence (eQTL colocalization, pQTL, L2G score) before committing to a target, because many GWAS variants tag the causal gene only indirectly.
LOOK UP DON'T GUESS: Do not assume which gene a GWAS variant implicates — use OpenTargets_get_variant_credible_sets or gwas_get_associations_for_snp to get the actual mapped gene and L2G score. Do not guess the direction of effect, odds ratio, or whether a drug already exists for the target; always query the tools.
Input: Disease/trait name (e.g., "type 2 diabetes", "Alzheimer disease")
Process: Query GWAS Catalog for associations, filter by significance (p < 5x10^-8), map variants to genes, aggregate evidence.
Tools:
gwas_get_associations_for_trait - Get associations by diseasegwas_search_associations - Flexible searchgwas_get_associations_for_snp - SNP-specific associationsOpenTargets_search_gwas_studies_by_disease - Curated GWAS dataOpenTargets_get_variant_credible_sets - Fine-mapped loci with L2G predictionsInput: Gene list from Step 1
Process: Check target class, assess tractability, evaluate safety, check for tool compounds or structures.
Tools:
OpenTargets_get_target_tractability_by_ensemblID - Druggability assessmentOpenTargets_get_target_classes_by_ensemblID - Target classificationOpenTargets_get_target_safety_profile_by_ensemblID - Safety dataOpenTargets_get_target_genomic_location_by_ensemblID - Genomic contextScoring Formula:
Target Score = (GWAS Score x 0.4) + (Druggability x 0.3) + (Clinical Evidence x 0.2) + (Novelty x 0.1)
Rank targets by composite score. Generate target dossiers.
Process: Search drug-target associations, find approved drugs and clinical candidates, get MOA and indication data.
Tools:
OpenTargets_get_associated_drugs_by_disease_efoId - Known drugs for diseaseOpenTargets_get_drug_mechanisms_of_action_by_chemblId - Drug MOAChEMBL_get_target_activities - Bioactivity dataChEMBL_get_drug_mechanisms / ChEMBL_search_drugs - Drug dataTools:
FDA_get_adverse_reactions_by_drug_name - Safety dataFDA_get_active_ingredient_info_by_drug_name - Drug compositionOpenTargets_get_drug_warnings_by_chemblId - Drug warningsMatch drug targets to new disease genes, assess mechanistic fit, check contraindications, estimate repurposing probability.
from tooluniverse import ToolUniverse
tu = ToolUniverse(use_cache=True)
tu.load_tools()
# Step 1: Get GWAS associations (use disease_trait not trait; no p_value_threshold param)
associations = tu.tools.gwas_get_associations_for_trait(disease_trait="type 2 diabetes")
# Step 2: Assess druggability (ensemblId lowercase d)
tractability = tu.tools.OpenTargets_get_target_tractability_by_ensemblID(ensemblId="ENSG00000148737")
# Step 3: Find existing drugs per target via DGIdb (OpenTargets drug query may return HTTP 400)
drugs = tu.tools.DGIdb_get_drug_gene_interactions(genes=["TCF7L2"])
GWAS & Genetics:
gwas_get_associations_for_trait / gwas_search_associations / gwas_get_associations_for_snpOpenTargets_search_gwas_studies_by_disease / OpenTargets_get_variant_credible_setsTarget Assessment:
OpenTargets_get_target_tractability_by_ensemblID / OpenTargets_get_target_classes_by_ensemblIDOpenTargets_get_target_safety_profile_by_ensemblID / OpenTargets_get_target_genomic_location_by_ensemblIDDrug Discovery:
OpenTargets_get_associated_drugs_by_disease_efoId / OpenTargets_get_drug_mechanisms_of_action_by_chemblIdChEMBL_get_target_activities / ChEMBL_get_drug_mechanisms / ChEMBL_search_drugsSafety & Clinical:
FDA_get_adverse_reactions_by_drug_name / FDA_get_active_ingredient_info_by_drug_nameOpenTargets_get_drug_warnings_by_chemblIdLiterature:
PubMed_search_articles / EuropePMC_search_articles / ClinicalTrials_search_studiestu.run_batch() for parallel queries across targets| Issue | Wrong | Correct |
|---|---|---|
| GWAS trait param | gwas_get_associations_for_trait(trait=...) | disease_trait=... (no trait param exists) |
| GWAS p-value filter | p_value_threshold=5e-8 | No such param; filter client-side after fetching results |
| OpenTargets ensembl case | ensemblID="ENSG..." | ensemblId="ENSG..." (lowercase 'd') |
| ClinicalTrials tool name | ClinicalTrials_search(...) | ClinicalTrials_search_studies(...) |
| DGIdb tool name | DGIdb_get_interactions(...) | DGIdb_get_drug_gene_interactions(genes=[...]) |
| OpenTargets disease drugs | OpenTargets_get_associated_drugs_by_disease_efoId may return HTTP 400 | Fall back to DGIdb_get_drug_gene_interactions per gene |
| GWAS study search param | gwas_search_studies(disease_trait=...) | Use efo_trait=... for studies (disease_trait works for associations only) |
| Signal Quality | Criteria | Drug Discovery Value |
|---|---|---|
| Gold standard | Genome-wide significant (p < 5e-8), replicated across ancestries, L2G > 0.5, eQTL colocalized | Highest priority — genetic causality established |
| Strong | Genome-wide significant, L2G > 0.3, biological plausibility | High priority — pursue with functional validation |
| Moderate | Suggestive (p < 1e-5), or significant but no fine-mapping | Medium — needs additional evidence before investment |
| Weak | Single study, no replication, low L2G, no functional support | Low — hypothesis generating only |
After identifying GWAS-linked genes, rank them by answering:
Is the gene druggable? (DGIdb category: kinase/GPCR/ion channel = yes; transcription factor/scaffold = harder)
Is the genetic direction clear?
What's the effect size? (Odds ratio from GWAS)
Is there clinical precedent?
| Problem | Solution |
|---|---|
| No GWAS hits for disease | Try broader trait name, check synonyms, use OpenTargets |
| Gene not in druggable class | Consider antibody/antisense modalities, check pathway neighbors |
| No existing drugs for target | Target may be novel - check tool compounds in ChEMBL |
| Low L2G score | Variants may be regulatory - check eQTL/pQTL evidence |