mcpField
T
tooluniverse-gwas-trait-to-gene

tooluniverse-gwas-trait-to-gene

github.com/mims-harvard数据与数据库1.8k364 次安装2 天前更新
代码仓库

关于 tooluniverse-gwas-trait-to-gene

面向研究人员的 ToolUniverse 技能,通过 GWAS Catalog 和 Open Targets Genetics 数据查找疾病及性状相关基因。它依据关联显著性、重复研究、精细定位和 L2G 评分排序候选基因,并强调关联不等于因果。

主要功能

  1. 01搜索 GWAS 关联和研究
  2. 02按显著性及重复验证排序基因
  3. 03获取精细定位可信集
  4. 04用 L2G 评分筛选候选基因
  5. 05说明祖源与基因映射局限

适用场景

  1. 01寻找疾病相关的遗传候选基因
  2. 02优先筛选潜在药物靶点
  3. 03将 GWAS 变异映射到候选基因

MCP 相关

该技能使用 ToolUniverse 工具搜索 GWAS Catalog,并获取 Open Targets Genetics 的精细定位和位点到基因证据。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mims-harvard/tooluniverse --skill tooluniverse-gwas-trait-to-gene

安装后在 Claude Code 中输入/tooluniverse-gwas-trait-to-gene确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.env.template
python_implementation.py
test_gwas_tools.py
test_skill_comprehensive.py

详细介绍

GWAS 性状到基因发现

最近的基因往往是错误的。 使用 Open Targets 的 L2G(位点到基因)评分,该评分整合了 eQTL、染色质互作和距离数据。L2G > 0.5 表示强预测;不能仅凭位置映射就认定某基因为因果基因。单项 GWAS 研究的 p < 5e-8 只能作为提示——要获得高置信度,必须在独立队列中重复验证。GWAS 命中是在所研究人群中的关联;由于连锁不平衡(LD)模式不同,不同祖源人群的效应大小乃至涉及的基因都可能不同。应将 GWAS 基因列表视为有待验证的候选基因排名,而非已确认的因果基因。

查找,不要猜测:切勿假定性状到基因的映射或 L2G 评分——务必调用 gwas_search_associations 和 OpenTargets_get_study_credible_sets 获取最新数据;随着新的 GWAS 发表,关联数据会不断更新。

使用全基因组关联研究(GWAS)发现与疾病和性状相关的基因

概述

此技能可通过分析两个主要资源中的 GWAS 数据,系统地发现与疾病/性状相关的基因:

  • GWAS Catalog(EBI/NHGRI):经过整理的已发表 GWAS 目录,包含超过 500,000 项关联
  • Open Targets Genetics:经过精细定位的 GWAS 信号及位点到基因(L2G)预测

使用场景

临床研究

  • “哪些基因与 2 型糖尿病相关?”
  • “查找冠状动脉疾病的遗传风险因素”
  • “哪些基因会影响阿尔茨海默病易感性?”

药物靶点发现

  • 识别具有强遗传证据、表明与疾病存在因果关系的基因
  • 根据 L2G 评分和跨研究重复验证情况确定靶点优先级
  • 查找具有全基因组显著性关联(p < 5e-8)的基因

功能基因组学

  • 将疾病相关变异映射到候选基因
  • 分析复杂性状的遗传结构
  • 理解多基因疾病机制

工作流

1. Trait Search → Search GWAS Catalog by disease/trait name
       ↓
2. SNP Aggregation → Collect genome-wide significant SNPs (p < 5e-8)
       ↓
3. Gene Mapping → Extract mapped genes from associations
       ↓
4. Evidence Ranking → Score by p-value, replication, fine-mapping
       ↓
5. Annotation (Optional) → Add L2G predictions from Open Targets

关键概念

全基因组显著性

  • 标准阈值:p < 5×10⁻⁸
  • 对约 1M 个常见变异进行多重检验校正
  • 更高置信度:p < 5×10⁻¹⁰ 或在多项研究中重复验证

基因映射方法

  • 位置映射:距离先导 SNP 最近的基因
  • 精细定位:通过统计方法筛选可信变异
  • 位点到基因(L2G):整合多种证据类型的评分

证据置信度级别

  • 高:L2G 评分 > 0.5,或多项研究的 p < 5e-10
  • 中:2 项或更多研究的 p < 5e-8
  • 低:单项研究或显著性处于边缘水平

必需的 ToolUniverse 工具

