mcpField
T
tooluniverse-population-genetics

tooluniverse-population-genetics

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

关于 tooluniverse-population-genetics

面向群体遗传学分析的 ToolUniverse 技能,涵盖群体变异、等位基因频率、GWAS、临床变异和进化约束。提供数据库查询流程与定量遗传学公式,适用于研究分析和计算题。

主要功能

  1. 01群体等位基因频率查询
  2. 02GWAS 性状关联检索
  3. 03临床变异注释
  4. 04基因约束指标分析
  5. 05群体遗传学公式与计算

适用场景

  1. 01比较不同群体的变异频率
  2. 02检索疾病或性状的 GWAS 关联
  3. 03评估变异的临床意义
  4. 04计算选择、遗传漂变或连锁不平衡

安装

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

$npx skills add https://github.com/mims-harvard/tooluniverse --skill tooluniverse-population-genetics

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

附带文件scripts/popgen_calculator.py

详细介绍

群体遗传学分析

MC 策略:群体遗传学 MC 题目通常考查你是否了解某个定理或结果。先计算答案(使用 popgen_calculator.py 或编写 Python 代码),再与选项匹配。不要试图推测哪个选项“听起来正确”。

使用 ToolUniverse 工具分析群体层面的遗传变异、等位基因频率、GWAS 关联、临床意义和进化约束。

适用场景

当用户询问以下内容时,启用此技能:

  • 不同群体中的等位基因频率(gnomAD、1000 Genomes)
  • 疾病/性状的 GWAS 关联
  • 临床变异解读(ClinVar、VEP)
  • 基因层面的约束指标(pLI、LOEUF、o/e 比率)
  • 选择、遗传漂变、连锁不平衡或群体结构
  • 变异注释和功能影响

查询,不要猜测

对于等位基因频率和关联,先查询 gnomAD/1000Genomes/GWAS Catalog。优先使用 PopGen_hwe_test、PopGen_fst、PopGen_inbreeding 和 PopGen_haplotype_count 工具进行 HWE、Fst、近交和单倍型计算。备用方案:直接运行 popgen_calculator.py。对于理论问题(delta-q、漂变、LD 衰减),请使用下文“理论推理”部分中的公式。


工具速查

工具关键参数备注
gnomad_search_variantsquery(必填)将 rsID 转换为格式为 "CHR-POS-REF-ALT" 的 variant_id
gnomad_get_variantvariant_id(必填)、dataset群体频率。默认数据集:gnomad_r3;如需最新数据,请使用 gnomad_r4
gnomad_get_gene_constraintsgene_symbol(必填)pLI、o/e 比率。可能超时——重试一次
MyVariant_query_variantsquery(必填)聚合数据:ClinVar + dbSNP + gnomAD + CADD。使用 hg19 坐标
EnsemblVEP_annotate_rsidvariant_id(必填)功能影响、SIFT、PolyPhen。参数为 "variant_id",不是 "rsid"
EnsemblVEP_variant_recodervariant_id(必填)在 rsID/HGVS/VCF/SPDI 之间转换
gwas_get_snps_for_genegene_symbol(必填)获取某个基因的所有 GWAS SNP
gwas_search_associationsquery(必填)查询疾病/性状的 GWAS(不能使用基因名称——查询基因请使用 gwas_get_snps_for_gene)
gwas_get_variants_for_traittrait(必填)获取与某个性状相关的变异
ClinVar_search_variantsgene、condition、significance至少需要一个筛选条件
RegulomeDB_query_variantrsid(必填)调控评分(1a = 最强,7 = 最弱)
重要注意事项
  1. gnomAD variant_id:格式为 "CHR-POS-REF-ALT"(不带 "chr" 前缀)。务必先通过 gnomad_search_variants 解析 rsID。
  2. gwas_search_associations:仅接受疾病/性状名称。基因名称会导致失败。按基因查询请使用 gwas_get_snps_for_gene。
  3. gwas_search_snps:已损坏(HTTP 500)。请改用 gwas_get_snps_for_gene。
  4. VEP/ClinVar 响应:格式不固定(列表、{data, metadata} 或 {error})。请处理这三种格式。

工作流模式

变异频率:gnomad_search_variants -> gnomad_get_variant(dataset="gnomad_r4") -> MyVariant_query_variants(1000G 群体细分数据)-> EnsemblVEP_annotate_rsid

疾病 GWAS:gwas_search_associations -> gwas_get_variants_for_trait -> 对重点结果使用 gnomad_get_variant -> EuropePMC_search_articles

基因特征分析:gnomad_get_gene_constraints -> gwas_get_snps_for_gene -> ClinVar_search_variants -> PubMed_search_articles

