[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6AFEVGG4NKXDVCME27VSJYC":3,"skill-same:01M6AFEVGG4NKXDVCME27VSJYC":98},{"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":26,"publishedAt":41,"linkOnly":42,"markdownContent":43,"markdownBody":44,"frontMatter":45,"refName":46,"commitSha":47,"skillDirectory":48,"forksCount":49,"repositoryHtmlUrl":50,"repositoryHomepageUrl":51,"ownerHtmlUrl":52,"ownerBlogUrl":53,"ownerDescription":54,"updatedAt":55,"install":56,"resources":69},"01M6AFEVGG4NKXDVCME27VSJYC","gwas-database",null,"Query NHGRI-EBI GWAS Catalog for SNP-trait associations. Search variants by rs ID, disease\u002Ftrait, gene, retrieve p-values and summary statistics, for genetic epidemiology and polygenic risk scores.","davila7\u002Fclaude-code-templates","davila7","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6216945?v=4","01M6ADEWWFPS191NFM0Y1EX1JH","Daniel Avila","01M6ADJHGM78PHQRD3XZTFDVKK",33332,"MIT","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fscientific\u002Fgwas-database\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[27,28,29,30,31,32,33,34,35,36,37,38,39,40],"database","gwas database","search","risk","catalog","summary","query","statistics","id","epidemiology","values","for","gene","variants","2026-11-10 10:12:30",false,"---\nname: gwas-database\ndescription: \"Query NHGRI-EBI GWAS Catalog for SNP-trait associations. Search variants by rs ID, disease\u002Ftrait, gene, retrieve p-values and summary statistics, for genetic epidemiology and polygenic risk scores.\"\n---\n\n# GWAS Catalog Database\n\n## Overview\n\nThe GWAS Catalog is a comprehensive repository of published genome-wide association studies maintained by the National Human Genome Research Institute (NHGRI) and the European Bioinformatics Institute (EBI). The catalog contains curated SNP-trait associations from thousands of GWAS publications, including genetic variants, associated traits and diseases, p-values, effect sizes, and full summary statistics for many studies.\n\n## When to Use This Skill\n\nThis skill should be used when queries involve:\n\n- **Genetic variant associations**: Finding SNPs associated with diseases or traits\n- **SNP lookups**: Retrieving information about specific genetic variants (rs IDs)\n- **Trait\u002Fdisease searches**: Discovering genetic associations for phenotypes\n- **Gene associations**: Finding variants in or near specific genes\n- **GWAS summary statistics**: Accessing complete genome-wide association data\n- **Study metadata**: Retrieving publication and cohort information\n- **Population genetics**: Exploring ancestry-specific associations\n- **Polygenic risk scores**: Identifying variants for risk prediction models\n- **Functional genomics**: Understanding variant effects and genomic context\n- **Systematic reviews**: Comprehensive literature synthesis of genetic associations\n\n## Core Capabilities\n\n### 1. Understanding GWAS Catalog Data Structure\n\nThe GWAS Catalog is organized around four core entities:\n\n- **Studies**: GWAS publications with metadata (PMID, author, cohort details)\n- **Associations**: SNP-trait associations with statistical evidence (p ≤ 5×10⁻⁸)\n- **Variants**: Genetic markers (SNPs) with genomic coordinates and alleles\n- **Traits**: Phenotypes and diseases (mapped to EFO ontology terms)\n\n**Key Identifiers:**\n- Study accessions: `GCST` IDs (e.g., GCST001234)\n- Variant IDs: `rs` numbers (e.g., rs7903146) or `variant_id` format\n- Trait IDs: EFO terms (e.g., EFO_0001360 for type 2 diabetes)\n- Gene symbols: HGNC approved names (e.g., TCF7L2)\n\n### 2. Web Interface Searches\n\nThe web interface at https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002F supports multiple search modes:\n\n**By Variant (rs ID):**\n```\nrs7903146\n```\nReturns all trait associations for this SNP.\n\n**By Disease\u002FTrait:**\n```\ntype 2 diabetes\nParkinson disease\nbody mass index\n```\nReturns all associated genetic variants.\n\n**By Gene:**\n```\nAPOE\nTCF7L2\n```\nReturns variants in or near the gene region.\n\n**By Chromosomal Region:**\n```\n10:114000000-115000000\n```\nReturns variants in the specified genomic interval.\n\n**By Publication:**\n```\nPMID:20581827\nAuthor: McCarthy MI\nGCST001234\n```\nReturns study details and all reported associations.\n\n### 3. REST API Access\n\nThe GWAS Catalog provides two REST APIs for programmatic access:\n\n**Base URLs:**\n- GWAS Catalog API: `https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fapi`\n- Summary Statistics API: `https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Fsummary-statistics\u002Fapi`\n\n**API Documentation:**\n- Main API docs: https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fdocs\u002Fapi\n- Summary stats docs: https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Fsummary-statistics\u002Fdocs\u002F\n\n**Core Endpoints:**\n\n1. **Studies endpoint** - `\u002Fstudies\u002F{accessionID}`\n   ```python\n   import requests\n\n   # Get a specific study\n   url = \"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fapi\u002Fstudies\u002FGCST001795\"\n   response = requests.get(url, headers={\"Content-Type\": \"application\u002Fjson\"})\n   study = response.json()\n   ```\n\n2. **Associations endpoint** - `\u002Fassociations`\n   ```python\n   # Find associations for a variant\n   variant = \"rs7903146\"\n   url = f\"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fapi\u002FsingleNucleotidePolymorphisms\u002F{variant}\u002Fassociations\"\n   params = {\"projection\": \"associationBySnp\"}\n   response = requests.get(url, params=params, headers={\"Content-Type\": \"application\u002Fjson\"})\n   associations = response.json()\n   ```\n\n3. **Variants endpoint** - `\u002FsingleNucleotidePolymorphisms\u002F{rsID}`\n   ```python\n   # Get variant details\n   url = \"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fapi\u002FsingleNucleotidePolymorphisms\u002Frs7903146\"\n   response = requests.get(url, headers={\"Content-Type\": \"application\u002Fjson\"})\n   variant_info = response.json()\n   ```\n\n4. **Traits endpoint** - `\u002FefoTraits\u002F{efoID}`\n   ```python\n   # Get trait information\n   url = \"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fapi\u002FefoTraits\u002FEFO_0001360\"\n   response = requests.get(url, headers={\"Content-Type\": \"application\u002Fjson\"})\n   trait_info = response.json()\n   ```\n\n### 4. Query Examples and Patterns\n\n**Example 1: Find all associations for a disease**\n```python\nimport requests\n\ntrait = \"EFO_0001360\"  # Type 2 diabetes\nbase_url = \"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fapi\"\n\n# Query associations for this trait\nurl = f\"{base_url}\u002FefoTraits\u002F{trait}\u002Fassociations\"\nresponse = requests.get(url, headers={\"Content-Type\": \"application\u002Fjson\"})\nassociations = response.json()\n\n# Process results\nfor assoc in associations.get('_embedded', {}).get('associations', []):\n    variant = assoc.get('rsId')\n    pvalue = assoc.get('pvalue')\n    risk_allele = assoc.get('strongestAllele')\n    print(f\"{variant}: p={pvalue}, risk allele={risk_allele}\")\n```\n\n**Example 2: Get variant information and all trait associations**\n```python\nimport requests\n\nvariant = \"rs7903146\"\nbase_url = \"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fapi\"\n\n# Get variant details\nurl = f\"{base_url}\u002FsingleNucleotidePolymorphisms\u002F{variant}\"\nresponse = requests.get(url, headers={\"Content-Type\": \"application\u002Fjson\"})\nvariant_data = response.json()\n\n# Get all associations for this variant\nurl = f\"{base_url}\u002FsingleNucleotidePolymorphisms\u002F{variant}\u002Fassociations\"\nparams = {\"projection\": \"associationBySnp\"}\nresponse = requests.get(url, params=params, headers={\"Content-Type\": \"application\u002Fjson\"})\nassociations = response.json()\n\n# Extract trait names and p-values\nfor assoc in associations.get('_embedded', {}).get('associations', []):\n    trait = assoc.get('efoTrait')\n    pvalue = assoc.get('pvalue')\n    print(f\"Trait: {trait}, p-value: {pvalue}\")\n```\n\n**Example 3: Access summary statistics**\n```python\nimport requests\n\n# Query summary statistics API\nbase_url = \"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Fsummary-statistics\u002Fapi\"\n\n# Find associations by trait with p-value threshold\ntrait = \"EFO_0001360\"  # Type 2 diabetes\np_upper = \"0.000000001\"  # p \u003C 1e-9\nurl = f\"{base_url}\u002Ftraits\u002F{trait}\u002Fassociations\"\nparams = {\n    \"p_upper\": p_upper,\n    \"size\": 100  # Number of results\n}\nresponse = requests.get(url, params=params)\nresults = response.json()\n\n# Process genome-wide significant hits\nfor hit in results.get('_embedded', {}).get('associations', []):\n    variant_id = hit.get('variant_id')\n    chromosome = hit.get('chromosome')\n    position = hit.get('base_pair_location')\n    pvalue = hit.get('p_value')\n    print(f\"{chromosome}:{position} ({variant_id}): p={pvalue}\")\n```\n\n**Example 4: Query by chromosomal region**\n```python\nimport requests\n\n# Find variants in a specific genomic region\nchromosome = \"10\"\nstart_pos = 114000000\nend_pos = 115000000\n\nbase_url = \"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fapi\"\nurl = f\"{base_url}\u002FsingleNucleotidePolymorphisms\u002Fsearch\u002FfindByChromBpLocationRange\"\nparams = {\n    \"chrom\": chromosome,\n    \"bpStart\": start_pos,\n    \"bpEnd\": end_pos\n}\nresponse = requests.get(url, params=params, headers={\"Content-Type\": \"application\u002Fjson\"})\nvariants_in_region = response.json()\n```\n\n### 5. Working with Summary Statistics\n\nThe GWAS Catalog hosts full summary statistics for many studies, providing access to all tested variants (not just genome-wide significant hits).\n\n**Access Methods:**\n1. **FTP download**: http:\u002F\u002Fftp.ebi.ac.uk\u002Fpub\u002Fdatabases\u002Fgwas\u002Fsummary_statistics\u002F\n2. **REST API**: Query-based access to summary statistics\n3. **Web interface**: Browse and download via the website\n\n**Summary Statistics API Features:**\n- Filter by chromosome, position, p-value\n- Query specific variants across studies\n- Retrieve effect sizes and allele frequencies\n- Access harmonized and standardized data\n\n**Example: Download summary statistics for a study**\n```python\nimport requests\nimport gzip\n\n# Get available summary statistics\nbase_url = \"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Fsummary-statistics\u002Fapi\"\nurl = f\"{base_url}\u002Fstudies\u002FGCST001234\"\nresponse = requests.get(url)\nstudy_info = response.json()\n\n# Download link is provided in the response\n# Alternatively, use FTP:\n# ftp:\u002F\u002Fftp.ebi.ac.uk\u002Fpub\u002Fdatabases\u002Fgwas\u002Fsummary_statistics\u002FGCSTXXXXXX\u002F\n```\n\n### 6. Data Integration and Cross-referencing\n\nThe GWAS Catalog provides links to external resources:\n\n**Genomic Databases:**\n- Ensembl: Gene annotations and variant consequences\n- dbSNP: Variant identifiers and population frequencies\n- gnomAD: Population allele frequencies\n\n**Functional Resources:**\n- Open Targets: Target-disease associations\n- PGS Catalog: Polygenic risk scores\n- UCSC Genome Browser: Genomic context\n\n**Phenotype Resources:**\n- EFO (Experimental Factor Ontology): Standardized trait terms\n- OMIM: Disease gene relationships\n- Disease Ontology: Disease hierarchies\n\n**Following Links in API Responses:**\n```python\nimport requests\n\n# API responses include _links for related resources\nresponse = requests.get(\"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fapi\u002Fstudies\u002FGCST001234\")\nstudy = response.json()\n\n# Follow link to associations\nassociations_url = study['_links']['associations']['href']\nassociations_response = requests.get(associations_url)\n```\n\n## Query Workflows\n\n### Workflow 1: Exploring Genetic Associations for a Disease\n\n1. **Identify the trait** using EFO terms or free text:\n   - Search web interface for disease name\n   - Note the EFO ID (e.g., EFO_0001360 for type 2 diabetes)\n\n2. **Query associations via API:**\n   ```python\n   url = f\"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fapi\u002FefoTraits\u002F{efo_id}\u002Fassociations\"\n   ```\n\n3. **Filter by significance and population:**\n   - Check p-values (genome-wide significant: p ≤ 5×10⁻⁸)\n   - Review ancestry information in study metadata\n   - Filter by sample size or discovery\u002Freplication status\n\n4. **Extract variant details:**\n   - rs IDs for each association\n   - Effect alleles and directions\n   - Effect sizes (odds ratios, beta coefficients)\n   - Population allele frequencies\n\n5. **Cross-reference with other databases:**\n   - Look up variant consequences in Ensembl\n   - Check population frequencies in gnomAD\n   - Explore gene function and pathways\n\n### Workflow 2: Investigating a Specific Genetic Variant\n\n1. **Query the variant:**\n   ```python\n   url = f\"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fapi\u002FsingleNucleotidePolymorphisms\u002F{rs_id}\"\n   ```\n\n2. **Retrieve all trait associations:**\n   ```python\n   url = f\"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fapi\u002FsingleNucleotidePolymorphisms\u002F{rs_id}\u002Fassociations\"\n   ```\n\n3. **Analyze pleiotropy:**\n   - Identify all traits associated with this variant\n   - Review effect directions across traits\n   - Look for shared biological pathways\n\n4. **Check genomic context:**\n   - Determine nearby genes\n   - Identify if variant is in coding\u002Fregulatory regions\n   - Review linkage disequilibrium with other variants\n\n### Workflow 3: Gene-Centric Association Analysis\n\n1. **Search by gene symbol** in web interface or:\n   ```python\n   url = f\"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fapi\u002FsingleNucleotidePolymorphisms\u002Fsearch\u002FfindByGene\"\n   params = {\"geneName\": gene_symbol}\n   ```\n\n2. **Retrieve variants in gene region:**\n   - Get chromosomal coordinates for gene\n   - Query variants in region\n   - Include promoter and regulatory regions (extend boundaries)\n\n3. **Analyze association patterns:**\n   - Identify traits associated with variants in this gene\n   - Look for consistent associations across studies\n   - Review effect sizes and directions\n\n4. **Functional interpretation:**\n   - Determine variant consequences (missense, regulatory, etc.)\n   - Check expression QTL (eQTL) data\n   - Review pathway and network context\n\n### Workflow 4: Systematic Review of Genetic Evidence\n\n1. **Define research question:**\n   - Specific trait or disease of interest\n   - Population considerations\n   - Study design requirements\n\n2. **Comprehensive variant extraction:**\n   - Query all associations for trait\n   - Set significance threshold\n   - Note discovery and replication studies\n\n3. **Quality assessment:**\n   - Review study sample sizes\n   - Check for population diversity\n   - Assess heterogeneity across studies\n   - Identify potential biases\n\n4. **Data synthesis:**\n   - Aggregate associations across studies\n   - Perform meta-analysis if applicable\n   - Create summary tables\n   - Generate Manhattan or forest plots\n\n5. **Export and documentation:**\n   - Download full association data\n   - Export summary statistics if needed\n   - Document search strategy and date\n   - Create reproducible analysis scripts\n\n### Workflow 5: Accessing and Analyzing Summary Statistics\n\n1. **Identify studies with summary statistics:**\n   - Browse summary statistics portal\n   - Check FTP directory listings\n   - Query API for available studies\n\n2. **Download summary statistics:**\n   ```bash\n   # Via FTP\n   wget ftp:\u002F\u002Fftp.ebi.ac.uk\u002Fpub\u002Fdatabases\u002Fgwas\u002Fsummary_statistics\u002FGCSTXXXXXX\u002Fharmonised\u002FGCSTXXXXXX-harmonised.tsv.gz\n   ```\n\n3. **Query via API for specific variants:**\n   ```python\n   url = f\"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Fsummary-statistics\u002Fapi\u002Fchromosomes\u002F{chrom}\u002Fassociations\"\n   params = {\"start\": start_pos, \"end\": end_pos}\n   ```\n\n4. **Process and analyze:**\n   - Filter by p-value thresholds\n   - Extract effect sizes and confidence intervals\n   - Perform downstream analyses (fine-mapping, colocalization, etc.)\n\n## Response Formats and Data Fields\n\n**Key Fields in Association Records:**\n- `rsId`: Variant identifier (rs number)\n- `strongestAllele`: Risk allele for the association\n- `pvalue`: Association p-value\n- `pvalueText`: P-value as text (may include inequality)\n- `orPerCopyNum`: Odds ratio or beta coefficient\n- `betaNum`: Effect size (for quantitative traits)\n- `betaUnit`: Unit of measurement for beta\n- `range`: Confidence interval\n- `efoTrait`: Associated trait name\n- `mappedLabel`: EFO-mapped trait term\n\n**Study Metadata Fields:**\n- `accessionId`: GCST study identifier\n- `pubmedId`: PubMed ID\n- `author`: First author\n- `publicationDate`: Publication date\n- `ancestryInitial`: Discovery population ancestry\n- `ancestryReplication`: Replication population ancestry\n- `sampleSize`: Total sample size\n\n**Pagination:**\nResults are paginated (default 20 items per page). Navigate using:\n- `size` parameter: Number of results per page\n- `page` parameter: Page number (0-indexed)\n- `_links` in response: URLs for next\u002Fprevious pages\n\n## Best Practices\n\n### Query Strategy\n- Start with web interface to identify relevant EFO terms and study accessions\n- Use API for bulk data extraction and automated analyses\n- Implement pagination handling for large result sets\n- Cache API responses to minimize redundant requests\n\n### Data Interpretation\n- Always check p-value thresholds (genome-wide: 5×10⁻⁸)\n- Review ancestry information for population applicability\n- Consider sample size when assessing evidence strength\n- Check for replication across independent studies\n- Be aware of winner's curse in effect size estimates\n\n### Rate Limiting and Ethics\n- Respect API usage guidelines (no excessive requests)\n- Use summary statistics downloads for genome-wide analyses\n- Implement appropriate delays between API calls\n- Cache results locally when performing iterative analyses\n- Cite the GWAS Catalog in publications\n\n### Data Quality Considerations\n- GWAS Catalog curates published associations (may contain inconsistencies)\n- Effect sizes reported as published (may need harmonization)\n- Some studies report conditional or joint associations\n- Check for study overlap when combining results\n- Be aware of ascertainment and selection biases\n\n## Python Integration Example\n\nComplete workflow for querying and analyzing GWAS data:\n\n```python\nimport requests\nimport pandas as pd\nfrom time import sleep\n\ndef query_gwas_catalog(trait_id, p_threshold=5e-8):\n    \"\"\"\n    Query GWAS Catalog for trait associations\n\n    Args:\n        trait_id: EFO trait identifier (e.g., 'EFO_0001360')\n        p_threshold: P-value threshold for filtering\n\n    Returns:\n        pandas DataFrame with association results\n    \"\"\"\n    base_url = \"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fapi\"\n    url = f\"{base_url}\u002FefoTraits\u002F{trait_id}\u002Fassociations\"\n\n    headers = {\"Content-Type\": \"application\u002Fjson\"}\n    results = []\n    page = 0\n\n    while True:\n        params = {\"page\": page, \"size\": 100}\n        response = requests.get(url, params=params, headers=headers)\n\n        if response.status_code != 200:\n            break\n\n        data = response.json()\n        associations = data.get('_embedded', {}).get('associations', [])\n\n        if not associations:\n            break\n\n        for assoc in associations:\n            pvalue = assoc.get('pvalue')\n            if pvalue and float(pvalue) \u003C= p_threshold:\n                results.append({\n                    'variant': assoc.get('rsId'),\n                    'pvalue': pvalue,\n                    'risk_allele': assoc.get('strongestAllele'),\n                    'or_beta': assoc.get('orPerCopyNum') or assoc.get('betaNum'),\n                    'trait': assoc.get('efoTrait'),\n                    'pubmed_id': assoc.get('pubmedId')\n                })\n\n        page += 1\n        sleep(0.1)  # Rate limiting\n\n    return pd.DataFrame(results)\n\n# Example usage\ndf = query_gwas_catalog('EFO_0001360')  # Type 2 diabetes\nprint(df.head())\nprint(f\"\\nTotal associations: {len(df)}\")\nprint(f\"Unique variants: {df['variant'].nunique()}\")\n```\n\n## Resources\n\n### references\u002Fapi_reference.md\n\nComprehensive API documentation including:\n- Detailed endpoint specifications for both APIs\n- Complete list of query parameters and filters\n- Response format specifications and field descriptions\n- Advanced query examples and patterns\n- Error handling and troubleshooting\n- Integration with external databases\n\nConsult this reference when:\n- Constructing complex API queries\n- Understanding response structures\n- Implementing pagination or batch operations\n- Troubleshooting API errors\n- Exploring advanced filtering options\n\n### Training Materials\n\nThe GWAS Catalog team provides workshop materials:\n- GitHub repository: https:\u002F\u002Fgithub.com\u002FEBISPOT\u002FGWAS_Catalog-workshop\n- Jupyter notebooks with example queries\n- Google Colab integration for cloud execution\n\n## Important Notes\n\n### Data Updates\n- The GWAS Catalog is updated regularly with new publications\n- Re-run queries periodically for comprehensive coverage\n- Summary statistics are added as studies release data\n- EFO mappings may be updated over time\n\n### Citation Requirements\nWhen using GWAS Catalog data, cite:\n- Sollis E, et al. (2023) The NHGRI-EBI GWAS Catalog: knowledgebase and deposition resource. Nucleic Acids Research. PMID: 37953337\n- Include access date and version when available\n- Cite original studies when discussing specific findings\n\n### Limitations\n- Not all GWAS publications are included (curation criteria apply)\n- Full summary statistics available for subset of studies\n- Effect sizes may require harmonization across studies\n- Population diversity is growing but historically limited\n- Some associations represent conditional or joint effects\n\n### Data Access\n- Web interface: Free, no registration required\n- REST APIs: Free, no API key needed\n- FTP downloads: Open access\n- Rate limiting applies to API (be respectful)\n\n## Additional Resources\n\n- **GWAS Catalog website**: https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002F\n- **Documentation**: https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Fdocs\n- **API documentation**: https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fdocs\u002Fapi\n- **Summary Statistics API**: https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Fsummary-statistics\u002Fdocs\u002F\n- **FTP site**: http:\u002F\u002Fftp.ebi.ac.uk\u002Fpub\u002Fdatabases\u002Fgwas\u002F\n- **Training materials**: https:\u002F\u002Fgithub.com\u002FEBISPOT\u002FGWAS_Catalog-workshop\n- **PGS Catalog** (polygenic scores): https:\u002F\u002Fwww.pgscatalog.org\u002F\n- **Help and support**: gwas-info@ebi.ac.uk\n","# GWAS Catalog Database\n\n## Overview\n\nThe GWAS Catalog is a comprehensive repository of published genome-wide association studies maintained by the National Human Genome Research Institute (NHGRI) and the European Bioinformatics Institute (EBI). The catalog contains curated SNP-trait associations from thousands of GWAS publications, including genetic variants, associated traits and diseases, p-values, effect sizes, and full summary statistics for many studies.\n\n## When to Use This Skill\n\nThis skill should be used when queries involve:\n\n- **Genetic variant associations**: Finding SNPs associated with diseases or traits\n- **SNP lookups**: Retrieving information about specific genetic variants (rs IDs)\n- **Trait\u002Fdisease searches**: Discovering genetic associations for phenotypes\n- **Gene associations**: Finding variants in or near specific genes\n- **GWAS summary statistics**: Accessing complete genome-wide association data\n- **Study metadata**: Retrieving publication and cohort information\n- **Population genetics**: Exploring ancestry-specific associations\n- **Polygenic risk scores**: Identifying variants for risk prediction models\n- **Functional genomics**: Understanding variant effects and genomic context\n- **Systematic reviews**: Comprehensive literature synthesis of genetic associations\n\n## Core Capabilities\n\n### 1. Understanding GWAS Catalog Data Structure\n\nThe GWAS Catalog is organized around four core entities:\n\n- **Studies**: GWAS publications with metadata (PMID, author, cohort details)\n- **Associations**: SNP-trait associations with statistical evidence (p ≤ 5×10⁻⁸)\n- **Variants**: Genetic markers (SNPs) with genomic coordinates and alleles\n- **Traits**: Phenotypes and diseases (mapped to EFO ontology terms)\n\n**Key Identifiers:**\n- Study accessions: `GCST` IDs (e.g., GCST001234)\n- Variant IDs: `rs` numbers (e.g., rs7903146) or `variant_id` format\n- Trait IDs: EFO terms (e.g., EFO_0001360 for type 2 diabetes)\n- Gene symbols: HGNC approved names (e.g., TCF7L2)\n\n### 2. Web Interface Searches\n\nThe web interface at https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002F supports multiple search modes:\n\n**By Variant (rs ID):**\n```\nrs7903146\n```\nReturns all trait associations for this SNP.\n\n**By Disease\u002FTrait:**\n```\ntype 2 diabetes\nParkinson disease\nbody mass index\n```\nReturns all associated genetic variants.\n\n**By Gene:**\n```\nAPOE\nTCF7L2\n```\nReturns variants in or near the gene region.\n\n**By Chromosomal Region:**\n```\n10:114000000-115000000\n```\nReturns variants in the specified genomic interval.\n\n**By Publication:**\n```\nPMID:20581827\nAuthor: McCarthy MI\nGCST001234\n```\nReturns study details and all reported associations.\n\n### 3. REST API Access\n\nThe GWAS Catalog provides two REST APIs for programmatic access:\n\n**Base URLs:**\n- GWAS Catalog API: `https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fapi`\n- Summary Statistics API: `https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Fsummary-statistics\u002Fapi`\n\n**API Documentation:**\n- Main API docs: https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fdocs\u002Fapi\n- Summary stats docs: https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Fsummary-statistics\u002Fdocs\u002F\n\n**Core Endpoints:**\n\n1. **Studies endpoint** - `\u002Fstudies\u002F{accessionID}`\n   ```python\n   import requests\n\n   # Get a specific study\n   url = \"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fapi\u002Fstudies\u002FGCST001795\"\n   response = requests.get(url, headers={\"Content-Type\": \"application\u002Fjson\"})\n   study = response.json()\n   ```\n\n2. **Associations endpoint** - `\u002Fassociations`\n   ```python\n   # Find associations for a variant\n   variant = \"rs7903146\"\n   url = f\"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fapi\u002FsingleNucleotidePolymorphisms\u002F{variant}\u002Fassociations\"\n   params = {\"projection\": \"associationBySnp\"}\n   response = requests.get(url, params=params, headers={\"Content-Type\": \"application\u002Fjson\"})\n   associations = response.json()\n   ```\n\n3. **Variants endpoint** - `\u002FsingleNucleotidePolymorphisms\u002F{rsID}`\n   ```python\n   # Get variant details\n   url = \"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fapi\u002FsingleNucleotidePolymorphisms\u002Frs7903146\"\n   response = requests.get(url, headers={\"Content-Type\": \"application\u002Fjson\"})\n   variant_info = response.json()\n   ```\n\n4. **Traits endpoint** - `\u002FefoTraits\u002F{efoID}`\n   ```python\n   # Get trait information\n   url = \"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fapi\u002FefoTraits\u002FEFO_0001360\"\n   response = requests.get(url, headers={\"Content-Type\": \"application\u002Fjson\"})\n   trait_info = response.json()\n   ```\n\n### 4. Query Examples and Patterns\n\n**Example 1: Find all associations for a disease**\n```python\nimport requests\n\ntrait = \"EFO_0001360\"  # Type 2 diabetes\nbase_url = \"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fapi\"\n\n# Query associations for this trait\nurl = f\"{base_url}\u002FefoTraits\u002F{trait}\u002Fassociations\"\nresponse = requests.get(url, headers={\"Content-Type\": \"application\u002Fjson\"})\nassociations = response.json()\n\n# Process results\nfor assoc in associations.get('_embedded', {}).get('associations', []):\n    variant = assoc.get('rsId')\n    pvalue = assoc.get('pvalue')\n    risk_allele = assoc.get('strongestAllele')\n    print(f\"{variant}: p={pvalue}, risk allele={risk_allele}\")\n```\n\n**Example 2: Get variant information and all trait associations**\n```python\nimport requests\n\nvariant = \"rs7903146\"\nbase_url = \"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fapi\"\n\n# Get variant details\nurl = f\"{base_url}\u002FsingleNucleotidePolymorphisms\u002F{variant}\"\nresponse = requests.get(url, headers={\"Content-Type\": \"application\u002Fjson\"})\nvariant_data = response.json()\n\n# Get all associations for this variant\nurl = f\"{base_url}\u002FsingleNucleotidePolymorphisms\u002F{variant}\u002Fassociations\"\nparams = {\"projection\": \"associationBySnp\"}\nresponse = requests.get(url, params=params, headers={\"Content-Type\": \"application\u002Fjson\"})\nassociations = response.json()\n\n# Extract trait names and p-values\nfor assoc in associations.get('_embedded', {}).get('associations', []):\n    trait = assoc.get('efoTrait')\n    pvalue = assoc.get('pvalue')\n    print(f\"Trait: {trait}, p-value: {pvalue}\")\n```\n\n**Example 3: Access summary statistics**\n```python\nimport requests\n\n# Query summary statistics API\nbase_url = \"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Fsummary-statistics\u002Fapi\"\n\n# Find associations by trait with p-value threshold\ntrait = \"EFO_0001360\"  # Type 2 diabetes\np_upper = \"0.000000001\"  # p \u003C 1e-9\nurl = f\"{base_url}\u002Ftraits\u002F{trait}\u002Fassociations\"\nparams = {\n    \"p_upper\": p_upper,\n    \"size\": 100  # Number of results\n}\nresponse = requests.get(url, params=params)\nresults = response.json()\n\n# Process genome-wide significant hits\nfor hit in results.get('_embedded', {}).get('associations', []):\n    variant_id = hit.get('variant_id')\n    chromosome = hit.get('chromosome')\n    position = hit.get('base_pair_location')\n    pvalue = hit.get('p_value')\n    print(f\"{chromosome}:{position} ({variant_id}): p={pvalue}\")\n```\n\n**Example 4: Query by chromosomal region**\n```python\nimport requests\n\n# Find variants in a specific genomic region\nchromosome = \"10\"\nstart_pos = 114000000\nend_pos = 115000000\n\nbase_url = \"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fapi\"\nurl = f\"{base_url}\u002FsingleNucleotidePolymorphisms\u002Fsearch\u002FfindByChromBpLocationRange\"\nparams = {\n    \"chrom\": chromosome,\n    \"bpStart\": start_pos,\n    \"bpEnd\": end_pos\n}\nresponse = requests.get(url, params=params, headers={\"Content-Type\": \"application\u002Fjson\"})\nvariants_in_region = response.json()\n```\n\n### 5. Working with Summary Statistics\n\nThe GWAS Catalog hosts full summary statistics for many studies, providing access to all tested variants (not just genome-wide significant hits).\n\n**Access Methods:**\n1. **FTP download**: http:\u002F\u002Fftp.ebi.ac.uk\u002Fpub\u002Fdatabases\u002Fgwas\u002Fsummary_statistics\u002F\n2. **REST API**: Query-based access to summary statistics\n3. **Web interface**: Browse and download via the website\n\n**Summary Statistics API Features:**\n- Filter by chromosome, position, p-value\n- Query specific variants across studies\n- Retrieve effect sizes and allele frequencies\n- Access harmonized and standardized data\n\n**Example: Download summary statistics for a study**\n```python\nimport requests\nimport gzip\n\n# Get available summary statistics\nbase_url = \"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Fsummary-statistics\u002Fapi\"\nurl = f\"{base_url}\u002Fstudies\u002FGCST001234\"\nresponse = requests.get(url)\nstudy_info = response.json()\n\n# Download link is provided in the response\n# Alternatively, use FTP:\n# ftp:\u002F\u002Fftp.ebi.ac.uk\u002Fpub\u002Fdatabases\u002Fgwas\u002Fsummary_statistics\u002FGCSTXXXXXX\u002F\n```\n\n### 6. Data Integration and Cross-referencing\n\nThe GWAS Catalog provides links to external resources:\n\n**Genomic Databases:**\n- Ensembl: Gene annotations and variant consequences\n- dbSNP: Variant identifiers and population frequencies\n- gnomAD: Population allele frequencies\n\n**Functional Resources:**\n- Open Targets: Target-disease associations\n- PGS Catalog: Polygenic risk scores\n- UCSC Genome Browser: Genomic context\n\n**Phenotype Resources:**\n- EFO (Experimental Factor Ontology): Standardized trait terms\n- OMIM: Disease gene relationships\n- Disease Ontology: Disease hierarchies\n\n**Following Links in API Responses:**\n```python\nimport requests\n\n# API responses include _links for related resources\nresponse = requests.get(\"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fapi\u002Fstudies\u002FGCST001234\")\nstudy = response.json()\n\n# Follow link to associations\nassociations_url = study['_links']['associations']['href']\nassociations_response = requests.get(associations_url)\n```\n\n## Query Workflows\n\n### Workflow 1: Exploring Genetic Associations for a Disease\n\n1. **Identify the trait** using EFO terms or free text:\n   - Search web interface for disease name\n   - Note the EFO ID (e.g., EFO_0001360 for type 2 diabetes)\n\n2. **Query associations via API:**\n   ```python\n   url = f\"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fapi\u002FefoTraits\u002F{efo_id}\u002Fassociations\"\n   ```\n\n3. **Filter by significance and population:**\n   - Check p-values (genome-wide significant: p ≤ 5×10⁻⁸)\n   - Review ancestry information in study metadata\n   - Filter by sample size or discovery\u002Freplication status\n\n4. **Extract variant details:**\n   - rs IDs for each association\n   - Effect alleles and directions\n   - Effect sizes (odds ratios, beta coefficients)\n   - Population allele frequencies\n\n5. **Cross-reference with other databases:**\n   - Look up variant consequences in Ensembl\n   - Check population frequencies in gnomAD\n   - Explore gene function and pathways\n\n### Workflow 2: Investigating a Specific Genetic Variant\n\n1. **Query the variant:**\n   ```python\n   url = f\"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fapi\u002FsingleNucleotidePolymorphisms\u002F{rs_id}\"\n   ```\n\n2. **Retrieve all trait associations:**\n   ```python\n   url = f\"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fapi\u002FsingleNucleotidePolymorphisms\u002F{rs_id}\u002Fassociations\"\n   ```\n\n3. **Analyze pleiotropy:**\n   - Identify all traits associated with this variant\n   - Review effect directions across traits\n   - Look for shared biological pathways\n\n4. **Check genomic context:**\n   - Determine nearby genes\n   - Identify if variant is in coding\u002Fregulatory regions\n   - Review linkage disequilibrium with other variants\n\n### Workflow 3: Gene-Centric Association Analysis\n\n1. **Search by gene symbol** in web interface or:\n   ```python\n   url = f\"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fapi\u002FsingleNucleotidePolymorphisms\u002Fsearch\u002FfindByGene\"\n   params = {\"geneName\": gene_symbol}\n   ```\n\n2. **Retrieve variants in gene region:**\n   - Get chromosomal coordinates for gene\n   - Query variants in region\n   - Include promoter and regulatory regions (extend boundaries)\n\n3. **Analyze association patterns:**\n   - Identify traits associated with variants in this gene\n   - Look for consistent associations across studies\n   - Review effect sizes and directions\n\n4. **Functional interpretation:**\n   - Determine variant consequences (missense, regulatory, etc.)\n   - Check expression QTL (eQTL) data\n   - Review pathway and network context\n\n### Workflow 4: Systematic Review of Genetic Evidence\n\n1. **Define research question:**\n   - Specific trait or disease of interest\n   - Population considerations\n   - Study design requirements\n\n2. **Comprehensive variant extraction:**\n   - Query all associations for trait\n   - Set significance threshold\n   - Note discovery and replication studies\n\n3. **Quality assessment:**\n   - Review study sample sizes\n   - Check for population diversity\n   - Assess heterogeneity across studies\n   - Identify potential biases\n\n4. **Data synthesis:**\n   - Aggregate associations across studies\n   - Perform meta-analysis if applicable\n   - Create summary tables\n   - Generate Manhattan or forest plots\n\n5. **Export and documentation:**\n   - Download full association data\n   - Export summary statistics if needed\n   - Document search strategy and date\n   - Create reproducible analysis scripts\n\n### Workflow 5: Accessing and Analyzing Summary Statistics\n\n1. **Identify studies with summary statistics:**\n   - Browse summary statistics portal\n   - Check FTP directory listings\n   - Query API for available studies\n\n2. **Download summary statistics:**\n   ```bash\n   # Via FTP\n   wget ftp:\u002F\u002Fftp.ebi.ac.uk\u002Fpub\u002Fdatabases\u002Fgwas\u002Fsummary_statistics\u002FGCSTXXXXXX\u002Fharmonised\u002FGCSTXXXXXX-harmonised.tsv.gz\n   ```\n\n3. **Query via API for specific variants:**\n   ```python\n   url = f\"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Fsummary-statistics\u002Fapi\u002Fchromosomes\u002F{chrom}\u002Fassociations\"\n   params = {\"start\": start_pos, \"end\": end_pos}\n   ```\n\n4. **Process and analyze:**\n   - Filter by p-value thresholds\n   - Extract effect sizes and confidence intervals\n   - Perform downstream analyses (fine-mapping, colocalization, etc.)\n\n## Response Formats and Data Fields\n\n**Key Fields in Association Records:**\n- `rsId`: Variant identifier (rs number)\n- `strongestAllele`: Risk allele for the association\n- `pvalue`: Association p-value\n- `pvalueText`: P-value as text (may include inequality)\n- `orPerCopyNum`: Odds ratio or beta coefficient\n- `betaNum`: Effect size (for quantitative traits)\n- `betaUnit`: Unit of measurement for beta\n- `range`: Confidence interval\n- `efoTrait`: Associated trait name\n- `mappedLabel`: EFO-mapped trait term\n\n**Study Metadata Fields:**\n- `accessionId`: GCST study identifier\n- `pubmedId`: PubMed ID\n- `author`: First author\n- `publicationDate`: Publication date\n- `ancestryInitial`: Discovery population ancestry\n- `ancestryReplication`: Replication population ancestry\n- `sampleSize`: Total sample size\n\n**Pagination:**\nResults are paginated (default 20 items per page). Navigate using:\n- `size` parameter: Number of results per page\n- `page` parameter: Page number (0-indexed)\n- `_links` in response: URLs for next\u002Fprevious pages\n\n## Best Practices\n\n### Query Strategy\n- Start with web interface to identify relevant EFO terms and study accessions\n- Use API for bulk data extraction and automated analyses\n- Implement pagination handling for large result sets\n- Cache API responses to minimize redundant requests\n\n### Data Interpretation\n- Always check p-value thresholds (genome-wide: 5×10⁻⁸)\n- Review ancestry information for population applicability\n- Consider sample size when assessing evidence strength\n- Check for replication across independent studies\n- Be aware of winner's curse in effect size estimates\n\n### Rate Limiting and Ethics\n- Respect API usage guidelines (no excessive requests)\n- Use summary statistics downloads for genome-wide analyses\n- Implement appropriate delays between API calls\n- Cache results locally when performing iterative analyses\n- Cite the GWAS Catalog in publications\n\n### Data Quality Considerations\n- GWAS Catalog curates published associations (may contain inconsistencies)\n- Effect sizes reported as published (may need harmonization)\n- Some studies report conditional or joint associations\n- Check for study overlap when combining results\n- Be aware of ascertainment and selection biases\n\n## Python Integration Example\n\nComplete workflow for querying and analyzing GWAS data:\n\n```python\nimport requests\nimport pandas as pd\nfrom time import sleep\n\ndef query_gwas_catalog(trait_id, p_threshold=5e-8):\n    \"\"\"\n    Query GWAS Catalog for trait associations\n\n    Args:\n        trait_id: EFO trait identifier (e.g., 'EFO_0001360')\n        p_threshold: P-value threshold for filtering\n\n    Returns:\n        pandas DataFrame with association results\n    \"\"\"\n    base_url = \"https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fapi\"\n    url = f\"{base_url}\u002FefoTraits\u002F{trait_id}\u002Fassociations\"\n\n    headers = {\"Content-Type\": \"application\u002Fjson\"}\n    results = []\n    page = 0\n\n    while True:\n        params = {\"page\": page, \"size\": 100}\n        response = requests.get(url, params=params, headers=headers)\n\n        if response.status_code != 200:\n            break\n\n        data = response.json()\n        associations = data.get('_embedded', {}).get('associations', [])\n\n        if not associations:\n            break\n\n        for assoc in associations:\n            pvalue = assoc.get('pvalue')\n            if pvalue and float(pvalue) \u003C= p_threshold:\n                results.append({\n                    'variant': assoc.get('rsId'),\n                    'pvalue': pvalue,\n                    'risk_allele': assoc.get('strongestAllele'),\n                    'or_beta': assoc.get('orPerCopyNum') or assoc.get('betaNum'),\n                    'trait': assoc.get('efoTrait'),\n                    'pubmed_id': assoc.get('pubmedId')\n                })\n\n        page += 1\n        sleep(0.1)  # Rate limiting\n\n    return pd.DataFrame(results)\n\n# Example usage\ndf = query_gwas_catalog('EFO_0001360')  # Type 2 diabetes\nprint(df.head())\nprint(f\"\\nTotal associations: {len(df)}\")\nprint(f\"Unique variants: {df['variant'].nunique()}\")\n```\n\n## Resources\n\n### references\u002Fapi_reference.md\n\nComprehensive API documentation including:\n- Detailed endpoint specifications for both APIs\n- Complete list of query parameters and filters\n- Response format specifications and field descriptions\n- Advanced query examples and patterns\n- Error handling and troubleshooting\n- Integration with external databases\n\nConsult this reference when:\n- Constructing complex API queries\n- Understanding response structures\n- Implementing pagination or batch operations\n- Troubleshooting API errors\n- Exploring advanced filtering options\n\n### Training Materials\n\nThe GWAS Catalog team provides workshop materials:\n- GitHub repository: https:\u002F\u002Fgithub.com\u002FEBISPOT\u002FGWAS_Catalog-workshop\n- Jupyter notebooks with example queries\n- Google Colab integration for cloud execution\n\n## Important Notes\n\n### Data Updates\n- The GWAS Catalog is updated regularly with new publications\n- Re-run queries periodically for comprehensive coverage\n- Summary statistics are added as studies release data\n- EFO mappings may be updated over time\n\n### Citation Requirements\nWhen using GWAS Catalog data, cite:\n- Sollis E, et al. (2023) The NHGRI-EBI GWAS Catalog: knowledgebase and deposition resource. Nucleic Acids Research. PMID: 37953337\n- Include access date and version when available\n- Cite original studies when discussing specific findings\n\n### Limitations\n- Not all GWAS publications are included (curation criteria apply)\n- Full summary statistics available for subset of studies\n- Effect sizes may require harmonization across studies\n- Population diversity is growing but historically limited\n- Some associations represent conditional or joint effects\n\n### Data Access\n- Web interface: Free, no registration required\n- REST APIs: Free, no API key needed\n- FTP downloads: Open access\n- Rate limiting applies to API (be respectful)\n\n## Additional Resources\n\n- **GWAS Catalog website**: https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002F\n- **Documentation**: https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Fdocs\n- **API documentation**: https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Frest\u002Fdocs\u002Fapi\n- **Summary Statistics API**: https:\u002F\u002Fwww.ebi.ac.uk\u002Fgwas\u002Fsummary-statistics\u002Fdocs\u002F\n- **FTP site**: http:\u002F\u002Fftp.ebi.ac.uk\u002Fpub\u002Fdatabases\u002Fgwas\u002F\n- **Training materials**: https:\u002F\u002Fgithub.com\u002FEBISPOT\u002FGWAS_Catalog-workshop\n- **PGS Catalog** (polygenic scores): https:\u002F\u002Fwww.pgscatalog.org\u002F\n- **Help and support**: gwas-info@ebi.ac.uk\n",{"name":5,"description":7},"main","2b749c82b5d11fac39d9a6e021ce3f5b8a541bd1","cli-tool\u002Fcomponents\u002Fskills\u002Fscientific\u002Fgwas-database",3911,"https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates","https:\u002F\u002Faitmpl.com","https:\u002F\u002Fgithub.com\u002Fdavila7","https:\u002F\u002Fdanielavila.me","Building AI dev tools with LLMs","2026-11-11 21:38:31",{"source":8,"skillName":5,"commands":57,"prompt":67,"zipAvailable":68},[58,61,64],{"tool":59,"command":60},"npx","npx skills add davila7\u002Fclaude-code-templates --skill gwas-database",{"tool":62,"command":63},"bunx","bunx skills add davila7\u002Fclaude-code-templates --skill gwas-database",{"tool":65,"command":66},"pnpm","pnpm dlx skills add davila7\u002Fclaude-code-templates --skill gwas-database","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fscientific\u002Fgwas-database\u002FSKILL.md",true,[70,76,80,86,90,94],{"path":71,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":74,"sourceHtmlUrl":75},"references\u002Fapi_reference.md","REFERENCE","参考文档",21221,"https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fscientific\u002Fgwas-database\u002Freferences\u002Fapi_reference.md",{"path":77,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":78,"sourceHtmlUrl":79},"references\u002Fioc-database.md",5750,"https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fsecurity\u002Fsupply-chain-guard\u002Freferences\u002Fioc-database.md",{"path":81,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":84,"sourceHtmlUrl":85},"scripts\u002Fscan-all.sh","SCRIPT","脚本",4618,"https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fsecurity\u002Fsupply-chain-guard\u002Fscripts\u002Fscan-all.sh",{"path":87,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":88,"sourceHtmlUrl":89},"scripts\u002Fscan-ci.sh",10341,"https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fsecurity\u002Fsupply-chain-guard\u002Fscripts\u002Fscan-ci.sh",{"path":91,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":92,"sourceHtmlUrl":93},"scripts\u002Fscan-npm.sh",12451,"https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fsecurity\u002Fsupply-chain-guard\u002Fscripts\u002Fscan-npm.sh",{"path":95,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":96,"sourceHtmlUrl":97},"scripts\u002Fscan-python.sh",10835,"https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fsecurity\u002Fsupply-chain-guard\u002Fscripts\u002Fscan-python.sh",[99,126,153,182,217,241],{"skillNo":100,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":106,"publishedAt":41},"01M70NHBTQ8BV0A2SCAZXEPHCX","wealthville-pool-scoring","Score DeFi liquidity pools before providing liquidity. Returns a 0-100 pool score and an Enter\u002FHold\u002FExit\u002FReduce\u002FAvoid verdict with calibrated confidence for ~68,800 Solana pools and 575 EVM pools, plus a public miss-inclusive track record. Use when asked whether a pool is worth LPing into, which pools look best right now, or how accurate the scores have actually been.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fweb-data\u002Fwealthville-pool-scoring\u002FSKILL.md",[105],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[107,108,109,110,111,38,112,113,114,115,116,117,118,119,120,121,122,123,124,125],"scoring","pool","wealthville pool scoring","liquidity","which","exit","now","use","when","reduce","with","record","track","verdict","evm","solana","how","public","look",{"skillNo":127,"name":128,"nameZh":6,"description":129,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":130,"categories":131,"keywords":133,"publishedAt":41},"01M70MB6VR8ERJ4EM8D5KHBMEV","technical-debt-auditor","Scans a codebase and produces a quantified technical debt report with a prioritized remediation plan. Analyzes dead code, TODO\u002FFIXME\u002FHACK markers, dependency staleness, complexity hotspots, code duplication signals, test coverage gaps, unused exports, and outdated patterns. Use this skill when the user asks to audit their codebase for tech debt, wants a health check of their code quality, says things like \"where should I focus refactoring\", \"find code smells\", \"audit my codebase\", \"what technical debt do we have\", \"prioritize cleanup work\", or asks about code quality metrics. Also trigger when the user mentions \"code rot\", \"legacy cleanup\", \"refactoring priorities\", or wants to understand the overall health of a project before a major effort. Trigger even if the user doesn't say \"technical debt\" explicitly — any request to systematically assess code quality and identify improvement priorities belongs here.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fdevelopment\u002Ftechnical-debt-auditor\u002FSKILL.md",[132],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[134,135,136,137,138,139,140,141,142,143,144,115,145,146,147,148,149,150,151,152],"technical debt","debt","technical","technical debt auditor","auditor","coverage","complexity","markers","project","cleanup","unused","code","todo","work","plan","focus","signals","audit","dependency",{"skillNo":154,"name":155,"nameZh":6,"description":156,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":157,"categories":158,"keywords":166,"publishedAt":41},"01M70KPYH9QNHCNME5GJQGE22K","readonly-sql-guard","Make an agent's database access provably read-only. Use when an agent runs caller-supplied SQL against a production\u002FERP\u002Fanalytics database (a \"query\" MCP tool, text-to-SQL, an admin console), or when reviewing DB-access code for write\u002FDDL\u002Fside-effect\u002Ftransaction-escape risks. Checks what a statement CALLS, not just its shape.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fdatabase\u002Freadonly-sql-guard\u002FSKILL.md",[159,160,161],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":162,"categoryName":163,"taxonomyType":164,"taxonomyTypeDesc":165},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[167,168,169,170,171,172,173,38,174,175,176,177,178,179,180,114,181,27,115,33],"readonly","guard","sql guard","sql","readonly sql guard","erp","effect","read-only","db","just","tool","calls","only","MCP","access",{"skillNo":183,"name":184,"nameZh":6,"description":185,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":186,"licenseFileUrl":187,"sourceHtmlUrl":188,"categories":189,"keywords":193,"publishedAt":41},"01M6AFY6F7CC2BBZP1QD6VTNVC","web-artifacts-builder","Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn\u002Fui). Use for complex artifacts requiring state management, routing, or shadcn\u002Fui components - not for simple single-file HTML\u002FJSX artifacts.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Futilities\u002Fweb-artifacts-builder\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Futilities\u002Fweb-artifacts-builder\u002FSKILL.md",[190],{"categoryNo":191,"categoryName":192,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",[194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,38,216],"artifacts builder","web","web artifacts builder","artifacts","builder","state","routing","state management","component","css","frontend","ui","Tools","file","components","shadcn","react","Tailwind","suite","jsx","html","single-file","ui components",{"skillNo":218,"name":219,"nameZh":6,"description":220,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":186,"licenseFileUrl":221,"sourceHtmlUrl":222,"categories":223,"keywords":228,"publishedAt":41},"01M6AFWF33SFV9Z3SF4PEEE4BF","webapp-testing","Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fsecurity\u002Fwebapp-testing\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fsecurity\u002Fwebapp-testing\u002FSKILL.md",[224,227],{"categoryNo":225,"categoryName":226,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":191,"categoryName":192,"taxonomyType":21,"taxonomyTypeDesc":22},[229,230,231,232,233,195,234,204,205,235,236,237,238,38,239,117,240],"webapp testing","testing","webapp","browser","playwright","applications","debugging","toolkit","logs","screenshots","local","behavior",{"skillNo":242,"name":243,"nameZh":6,"description":244,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":186,"licenseFileUrl":245,"sourceHtmlUrl":246,"categories":247,"keywords":255,"publishedAt":41},"01M6AF67Q67JJJ5V51JR2P52KA","discernment-nudge","After you give a substantive answer or draft that the user may act on — advice or recommendations, drafted artifacts such as goals, plans, pitches, proposals, or emails, estimates or projections, analysis or interpretation of data, factual claims they may rely on, or a multi-step argument — invoke this skill BEFORE finalizing your reply and then, if it applies, append 2-3 short follow-up questions, each tied to something specific in what you just produced, that help the user check key facts, probe the reasoning or assumptions, and notice missing context. Do this at most once per conversation. Skip it when the user asked a trivial how-to or simple lookup, wants a purely educational explanation, asked you only to format, convert, or assemble a file from content they provided, is writing code they will run, is doing creative writing or casual chat, or already asked you to double-check, cite, or review — the skill file explains these boundaries and the exact output format.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fdiscernment-nudge\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fdiscernment-nudge\u002FSKILL.md",[248,251,252],{"categoryNo":249,"categoryName":250,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":253,"categoryName":254,"taxonomyType":164,"taxonomyTypeDesc":165},"01JBSEEDCAT000000000000036","内容创作者",[256,257,258,259,260,261,262,263,197,264,207,145,265,266,267,268,269,179,270,115,271,272,273,274,275,123,276],"discernment nudge","nudge","interpretation","help","run","reasoning","data","writing","lookup","content","review","conversation","short","up","invoke","you","analysis","claims","argument","assemble","recommendations"]