3. 深度对变异检测的影响

测序深度,说白了就是每个位点被测了多少遍。我以前刚入行的时候,觉得深度越高越好,恨不得让机器跑满。后来发现,这事儿没那么简单。深度太低,假阴性多;深度太高,又可能引入假阳性。今天咱们就聊聊这个平衡点怎么找。

3.1 深度与检测灵敏度的关系

深度直接影响你能不能看到一个变异的“底气”。举个例子,一个低频突变,比如肿瘤样本里只有5%的突变频率,如果你只测了10×深度,平均下来可能只有一个读段带着这个突变。你想,靠这一个读段去判断,谁敢信?

我见过不少项目,一开始为了省钱,深度压到30×。结果是,检测到的位点少得可怜,很多低频突变直接“失踪”。后来我们算了一笔账,补测的花费比一开始就测到100×还高。

深度范围 可检测的突变频率下限 我对这个深度的建议
10× ~ 30× ≥ 10% 适合胚系突变,肿瘤低频慎用
50× ~ 100× ≥ 2% ~ 5% 肿瘤配对样本的常见选择
200× ~ 500× ≥ 0.5% ~ 1% ctDNA或微小残留病灶的首选
1000× 以上 ≥ 0.1% 单细胞或罕见突变检测

3.2 深度与检测特异性的博弈

你可能会想,深度越高,看到的信息越多,那特异性肯定也越高吧?其实不然。深度一上去,测序误差也跟着被放大了。PCR重复、链偏好、碱基置换这些噪声,都会在低频率区间“伪装”成真正的突变。

我个人习惯在处理超高深度数据时,把过滤阈值调得格外谨慎。比如,对一个1000×的样本,如果某个位点只出现了一条支持变异的读段,那我会直接把这条读段当作误差处理,而不是马上兴奋地标记它。

核心原则:深度越高,对低频信号的可靠性要求就越严格。

3.3 常见问题与避坑指南

我在实际项目中总结了几个坑,今天列出来给你参考。

  • 问题一:极高深度下的测序误差
    深度超过500×时,测序酶本身的错误率(约0.1%~1%)会被放大。你会看到很多频率在0.1%~1%之间的“变异”,其实都是噪声。
  • 问题二:PCR重复导致的虚假变异
    如果是通过扩增建库,同样的DNA片段会被复制多次。深度看起来很高,但实际来源只有少数几个分子。这叫分子复杂度不足。
  • 问题三:覆盖不均
    GC含量高的区域往往深度偏低。如果你只看平均深度,可能会忽略这些“暗区”里的真实变异。
我曾经在处理一个全外显子数据时踩过坑:平均深度看起来有150×,感觉不错。结果一查,GC-rich的基因区域深度只有10×,好几个关键突变就这么错过了。后来我养成了习惯——只看深度分布,不看均值。

3.4 如何用深度信息过滤假阳性

下面是我个人常用的一个过滤方法。说白了,就是根据深度动态调整阈值。

我一般会按照深度把全基因组分成几个区间,给每个区间设定一个最低的变异支持读数。

# GATK 的 VariantFiltration 示例
java -jar GenomeAnalysisTK.jar \
  -T VariantFiltration \
  -R reference.fa \
  -V input.vcf \
  --filterExpression "DP < 10" \
  --filterName "LowDepth" \
  --filterExpression "DP > 200 && QD < 2.0" \
  --filterName "HighDepthLowQual" \
  -o output.vcf

你看,这个命令同时处理了两种情况:深度太低(<10×)的位点直接过滤掉;深度过高(>200×)但质量不行的位点也要小心。

3.5 深度、嵌合体与样本纯度

肿瘤样本里,正常细胞和肿瘤细胞混在一起,这叫样本纯度。纯度越低,突变频率就越低。比如,一个纯度为20%的肿瘤样本,即便这个突变是纯合突变,测到的突变频率也只会在10%左右。

我记得有一次处理一个纯化肿瘤样本,纯度只有15%。当时同事说这数据做不了,我没死心,把深度提到了300×,愣是把突变频率在2%~5%之间的信号捞了出来。嗯,这里要注意,这种操作对文库复杂度要求很高。

如果你发现某个样本的预测纯度低于30%,我建议你直接奔着200×以上的深度去。不然,你压根儿看不到那些低频信号。
测序深度对变异检测的影响概览 测序深度对变异检测的影响——核心逻辑 测序深度 低深度(10-30×) 中深度(50-200×) 高深度(200×+) 问题:灵敏度低 应对:避免低频检测 问题:均衡但需检查覆盖 应对:关注GC区深度分布 问题:噪声放大 应对:动态阈值+严格过滤 高质量变异检测结果 高灵敏度 ∩ 高特异性 深度不是越高越好,平衡才关键

3.6 实战经验总结

最后给你几个我踩出来的经验,直接拿去用。

  • 不是深度越高越好,而是有效深度越高越好。有效深度指扣除重复和低质量读段后的剩余深度。
  • 我习惯在分析前跑一遍 samtools depth 看看整个染色体的深度分布。哪里出问题,一眼就能看到。
  • 对于单核苷酸变异(SNV)和插入缺失(Indel),对深度的要求差别很大。Indel在低深度区域几乎没法准确检测。
  • 如果预算有限,优先保证样本的有效深度不低于30×,再想办法提高目标区域的覆盖均匀度。
# 快速查看深度分布的技巧
samtools depth -a sample.bam | awk '{print $3}' | sort -n | uniq -c | head -20

# 结果示例(输出各深度对应的位点数)
   1250 10
   980  15
   620  20
   450  30
   ...

你看这个输出,如果大部分位点深度集中在10~20×,而你又要检测低频突变,那这数据基本没法用。遇到这种情况,我建议你直接和实验的同事沟通,看能不能补测。