关于 tooluniverse-polygenic-risk-score
这是一个用于构建和解读多基因风险评分的 ToolUniverse skill,结合 GWAS 与基因型数据。它优先检查 PGS Catalog 已发表模型,并强调考虑祖源的概率性解读,而非疾病诊断。
主要功能
- 01查找 GWAS 关联变异
- 02构建加权 PRS 模型
- 03根据基因型计算评分
- 04标准化评分并估算百分位
- 05查看 PGS 验证与祖源数据
适用场景
- 01估算复杂疾病的遗传易感性
- 02解读个人 PRS 百分位
- 03比较某性状的已发表风险评分
MCP 相关
该 skill 指导使用 ToolUniverse 遗传学工具,包括 GWAS Catalog、PGS Catalog、变异注释和 LD Score 回归工具。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mims-harvard/ tooluniverse --skill tooluniverse-polygenic-risk-score安装后在 Claude Code 中输入/tooluniverse-polygenic-risk-score确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
.env.templatecheck_data.pypython_implementation.pytest_prs_tools.pytest_skill_comprehensive.py详细介绍
多基因风险评分(PRS)构建器
使用全基因组关联研究(GWAS)数据构建并解读复杂疾病的多基因风险评分。
推理策略
多基因风险评分预测的是遗传风险,而不是疾病。PRS 较高意味着相对于人群而言风险升高——这并不表示此人一定会患上该疾病;PRS 较低也不意味着具有免疫力。PRS 的表现因祖源而异,差异可能很大:将基于欧洲人群的 PRS 应用于西非人群时,其预测能力可能下降 50–70%,因为基础 GWAS 是根据欧洲人群的等位基因频率和连锁不平衡(LD)模式训练的。发现性 GWAS 中的效应值容易受到赢家诅咒影响(在单项研究中被高估);请始终优先采用大型荟萃分析或经验证的 PGS Catalog 模型提供的权重。解读 PRS 时,应始终结合非遗传风险因素;对于大多数复杂疾病,环境因素的影响不亚于遗传因素,甚至更大。
查询数据,不要猜测:不要假设某个性状的效应值、等位基因频率或达到全基因组显著性的 SNP;请始终查询 GWAS Catalog(gwas_get_associations_for_trait)获取实际数据。不要假设某个性状存在经过验证的 PRS 模型;请通过 PubMed 搜索检查 PGS Catalog。
概述
适用场景:
- “计算我的 2 型糖尿病遗传风险”
- “构建冠状动脉疾病的多基因风险评分”
- “我对阿尔茨海默病有怎样的遗传易感性?”
- “解读我的乳腺癌风险 PRS 百分位数”
此技能的功能:
- 从 GWAS Catalog 提取达到全基因组显著性的变异(p < 5e-8)
- 使用效应值(beta 系数)构建加权 PRS 模型
- 根据基因型数据计算个人风险评分
- 将 PRS 解读为人群百分位数和风险类别
此技能不具备的功能:
- 诊断疾病(PRS 是概率性的,而非确定性的)
- 替代临床评估或遗传咨询
- 考虑非遗传因素(生活方式、环境)
- 提供治疗建议
方法
PRS 计算公式
多基因风险评分通过对遗传变异进行加权求和来计算:
PRS = Σ (dosage_i × effect_size_i)
其中:
- dosage_i:SNP i 上效应等位基因的数量(0、1 或 2)
- effect_size_i:来自 GWAS 的 beta 系数或 log(优势比)
标准化
原始 PRS 会标准化为 z 分数,以便解读:
z-score = (PRS - population_mean) / population_std
这样即可与人群分布进行比较并计算百分位数。
显著性阈值
- 全基因组显著性:p < 5×10⁻⁸(默认阈值)
- 该阈值校正了全基因组约 100 万项独立检验
- 放宽阈值(例如 p < 1×10⁻⁵)可以纳入更多 SNP,但也可能增加噪声
效应值处理
- 连续性状(例如身高、BMI):Beta 系数(每个等位基因对应的性状单位)
- 二分类性状(例如疾病):将优势比转换为 log-odds(beta = ln(OR))
- 缺少效应值或不显著的 SNP 会被排除
数据来源
此技能使用 ToolUniverse GWAS 工具进行查询:
-
GWAS Catalog(EMBL-EBI)
- 经整理的 GWAS 关联数据,涵盖 5000 多项研究
- 工具:
gwas_search_associations(参数:disease_trait、size;也可使用gwas_get_associations_for_trait)、gwas_get_snps_for_gene(参数:gene_symbol)、dbsnp_get_variant_by_rsid - 注意:
disease_trait搜索会返回与该性状关联的结果,而该性状可能是多个关联 EFO 性状之一。如需精确筛选,请通过efo_trait参数使用 EFO ID。
-
Open Targets Genetics
- 集成遗传学平台,提供精细定位的可信集合
- 工具:
OpenTargets_search_gwas_studies_by_disease、EnsemblVEP_annotate_hgvs(用于分析变异后果/频率)
-
变异注释
gnomad_search_variants+gnomad_get_variant— 群体等位基因频率(通过 VEP colocated_variants 获取特定祖源的数据)MyVariant_query_variants— 一次调用即可获取 CADD、SIFT、PolyPhen、ClinVar 和 gnomAD 数据gnomad_get_gene_constraints— 用于目标优先级排序的基因约束指标(pLI、oe_lof)
-
PGS Catalog(pgscatalog.org,EMBL-EBI)— 在基于原始 GWAS 关联构建任何内容之前,先检查此项
- 此技能的最佳实践中已指出“有可用的已验证 PRS 时,优先使用 PGS Catalog 中的数据”——这些工具正是为此而设。无需 API 密钥。
PGSCatalog_search_traits(query=...)— 将自由文本性状名称解析为对应的 EFO/MONDOtrait_id(例如,“2 型糖尿病” ->MONDO_0005148),并查看已发表评分的数量。务必使用工具返回的trait_id——不要猜测或重复使用记忆中的 EFO/MONDO ID,因为搜索可能会解析为不同但正确的本体术语。PGSCatalog_get_scores_by_trait(trait_id=...)— 列出该性状的所有已发表 PGS:PGS ID、变异数量、开发方法(LDpred、P+T、全基因组显著变异等)、基因组版本和来源文献。同一性状可能有 50 多种规模和质量差异巨大的评分(例如,2 型糖尿病评分从 2014 年的 62 个变异版本,到包含 690 万个变异的 LDpred 模型都有)——不要默认第一个结果就是最佳选择。PGSCatalog_get_score(pgs_id=...)— 获取某个评分的完整元数据,包括其开发队列(GWAS)和评估队列的ancestry_distribution。信任评分前,请先阅读这些信息:如果某评分在 100% 欧洲样本上开发(ancestry_distribution.dev.dist: {"EUR": 100}),这正是此技能上文所警示的可迁移性风险,即使它后来在更多元化的队列中接受了评估。PGSCatalog_get_performance_metrics(pgs_id=...)— 获取各评估队列实际发表的验证指标:AUROC/C-index、风险比/优势比(包括“前 10% 与其余人群”的比较)、R²,每项指标都对应具体的祖源和样本量。借此判断评分对特定人群是否可信——如果高 AUROC 仅在欧洲队列中测得,就无法说明其对其他祖源人群的表现;请查找与目标人群相符的评估记录,或注明缺少此类记录。
核心概念
多基因风险评分(PRS)
多基因风险评分汇总多个遗传变异的效应,以估计个体对某种性状或疾病的遗传易感性。与由单个突变导致的孟德尔遗传病不同,复杂疾病涉及数百至数千个变异,每个变异的效应都很小。
主要特征:
- 连续分布:PRS 在人群中呈钟形曲线
- 相对风险:将个体与人群平均水平进行比较
- 概率性:PRS 高不代表必然患病,PRS 低也不代表一定受到保护
- 祖源特异性:PRS 的准确性取决于 GWAS 祖源与目标人群祖源是否匹配
GWAS(全基因组关联研究)
GWAS 会在数百万个 SNP 中比较病例与对照组的等位基因频率(或与性状值进行相关分析),以识别与疾病相关的变异。
研究设计:
- 发现队列:初步识别关联
- 复制队列:在独立样本中验证
- 样本量:研究规模越大,越能检测到较小的效应(统计效能 ∝ √N)
- 多重检验校正:针对约 1M 次检验进行 Bonferroni 类校正
效应大小与比值比
- Beta(β):每增加一份效应等位基因,性状的变化量
- 示例:β = 0.5 kg/m² 表示每份等位基因使 BMI 增加 0.5 个单位
- 比值比(OR):疾病患病比值的乘数变化
- OR = 1.5 表示每份等位基因使患病比值增加 50%
- 转换为 beta:β = ln(OR)
连锁不平衡(LD)与聚类
相邻变异往往会一起遗传(LD)。为避免重复计数:
- LD 聚类:选择相互独立的变异(在 1 Mb 窗口内 r² < 0.1)
- 精细定位:用于识别因果变异的统计方法
- 此技能使用原始关联结果;生产环境中的 PRS 应包含 LD 剪枝
群体分层
祖源匹配时,GWAS 和 PRS 的准确度最高:
- 群体结构:不同祖源的等位基因频率不同
- 可迁移性:在欧洲人群上训练的 PRS 在非欧洲人群中的表现较差
- 解决方案:在多元祖源队列上训练 PRS,或使用祖源匹配的参考数据
应用
临床风险评估
PRS 可用于对个体进行风险分层,以支持:
- 筛查项目:针对高风险个体(例如乳腺 X 线摄影、结肠镜检查)
- 预防策略:针对遗传风险较高者开展生活方式干预
- 药物反应:基于代谢基因开展药物基因组学分析
示例:Khera 等人(2018)显示,与单基因突变相比,PRS 识别出的冠状动脉疾病风险超过 3 倍的个体数量多 3 倍。
研究应用
- 基因发现:基于 PRS 的全表型关联研究(PheWAS)
- 遗传相关性:比较不同性状的 PRS — 但若要严谨地使用 GWAS 汇总统计数据估算跨性状遗传相关性(rg),请使用
run_ldsc_genetic_correlation(LD Score 回归)。该工具只需要汇总统计数据(无需个体基因型),并会校正样本重叠。其方法远比对 PRS 值进行相关分析更合理。 - 因果推断:使用 PRS 作为工具变量开展孟德尔随机化
- 模拟研究:对多基因结构进行建模
SNP 遗传力与遗传相关性(LDSC)
在构建 PRS 之前或同时,可直接使用 GWAS 汇总统计数据,量化常见 SNP 能解释多少性状差异,以及不同性状之间的关系:
run_ldsc_heritability— 根据一项 GWAS 的汇总统计数据估算基于 SNP 的遗传力(h²_SNP);截距也可指示混杂因素或膨胀是否超过真实的多基因效应。该指标决定了 PRS 的上限(下文所说的“遗传力差距”正是 h²_SNP 减去 PRS R²)。run_ldsc_genetic_correlation— 估算两项 GWAS 之间的遗传相关性(rg),用于研究共同病因及跨性状 PRS 问题。
这两者都是远程工具(LD Score 回归引擎 + 参考 LD 分数面板)。使用它们基于数据验证遗传力或 rg 相关结论,而不是引用文献中的点估计值。
个人基因组学
消费级基因检测(23andMe、Ancestry DNA)会提供原始基因型。用户可以:
- 计算检测报告未涵盖性状的 PRS
- 与已发表的 PRS 模型进行比较
- 了解遗传因素相对于生活方式因素的影响
注意:个人 PRS 不应取代医疗建议。如果缺乏适当的背景说明,检测结果可能会引发焦虑。
局限性和注意事项
- 遗传力差距:PRS 只能解释一部分遗传力(T2D:约 50% 可遗传,PRS 可解释约 10–20%)。罕见变异、上位性以及基因与环境的相互作用均未纳入。
- 祖源偏倚:基于欧洲人群的 PRS 在非欧洲人群中的表现会大幅下降。有条件时,应使用多祖源 GWAS 权重。
- 赢家诅咒:发现阶段的效应量会被高估;应使用荟萃分析权重或 PGS Catalog 中经过验证的模型。
- 不能用于诊断:PRS 高不代表一定会患病;PRS 低也不代表一定受到保护。对于大多数复杂疾病,环境因素的影响同样大,甚至更大。
- 可操作性因情况而异:阿尔茨海默病 PRS 可指导的干预措施有限;心血管疾病 PRS 可为他汀类药物或生活方式决策提供参考。务必考虑当事人能根据这些信息采取什么行动。
- 伦理问题:遗传数据是永久性的,也会影响家人。在美国,GINA 提供就业和健康保险方面的保护,但不包括人寿保险。应提供遗传咨询方面的背景说明。
工作流
0. 从原始 GWAS 开始构建之前,先检查 PGS Catalog
在提取关联数据并从头构建 PRS 之前(以下步骤 1–5),先检查是否已有经过验证的评分:
PGSCatalog_search_traits(query="<trait>") # resolve to a real trait_id
PGSCatalog_get_scores_by_trait(trait_id="<from above>") # list candidate scores
PGSCatalog_get_score(pgs_id="<candidate>") # check dev-cohort ancestry
PGSCatalog_get_performance_metrics(pgs_id="<candidate>") # check validated AUROC/OR/R2 by ancestry
如果目标人群祖源已有经过充分验证的评分,请直接使用其已发布的权重(scoring_file URL),而不是根据原始 GWAS Catalog 关联数据重新推导出更粗略的 PRS——这正是从原始 GWAS 构建的流程(步骤 1–5)必须手动应对的“赢家诅咒”和 LD 聚类问题。只有当 PGS Catalog 中没有该性状的评分,或所有现有评分的开发和评估所用祖源都与待评分人群不匹配时,才退而使用原始关联数据构建评分。
1. 选择性状
确定关注的疾病或性状:
- 使用标准术语(例如,使用“type 2 diabetes”,而不是“T2D”)
- 检查 GWAS Catalog 中是否有相关数据
- 确认有足够的 GWAS 研究(理想情况下样本量 n > 10,000)
2. 收集关联数据
查询全基因组显著关联的 GWAS 数据库:
prs = build_polygenic_risk_score(
trait="coronary artery disease",
p_threshold=5e-8, # Genome-wide significance
max_snps=1000
)
注意事项:
- P 值阈值:5e-8 较为严格,1e-5 可纳入更多变异
- LD 聚类:生产系统应对相关 SNP 进行剪枝
- 研究质量:优先选择大型荟萃分析,而非小型研究
3. 提取效应量
提取 beta 系数或比值比:
- 连续性状使用 beta(可直接使用)
- 二元性状使用 OR(转换为对数优势)
- 处理缺失值(排除,或根据荟萃分析进行填补)
4. 筛选 SNP
质量控制筛选条件:
- MAF 筛选:为提高稳健性,排除罕见变异(MAF < 0.01)
- 基因型 QC:移除缺失率较高(> 10%)的 SNP
- Hardy-Weinberg:排除违反 HWE 的 SNP(p < 1e-6)
- 有歧义的 SNP:移除 A/T 和 G/C SNP(链方向存在歧义)
5. 计算评分
计算基因型剂量的加权和:
result = calculate_personal_prs(
prs_weights=prs,
genotypes=my_genotypes,
population_mean=0.0,
population_std=1.0
)
基因型来源:
- 23andMe 原始数据导出
- Ancestry DNA 原始数据
- 全基因组测序(VCF 文件)
- SNP 芯片数据(Illumina、Affymetrix)
6. 解读风险
转换为百分位数和风险类别:
result = interpret_prs_percentile(result)
print(f"Percentile: {result.percentile:.1f}%")
print(f"Risk: {result.risk_category}")
风险类别:
- 低风险:< 第 20 百分位数(遗传保护)
- 平均风险:第 20–80 百分位数(典型遗传易感性)
- 风险升高:第 80–95 百分位数(风险中度升高)
- 高风险:> 第 95 百分位数(风险显著升高)
临床解读:
- 百分位数以正态分布为前提
- 表示相对于平均值的风险(而非绝对风险)
- 应结合家族史和临床风险因素
- PRS 不能用于诊断——许多高风险个体终生不会患病
最佳实践
- 在有数据时,使用 PGS Catalog 中经过验证的 PRS(经过外部验证,包含 LD 剪枝和针对特定祖源的权重)
- 使 GWAS 的祖源与目标人群的祖源相匹配;有多祖源 GWAS 时优先使用
- 对于高度多基因的性状(身高、受教育程度),较宽松的 p 值阈值能捕获更多信号;对于寡基因性状(IBD、T1D),较严格的阈值效果更好
- 将 PRS 与临床风险评分(Framingham、QRISK)结合,进行综合预测
- 在研究中:记录 SNP 选择标准、LD 剪枝参数和 GWAS 的祖源;在留出队列中进行验证;报告按祖源分层的 R² 或 AUC
免责声明
此技能仅用于教育和研究目的。
- 不得用于临床诊断或治疗决策
- 未经临床用途验证——临床级 PRS 请使用 PGS Catalog 模型
- 需要遗传咨询——解读需要专业知识
- 未考虑家族史、环境或生活方式因素
- 因祖源而异——准确性取决于 GWAS 祖源是否匹配
如需进行临床遗传检测,请咨询:
- 遗传咨询师(经 ABGC/ABMGG 认证)
- 医学遗传学家
- 接受过基因组学培训的医疗服务提供者
PRS 是一个快速发展的领域。随着研究进展,指南和最佳实践将持续变化。
监管状态:
- 截至 2024 年,FDA 尚未对 PRS 进行监管
- 一些国家/地区限制直接面向消费者提供遗传风险报告
- 在临床实施前,请查阅当地法规