致病性评估:EnsemblVEP_annotate_rsid -> MyVariant_query_variants(CADD、ClinVar)-> gnomad_get_variant(频率)-> RegulomeDB_query_variant(适用于非编码变异)


理论推理(计算题的关键部分)

定量群体遗传学问题需要用到以下公式。请逐步推导,并展示中间值。

选择作用下的等位基因频率变化(delta-q)

对于隐性有害等位基因(适合度:AA=1,Aa=1,aa=1-s):

delta_q = -s * q^2 * p / (1 - s * q^2)

其中 p = freq(A),q = freq(a),s = 选择系数。

对于显性有害等位基因(AA=1,Aa=1-s,aa=1-s):

delta_q = -s * q * p / (1 - s * q * (2 - q))

对于杂合子优势(AA=1-s1,Aa=1,aa=1-s2):

equilibrium: q_hat = s1 / (s1 + s2)

示例:代入题目中的 s1 和 s2;q_hat = s1/(s1+s2)。

低 q 时,针对隐性等位基因的选择作用较慢,因为大多数 a 等位基因隐藏在杂合子中。将 q 从 q0 降至 qt 所需时间:t ~ (1/qt - 1/q0) / s 代。

小群体中的遗传漂变

每代等位基因频率的方差:Var(delta_p) = pq / (2Ne)

新生中性突变的固定概率:1/(2*Ne)

固定时间(以该等位基因最终固定为前提):中性等位基因约需 4*Ne 代

杂合度衰减:H_t = H_0 * (1 - 1/(2*Ne))^t

经过 t 代后,杂合度损失比例约为 1 - e^(-t/(2*Ne))

有效群体大小(Ne)的调整:

  • 性别比例不均:Ne = 4NfNm / (Nf + Nm)
  • 群体大小波动:Ne = 各代 N 的调和平均数
  • 瓶颈:主要由规模最小的一代决定

漂变与选择:当 |s| < 1/(2*Ne) 时,漂变占主导。在 Ne < 50 的群体中,s=0.01 的变异表现为中性。

连锁不平衡(LD)衰减

D = freq(AB) - freq(A)*freq(B),其中 A 和 B 是两个位点上的等位基因。

随重组的衰减:D_t = D_0 * (1 - r)^t,其中 r = 重组率,t = 代数。

LD 半衰期:t_half = -ln(2) / ln(1-r) ~ 0.693/r 代(r 较小时)。

r-squared(标准化 LD):r^2 = D^2 / (pA * pa * pB * pb)。取值范围为 0-1。

有限群体中平衡状态下预期的 r^2:E[r^2] = 1 / (1 + 4Ner)(漂变与重组平衡时)。

实际影响:

  • 紧密连锁的位点(r < 0.01):LD 可持续数百代
  • 松散连锁的位点(r = 0.5,独立分配):LD 每代减半
  • GWAS 标签 SNP 能发挥作用,是因为 LD 会覆盖一定区块;区块大小取决于 Ne 和重组率
  • 非洲人群的 LD 区块较短(历史 Ne 较大)-> 需要更密集的 SNP 芯片
Hardy-Weinberg 平衡

对于等位基因 A(频率 p)和 a(频率 q=1-p):预期基因型 AA=p^2、Aa=2pq、aa=q^2。

卡方检验:df=1(2 个等位基因)。首选:使用 PopGen_hwe_test 工具。备选:popgen_calculator.py --type hwe --AA N1 --Aa N2 --aa N3。

偏离 HWE 的原因:非随机交配、选择、迁移、漂变、基因分型错误。纯合子过多 -> 近交或群体结构(Wahlund 效应)。杂合子过多 -> 超显性选择或负向择偶。

遗传力
  • H^2(广义遗传力) = V_G / V_P;h^2(狭义遗传力) = V_A / V_P
  • V_G 包含所有遗传方差:加性 + 显性 + 上位性。易错点:“广义遗传力”不只是加性遗传方差。
  • 在双等位基因(p、q)的 HWE 下:基因型频率为 p^2、2pq、q^2
  • 根据基因型计算表型频率:对每种基因型类别,将(基因型频率 * 外显率)求和
  • 对数量性状:V_P = V_G + V_E(假设无协方差)
  • 存在显性时:指定基因型值(例如 AA=a、Aa=d、aa=-a),计算均值,再根据频率加权的平方偏差计算 V_G
  • PGS 与 SNP-h² 易错点:PGS R² 不一定 ≤ h²_SNP。大型 GWAS 中,PGS 可通过常见 SNP 与罕见因果变异之间的 LD 标记这些变异,因此可能超过 SNP-h²。“一定”一词使这一说法为假。h²_SNP 根据常见变异估算;PGS 可以捕获额外的方差。
路径分析(因果图)
  • 追踪图中从原因到结果的所有路径(直接和间接)
  • 每条路径的贡献 = 该路径上各路径系数的乘积
  • 总效应(相关性)= 所有路径贡献之和
  • 间接效应可能掩盖(抑制效应)或放大(混杂)直接效应
  • 未分析的相关关系(双向箭头)也算作有效路径片段
  • 绝不要忽略间接路径——总效应很少只是直接箭头的效应
遗传组合计数(F2 杂交、单倍型计数)

对于两个近交(纯合)品系之间的 n 个 SNP:

  • F1 在所有 n 个位点上均为杂合
  • F2 中不同的单倍型数 = 2^n(每个 SNP 位点都贡献来自亲本 A 或 B 的等位基因)
  • F2 中不同的二倍体基因型数 = 3^n(每个位点上均为 AA、AB、BB 之一)
  • F2 中独特的染色体(不同单倍型)数 = 2^n(例如,5 个 SNP → 2^5 = 32;但如果问的是“新型”,则减去 2 个亲本单倍型 → 30)
  • 始终编写并运行 Python 代码(python3 -c "...")来计算这些数量。绝不要手动枚举。
  • 对于来自实地数据的样本/计数:将数据解析为一种结构,并以编程方式计算。
突变-选择平衡

有害等位基因的平衡频率:

  • 隐性致死:q_hat = sqrt(mu/s) ~ sqrt(mu)(当 s=1 时)
  • 显性致死:q_hat = mu/s
  • 示例:mu=1e-5,s=1(隐性致死)-> q_hat = 0.003(携带者频率约为 0.006)
F 统计量与种群结构
  • Fis:亚种群内部的近交(群体内部杂合子缺失)
  • Fst:亚种群之间的分化。Fst = Var(p) / (p_bar * q_bar)
  • Fit:总近交。(1-Fit) = (1-Fis)(1-Fst)
  • Fst 解释:<0.05 分化较小,0.05-0.15 中等,0.15-0.25 较大,>0.25 非常大
  • 首选:使用 PopGen_fst 工具。备用方案:popgen_calculator.py --type fst --p1 X --p2 Y --n1 N1 --n2 N2

孟德尔遗传推理框架

对于任何遗传杂交问题,请按以下步骤依次进行。不要跳过步骤。

步骤 1:确定基因、位置和等位基因关系
  • 列出杂交中涉及的每个基因
  • 确定染色体位置:常染色体或 X 连锁(X 连锁基因在雄性和雌性中表现出不同的遗传方式)
  • 确定等位基因关系:显性/隐性、共显性、不完全显性
  • 记录基因之间的上位性、抑制基因或修饰基因相互作用
步骤 2:明确写出亲本基因型
  • 使用标准记法(例如,常染色体基因写作 Aa Bb;X 连锁基因写作 X^w X^+)
  • 对于 X 连锁基因,雄性为半合子(X^w Y),而非纯合子
  • 如果未提供亲本基因型,则根据表型和系谱背景推断
步骤 3:为每个基因绘制庞尼特方格
  • 对于多基因杂交,分别处理每个基因(若不连锁),然后组合
  • 对于连锁基因,使用重组频率调整配子比例
  • 对于 X 连锁基因,请记住父亲将 X 染色体传给所有女儿,将 Y 染色体传给所有儿子
步骤 4:计算预期表型比例
  • 相乘各独立基因的比例(例如,3:1 x 3:1 = 9:3:3:1)
  • 对于 X 连锁遗传:分别计算雄性和雌性的比例,然后按需合并或分别报告
步骤 5:确认比例之和为 1.0
  • 将所有比例换算为分数,并确认它们的总和为 1
  • 如果总和不为 1,则庞尼特方格或配子计算存在错误
步骤 6:在计算完基因型比例后再应用表型修饰规则
  • 对于上位性:先计算完整的基因型比例(例如,9:3:3:1),再合并产生相同表型的基因型类别
  • 对于抑制基因:在其他方面呈突变背景的个体中,抑制基因纯合子(su/su)会恢复野生型表型。先确定哪些个体携带突变等位基因,再应用抑制作用
  • 示例:在隐性上位性(aa 掩盖 B)情况下,9 A_B_ : 3 A_bb : 3 aaB_ : 1 aabb 变为 9:3:4

大肠杆菌 Hfr 作图框架

对于细菌接合和 Hfr 作图问题:

核心原则
  • 在 Hfr x F- 杂交中,Hfr 染色体从转移起点(oriT)开始线性转移
  • 基因转移顺序 = 染色体上从起点开始的顺序
  • 早期标记(最先进入)最靠近转移起点
  • 晚期标记(最后进入)离转移起点最远
中断接合实验
  • 在较早时间点出现在重组子的基因更靠近 oriT
  • 进入时间可确定基因顺序及基因间的大致距离
  • 重组子需要通过同源重组(双交换)整合
标记之间的重组频率
  • 关键陷阱:转移片段上相距最远的标记之间,重组频率最高
  • 这是因为相距较远的标记进入之间间隔更长,为它们之间发生重组事件提供了更多机会
  • 相反,进入时间接近的标记之间重组频率较低
  • 不要将“最高重组频率”与“最先进入的标记”混淆——这是两个相反的概念
根据 Hfr 数据排列标记
  1. 使用进入时间数据,确定基因相对于 oriT 的顺序
  2. 使用所选标记对之间的重组频率数据,确认或细化顺序
  3. 可使用起点不同的多个 Hfr 菌株构建环状图谱

遗传学选择题排除策略

通用选择题流程
  1. 务必评估所有选项后再选择答案
  2. 不要选第一个看起来正确的选项——可能存在更好或更准确的答案
  3. 仔细阅读题干中的限定词:“最可能”“最不可能”“不正确”“总是”“从不”
“哪项不正确”类问题
  • 独立判断每个陈述为正确或错误
  • 选择前在每个选项旁标记“正确”或“错误”
  • 答案是标记为“错误”的陈述
  • 再次核查:确认该陈述确实错误,而不只是措辞容易误导
“哪种机制”类问题
  • 针对题目给出的所有观察结果检验每种可能的机制
  • 正确的机制必须解释每一项观察结果,而不只是其中几项
  • 排除任何与哪怕一项观察结果相矛盾的机制
需要留意的具体陷阱
  • 亚功能化与新功能化:亚功能化 = 在重复基因之间分配祖先已有的功能(两份拷贝都需要,才能实现原有功能)。新功能化 = 一份拷贝获得祖先不具备的真正新功能
  • 拷贝数中性的杂合性缺失(LOH):由有丝分裂重组导致(片段性,影响染色体的一部分),而非单亲二体(UPD,影响整条染色体)。题目可能会试图混淆二者
  • 外显率与表现度:外显率 = 具有某种基因型的个体中表现出任何表型的比例。表现度 = 这些个体中表型的程度或严重程度。二者是不同概念
  • 互补与重组:互补 = 两个不同基因上的突变以反式组合后恢复野生型表型。重组 = 两个相同或不同基因上的突变之间发生交换。互补通过 F1(杂合子)检验;重组通过子代检验

常见遗传学推理陷阱

以下是一些曾导致复杂遗传学问题推理失败的特定模式。回答遗传学选择题前请先复习。

抑制子遗传学
  • 抑制子突变在纯合时,可在原本为突变型的遗传背景中恢复野生型表型
  • 在同时涉及原始突变和常染色体隐性抑制子的 F2 杂交中:
    • 按双因子杂交处理——主突变和抑制子独立分离
    • 只有 1/4 的 F2 为抑制子纯合子
    • 抑制子只在主突变也为纯合子的个体中起作用
    • 使用庞尼特方格列出所有基因型类别,然后应用抑制规则确定表型
非分离(Bridges 的实验)
  • Bridges 利用非分离证明了染色体遗传理论
  • 雌性减数分裂中的非分离事件会产生 X0 雄性
  • 减数分裂 I 非分离:两条 X 染色体移向同一极 -> XX 卵细胞 + O 卵细胞(无 X)
  • 减数分裂 II 非分离:姐妹染色单体未能分离 -> 一个次级卵母细胞产生 XX 卵细胞
  • Bridges 的经典结果:出现例外的白眼雌性(X^w X^w)和红眼雄性(无 X 卵细胞 + Y 精子 = X0,但这类雄性通常不育)
  • 关键区别:要知道哪种非分离类型(MI 还是 MII)会产生哪种特定的配子类型
GWAS LD 区块
  • 同一 LD 区块内的 SNP 彼此相关,可能导致假阳性关联增加(一个因果 SNP 会连带非因果标签 SNP)
  • 不同 LD 区块间的 SNP 在很大程度上彼此独立,不会产生误导性的跨位点关联
  • LD 区块结构因群体而异(由于历史 Ne 较大,非洲群体中的区块较短)
  • 要区分因果变异与随行的标签 SNP,需要在 LD 区块内进行精细定位
