[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DARN8Z2JZ8RHFY7T8ATPT4":3,"skill-same:01M6DARN8Z2JZ8RHFY7T8ATPT4":71},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":32,"linkOnly":33,"markdownContent":34,"markdownBody":35,"frontMatter":36,"refName":37,"commitSha":38,"skillDirectory":39,"forksCount":14,"repositoryHtmlUrl":40,"repositoryHomepageUrl":6,"ownerHtmlUrl":41,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":42,"install":43,"resources":56},"01M6DARN8Z2JZ8RHFY7T8ATPT4","tooluniverse-gwas-trait-to-gene",null,"Discover genes associated with diseases and traits using GWAS data from the GWAS Catalog (500,000+ associations) and Open Targets Genetics (L2G predictions). Identifies genetic risk factors, prioritizes causal genes via locus-to-gene scoring, and assesses druggability. Use when asked to find genes associated with a disease or trait, discover genetic risk factors, translate GWAS signals to gene targets, or answer questions like \"What genes are associated with type 2 diabetes?\"","Prekzursil\u002Fagent-skills-toolchain","Prekzursil","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F54636077?v=4","01M6DACZ1PCQHD99SCR1YXG28B","Andrei Mihai Visalon","01M6DACZ670WZF535V3WYYSS4Z",0,"MIT","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Flibrary\u002Fskills\u002Ftooluniverse-gwas-trait-to-gene\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31],"tooluniverse gwas trait to gene","translate","data","risk","open","find","catalog","use","scoring","signals","discover","genetics","type","2026-11-10 10:12:30",false,"---\nname: tooluniverse-gwas-trait-to-gene\ndescription: Discover genes associated with diseases and traits using GWAS data from the GWAS Catalog (500,000+ associations) and Open Targets Genetics (L2G predictions). Identifies genetic risk factors, prioritizes causal genes via locus-to-gene scoring, and assesses druggability. Use when asked to find genes associated with a disease or trait, discover genetic risk factors, translate GWAS signals to gene targets, or answer questions like \"What genes are associated with type 2 diabetes?\"\n---\n\n# GWAS Trait-to-Gene Discovery\n\n**Nearest gene is often wrong.** Use L2G (locus-to-gene) scores from Open Targets which integrate eQTL, chromatin interaction, and distance data. L2G > 0.5 is a strong prediction; positional mapping alone should not be used to claim a causal gene. A single GWAS study with p \u003C 5e-8 is suggestive — replication across independent cohorts is required for high confidence. GWAS hits are associations in the studied population; effect sizes and even the implicated gene can differ across ancestries due to differing LD patterns. Treat gene lists from GWAS as ranked candidates for validation, not confirmed causal genes.\n\n**LOOK UP DON'T GUESS**: never assume trait-to-gene mappings or L2G scores — always call `gwas_search_associations` and `OpenTargets_get_study_credible_sets` to retrieve current data; associations are updated as new GWAS are published.\n\n**Discover genes associated with diseases and traits using genome-wide association studies (GWAS)**\n\n## Overview\n\nThis skill enables systematic discovery of genes linked to diseases\u002Ftraits by analyzing GWAS data from two major resources:\n- **GWAS Catalog** (EBI\u002FNHGRI): Curated catalog of published GWAS with >500,000 associations\n- **Open Targets Genetics**: Fine-mapped GWAS signals with locus-to-gene (L2G) predictions\n\n## Use Cases\n\n**Clinical Research**\n- \"What genes are associated with type 2 diabetes?\"\n- \"Find genetic risk factors for coronary artery disease\"\n- \"Which genes contribute to Alzheimer's disease susceptibility?\"\n\n**Drug Target Discovery**\n- Identify genes with strong genetic evidence for disease causation\n- Prioritize targets based on L2G scores and replication across studies\n- Find genes with genome-wide significant associations (p \u003C 5e-8)\n\n**Functional Genomics**\n- Map disease-associated variants to candidate genes\n- Analyze genetic architecture of complex traits\n- Understand polygenic disease mechanisms\n\n## Workflow\n\n```\n1. Trait Search → Search GWAS Catalog by disease\u002Ftrait name\n       ↓\n2. SNP Aggregation → Collect genome-wide significant SNPs (p \u003C 5e-8)\n       ↓\n3. Gene Mapping → Extract mapped genes from associations\n       ↓\n4. Evidence Ranking → Score by p-value, replication, fine-mapping\n       ↓\n5. Annotation (Optional) → Add L2G predictions from Open Targets\n```\n\n## Key Concepts\n\n**Genome-wide Significance**\n- Standard threshold: p \u003C 5×10⁻⁸\n- Accounts for multiple testing burden across ~1M common variants\n- Higher confidence: p \u003C 5×10⁻¹⁰ or replicated across studies\n\n**Gene Mapping Methods**\n- **Positional**: Nearest gene to lead SNP\n- **Fine-mapping**: Statistical refinement to credible variants\n- **Locus-to-Gene (L2G)**: Integrative score combining multiple evidence types\n\n**Evidence Confidence Levels**\n- **High**: L2G score > 0.5 OR multiple studies with p \u003C 5e-10\n- **Medium**: 2+ studies with p \u003C 5e-8\n- **Low**: Single study or marginal significance\n\n## Required ToolUniverse Tools\n\n### GWAS Catalog (11 tools)\n- `gwas_get_associations_for_trait` - Get all associations for a trait (sorted by p-value). **NOTE: This tool is BROKEN** -- use `gwas_search_associations(query=trait)` as a working alternative\n- `gwas_search_snps` - Search SNPs by gene mapping\n- `gwas_get_snp_by_id` - Get SNP details (MAF, consequence, location)\n- `gwas_get_study_by_id` - Get study metadata\n- `gwas_search_associations` - Search associations with filters (RECOMMENDED for trait lookups)\n- `gwas_search_studies` - Search studies by trait\u002Fcohort\n- `gwas_get_associations_for_snp` - Get all associations for a SNP\n- `gwas_get_variants_for_trait` - Get variants for a trait. **Supports `p_value_threshold` parameter** for server-side filtering (see notes below)\n- `gwas_get_studies_for_trait` - Get studies for a trait\n- `gwas_get_snps_for_gene` - Get SNPs mapped to a gene. **Parameter is `gene_symbol`** (NOT `mapped_gene`)\n- `gwas_get_associations_for_study` - Get associations from a study\n\n### Open Targets Genetics (6 tools)\n- `OpenTargets_search_gwas_studies_by_disease` - Search studies by disease ontology\n- `OpenTargets_get_study_credible_sets` - Get fine-mapped loci for a study\n- `OpenTargets_get_variant_credible_sets` - Get credible sets for a variant\n- `OpenTargets_get_variant_info` - Get variant annotation (frequencies, consequences)\n- `OpenTargets_get_gwas_study` - Get study metadata\n- `OpenTargets_get_credible_set_detail` - Get detailed credible set information\n\n## Parameters\n\n**Required**\n- `trait` - Disease\u002Ftrait name (e.g., \"type 2 diabetes\", \"coronary artery disease\")\n\n**Optional**\n- `p_value_threshold` - Significance threshold (default: 5e-8)\n- `min_evidence_count` - Minimum number of studies (default: 1)\n- `max_results` - Maximum genes to return (default: 100)\n- `use_fine_mapping` - Include L2G predictions (default: true)\n- `disease_ontology_id` - Disease ontology ID for Open Targets (e.g., \"MONDO_0005148\")\n\n## Output Schema\n\n```python\n{\n  \"genes\": [\n    {\n      \"symbol\": str,              # Gene symbol (e.g., \"TCF7L2\")\n      \"min_p_value\": float,       # Most significant p-value\n      \"evidence_count\": int,      # Number of independent studies\n      \"snps\": [str],              # Associated SNP rs IDs\n      \"studies\": [str],           # GWAS study accessions\n      \"l2g_score\": float | null,  # Locus-to-gene score (0-1)\n      \"credible_sets\": int,       # Number of credible sets\n      \"confidence_level\": str     # \"High\", \"Medium\", or \"Low\"\n    }\n  ],\n  \"summary\": {\n    \"trait\": str,\n    \"total_associations\": int,\n    \"significant_genes\": int,\n    \"data_sources\": [\"GWAS Catalog\", \"Open Targets\"]\n  }\n}\n```\n\n## Example Results\n\n**Type 2 Diabetes**\n```\nTCF7L2:  p=1.2e-98, 15 studies, L2G=0.82 → High confidence\nKCNJ11:  p=3.4e-67, 12 studies, L2G=0.76 → High confidence\nPPARG:   p=2.1e-45, 8 studies,  L2G=0.71 → High confidence\nFTO:     p=5.6e-42, 10 studies, L2G=0.68 → High confidence\nIRS1:    p=8.9e-38, 6 studies,  L2G=0.54 → High confidence\n```\n\n**Alzheimer's Disease**\n```\nAPOE:    p=1.0e-450, 25 studies, L2G=0.95 → High confidence\nBIN1:    p=2.3e-89,  18 studies, L2G=0.88 → High confidence\nCLU:     p=4.5e-67,  16 studies, L2G=0.82 → High confidence\nABCA7:   p=6.7e-54,  14 studies, L2G=0.79 → High confidence\nCR1:     p=8.9e-52,  13 studies, L2G=0.75 → High confidence\n```\n\n## Best Practices\n\n**1. Use Disease Ontology IDs for Precision**\n```\n# Instead of:\ndiscover_gwas_genes(\"diabetes\")  # Ambiguous\n\n# Use:\ndiscover_gwas_genes(\n    \"type 2 diabetes\",\n    disease_ontology_id=\"MONDO_0005148\"  # Specific\n)\n```\n\n**2. Filter by Evidence Strength**\n```\n# For drug targets, require strong evidence:\ndiscover_gwas_genes(\n    \"coronary artery disease\",\n    p_value_threshold=5e-10,    # Stricter than GWAS threshold\n    min_evidence_count=3,       # Multiple independent studies\n    use_fine_mapping=True       # Include L2G predictions\n)\n```\n\n**3. Interpret Results Carefully**\n- **Association ≠ Causation**: GWAS identifies correlated variants, not necessarily causal genes\n- **Linkage Disequilibrium**: Lead SNP may tag the true causal variant in a nearby gene\n- **Fine-mapping**: L2G scores provide better causal gene evidence than positional mapping\n- **Functional Evidence**: Validate with orthogonal data (eQTLs, knockout models, etc.)\n\n## Tool-Specific Notes (Updated)\n\n### `gwas_get_variants_for_trait` -- p-value Filtering\n\nThis tool now accepts an optional `p_value_threshold` parameter for server-side\np-value filtering. When provided, the GWAS Catalog API filters variants to only\nreturn those below the specified threshold.\n\n```python\n# Server-side filtering (preferred -- reduces data transfer)\nresult = tu.tools.gwas_get_variants_for_trait(\n    trait=\"type 2 diabetes\",\n    p_value_threshold=5e-8\n)\n```\n\n**Client-side fallback**: When the API returns unfiltered results (some trait\nqueries ignore the threshold parameter), the tool also applies client-side\np-value filtering. This means you may see fewer results than expected if the\nAPI returned pre-filtered data and the client filter applies again. Always\ncheck the actual p-values in the returned data.\n\n### `gwas_get_associations_for_trait` -- BROKEN\n\nThis tool returns errors for most queries. Use `gwas_search_associations(query=\u003Ctrait>)`\nas a reliable alternative. The response format is `{data: [{...}], metadata: {...}}`.\n\n### `gwas_get_snps_for_gene` -- Parameter Rename\n\nThe parameter was renamed from `mapped_gene` to `gene_symbol` for clarity. Use:\n```python\nresult = tu.tools.gwas_get_snps_for_gene(gene_symbol=\"TCF7L2\")\n```\n\n---\n\n## Programmatic Access (Beyond Tools)\n\nWhen ToolUniverse tools return limited results or you need the full GWAS Catalog:\n\n```python\nimport requests, pandas as pd\n\n# Download full GWAS Catalog (all associations, ~37MB TSV)\nurl = \"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Fapi\u002Fsearch\u002Fdownloads\u002Falternative\"\ndf = pd.read_csv(url, sep=\"\\t\")\n# Filter locally by trait or gene\nhits = df[df[\"DISEASE\u002FTRAIT\"].str.contains(\"type 2 diabetes\", case=False, na=False)]\ngene_hits = df[df[\"MAPPED_GENE\"].str.contains(\"TCF7L2\", na=False)]\n\n# Per-study associations via REST\nstudy_id = \"GCST001234\"\nassocs = requests.get(f\"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fapi\u002Fstudies\u002F{study_id}\u002Fassociations\").json()\n\n# Summary statistics (when available)\n# Check study page for fullPvalueSet=true, then download from linked FTP\n```\n\nSee `tooluniverse-data-wrangling` skill for pagination, bulk download, and format parsing patterns.\n\n---\n\n## Limitations\n\n1. **Gene Mapping Uncertainty**\n   - Positional mapping assigns SNPs to nearest gene (may be incorrect)\n   - Fine-mapping available for only a subset of studies\n   - Intergenic variants difficult to map\n\n2. **Population Bias**\n   - Most GWAS in European populations\n   - Effect sizes may differ across ancestries\n   - Rare variants often under-represented\n\n3. **Sample Size Dependence**\n   - Larger studies detect more associations\n   - Older small studies may have false negatives\n   - p-values alone don't indicate effect size\n\n4. **Validation Bug**\n   - Some ToolUniverse tools have oneOf validation issues\n   - Use `validate=False` parameter if needed\n   - This is automatically handled in the Python implementation\n\n## Related Skills\n\n- **Variant-to-Disease Association**: Look up specific SNPs (e.g., rs7903146 → T2D)\n- **Gene-to-Disease Links**: Find diseases associated with known genes\n- **Drug Target Prioritization**: Rank targets by genetic evidence\n- **Population Genetics Analysis**: Compare allele frequencies across populations\n\n## Data Sources\n\n**GWAS Catalog**\n- Curator: EBI and NHGRI\n- URL: https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002F\n- Coverage: 100,000+ publications, 500,000+ associations\n- Update Frequency: Weekly\n\n**Open Targets Genetics**\n- Curator: Open Targets consortium\n- URL: https:\u002F\u002Fgenetics.opentargets.org\u002F\n- Coverage: Fine-mapped GWAS, L2G predictions, QTL colocalization\n- Update Frequency: Quarterly\n\n## Citation\n\nIf you use this skill in research, please cite:\n\n```\nBuniello A, et al. (2019) The NHGRI-EBI GWAS Catalog of published genome-wide\nassociation studies. Nucleic Acids Research, 47(D1):D1005-D1012.\n\nMountjoy E, et al. (2021) An open approach to systematically prioritize causal\nvariants and genes at all published human GWAS trait-associated loci.\nNature Genetics, 53:1527-1533.\n```\n\n## Support\n\nFor issues with:\n- **Skill functionality**: Open issue at tooluniverse\u002Fskills\n- **GWAS data**: Contact GWAS Catalog or Open Targets support\n- **Tool errors**: Check ToolUniverse tool status\n","# GWAS Trait-to-Gene Discovery\n\n**Nearest gene is often wrong.** Use L2G (locus-to-gene) scores from Open Targets which integrate eQTL, chromatin interaction, and distance data. L2G > 0.5 is a strong prediction; positional mapping alone should not be used to claim a causal gene. A single GWAS study with p \u003C 5e-8 is suggestive — replication across independent cohorts is required for high confidence. GWAS hits are associations in the studied population; effect sizes and even the implicated gene can differ across ancestries due to differing LD patterns. Treat gene lists from GWAS as ranked candidates for validation, not confirmed causal genes.\n\n**LOOK UP DON'T GUESS**: never assume trait-to-gene mappings or L2G scores — always call `gwas_search_associations` and `OpenTargets_get_study_credible_sets` to retrieve current data; associations are updated as new GWAS are published.\n\n**Discover genes associated with diseases and traits using genome-wide association studies (GWAS)**\n\n## Overview\n\nThis skill enables systematic discovery of genes linked to diseases\u002Ftraits by analyzing GWAS data from two major resources:\n- **GWAS Catalog** (EBI\u002FNHGRI): Curated catalog of published GWAS with >500,000 associations\n- **Open Targets Genetics**: Fine-mapped GWAS signals with locus-to-gene (L2G) predictions\n\n## Use Cases\n\n**Clinical Research**\n- \"What genes are associated with type 2 diabetes?\"\n- \"Find genetic risk factors for coronary artery disease\"\n- \"Which genes contribute to Alzheimer's disease susceptibility?\"\n\n**Drug Target Discovery**\n- Identify genes with strong genetic evidence for disease causation\n- Prioritize targets based on L2G scores and replication across studies\n- Find genes with genome-wide significant associations (p \u003C 5e-8)\n\n**Functional Genomics**\n- Map disease-associated variants to candidate genes\n- Analyze genetic architecture of complex traits\n- Understand polygenic disease mechanisms\n\n## Workflow\n\n```\n1. Trait Search → Search GWAS Catalog by disease\u002Ftrait name\n       ↓\n2. SNP Aggregation → Collect genome-wide significant SNPs (p \u003C 5e-8)\n       ↓\n3. Gene Mapping → Extract mapped genes from associations\n       ↓\n4. Evidence Ranking → Score by p-value, replication, fine-mapping\n       ↓\n5. Annotation (Optional) → Add L2G predictions from Open Targets\n```\n\n## Key Concepts\n\n**Genome-wide Significance**\n- Standard threshold: p \u003C 5×10⁻⁸\n- Accounts for multiple testing burden across ~1M common variants\n- Higher confidence: p \u003C 5×10⁻¹⁰ or replicated across studies\n\n**Gene Mapping Methods**\n- **Positional**: Nearest gene to lead SNP\n- **Fine-mapping**: Statistical refinement to credible variants\n- **Locus-to-Gene (L2G)**: Integrative score combining multiple evidence types\n\n**Evidence Confidence Levels**\n- **High**: L2G score > 0.5 OR multiple studies with p \u003C 5e-10\n- **Medium**: 2+ studies with p \u003C 5e-8\n- **Low**: Single study or marginal significance\n\n## Required ToolUniverse Tools\n\n### GWAS Catalog (11 tools)\n- `gwas_get_associations_for_trait` - Get all associations for a trait (sorted by p-value). **NOTE: This tool is BROKEN** -- use `gwas_search_associations(query=trait)` as a working alternative\n- `gwas_search_snps` - Search SNPs by gene mapping\n- `gwas_get_snp_by_id` - Get SNP details (MAF, consequence, location)\n- `gwas_get_study_by_id` - Get study metadata\n- `gwas_search_associations` - Search associations with filters (RECOMMENDED for trait lookups)\n- `gwas_search_studies` - Search studies by trait\u002Fcohort\n- `gwas_get_associations_for_snp` - Get all associations for a SNP\n- `gwas_get_variants_for_trait` - Get variants for a trait. **Supports `p_value_threshold` parameter** for server-side filtering (see notes below)\n- `gwas_get_studies_for_trait` - Get studies for a trait\n- `gwas_get_snps_for_gene` - Get SNPs mapped to a gene. **Parameter is `gene_symbol`** (NOT `mapped_gene`)\n- `gwas_get_associations_for_study` - Get associations from a study\n\n### Open Targets Genetics (6 tools)\n- `OpenTargets_search_gwas_studies_by_disease` - Search studies by disease ontology\n- `OpenTargets_get_study_credible_sets` - Get fine-mapped loci for a study\n- `OpenTargets_get_variant_credible_sets` - Get credible sets for a variant\n- `OpenTargets_get_variant_info` - Get variant annotation (frequencies, consequences)\n- `OpenTargets_get_gwas_study` - Get study metadata\n- `OpenTargets_get_credible_set_detail` - Get detailed credible set information\n\n## Parameters\n\n**Required**\n- `trait` - Disease\u002Ftrait name (e.g., \"type 2 diabetes\", \"coronary artery disease\")\n\n**Optional**\n- `p_value_threshold` - Significance threshold (default: 5e-8)\n- `min_evidence_count` - Minimum number of studies (default: 1)\n- `max_results` - Maximum genes to return (default: 100)\n- `use_fine_mapping` - Include L2G predictions (default: true)\n- `disease_ontology_id` - Disease ontology ID for Open Targets (e.g., \"MONDO_0005148\")\n\n## Output Schema\n\n```python\n{\n  \"genes\": [\n    {\n      \"symbol\": str,              # Gene symbol (e.g., \"TCF7L2\")\n      \"min_p_value\": float,       # Most significant p-value\n      \"evidence_count\": int,      # Number of independent studies\n      \"snps\": [str],              # Associated SNP rs IDs\n      \"studies\": [str],           # GWAS study accessions\n      \"l2g_score\": float | null,  # Locus-to-gene score (0-1)\n      \"credible_sets\": int,       # Number of credible sets\n      \"confidence_level\": str     # \"High\", \"Medium\", or \"Low\"\n    }\n  ],\n  \"summary\": {\n    \"trait\": str,\n    \"total_associations\": int,\n    \"significant_genes\": int,\n    \"data_sources\": [\"GWAS Catalog\", \"Open Targets\"]\n  }\n}\n```\n\n## Example Results\n\n**Type 2 Diabetes**\n```\nTCF7L2:  p=1.2e-98, 15 studies, L2G=0.82 → High confidence\nKCNJ11:  p=3.4e-67, 12 studies, L2G=0.76 → High confidence\nPPARG:   p=2.1e-45, 8 studies,  L2G=0.71 → High confidence\nFTO:     p=5.6e-42, 10 studies, L2G=0.68 → High confidence\nIRS1:    p=8.9e-38, 6 studies,  L2G=0.54 → High confidence\n```\n\n**Alzheimer's Disease**\n```\nAPOE:    p=1.0e-450, 25 studies, L2G=0.95 → High confidence\nBIN1:    p=2.3e-89,  18 studies, L2G=0.88 → High confidence\nCLU:     p=4.5e-67,  16 studies, L2G=0.82 → High confidence\nABCA7:   p=6.7e-54,  14 studies, L2G=0.79 → High confidence\nCR1:     p=8.9e-52,  13 studies, L2G=0.75 → High confidence\n```\n\n## Best Practices\n\n**1. Use Disease Ontology IDs for Precision**\n```\n# Instead of:\ndiscover_gwas_genes(\"diabetes\")  # Ambiguous\n\n# Use:\ndiscover_gwas_genes(\n    \"type 2 diabetes\",\n    disease_ontology_id=\"MONDO_0005148\"  # Specific\n)\n```\n\n**2. Filter by Evidence Strength**\n```\n# For drug targets, require strong evidence:\ndiscover_gwas_genes(\n    \"coronary artery disease\",\n    p_value_threshold=5e-10,    # Stricter than GWAS threshold\n    min_evidence_count=3,       # Multiple independent studies\n    use_fine_mapping=True       # Include L2G predictions\n)\n```\n\n**3. Interpret Results Carefully**\n- **Association ≠ Causation**: GWAS identifies correlated variants, not necessarily causal genes\n- **Linkage Disequilibrium**: Lead SNP may tag the true causal variant in a nearby gene\n- **Fine-mapping**: L2G scores provide better causal gene evidence than positional mapping\n- **Functional Evidence**: Validate with orthogonal data (eQTLs, knockout models, etc.)\n\n## Tool-Specific Notes (Updated)\n\n### `gwas_get_variants_for_trait` -- p-value Filtering\n\nThis tool now accepts an optional `p_value_threshold` parameter for server-side\np-value filtering. When provided, the GWAS Catalog API filters variants to only\nreturn those below the specified threshold.\n\n```python\n# Server-side filtering (preferred -- reduces data transfer)\nresult = tu.tools.gwas_get_variants_for_trait(\n    trait=\"type 2 diabetes\",\n    p_value_threshold=5e-8\n)\n```\n\n**Client-side fallback**: When the API returns unfiltered results (some trait\nqueries ignore the threshold parameter), the tool also applies client-side\np-value filtering. This means you may see fewer results than expected if the\nAPI returned pre-filtered data and the client filter applies again. Always\ncheck the actual p-values in the returned data.\n\n### `gwas_get_associations_for_trait` -- BROKEN\n\nThis tool returns errors for most queries. Use `gwas_search_associations(query=\u003Ctrait>)`\nas a reliable alternative. The response format is `{data: [{...}], metadata: {...}}`.\n\n### `gwas_get_snps_for_gene` -- Parameter Rename\n\nThe parameter was renamed from `mapped_gene` to `gene_symbol` for clarity. Use:\n```python\nresult = tu.tools.gwas_get_snps_for_gene(gene_symbol=\"TCF7L2\")\n```\n\n---\n\n## Programmatic Access (Beyond Tools)\n\nWhen ToolUniverse tools return limited results or you need the full GWAS Catalog:\n\n```python\nimport requests, pandas as pd\n\n# Download full GWAS Catalog (all associations, ~37MB TSV)\nurl = \"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Fapi\u002Fsearch\u002Fdownloads\u002Falternative\"\ndf = pd.read_csv(url, sep=\"\\t\")\n# Filter locally by trait or gene\nhits = df[df[\"DISEASE\u002FTRAIT\"].str.contains(\"type 2 diabetes\", case=False, na=False)]\ngene_hits = df[df[\"MAPPED_GENE\"].str.contains(\"TCF7L2\", na=False)]\n\n# Per-study associations via REST\nstudy_id = \"GCST001234\"\nassocs = requests.get(f\"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fapi\u002Fstudies\u002F{study_id}\u002Fassociations\").json()\n\n# Summary statistics (when available)\n# Check study page for fullPvalueSet=true, then download from linked FTP\n```\n\nSee `tooluniverse-data-wrangling` skill for pagination, bulk download, and format parsing patterns.\n\n---\n\n## Limitations\n\n1. **Gene Mapping Uncertainty**\n   - Positional mapping assigns SNPs to nearest gene (may be incorrect)\n   - Fine-mapping available for only a subset of studies\n   - Intergenic variants difficult to map\n\n2. **Population Bias**\n   - Most GWAS in European populations\n   - Effect sizes may differ across ancestries\n   - Rare variants often under-represented\n\n3. **Sample Size Dependence**\n   - Larger studies detect more associations\n   - Older small studies may have false negatives\n   - p-values alone don't indicate effect size\n\n4. **Validation Bug**\n   - Some ToolUniverse tools have oneOf validation issues\n   - Use `validate=False` parameter if needed\n   - This is automatically handled in the Python implementation\n\n## Related Skills\n\n- **Variant-to-Disease Association**: Look up specific SNPs (e.g., rs7903146 → T2D)\n- **Gene-to-Disease Links**: Find diseases associated with known genes\n- **Drug Target Prioritization**: Rank targets by genetic evidence\n- **Population Genetics Analysis**: Compare allele frequencies across populations\n\n## Data Sources\n\n**GWAS Catalog**\n- Curator: EBI and NHGRI\n- URL: https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002F\n- Coverage: 100,000+ publications, 500,000+ associations\n- Update Frequency: Weekly\n\n**Open Targets Genetics**\n- Curator: Open Targets consortium\n- URL: https:\u002F\u002Fgenetics.opentargets.org\u002F\n- Coverage: Fine-mapped GWAS, L2G predictions, QTL colocalization\n- Update Frequency: Quarterly\n\n## Citation\n\nIf you use this skill in research, please cite:\n\n```\nBuniello A, et al. (2019) The NHGRI-EBI GWAS Catalog of published genome-wide\nassociation studies. Nucleic Acids Research, 47(D1):D1005-D1012.\n\nMountjoy E, et al. (2021) An open approach to systematically prioritize causal\nvariants and genes at all published human GWAS trait-associated loci.\nNature Genetics, 53:1527-1533.\n```\n\n## Support\n\nFor issues with:\n- **Skill functionality**: Open issue at tooluniverse\u002Fskills\n- **GWAS data**: Contact GWAS Catalog or Open Targets support\n- **Tool errors**: Check ToolUniverse tool status\n",{"name":5,"description":7},"main","a298c929b6cbd662e1fce54302ce520d5ceea1a5",".agents\u002Flibrary\u002Fskills\u002Ftooluniverse-gwas-trait-to-gene","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain","https:\u002F\u002Fgithub.com\u002FPrekzursil","2026-11-02 14:30:57",{"source":8,"skillName":5,"commands":44,"prompt":54,"zipAvailable":55},[45,48,51],{"tool":46,"command":47},"npx","npx skills add Prekzursil\u002Fagent-skills-toolchain --skill tooluniverse-gwas-trait-to-gene",{"tool":49,"command":50},"bunx","bunx skills add Prekzursil\u002Fagent-skills-toolchain --skill tooluniverse-gwas-trait-to-gene",{"tool":52,"command":53},"pnpm","pnpm dlx skills add Prekzursil\u002Fagent-skills-toolchain --skill tooluniverse-gwas-trait-to-gene","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Flibrary\u002Fskills\u002Ftooluniverse-gwas-trait-to-gene\u002FSKILL.md",true,[57,63,67],{"path":58,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":61,"sourceHtmlUrl":62},"python_implementation.py","SCRIPT","脚本",8905,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Flibrary\u002Fskills\u002Ftooluniverse-gwas-trait-to-gene\u002Fpython_implementation.py",{"path":64,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":65,"sourceHtmlUrl":66},"test_gwas_tools.py",10115,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Flibrary\u002Fskills\u002Ftooluniverse-gwas-trait-to-gene\u002Ftest_gwas_tools.py",{"path":68,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":69,"sourceHtmlUrl":70},"test_skill_comprehensive.py",15180,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Flibrary\u002Fskills\u002Ftooluniverse-gwas-trait-to-gene\u002Ftest_skill_comprehensive.py",[72,92,122,149,163,179],{"skillNo":73,"name":74,"nameZh":6,"description":75,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":78,"publishedAt":32},"01M6DF7D7478R55P46REYH4QAC","clarify-requirements","Resolve genuine pre-execution ambiguity by scanning repo context, generating 1-6 grounded options, and asking 1-3 focused questions via AskUserQuestion. NOT for mid-task use (injection risk); NOT when the goal is already unambiguous; use to disambiguate vague prompts before any file edits.","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Fworkspace-hooks\u002Fskills\u002Fclarify-requirements\u002FSKILL.md",[],[79,80,81,22,82,83,84,85,86,26,87,88,89,90,91],"clarify requirements","clarify","requirements","options","task","prompts","goal","scanning","context","repo","injection","execution","file",{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":103,"publishedAt":32},"01M6DF79CA4BHJS66J8EZDBPWJ","openmm-md","Run FREE, open-source, Windows-native GPU molecular dynamics via the openmm-md MCP (OpenMM + CUDA on the local NVIDIA GPU). Use for protein \u002F protein-ligand MD when you want a free stack or are on Windows without a Schrodinger license. Covers the full workflow (prepare, solvate, minimize, equilibrate, production, analyze, mmgbsa) AND an honest decision guide vs Schrodinger Desmond, including how to run Desmond legitimately on Linux or a cloud GPU with a real license. This is a deliberately LESSER free alternative and does NOT replace the schrodinger MCP tools. Do NOT use it to pick a free tool when a validated FEP+, WaterMap, IFD-MD, or Prime MM-GBSA result is actually required.","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Fmcp\u002Fopenmm-md-mcp\u002Fskill\u002Fopenmm-md\u002FSKILL.md",[98],{"categoryNo":99,"categoryName":100,"taxonomyType":101,"taxonomyTypeDesc":102},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[104,105,106,107,108,109,110,111,23,112,113,114,115,116,26,117,118,119,120,121],"openmm md","how","decision","pick","linux","analyze","tool","stack","NVIDIA","gpu","license","workflow","windows","free","molecular dynamics","local","do","MCP",{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":134,"publishedAt":32},"01M6DF76C1MG85VEWP8VZCBNMN","visual-review","Take screenshots of web pages and UI using Playwright for visual review and iteration","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fvisual-review\u002FSKILL.md",[128,131],{"categoryNo":129,"categoryName":130,"taxonomyType":101,"taxonomyTypeDesc":102},"01JBSEEDCAT000000000000003","演示文稿",{"categoryNo":132,"categoryName":133,"taxonomyType":101,"taxonomyTypeDesc":102},"01JBSEEDCAT000000000000008","测试与质量",[135,136,137,138,139,140,141,142,143,144,105,145,146,147,148],"review","visual","visual review","pages","web","false","iteration","take","check","slides","ui","screenshot","playwright","screenshots",{"skillNo":150,"name":151,"nameZh":6,"description":152,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":153,"categories":154,"keywords":155,"publishedAt":32},"01M6DF73AQVCBZKEN0YXEX9FXP","status","Diagnostic status report — shows metaswarm installation state, project setup, and potential issues","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fstatus\u002FSKILL.md",[],[151,156,157,158,159,160,161,162],"setup","report","project","installation","project setup","issues","state",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":170,"publishedAt":32},"01M6DF6X6C2XB0P6GX76P7TTYV","start","Use when starting work on any task, when the user mentions metaswarm, or when the user wants to begin tracked development work","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fstart\u002FSKILL.md",[169],{"categoryNo":99,"categoryName":100,"taxonomyType":101,"taxonomyTypeDesc":102},[165,171,83,172,173,174,26,175,176,177,178],"start issue","issue","ready","work on issue","user","work","work on","development",{"skillNo":180,"name":156,"nameZh":6,"description":181,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":182,"categories":183,"keywords":184,"publishedAt":32},"01M6DF6QMJ9AJKFKHHKRT005PQ","Interactive project setup — detects your project, configures metaswarm, writes project-local files","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fsetup\u002FSKILL.md",[],[156,158,119,185,160,186],"files","interactive"]