跳转到内容

结构变异检测

快速概览

结构变异(Structural Variation, SV)通常指基因组中大于 50 bp 的变异。长读长测序通过跨越变异断点,为解析缺失、重复、倒位和易位等复杂重排提供了前所未有的分辨率。

  • 掌握 SV 的主要类型:DEL, INS, DUP, INV, TRA
  • 理解长读长检测 SV 的核心证据:Split-read (分割比对) 与覆盖度波动
  • 了解 SV 与基因组重排(Rearrangements)在进化尺度上的统一性
  • 掌握从比对信号到变异判定的完整算法流程
所属板块 分析方向与案例

把基础对象与算法方法重新放回真实分析任务与工作流。

阅读目标 帮助建立阅读上下文

先判断这页与你当前问题的关系,再决定是否深入展开。

建议前置 先建立相关基础对象与方法直觉

建议先建立相关基础对象与方法直觉,再进入本页。

1. 要解决什么生物信息学问题?

Section titled “1. 要解决什么生物信息学问题?”

结构变异检测要解决的核心问题是:如何从测序数据中准确识别基因组中大于 50 bp 的序列改变?

短读长的局限:如果一个 500 bp500 \text{ bp} 的插入发生在一片重复序列中,150 bp150 \text{ bp} 的短读长完全无法判断插入序列的来源,甚至无法探测到断点的存在。

长读长的优势

  • 直接观测:单条 Read 往往能同时包含变异及其两侧的侧翼序列。
  • 跨越重复:能穿透基因组中的”黑洞”(如转座子、着丝粒),识别隐藏其中的结构变化。

结构变异虽然在数量上少于单核苷酸变异(SNV),但其影响的碱基数远大于 SNV。研究表明:

  • 普通人的基因组中约含有 45 Mb4\text{--}5 \text{ Mb} 的 SV,影响的碱基数是 SNV 和 Indel 的 3—4 倍。
  • SV 是许多遗传疾病(如杜氏肌营养不良、血友病 A)的直接致病变异。
  • SV 在进化过程中扮演着关键角色——人类与黑猩猩基因组之间的差异中,有超过一半是由 SV 贡献的。
  • 比对后的 BAM/CRAM 文件(长读长 Reads 比对到参考基因组)。
  • 参考基因组序列(FASTA 格式)。
  • VCF (Variant Call Format) 文件,包含检测到的所有 SV。
  • 每条 SV 记录包含:染色体位置、变异类型、断点坐标、基因型、质量分数和支持 Read 数。

长读长 SV 检测的数学核心是区间分解问题(Interval Decomposition):给定一组 Read 比对记录,如何将基因组坐标轴分解为一组连续的”一致区间”和”变异区间”。

形式化地,给定参考基因组 RR 和一组比对记录 A={a1,a2,,am}\mathcal{A} = \{a_1, a_2, \ldots, a_m\},我们需要找到一个分区: R=I1V1I2V2IkVkIk+1R = I_1 \cdot V_1 \cdot I_2 \cdot V_2 \cdots I_k \cdot V_k \cdot I_{k+1}

其中每个 IjI_j 是与所有 Reads 一致的区间,每个 VjV_j 是包含变异的区间。目标是最大化一致区间的总长度,同时保持变异区间的数量尽可能少。

长读长结构变异检测证据:split-read 与覆盖度信号示意
长读长检测 SV 的核心信号:Split-read、覆盖度波动与不正常比对方向

长读长 SV Caller(如 Sniffles、cuteSV)通过分析 BAM 文件中的非正常比对信号来工作:

Split-read (分割比对)
单条 Read 的不同部分被比对到了基因组的不连续位置。这是精确定位断点(Breakpoint) 的最强证据。Split-read 可以精确到碱基级别的断点定位。
Large Indels in CIGAR
在比对字符串中直接观察到大的 'I' (插入) 或 'D' (缺失) 操作符。CIGAR 字符串是 SAM/BAM 格式中描述 Read 与参考序列比对关系的标准方式。
Discordant Orientations
Read 内部序列的方向与参考基因组相反,通常暗示了倒位(Inversion)。具体表现为 CIGAR 字符串中 'S' (soft-clip) 后序列被反向互补比对。
  • 覆盖度波动(Read Depth):如果某区域的 Read 覆盖度显著高于或低于基因组平均水平,可能暗示了拷贝数变异(Copy Number Variation, CNV)。缺失区域覆盖度约为正常值的一半(杂合缺失)或为零(纯合缺失),重复区域覆盖度则高于正常值。
类型缩写定义比对信号特征
缺失(Deletion)DEL参考序列中的一段丢失CIGAR 中出现大 D;Split-read 断点两侧距离远
插入(Insertion)INS参考序列中多出一段新序列CIGAR 中出现大 I;Split-read 中有无法比对的序列段
重复(Duplication)DUP一段序列被复制了一份或多份覆盖度升高;Split-read 比对到多个位置
倒位(Inversion)INV一段序列的方向被翻转反向比对;Discordant orientations
易位(Translocation)TRA序列从一个染色体移动到另一个染色体Split-read 比对到不同染色体

除了上述基本类型外,还存在更复杂的 SV 形式:

  • 复杂重排(Complex Rearrangement):多个断点同时发生,形成非简单的插入-缺失模式。例如,染色体碎裂(Chromothripsis) 事件会导致一个染色体区域被”打碎”后以随机顺序重新拼接。
  • 嵌合变异(Nested SV):一个 SV 内部嵌套着另一个 SV。例如,一个大型重复区域内包含多个小缺失。

