4. 分相问题建模

在长读长单倍型分相工程中,真正决定后续算法选型、参数调优和结果评估上限的,往往不是某个具体工具,而是问题建模这一步。分相(phasing)表面上只是“把杂合位点分到两条同源染色体上”,但一旦落到长读长数据上,它同时牵涉图结构、统计推断和组合优化三类视角。本节的任务,是把“分相”从一句自然语言描述,转化为一个输入、约束、输出都明确的数学问题。

一、分相问题的三要素:输入、约束、输出

任何建模都先要回答三个问题:我们手里有什么(输入)、什么规则必须遵守(约束)、最终要交付什么(输出)。在长读长分相中,这三者可以具体化为:

  • 输入:参考基因组坐标、样本的杂合变异位点集合 V={v₁,…,vₙ}、每条长读段比对到参考后覆盖的变异观测(read 在某个位点上支持哪个等位)、读段自身的比对区间与质量值,以及可选的群体或家系信息。
  • 约束:同一条读段只能来自一条同源染色体,因此它覆盖的所有杂合位点必须被分到同一单倍型;两条单倍型在每个杂合位点上必须互补(一个取 REF,另一个取 ALT);物理距离过远、缺乏读段连接的位点之间不能强行建立相位关系。
  • 输出:每个杂合位点的相位归属(0/1 或 hapA/hapB),以及由这些位点串联形成的两条单倍型序列(或相位块 phased block)。

把这三要素写清楚,分相就从“猜”变成了“解”。下面这张图给出了从原始数据到相位输出的整体建模结构,它同时标出了图论、统计和优化三种视角在其中的位置。

输入层 · Input 参考基因组 + 杂合位点 V 坐标 / REF / ALT 长读段比对观测 read → 等位支持 质量值 / 覆盖深度 MAPQ / DP 可选:家系 / 群体 pedigree / panel 建模层 · 三种等价视角 图论视角 位点=节点,读段=边 相位=二染色 / 割 连通分量=相位块 统计推断视角 相位=隐变量 H 读段观测=似然 P(R|H) 目标:最大化后验 组合优化视角 目标函数 + 约束 最小化切换 / 冲突 求解:割 / 匹配 / DP 输出层 · Output 每个位点的相位标签 0/1 或 hapA/hapB 相位块 phased block 连续可定相的区间 两条单倍型序列 hap1 / hap2 FASTA

二、图论建模:把读段变成边

最直观的建模方式是把每个杂合位点看作图中的一个节点。如果某条长读段同时覆盖了位点 vᵢ 和 vⱼ,并且在这两个位点上分别观测到等位 a 和 b,那么这条读段就为“vᵢ 取 a 时 vⱼ 取 b”提供了一条证据。把所有这样的证据累积起来,就得到一个带权无向图:节点是杂合位点,边表示两个位点之间存在读段连接,边的权重反映支持某种相位组合的读段数量。

在这个图上,分相等价于对节点做二染色:每个节点染成 0 或 1,代表它属于哪条单倍型。理想情况下,同一条读段覆盖的所有节点应染成同色,因此问题转化为“让尽可能多的边两端同色”或“让冲突边权重之和最小”。当图不连通时,每个连通分量就是一个独立的相位块,可以分别求解——这正是长读长分相中“相位块”概念的来源。

三、统计推断建模:相位是隐变量

图论视角忽略了测序错误和比对错误。更严谨的做法是把真实相位 H 看作隐变量,把读段观测 R 看作由 H 生成的数据。对每条读段 r,给定它来自单倍型 h 时,观测到其等位序列的概率 P(r|h) 可以由碱基质量值计算;再结合单倍型先验(如均匀先验或群体频率先验),用贝叶斯公式得到后验 P(H|R) ∝ P(R|H)P(H)。分相的目标就是寻找使后验概率最大的 H。

这一视角的价值在于:它天然支持不确定性度量。对于读段覆盖稀疏、证据冲突的位点,后验概率会接近 0.5,提示该位点相位不可靠;而对于被多条高质量读段一致支持的位点,后验接近 1。工程上常用的 phasing 质量值(PQ)或相位置信度,正是从这一建模中导出的。

四、组合优化建模:写出目标函数

无论从图论还是统计出发,最终都要落到一个可计算的目标函数上。一个典型的形式化如下:

给定:
  杂合位点集合 V = {v1, v2, ..., vn}
  读段集合 R = {r1, r2, ..., rm}
  每条读段 r 覆盖的位点及等位观测 O(r)

决策变量:
  x_i ∈ {0, 1}  表示位点 vi 的相位归属

目标:
  maximize  Σ_r  w_r · I( r 覆盖的所有位点相位一致 )
  或等价地
  minimize  Σ_{(i,j) ∈ E} c_ij · I( x_i ≠ x_j )

约束:
  1. 同一位点只能属于一条单倍型(二值约束)
  2. 两条单倍型互补:x_i 与 1-x_i 同时存在
  3. 仅当两节点间存在读段连接时才允许建立相位关系
  4. 相位块内位点必须连续可连接,块间不强制相位

其中 c_ij 是边 (i,j) 上的冲突代价,通常由支持“同相”和“反相”的读段数之差决定。若把 x_i 松弛到实数区间 [0,1],问题就变成连续优化,可用谱方法或半正定规划近似求解;若保持二值,则是一个典型的最小割 / 最大割或相关聚类问题。长读长场景下,由于读段长、连接跨度大,图往往稀疏且局部连通性强,实际求解器多采用连通分量分解 + 局部动态规划或贪心扩展的策略。

五、建模选择如何影响工程结果

三种视角不是互斥的,而是同一问题的不同侧面。图论给出结构,统计给出权重和置信度,组合优化给出求解路径。工程实践中需要根据数据特点做取舍:

  • 当读段长、覆盖深、错误率低时,图论建模加简单二染色即可获得很长的相位块;
  • 当读段错误率较高或覆盖不均时,必须引入统计权重,否则错误边会把本应分开的相位块错误合并;
  • 当样本存在大片段缺失、重复或杂合缺失时,约束条件需要额外加入“位点可定相性”判断,避免强行连接导致整块相位翻转。
建模检查清单:在进入具体工具之前,先确认四件事——(1) 杂合位点集合是否已过滤低质量位点;(2) 读段-位点观测矩阵是否已去除重复和低 MAPQ 读段;(3) 目标函数中的权重是否反映了碱基质量和覆盖深度;(4) 输出是否明确区分“已定相”和“未定相”位点。这四点决定了后续所有分相结果的可解释性。