BioF3 组学数据分析

05 变异过滤与质量评估

导出日期:2026年6月27日

05 变异过滤与质量评估

原始 VCF 里有大量假阳性。过滤策略决定了最终结果的可靠性。

VQSR vs 硬过滤

方法 适用 原理
VQSR 样本量 > 30、WGS 用已知变异集训练机器学习模型
硬过滤 样本量少、WES、Panel 手动设阈值(QD、FS、MQ 等)

硬过滤典型参数

# SNP 过滤
gatk VariantFiltration -R ref.fa -V raw.vcf.gz \
  --filter-expression "QD < 2.0" --filter-name "LowQD" \
  --filter-expression "FS > 60.0" --filter-name "HighFS" \
  --filter-expression "MQ < 40.0" --filter-name "LowMQ" \
  --filter-expression "MQRankSum < -12.5" --filter-name "LowMQRS" \
  --filter-expression "ReadPosRankSum < -8.0" --filter-name "LowRPRS" \
  -O filtered_snps.vcf.gz

# Indel 过滤
gatk VariantFiltration -R ref.fa -V raw.vcf.gz \
  --filter-expression "QD < 2.0" --filter-name "LowQD" \
  --filter-expression "FS > 200.0" --filter-name "HighFS" \
  --filter-expression "ReadPosRankSum < -20.0" --filter-name "LowRPRS" \
  -O filtered_indels.vcf.gz

质量评估指标

一份 VCF 的诊断 checklist

拿到一份新 VCF 时,按这个顺序快速判断质量:

  1. 总变异数:WGS ~4-5M,WES ~50-100k,Panel <1000。数量异常意味着流水线有问题
  2. Ti/Tv:上面已说,偏离正常意味着假阳性
  3. dbSNP 重叠率:> 95% 健康,< 90% 有问题
  4. Het/Hom:偏离 1.5-2.0 可能样本污染或近交
  5. Singleton 比例:单次出现的变异比例。WGS 应 < 5%,过高说明假阳性
  6. 覆盖度均匀性:变异 DP 分布的 CV 应该 < 0.5

这 6 个 5 分钟能查完,比单纯看 padj 信息量大得多。

常见坑

坑 1:VQSR 对小样本量直接套

VQSR 需要 30+ 样本才能学出可靠模型。< 30 样本必须用硬过滤,硬上 VQSR 结果不可信。

坑 2:硬过滤参数照搬 GATK 推荐值

GATK 推荐值是 WGS 的经验值,对 WES、Panel、低深度数据不一定合适。先看自己数据 QD / FS / MQ 的分布,再选阈值。

坑 3:过滤了 PASS 之外的所有

GATK Best Practices 把过滤标记写进 FILTER 列(PASS 或具体过滤名),不是删除bcftools view -f PASS 才能拿到只有 PASS 的子集。直接读完整 VCF 后忘了筛 FILTER 列是常见错误。

坑 4:用 GQ 阈值过滤 INDEL

GQ(genotype quality)对 SNP 比较合理,INDEL 的 GQ 经常很低(call indel 本身难),用 GQ ≥ 20 会丢一半真 INDEL。INDEL 用 QD + FS 过滤更合适。

坑 5:trio 项目不查 Mendelian error

有父母和子代的 trio 数据,子代不符合孟德尔遗传的位点几乎都是假阳性vcftools --mendel 可以查这个错误率,超过 1% 说明数据质量有问题。

下一步

接着深入

横向延伸

参考资源