6. 算法流程:从比对信号到变异判定

Section titled “6. 算法流程:从比对信号到变异判定”

典型的长读长 SV 检测流程包含以下步骤:

  1. Read 比对:将原始 Reads 比对到参考基因组。通常使用 Minimap2--cs--MD 选项,以保留详细的 CIGAR 和标记信息。
  2. 信号提取:扫描 BAM 文件,提取 CIGAR 字符串中的大 Indel 操作符、Soft-clipped 序列的位置和长度,以及覆盖度在滑动窗口中的分布。
  3. 候选 SV 聚类:将来自不同 Reads 的相似信号聚类到同一个候选 SV。例如,多条 Read 在相同位置报告了大 D 操作符,这些信号被聚类为一个候选缺失事件。
  4. 基因型判定(Genotyping):对于每个候选 SV,判定样本在该位点的基因型(0/0 纯合参考、0/1 杂合、1/1 纯合变异)。基因型判定通常基于覆盖度比例和支持 Read 的数量。
  5. 过滤与质量评分:对候选 SV 进行质量评分和过滤,移除低质量的假阳性调用。

7. Worked Example:一个简单缺失的检测

Section titled “7. Worked Example:一个简单缺失的检测”

假设参考基因组在 chr1 的 1000—1500 位置有一段序列 “ABCDEFGH”(500 bp),而样本中这段序列缺失。

参考: ...XXXABCEFGHYYY...
^1000 ^1500

一条长 Read 比对结果:

  • Read 的前半部分比对到 chr1:950—999(即 “XXX” 部分)
  • Read 的后半部分比对到 chr1:1500—1549(即 “YYY” 部分)
  • 中间 500 bp 无法比对

SV Caller 的处理:

  1. 检测到该 Read 存在 Split-read 信号。
  2. 报告候选 DEL:chr1:1000—1500,长度 500 bp。
  3. 如果有其他 Reads 也支持该位置,则确认该变异并评估基因型。

正如在基因组重排中所述,大规模的结构变异本质上是基因组的排列变换

  • 临床意义:在癌症中,易位(Translocation) 产生的融合基因(如 BCR-ABL1)是导致细胞失控生长的关键。
  • 演化直觉:SV 是物种分化的重要驱动力,通过计算不同物种间的 SV 距离,可以推断其进化历史。

从计算的角度看,基因组重排问题(如翻转距离、Breakpoint 距离)和 SV 检测问题有着深刻的联系。基因组重排研究的是”如何通过最少的重排操作将一个基因组转化为另一个”,而 SV 检测则是”如何从测序数据中推断出发生了哪些重排操作”。两者共享同一套数学框架——排列群上的距离度量。

尽管长读长很强大,但在低复杂度区域(如简单的微卫星重复)检测 SV 仍有困难:

  • 算法对策:需要结合单倍型(Haplotype) 信息,利用两个亲本序列的差异来辅助判断变异的真伪。
  • 过滤:利用群体频率数据库(如 gnomAD SV)排除常见的良性多态性。

串联重复(Tandem Repeat) 区域是 SV 检测的”重灾区”。当重复单元的拷贝数发生增减时,由于断点两侧的序列完全相同,算法难以精确定位变异的边界。针对这一问题,专门的串联重复检测工具(如 TRiCICLEExpansionHunter Denovo)采用了与通用 SV Caller 不同的策略:它们不依赖于精确的断点定位,而是通过分析 Read 中重复单元的串联模式来推断拷贝数变化。

长读长数据中存在一些系统性的假信号,可能被误判为 SV:

  • 嵌合 Read (Chimera):两条不相关的 DNA 分子在文库制备过程中被人为连接,产生假性的易位信号。
  • 比对假象:在高相似度的旁系同源区域(Paralogous Region),Read 可能被错误比对,产生假性 SV。

区分真实变异和假信号通常需要结合多个维度的证据:Read 两端的唯一性、覆盖度的一致性、以及(如果有的话)短读长数据或光学图谱(Optical Mapping) 的交叉验证。

  • BAM 扫描:O(NL)O(N \cdot L)NN 为 Read 数量,LL 为平均比对长度。
  • 信号聚类:取决于具体算法,通常为 O(MlogM)O(M \log M)MM 为候选信号数量。
  • 足够的覆盖度:通常需要 1530×15\text{--}30\times 的覆盖度才能可靠检测杂合 SV。
  • 参考基因组质量:参考基因组本身的缺失和错误会导致假阳性 SV 调用。
  • Read 长度:Read 必须长于目标 SV 才能提供 Split-read 证据。
Sniffles
最流行的长读长 SV Caller 之一。通过扫描 BAM 中的 CIGAR 和 Split-read 信号检测 SV,支持 SV 基因型判定和群体水平的 SV 调用(Sniffles2)。
cuteSV
利用 Read-pair、Split-read 和覆盖度三种证据进行 SV 检测。cuteSV 特别注重 SV 断点的精确性,并通过局部重新比对来优化断点坐标。
PBSV
PacBio 官方开发的 SV 检测工具,针对 PacBio HiFi 和 CLR 数据进行了优化。
SVIM
基于图模型的 SV Caller。SVIM 将比对信号构建为图结构,通过寻找图中的异常路径来识别 SV,在处理复杂 SV 时具有优势。