GWAS Catalog(11 个工具)
  • gwas_get_associations_for_trait - 获取某性状的所有关联(按 p 值排序)。注意:此工具已损坏——请使用可正常工作的替代工具 gwas_search_associations(query=trait)
  • gwas_search_snps - 根据基因映射搜索 SNP
  • gwas_get_snp_by_id - 获取 SNP 详情(MAF、后果、位置)
  • gwas_get_study_by_id - 获取研究元数据
  • gwas_search_associations - 根据筛选条件搜索关联(推荐用于查询性状)
  • gwas_search_studies - 按性状/队列搜索研究
  • gwas_get_associations_for_snp - 获取某 SNP 的所有关联
  • gwas_get_variants_for_trait - 获取某性状的变异。没有 p 值阈值参数(传入的参数会被静默忽略)——请在客户端根据 pvalue_mantissa/pvalue_exponent 进行筛选(见下文说明)
  • gwas_get_studies_for_trait - 获取某性状的研究
  • gwas_get_snps_for_gene - 获取映射到某基因的 SNP。参数为 gene_symbol(不是 mapped_gene)
  • gwas_get_associations_for_study - 获取某项研究中的关联
Open Targets Genetics(6 个工具)
  • OpenTargets_search_gwas_studies_by_disease - 按疾病本体搜索研究
  • OpenTargets_get_study_credible_sets - 获取研究的精细定位位点
  • OpenTargets_get_variant_credible_sets - 获取变异的可信集合
  • OpenTargets_get_variant_info - 获取变异注释(频率、后果)
  • OpenTargets_get_gwas_study - 获取研究元数据
  • OpenTargets_get_credible_set_detail - 获取可信集合的详细信息

参数

必需

  • trait - 疾病/性状名称(例如,“2 型糖尿病”“冠状动脉疾病”)

可选

  • p_value_threshold - 显著性阈值(默认值:5e-8)
  • min_evidence_count - 研究的最小数量(默认值:1)
  • max_results - 返回基因的最大数量(默认值:100)
  • use_fine_mapping - 包含 L2G 预测(默认值:true)
  • disease_ontology_id - Open Targets 的疾病本体 ID(例如,“MONDO_0005148”)

输出架构

{
  "genes": [
    {
      "symbol": str,              # Gene symbol (e.g., "TCF7L2")
      "min_p_value": float,       # Most significant p-value
      "evidence_count": int,      # Number of independent studies
      "snps": [str],              # Associated SNP rs IDs
      "studies": [str],           # GWAS study accessions
      "l2g_score": float | null,  # Locus-to-gene score (0-1)
      "credible_sets": int,       # Number of credible sets
      "confidence_level": str     # "High", "Medium", or "Low"
    }
  ],
  "summary": {
    "trait": str,
    "total_associations": int,
    "significant_genes": int,
    "data_sources": ["GWAS Catalog", "Open Targets"]
  }
}

示例结果

2 型糖尿病

TCF7L2:  p=1.2e-98, 15 studies, L2G=0.82 → High confidence
KCNJ11:  p=3.4e-67, 12 studies, L2G=0.76 → High confidence
PPARG:   p=2.1e-45, 8 studies,  L2G=0.71 → High confidence
FTO:     p=5.6e-42, 10 studies, L2G=0.68 → High confidence
IRS1:    p=8.9e-38, 6 studies,  L2G=0.54 → High confidence

阿尔茨海默病

APOE:    p=1.0e-450, 25 studies, L2G=0.95 → High confidence
BIN1:    p=2.3e-89,  18 studies, L2G=0.88 → High confidence
CLU:     p=4.5e-67,  16 studies, L2G=0.82 → High confidence
ABCA7:   p=6.7e-54,  14 studies, L2G=0.79 → High confidence
CR1:     p=8.9e-52,  13 studies, L2G=0.75 → High confidence

最佳实践

1. 使用疾病本体 ID 提高精确度

# Instead of:
discover_gwas_genes("diabetes")  # Ambiguous

# Use:
discover_gwas_genes(
    "type 2 diabetes",
    disease_ontology_id="MONDO_0005148"  # Specific
)

2. 按证据强度筛选

# For drug targets, require strong evidence:
discover_gwas_genes(
    "coronary artery disease",
    p_value_threshold=5e-10,    # Stricter than GWAS threshold
    min_evidence_count=3,       # Multiple independent studies
    use_fine_mapping=True       # Include L2G predictions
)

3. 谨慎解读结果

  • 关联 ≠ 因果关系:GWAS 可识别相关变异,但这些变异不一定对应因果基因
  • 连锁不平衡:主导 SNP 可能标记附近基因中的真实因果变异
  • 精细定位:与位置映射相比,L2G 分数能提供更有力的因果基因证据
  • 功能证据:使用正交数据进行验证(eQTL、敲除模型等)

