3. 常用变异检测工具介绍:GATK、FreeBayes、VarScan
做跨实验室变异检出可比性排查,工具选型是第一道坎。你想想看,A 实验室用 GATK,B 实验室用 FreeBayes,同一个样本出来的 VCF 可能截然不同。这不一定是工具本身不对,而是它们的算法逻辑、过滤策略、甚至默认参数都有巨大差异。
我个人习惯把这三大工具比作「性格迥异的三个分析师」。有人严谨保守,有人广撒网,有人专攻特定场景。下面我一个一个拆开来讲。
3.1 GATK:业界金标准,但别迷信
GATK 的核心逻辑是「利用群体信息校正单个样本」。它通过 HaplotypeCaller 进行局部 de novo 组装,再用贝叶斯模型计算基因型可能性。说白了,它不是简单比对,而是先把目标区域重新组一遍,再找差异。
我在项目中遇到过不少团队,把 GATK 默认参数当万能钥匙用,结果在肿瘤样本上跑了很久,也没达到预期。为什么呢?GATK 本是为种系变异(Germline)设计的,肿瘤体细胞需要用 Mutect2。
典型用法如下:
# GATK4 单样本 Germline 流程(简化版)
gatk HaplotypeCaller \
-R reference.fasta \
-I sample.bam \
-O sample.g.vcf \
-ERC GVCF
gatk GenotypeGVCFs \
-R reference.fasta \
-V sample.g.vcf \
-O sample.vcf
3.2 FreeBayes:开放走量,适合探索性分析
FreeBayes 和 GATK 最大的不同在于——它无需严格的 paired-end 统计假设。我记得第一次用它处理多倍体数据,感觉像打开了新世界:它默认支持 1~N 倍体的池化样本,不需要你事先声明倍体数。
FreeBayes 的候选位点通常比 GATK 多很多,说白了就是灵敏度高,但假阳性也需要花精力过滤。我在做跨实验室基准比较时发现,FreeBayes 对低深度区域的检出率明显高于 GATK,但一致性过滤后的保留率反而低。
实际调用命令直接:
freebayes \
-f reference.fasta \
-C 2 \
-p 1 \
sample.bam > sample.vcf
参数 -C 2 表示至少 2 条支持该变异的 reads,-p 1 指定二倍体。多倍体设置 -p 4,四倍体样本就能直接出结果。
3.3 VarScan:肿瘤-正常配对场景的最优解
VarScan 是专门为肿瘤体细胞变异检测开发的工具。它的套路是先做 pileup,再用基于频数的启发式方法判断是否为真实变异。
我曾经被一个问题困扰好久:为什么一个变异在 GATK Mutect2 里检出,VarScan 却漏了?后来发现是因为 VarScan 对肿瘤纯度要求高,低于 10% 低丰度的体细胞突变很难过它的过滤阈值。
具体用法:
samtools mpileup \
-B -f reference.fasta \
tumor.bam normal.bam > pileup.txt
java -jar VarScan.jar somatic \
pileup.txt \
output \
--min-coverage 8 \
--min-var-freq 0.05 \
--p-value 0.99
--min-var-freq 0.05 就是等位基因频率下限。测序深度低的话,建议放宽到 0.03 或 0.04,否则灵敏度惨不忍睹。
3.4 三款工具横向对比:我一般用这张表做参考
| 对比维度 | GATK | FreeBayes | VarScan |
|---|---|---|---|
| 算法核心 | 局部组装 + 贝叶斯 | 多倍体贝叶斯 | 频数启发式 + 频数检验 |
| 默认倍体支持 | 二倍体 | 1~N 倍体 | 二倍体 |
| 种系变异 | 最佳 | 好 | 不支持 |
| 体细胞变异 | Mutect2 分支 | 一般 | 最佳 |
| 低深度灵敏度 | 低 | 中 | 高 |
| 假阳性率 | 低(经过严格硬过滤) | 中 | 中高 |
| 跨实验室可比性 | 高(标准流程成熟) | 中(参数影响大) | 低(纯依赖阈值) |
3.5 工具选型建议:一句话总结
如果你正在搭建跨实验室质量控制管道,我个人建议这样做:
- 主流程用 GATK 做种系变异,它标准流程最成熟,跨实验室可比性最高。
- 探索性分析或低深度测序补充验证,可以加 FreeBayes,适合找新位点。
- 肿瘤-正常对比样本,用 VarScan 做快速初筛,再用 GATK Mutect2 做二次验证。
好了,总结成一张图,方便你回顾每个工具的定位和适用场景: