mcpField
T
tooluniverse-gwas-finemapping

tooluniverse-gwas-finemapping

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

关于 tooluniverse-gwas-finemapping

面向 GWAS 位点因果变异优先级分析的 ToolUniverse 技能,结合可信集、LD、功能注释和基因关联证据。也提供本地统计精细定位、共定位及 TWAS 计算流程。

主要功能

  1. 01评估变异因果后验概率
  2. 02分析可信集与 LD 结构
  3. 03结合 L2G 与功能注释
  4. 04执行精细定位、共定位和 TWAS

适用场景

  1. 01筛查 GWAS 位点的候选因果变异
  2. 02根据表达及功能证据连接变异与基因
  3. 03对自备汇总统计数据进行计算分析

安装

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

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

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

包含的文件

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

.env.template
python_implementation.py
test_skill_comprehensive.py

详细介绍

计算,而非描述

当分析需要计算(统计、数据处理、评分、信息补充)时,请通过 Bash 编写并运行 Python 代码。不要描述你打算怎么做,而要实际执行并报告结果。使用 ToolUniverse 工具检索数据,然后使用 Python(pandas、scipy、statsmodels、matplotlib)进行分析。

GWAS 精细定位与因果变异优先级排序

使用统计精细定位和位点到基因预测,识别并优先排序 GWAS 位点上的因果变异。

概述

全基因组关联研究(GWAS)会识别与性状相关的基因组区域,但连锁不平衡(LD)使因果变异难以确定。精细定位使用贝叶斯统计方法,根据 GWAS 汇总统计数据,计算每个变异具有因果性的后验概率。

推理策略——从这里开始: 精细定位要回答的问题是:该位点上的哪个变异具有因果性?请按以下流程分析:

  1. 先看 LD 结构——处于高 LD(r² > 0.8)的变异无法通过统计方法彼此区分。在认定某个变异是致因变异之前,先通过 Open Targets 或 GWAS Catalog 查询 LD 区块。
  2. 功能注释可打破 LD 平局——如果两个变异的后验概率相近,但其中一个是编码变异(错义、终止获得),或位于活跃的调控元件(启动子、增强子),则在生物学上优先考虑该变异。功能证据是区分依据。
  3. eQTL 共定位是关键桥梁——如果某个变异同时也是相关组织中附近基因的显著 eQTL(例如,T2D 位点在胰岛中的 eQTL),就能建立机制层面的解释。通过 Open Targets L2G 分数查询 eQTL 证据;不要假设最近的基因就是效应基因。

此技能提供以下工具:

  • 使用精细定位后验概率优先排序因果变异
  • 使用位点到基因(L2G)预测将变异与基因关联
  • 使用功能后果注释变异
  • 根据精细定位结果提出验证策略

关键概念

可信集合

可信集合是一个最小变异集合,以较高置信度(通常为 95% 或 99%)包含因果变异。集合中的每个变异都有一个具有因果性的后验概率,可通过以下方法计算:

  • SuSiE(单效应之和)
  • FINEMAP(贝叶斯精细定位)
  • PAINTOR(概率注释整合器)
后验概率

在给定 GWAS 数据和 LD 结构的情况下,特定变异具有因果性的概率。后验概率越高,变异越可能具有因果性。

位点到基因(L2G)预测

L2G 分数整合多种数据类型,预测变异会影响哪个基因:

  • 与基因的距离(越近,分数越高)
  • eQTL 证据(表达变化)
  • 染色质相互作用(Hi-C、启动子捕获)
  • 功能注释(编码变异、调控区域)

L2G 分数范围为 0 到 1,分数越高表示基因与变异之间的关联越强。

精细定位推理框架(重要)

查询,不要猜测——绝不要假设领先 SNP 就是因果变异。务必使用下方工具检查 LD 结构、可信集合和功能注释。

步骤 1:领先 SNP 与因果变异

领先 SNP(P 值最显著的 SNP)通常并非因果变异。它只是基因分型芯片上被标记效果最好的变异。因果变异可能:

  • 与领先 SNP 完全处于 LD(r2 > 0.95),但具有功能性后果
  • 是芯片上未包含的非编码调控变异
  • 是该位点多个独立信号之一(条件分析可揭示多个信号)

操作:始终针对领先 SNP 调用 OpenTargets_get_variant_credible_sets。如果后验概率 < 0.5,则领先 SNP 很可能不是因果变异——请检查可信集合中的其他变异。

步骤 2:LD 结构解读