工具专属说明(已更新)

gwas_get_variants_for_trait -- 按 p 值筛选

此工具没有 p 值阈值参数。p_value_threshold=... 参数会被静默忽略(已通过实时验证:无论是否提供该参数,输出都相同),因此请自行筛选返回的关联结果。使用 sort="p_value", direction="asc" 可优先获取关联最强的结果,并使用 page/size 进行分页(metadata.pagination.totalElements 是总数)。

result = tu.tools.gwas_get_variants_for_trait(
    trait="type 2 diabetes", size=200, sort="p_value", direction="asc"
)

def genome_wide_significant(a, exp=-8, mant=5):        # p < 5e-8
    return (a['pvalue_exponent'], a['pvalue_mantissa']) < (exp, mant)

hits = [a for a in result['data'] if genome_wide_significant(a)]

请按 pvalue_mantissa 和 pvalue_exponent 筛选,而不要按 p_value 筛选:对于非常小的 p 值(例如 3 x 10^-1315),p_value 浮点数会下溢为 0.0,因此无法据此与阈值进行比较。

gwas_get_associations_for_trait -- 已损坏

此工具在大多数查询中都会返回错误。请改用可靠的替代工具 gwas_search_associations(query=<trait>)。响应格式为 {data: [{...}], metadata: {...}}。

gwas_get_snps_for_gene -- 参数重命名

为提高明确性,参数已从 mapped_gene 重命名为 gene_symbol。请使用:

result = tu.tools.gwas_get_snps_for_gene(gene_symbol="TCF7L2")

编程式访问(工具之外)

当 ToolUniverse 工具返回的结果有限,或需要完整的 GWAS Catalog 时:

import requests, pandas as pd

# Download full GWAS Catalog (all associations, ~37MB TSV)
url = "https://www.ebi.ac.uk/gwas/api/search/downloads/alternative"
df = pd.read_csv(url, sep="\t")
# Filter locally by trait or gene
hits = df[df["DISEASE/TRAIT"].str.contains("type 2 diabetes", case=False, na=False)]
gene_hits = df[df["MAPPED_GENE"].str.contains("TCF7L2", na=False)]

# Per-study associations via REST
study_id = "GCST001234"
assocs = requests.get(f"https://www.ebi.ac.uk/gwas/rest/api/studies/{study_id}/associations").json()

# Summary statistics (when available)
# Check study page for fullPvalueSet=true, then download from linked FTP

请参阅 tooluniverse-data-wrangling 技能,了解分页、批量下载和格式解析模式。


局限性

  1. 基因映射的不确定性

    • 位置映射会将 SNP 分配给最近的基因(可能不正确)
    • 只有部分研究提供精细定位
    • 基因间变异难以映射
  2. 人群偏倚

    • 大多数 GWAS 研究针对欧洲人群
    • 不同祖源人群中的效应大小可能不同
    • 稀有变异往往代表不足
  3. 样本量依赖性

    • 规模较大的研究会发现更多关联
    • 较早的小规模研究可能出现假阴性
    • 单凭 p 值无法反映效应大小
  4. 验证错误

    • 部分 ToolUniverse 工具有 oneOf 验证问题
    • 必要时使用 validate=False 参数
    • Python 实现会自动处理此问题

相关技能

  • 变异到疾病关联:查询特定 SNP(例如,rs7903146 → T2D)
  • 基因到疾病关联:查找与已知基因相关的疾病
  • 药物靶点优先级排序:根据遗传证据排列靶点
  • 群体遗传学分析:比较不同人群的等位基因频率

数据源

GWAS Catalog

  • 管理方:EBI 和 NHGRI
  • URL:https://www.ebi.ac.uk/gwas/
  • 覆盖范围:100,000 多篇出版物,500,000 多项关联
  • 更新频率:每周

Open Targets Genetics

引用

如果您在研究中使用此技能,请引用:

Buniello A, et al. (2019) The NHGRI-EBI GWAS Catalog of published genome-wide
association studies. Nucleic Acids Research, 47(D1):D1005-D1012.

Mountjoy E, et al. (2021) An open approach to systematically prioritize causal
variants and genes at all published human GWAS trait-associated loci.
Nature Genetics, 53:1527-1533.

支持

如遇到以下问题:

  • 技能功能:在 tooluniverse/skills 中提交问题
  • GWAS 数据:联系 GWAS Catalog 或 Open Targets 支持团队
  • 工具错误:查看 ToolUniverse 工具状态

评论

支持 Markdown