Dsuite 原理入门

Dsuite 原理入门

Summary

Dsuite 是一套围绕 D 统计量(Patterson's D / ABBA-BABA) 和相关 f 统计量构建的软件工具,核心目标是在多群体或多物种基因组数据中,系统检测 基因流(gene flow)杂交渗入(introgression) 和偏离简单树状演化模型的信号。

一、Dsuite 解决什么问题

在群体遗传和比较基因组研究中,一个常见问题是:

多个群体之间的遗传相似性,究竟来自共同祖先,还是来自后期基因流?

如果所有群体都严格按照一棵系统发育树分化,而且分化之后没有基因交流,那么不同群体之间共享衍生等位基因的模式应当满足树模型的期望。Dsuite 所使用的 D 统计量正是通过检验这种期望是否被打破,来判断是否存在额外的基因流信号。

相比只分析单个群体组合,Dsuite 更适合:

因此,Dsuite 可以理解为一个面向 大规模 ABBA-BABA / f 统计量分析 的工具集合。


二、D 统计量与 ABBA-BABA 的基本思想

1. 四群体框架

经典 D 统计量通常使用四个类群:

(((P1, P2), P3), O)

其中:

在这个框架下,如果没有 P3 与 P1/P2 之间的额外基因流,那么 P3 与 P1、P2 共享衍生等位基因的机会应该大体对称。

2. ABBA 与 BABA 模式

假设每个位点只有两个等位基因:

在四个群体上的等位基因模式可以写成:

P1  P2  P3  O
A   B   B   A   = ABBA
B   A   B   A   = BABA

含义是:

如果没有额外基因流,ABBA 和 BABA 的数量应该接近。若明显偏向某一类模式,则说明 P3 与 P1 或 P2 之间可能存在额外的等位基因共享。

3. D 统计量公式

D 统计量的基本形式是:

D=nABBAnBABAnABBA+nBABA

解释:

Important

D 值本身描述的是共享衍生等位基因的不对称性。真正判断是否显著,通常还需要结合 Z-scoreP 值


三、Dsuite 如何把 D 统计量扩展到大规模分析

传统 ABBA-BABA 分析往往围绕一个指定四群体组合展开。Dsuite 的设计重点是把这一思想推广到多群体数据中。

1. 从样本到群体

Dsuite 输入的核心信息不是单个样本之间的关系,而是:

样本 ID → 群体/物种 ID

也就是说,Dsuite 会根据样本分组,把同一群体内多个个体的等位基因信息综合起来,计算群体水平的 ABBA、BABA、BBAA 等模式。

这使得它适用于:

2. 从单个三元组到所有三元组

在指定外群后,Dsuite 可以自动遍历剩余群体之间的所有可能三元组,并计算对应的 D 统计量。

因此,分析逻辑从:

我想检验 P1、P2、P3 这一个组合

变为:

我想在所有群体组合中筛查可能的基因流信号

这正是 Dtrios 模块的核心作用。


四、Dsuite 中主要模块的原理定位

1. Dtrios:全局三元组扫描

Dtrios 是 Dsuite 中最核心的程序。它在给定外群的情况下,对所有可能的三群体组合计算:

从原理上看,Dtrios 做的是 全基因组层面的群体组合筛查

它回答的问题是:

在所有群体三元组中,哪些组合表现出显著的等位基因共享不对称?

2. Dinvestigate:局部窗口验证

Dtrios 给出的是全基因组总体信号。如果某个三元组显著,还需要进一步判断:

Dinvestigate 便用于对指定三元组进行窗口分析,计算局部的:

从原理上看,它把“是否存在基因流”的问题推进到:

基因流信号在基因组上分布在哪里?

3. Fbranch:把 f4-ratio 映射到树分支

当群体数量较多时,单独查看大量三元组或四元组结果会很难解释。Fbranch 的思想是:

把多个相关的 f4-ratio 结果放回系统发育树上,推断哪些分支之间可能发生过基因流。

它需要一棵由外群定根的 Newick 树。结果通常可以理解为一个“分支 × 分支”的矩阵:某个分支与另一个分支之间的数值较高,提示它们之间可能存在基因流关系。

因此,Fbranch 更偏向 结果解释和可视化框架,而不是单个位点或单个三元组的检验。

4. Dquartets:不预设外群的四元组探索

Dquartets 是较实验性的功能。与 Dtrios 不同,它不依赖预先指定外群,而是对所有四群体组合做类似分析。

它适合用于外群选择不明确,或希望从四元组层面探索信号的场景。但由于外群在经典 ABBA-BABA 中承担判断祖先状态的关键作用,因此 Dquartets 的解释需要更谨慎。


五、f4-ratio 在 Dsuite 中的意义

D 统计量主要回答:

是否存在显著的等位基因共享不对称?

而 f4-ratio 更进一步,试图估计:

目标群体中有多少比例的祖先成分可能来自某个来源?

简单说:

统计量 更偏向回答的问题
D 统计量 是否存在基因流信号
f4-ratio 基因流或混合比例大概有多强

不过,f4-ratio 的解释依赖更强的模型假设,例如参考群体和树拓扑是否合理。因此在使用 Dsuite 时,通常应先把 D 统计量作为筛查工具,再结合 f4-ratio、系统树和生物学背景解释混合比例。

相关概念可参考:F4-Ratio与D统计对比-混合比例与基因流检测


六、ABBA clustering:为什么还要看聚集性

D 统计量的一个潜在问题是:ABBA/BABA 不平衡不一定只来自真实基因流。

在较深分化的类群中,以下因素也可能制造类似信号:

Dsuite 官方说明中特别强调了 ABBA clustering 的思想:

如果 ABBA 信号来自真实 introgression,那么相关位点往往不是完全随机散布,而可能在基因组上形成一定聚集;如果只是由同形性或替代率差异造成,则更可能呈现零散分布。

因此,ABBA clustering 不是简单地再算一个 D 值,而是在检验:

支持基因流的位点是否具有基因组空间上的聚集特征?

这有助于区分:


七、输入数据在原理上的角色

1. VCF:提供位点层面的等位基因模式

Dsuite 以 VCF 为核心输入。VCF 中每个 SNP 位点提供不同样本的基因型信息,Dsuite 根据这些信息判断群体之间的等位基因共享模式。

需要注意的是,Dsuite 主要使用 双等位 SNP。多等位位点、indel 等复杂变异通常不作为 D 统计量的直接计数对象。

2. SETS 文件:定义“谁属于哪个群体”

SETS 文件的核心作用是建立:

sample → population/species

这个映射决定了 Dsuite 如何把个体基因型聚合成群体等位基因频率或群体模式计数。

对于 Dtrios,外群通常被标记为:

Outgroup

外群的作用不是普通分组,而是用于推断祖先等位基因方向。因此外群选择会直接影响 D 统计量解释。

3. 系统树:帮助解释分支层面的基因流

对于 Fbranch,Newick 树不是简单的装饰信息,而是把 f4-ratio 结果投射到分支上的坐标系统。

如果树拓扑错误,或者外群定根不合理,Fbranch 的分支解释也会偏离真实历史。


八、结果应如何从原理上解读

1. D 值不是“混合比例”

D 值反映的是 ABBA 与 BABA 的相对不平衡,而不是 introgression 比例。D 值越大,并不一定表示混合比例越高,因为它还受以下因素影响:

2. Z-score 用于判断显著性

Dsuite 通常通过 block jackknife 等思想估计 D 统计量的不确定性,再得到 Z-score。

常见理解是:

|Z| 越大,ABBA-BABA 不平衡越不容易由随机误差解释

但显著性并不自动等于生物学上真实的 introgression。还需要结合:

3. f4-ratio 是模型依赖更强的量化指标

f4-ratio 可以帮助估计混合比例,但其解释比 D 统计量更依赖参考群体是否合适。若参考源群体不是实际祖先的良好代表,估计结果可能偏移。


九、适用场景与局限性

适用场景

Dsuite 适合用于:

局限性

使用 Dsuite 时需要注意:


十、可以怎样理解 Dsuite 的整体工作流

从原理层面看,Dsuite 的分析逻辑可以概括为:

graph TD
    A[VCF SNP 数据] --> B[SETS 文件定义群体]
    B --> C[Dtrios 全基因组三元组扫描]
    C --> D[识别显著 D 统计量]
    D --> E[Dinvestigate 做局部窗口分析]
    D --> F[Fbranch 映射到系统树分支]
    E --> G[判断信号是否局部聚集]
    F --> H[解释可能发生基因流的分支]

其中:


十一、与其他 introgression 方法的关系

Dsuite 属于基于 等位基因共享不对称性 的方法。它与 f3、f4、TreeMix、qpGraph 等方法关注的问题有重叠,但切入点不同。

方法 核心用途
f3 统计 检测目标群体是否为两个源群体混合
D 统计量 检测三群体与外群框架下的基因流不对称
f4-ratio 在特定模型下估计混合比例
Fbranch 把 f4-ratio 结果解释到系统树分支上
TreeMix / qpGraph 构建带迁移边的群体历史模型

相关笔记:


十二、小结

Dsuite 的核心不是“运行一个命令得到一个 D 值”,而是把 ABBA-BABA 思想工程化为一套适合多群体基因组数据的分析框架。

它的关键思想包括:

  1. 用外群确定祖先等位基因;
  2. 比较 ABBA 与 BABA 的不对称性;
  3. 用 D 统计量筛查基因流信号;
  4. 用 Z-score 判断统计显著性;
  5. 用 f4-ratio 辅助估计混合强度;
  6. 用窗口分析和 ABBA clustering 区分真实 introgression 与潜在假信号;
  7. 用 Fbranch 将大量结果组织到系统树分支上。

因此,理解 Dsuite 的重点是理解:

它如何把位点层面的等位基因共享模式,转化为群体历史中基因流和杂交渗入的统计证据。

参考