LD 区块定义了精细定位的分辨率上限:

  • 紧密 LD 区块(变异数量少,r2 > 0.9):可信集较小;功能注释可作为决胜依据
  • 宽泛 LD 区块(变异数量多):可信集较大;仅靠统计精细定位还不够——需要功能数据(eQTL、染色质、CRISPR)
  • 人群很重要:欧洲、非洲、东亚人群的 LD 模式各不相同。非洲人群的 LD 区块较短,精细定位分辨率更高。请确认 GWAS 是在哪个人群中开展的。
步骤 3:可信集分析

解读可信集时:

  1. 数量很重要:95% 可信集包含 1-3 个变异 = 分辨率高。包含 50 个以上变异 = 分辨率低,需要更多数据。
  2. 后验概率分布:如果一个变异的 PP > 0.5,它就是明显的首选。如果 PP 均匀分布在许多变异上,则无法通过统计方法确定单个因果变异。
  3. 单个位点有多个可信集:表示存在多个独立因果信号(等位基因异质性)。每个可信集代表不同的因果机制。
步骤 4:共定位推理

共定位旨在判断两个关联信号(例如 GWAS + eQTL)是否共享同一个因果变异。

  • 较高的 L2G 分数(> 0.7)+ 相关组织中的 eQTL:有力证据表明该变异通过改变基因表达影响疾病
  • GWAS 信号较强,但没有 eQTL:该变异可能通过蛋白质编码改变、剪接,或尚未分析的组织/细胞类型发挥作用
  • 远端基因(非最近基因)的 eQTL:效应基因不是最近的基因。查询 L2G 分数——不要默认最近的基因
步骤 5:优先级决胜依据

当多个变异的后验概率相近时:

  1. 编码变异(错义、终止增益)> 调控变异 > 内含子变异 > 基因间变异
  2. 在疾病相关组织中带有活性染色质标记(H3K27ac、H3K4me1)
  3. 破坏转录因子结合基序
  4. 在不同物种间保守(PhyloP、GERP)
  5. 在疾病相关组织中存在效应方向一致的 eQTL

常见查询

  • “TCF7L2 位点上的哪个变异可能是 2 型糖尿病的因果变异?” → 使用 OpenTargets_get_variant_credible_sets 或 gwas_search_snps,并设置 gene=TCF7L2
  • “对 rs429358(APOE4)进行精细定位” → 使用 OpenTargets_get_variant_info,然后使用 OpenTargets_get_variant_credible_sets
  • “GWAS 研究 GCST90029024 中的所有因果位点” → 使用 OpenTargets_get_study_credible_sets
  • “阿尔茨海默病的 GWAS 研究” → 使用 OpenTargets_search_gwas_studies_by_disease 或 gwas_search_studies

使用的工具

Open Targets Genetics(GraphQL)
  • OpenTargets_get_variant_info:变异详情和等位基因频率
  • OpenTargets_get_variant_credible_sets:包含某个变异的可信集
  • OpenTargets_get_credible_set_detail:可信集详细信息
  • OpenTargets_get_study_credible_sets:GWAS 研究中的所有位点
  • OpenTargets_search_gwas_studies_by_disease:按疾病查找研究
GWAS Catalog(REST API)
  • gwas_search_snps:按基因或 rsID 查找 SNP
  • gwas_get_snp_by_id:SNP 详细信息
  • gwas_get_associations_for_snp:某个变异的所有性状关联
  • gwas_search_studies:按疾病/性状查找研究
自助式统计精细定位、共定位和 TWAS

本技能上文的“局限性”一节已指出,Open Targets 尚未对所有已发表的 GWAS 位点进行精细定位。如果某个位点没有预先计算的 OpenTargets_get_variant_credible_sets/OpenTargets_get_study_credible_sets 结果,可以使用三个本地计算工具,直接根据你已有或从其他来源获取的每个 SNP 的原始汇总统计数据(beta、标准误、SNP ID)自行运行统计分析:

  • Finemap_credible_set(beta=[...], se=[...], snp=[...], coverage=0.95, sd_prior=...) — 使用 Wakefield 近似贝叶斯因子,对单个因果变异进行精细定位。返回每个 SNP 的后验纳入概率(PIP)、top_snp/top_pip,以及达到指定覆盖率的可信集合。已在线验证:{"n_snps": 6, "top_snp": "rs3", "top_pip": 1.0, "credible_set": [...]}。
  • Coloc_abf_test(beta1=[...], se1=[...], beta2=[...], se2=[...], snp=[...], p1=..., p2=..., p12=...) — 贝叶斯共定位(coloc.abf,Giambartolomei 2014),用于检验同一组 SNP 上的两个信号(例如 GWAS 命中位点和 eQTL)是否共享一个因果变异。返回五个后验概率 PP0-PP4(PP4 = 共享因果变异——应首先查看的数值)。已在线验证:一个包含 6 个 SNP 的示例区域返回了实际后验概率。
  • SPrediXcan_associate(weight=[...], gwas_z=[...], snp_sd=[...], covariance=..., snp=[...]) — 基于汇总数据的全转录组关联分析(S-PrediXcan,Barbeira 2018):将某个基因的 eQTL 预测权重与 GWAS 每个 SNP 的 z 分数结合起来,检验该基因的预测表达量(而不仅仅是附近变异)是否与性状相关。返回 TWAS z 分数、p 值和方向。已在线验证:{"twas_zscore": 4.73, "p_value": 2.2e-06, ...}。

