变异检测基础:SNP、Indel、CNV 等概念
做跨实验室变异检出可比性排查,第一个绕不开的问题就是:我们到底在检什么?说白了,你得先搞清楚 SNP、Indel、CNV 这些概念,才能跟别人对齐标准。
这一章我就带你把这些基础概念捋一遍。不是照搬教科书,而是从实际项目里总结出来的理解方式。
1. 什么是遗传变异
遗传变异,就是个体之间基因组序列的差异。跟参考基因组一比,有差别的地方就是变异。这个差别可大可小,小到一个碱基,大到几百万个碱基的片段重排。
我个人习惯按规模把变异分成两类:
- 小规模变异:通常 < 50 bp,包括 SNP、Indel、MNV
- 大规模变异:通常 ≥ 50 bp,包括 CNV、SV、STR 等
这个划分不是绝对的,但做检测时,不同规模的变异用的方法和工具完全不一样。你想想看,检 SNP 的流程拿去检 CNV,结果肯定一塌糊涂。
2. SNP——单碱基的"错字"
SNP,全称单核苷酸多态性,就是基因组上单个碱基的替换。比如参考基因组是 A,某个样本变成了 G。就这么简单。
SNP 有几个特点:
- 二态性:绝大部分 SNP 只有两个等位基因
- 密度高:人类基因组大约每 1000 bp 就有一个 SNP
- 检测成熟:GATK HaplotypeCaller、FreeBayes、bcftools 都能做
我在跨实验室项目中遇到过一个问题:同一个样本,A 实验室检出 4.5 万个 SNP,B 实验室只有 3.8 万个。后来一查,主要是低深度区域(< 10×)的一致性差。所以如果你发现两个实验室的 SNP 数量对不上,先看深度分布。
3. Indel——小片段的出入
Indel 是插入(Insertion)和缺失(Deletion)的合称,指基因组中小片段的插入或缺失,通常定义在 1–50 bp 之间。
Indel 比 SNP 麻烦得多。为什么?因为比对阶段就容易出错。一个 3 bp 的缺失,不同比对软件可能把它放在不同的位置上,这就导致后续的检出结果不一致。
检测 Indel 时,我建议重点关注以下几个点:
- ReadPosRankSum:看 Indel 在 reads 上的位置分布是否均匀
- BaseQRankSum:看 Indel 周围的碱基质量是否正常
- 左右对齐标准化:用 bcftools norm 统一表示
4. CNV——拷贝数的增减
CNV(拷贝数变异)是指基因组中一段区域的拷贝数发生变化,可能是缺失(拷贝数减少)或重复(拷贝数增加)。跟 SNP 和 Indel 不同,CNV 影响的范围大得多,从几百 bp 到几 Mb 都有可能。
我个人觉得,CNV 是跨实验室可比性中最头疼的一块。为什么?因为检测方法差异太大了——有的用 read depth,有的用 paired-end 信号,有的用 split reads。同一个样本,不同方法给出的 CNV 边界可能完全不同。
CNV 检测的常用工具:
- CNVnator:基于 read depth 的滑动窗口法
- Delly:基于 paired-end 和 split reads
- Manta:综合多种信号
- GATK gCNV:基于概率模型的深度分析
做跨实验室 CNV 对比时,我建议先统一两个东西:一是参考基因组版本,二是 CNV 的判定阈值(比如拷贝数 < 1.5 才算缺失)。否则数据根本对不上。
5. 其他变异类型
除了 SNP、Indel、CNV,还有几种变异你也得知道:
- MNV(多核苷酸多态性):连续多个碱基同时替换,可以看作特殊的 Indel 或复合 SNP
- SV(结构变异):包括倒位、易位、复杂重排等,通常 ≥ 50 bp,检测难度大
- STR(短串联重复):重复单元 1–6 bp 的串联重复,在法医学和遗传病中很重要
这些变异在跨实验室排查中出场频率没那么高,但一旦涉及,往往是疑难杂症。比如 STR 的扩增偏差会导致实验室间检出长度不一致。
6. 变异类型分类体系
下面这张图我把常见变异类型按规模做了梳理,方便你快速对照。
7. 核心参数对比
不同变异类型的关键指标差异很大。我习惯用一个表格来快速对照,尤其在跨实验室数据比对时,这张表能帮你定位问题出在哪个环节。
| 变异类型 | 规模 | 检测信号 | 代表工具 | 跨实验室常见问题 |
|---|---|---|---|---|
| SNP | 1 bp | 碱基替换 | GATK HC, FreeBayes | 低深度区域检出不一致 |
| Indel | 1–50 bp | 插入/缺失 | GATK HC, Platypus | 左右对齐方式不统一 |
| CNV | ≥ 50 bp | read depth, 信号强度 | CNVnator, Delly, Manta | 边界判定和阈值不统一 |
| SV | ≥ 50 bp | paired-end, split reads | Delly, Manta, GRIDSS | 断点精度差异大 |
| STR | 重复单元 1–6 bp | 重复计数 | ExpansionHunter, GangSTR | 扩增偏差导致长度差异 |
8. 从概念到检测
搞清楚了变异类型,下一步才是检测。但这里有一个关键点我必须强调:
检测流程的选择,取决于你关注的变异类型。 检 SNP 的流程不能直接拿来检 CNV,检 Indel 的工具也不一定适合检 STR。
一个典型的变异检测流程大致包括:
- 原始数据质控(FastQC + 过滤)
- 比对到参考基因组(BWA-MEM / Minimap2)
- 比对后处理(排序、去重、碱基质量校正)
- 变异检出(根据目标变异类型选择工具)
- 变异过滤与质量控制(硬过滤 + VQSR)
- 注释与格式标准化(VCF 统一表示)
举个 VCF 的例子,看看 SNP 和 Indel 在文件里长什么样:
#CHROM POS ID REF ALT QUAL FILTER INFO
chr1 123456 rs123 A G 1000 PASS DP=100;AF=0.5
chr1 789012 . AT A 800 PASS DP=80;AF=0.3
第一行是 SNP(A→G),第二行是 Indel(AT→A,缺失一个 T)。注意看,Indel 的 REF 和 ALT 长度不一样,这就是它比对容易出错的原因。