全基因组复制后的基因保留
  • 新功能化:一个拷贝获得新功能 -> 这是最常被提及的复制后基因保留原因(保留两个拷贝,因为两者现在都不可或缺)
  • 亚功能化:祖先功能在两个拷贝之间分配 -> 可解释重复拷贝的分化,但必须保留两个拷贝才能维持完整的祖先功能
  • 剂量平衡:某些基因以重复拷贝形式保留,以维持蛋白质复合物中的化学计量平衡
  • 陷阱:题目可能会问“什么解释了保留”还是“什么解释了分化”——这两者的最佳答案不同
  • 对于保留:新功能化(新功能使两个拷贝都不可或缺)
  • 对于表达或功能的分化:亚功能化(祖先功能的分配)

高级遗传学陷阱 v2

PGS 与遗传力:“必然为真”的逻辑

对于关于 PGS 和遗传力的“必然为真”类题目:只有当一个陈述在 V_D=0 和 V_D=V_G 两种情况下都成立时,它才是必然为真。检验这两个极端情况。

路径图符号判定流程

不要根据常识猜测路径符号。符号可能与熟知系统中的不同。请遵循以下流程:

  1. 确定参考方向:什么在变化?什么在增加?
  2. 对于每条路径 X→Y:只问“当 X 增加时,Y 是增加(+)还是减少(-)?”
  3. 利用题目中的实验背景(敲除/对照比较、所提供的数据)来确定符号,而不是凭直觉
  4. 预期存在负路径:路径图考查的是识别负向关系的能力。全部为正几乎总是错误的。直接残差路径(e)的符号通常与预期相反。
卡方:“最可能拒绝”的流程

根据题目给出的预期比例计算卡方值。将其与自由度为(表型类别数 - 1)时的卡方临界值比较。选择卡方值最高的选项,但也要检查哪种模式在生物学上能诊断备择假设。

LD 与误导性 GWAS 关联

重组热点处的 LD 区块边界是 GWAS 定位错误的来源——区块内的强信号并不能保证因果变异位于该区块内。

低频等位基因检测

双链测序(唯一分子标识符 + 双链一致序列)可检测频率为 0.01% 的等位基因——远优于即使测序深度达到 80X 的标准 NGS。单纯增加读数深度并不能帮助检测超罕见变异,因为无论深度如何,Illumina 的错误率(约 0.1%)都会掩盖频率低于约 1% 的变异。要区分真正的罕见变异与测序错误,需要使用错误校正方法(UMI、双链一致序列)。


内置计算脚本

脚本:skills/tooluniverse-population-genetics/scripts/popgen_calculator.py

首选:尽可能使用 ToolUniverse 工具(通过 MCP/SDK),而不是脚本:

  • PopGen_hwe_test 工具——HWE 卡方检验。回退方案:popgen_calculator.py --type hwe
  • PopGen_fst 工具——Weir-Cockerham Fst。回退方案:popgen_calculator.py --type fst
  • PopGen_inbreeding 工具——根据谱系计算近交系数。回退方案:popgen_calculator.py --type inbreeding
  • PopGen_haplotype_count 工具——预期单倍型多样性。回退方案:popgen_calculator.py --type haplotypes

回退脚本模式(均需要 --type):

  • hwe:--AA N --Aa N --aa N —— 带 p 值的 HWE 卡方检验
  • fst:--p1 F --p2 F --n1 N --n2 N —— Weir-Cockerham Fst
  • inbreeding:--pedigree TYPE --generations G —— 根据谱系计算 F(自身、全同胞、半同胞、表亲等)
  • haplotypes:--snps N --generations G --recomb_rate R —— 预期单倍型多样性

核心概念

  • MAF:次要等位基因频率。常见:>5%。罕见:<1%。超罕见:<0.01%。
  • pLI:LoF 不耐受概率。>0.9 = 单倍剂量不足基因。
  • LOEUF:LoF o/e 上限比例。<0.35 = 约束性很强。
  • CADD PHRED:>=10 表示前 10%,>=20 表示前 1%,>=30 表示有害性最高的前 0.1%。
  • 全基因组显著性:GWAS p < 5e-8(对约 1M 项独立检验进行 Bonferroni 校正)。
  • 效应量:OR > 1 = 风险等位基因,< 1 = 保护性等位基因。Beta > 0 = 增加性状值。

证据分级

  • T1:ClinVar 致病/可能致病,FDA 药物基因组学
  • T2:gnomAD 频率、GTEx eQTL、全基因组显著的 GWAS
  • T3:CADD/SIFT/PolyPhen 预测、RegulomeDB、约束指标
  • T4:VEP 后果术语、dbSNP 注释、文献提及

评论

支持 Markdown