原始输入的获取方式:这三个工具会对你提供的数组进行计算,不会自行获取汇总统计数据。src/tooluniverse/data/gwas_sumstats_tools.json 中的 3 个工具(GWASSumStats_list_studies、GWASSumStats_get_trait_studies、GWASSumStats_get_region_associations)原本就是为此而设计的,但截至本文撰写时,这三个工具均已失效:EBI 已全面弃用 GWAS 汇总统计 REST API,每次调用都会返回明确的 410 Gone(“This API has been deprecated. For ways to access summary statistics see: https://www.ebi.ac.uk/gwas/docs/methods/summary-statistics”);这一点已通过 tu test 和直接对同一端点执行独立的 curl 请求予以确认。不要通过 GWASSumStats_* 构建工作流并指望它正常运行;请使用该文档页面链接的 GWAS Catalog 当前批量下载/FTP 方式或其他来源获取区域级汇总统计数据,然后将得到的 beta/SE/SNP 数组传入上述三个计算工具。

理解精细定位输出

解读后验概率
  • > 0.5:很可能是因果变异(强候选)
  • 0.1 - 0.5:可能是因果变异
  • 0.01 - 0.1:可能是因果变异,但不确定
  • < 0.01:不太可能是因果变异
解读 L2G 分数
  • > 0.7:基因-变异关联的置信度高
  • 0.5 - 0.7:置信度中等
  • 0.3 - 0.5:关联较弱,但仍有可能
  • < 0.3:置信度低

常见问题

问:为什么并非所有变异都有可信集合? 答:精细定位需要:

  1. GWAS 汇总统计数据(不仅仅是最显著的命中结果)
  2. LD 参考面板
  3. 足够强的信号(p < 5e-8)
  4. 计算资源

问:一个变异可以属于多个可信集合吗? 答:可以!一个变异可能是多个性状的因果变异(多效性),也可能出现在同一性状的不同研究中。

问:如果排名最高的 L2G 基因离变异很远,该怎么办? 答:这表明可能存在调控效应(增强子、启动子)。请检查:

  • 相关组织中的 eQTL 证据
  • 染色质互作数据(Hi-C)
  • 调控元件注释(Roadmap、ENCODE)

问:如何在可信集合中的变异之间进行选择? 答:按以下优先级筛选:

  1. 后验概率(越高越好)
  2. 功能后果(编码区 > 调控区 > 基因间区)
  3. eQTL 证据
  4. 进化保守性
  5. 实验可行性

局限性

  1. 依赖 LD:精细定位的准确性取决于 LD 结构是否与研究人群相匹配
  2. 需要汇总统计数据:并非所有研究都会提供完整的汇总统计数据
  3. 计算密集:对大型研究进行精细定位需要大量资源
  4. 先验假设:贝叶斯方法依赖先验假设(因果变异的数量、效应大小)
  5. 数据缺失:Open Targets 中并非所有 GWAS 位点都经过精细定位

最佳实践

  1. 探索新疾病时,先从研究级查询开始
  2. 检查多项研究,确认信号是否可重复
  3. 结合功能数据(eQTL、染色质、CRISPR 筛选)
  4. 考虑祖源——不同人群的 LD 存在差异
  5. 通过实验验证——精细定位提供的是候选对象,而非确凿证据

参考文献

  1. Wang 等人(2020)《一种简单的新型回归变量选择方法及其在遗传精细定位中的应用》JRSS-B(SuSiE)
  2. Benner 等人(2016)《FINEMAP:使用全基因组关联研究汇总数据进行高效变量选择》Bioinformatics
  3. Ghoussaini 等人(2021)《Open Targets Genetics:利用大规模遗传学和功能基因组学系统识别与性状相关的基因》NAR
  4. Mountjoy 等人(2021)《一种开放式方法,用于对所有已发表的人类 GWAS 性状相关位点中的因果变异和基因进行系统性优先排序》Nat Genet

相关技能

  • tooluniverse-gwas-explorer:更广泛的 GWAS 分析
  • tooluniverse-eqtl-colocalization:将变异与基因表达关联起来
  • tooluniverse-gene-prioritization:系统性基因排序

评论

支持 Markdown