跳转至

肿瘤体细胞突变检测流程


一句话说明

体细胞突变是肿瘤细胞后天获得的、不遗传给后代的突变,检测它们需要用肿瘤样本和配对正常样本对比,把肿瘤独有的突变从遗传背景中"挑"出来。


核心知识点

1. 体细胞突变 vs 胚系突变

  • 胚系突变(germline):从父母遗传来的,全身每个细胞都有(白话:出生自带的)
  • 体细胞突变(somatic):后天在某些细胞中发生的,只在肿瘤组织中存在(白话:肿瘤自己攒的)
  • 检测关键:必须用 Tumor-Normal 配对分析,排除掉胚系变异

2. 标准分析流程

FASTQ → 质控 → 比对(BWA-MEM2) → 去重(MarkDuplicates)
    → BQSR(可选) → 突变检测(Mutect2) → 过滤 → 注释

3. 关键工具

步骤工具说明
比对BWA-MEM2快速比对到参考基因组
去重GATK MarkDuplicates标记PCR重复
突变检测Mutect2 (GATK)配对检测体细胞突变
过滤FilterMutectCalls过滤假阳性
注释Funcotator / VEP功能注释

4. 影响检测灵敏度的因素

  • 肿瘤纯度:纯度越低,突变信号越弱(白话:肿瘤细胞太少,突变被正常细胞的信号淹没)
  • 测序深度:WES 通常 100-200x,panel 需要 500-1000x
  • 变异等位基因频率(VAF):VAF 越低越难检测,通常 >5% VAF 才可靠

实战代码

# === GATK Mutect2 体细胞突变检测完整流程 ===

# 0. 变量定义
REF="hg38.fa"                          # 参考基因组
TUMOR_BAM="tumor_sorted_dedup.bam"     # 肿瘤样本BAM
NORMAL_BAM="normal_sorted_dedup.bam"   # 配对正常样本BAM
PON="pon.vcf.gz"                       # Panel of Normals
GNOMAD="af-only-gnomad.hg38.vcf.gz"   # gnomAD人群频率

# 1. Mutect2 检测体细胞突变
gatk Mutect2 \
  -R $REF \                            # 参考基因组
  -I $TUMOR_BAM \                      # 肿瘤BAM
  -I $NORMAL_BAM \                     # 正常BAM
  -normal normal_sample_name \         # 正常样本名称
  --germline-resource $GNOMAD \        # 人群频率过滤胚系变异
  --panel-of-normals $PON \            # 正常人panel减少噪音
  --f1r2-tar-gz f1r2.tar.gz \         # 方向偏差数据
  -O raw_somatic.vcf.gz               # 原始结果

# 2. 学习方向偏差模型(去除FFPE伪影)
gatk LearnReadOrientationModel \
  -I f1r2.tar.gz \                     # 方向偏差数据
  -O orientation_model.tar.gz          # 输出模型

# 3. 计算样本污染
gatk GetPileupSummaries \
  -I $TUMOR_BAM \                      # 肿瘤BAM
  -V $GNOMAD \                         # 人群频率
  -L $GNOMAD \                         # 限制区域
  -O tumor_pileup.table                # 输出pileup

gatk CalculateContamination \
  -I tumor_pileup.table \              # 肿瘤pileup
  -O contamination.table \             # 污染估计
  --tumor-segmentation segments.table  # 肿瘤分段

# 4. 过滤假阳性
gatk FilterMutectCalls \
  -R $REF \                            # 参考基因组
  -V raw_somatic.vcf.gz \             # 原始VCF
  --contamination-table contamination.table \  # 污染信息
  --tumor-segmentation segments.table \        # 分段信息
  --ob-priors orientation_model.tar.gz \       # 方向偏差模型
  -O filtered_somatic.vcf.gz          # 过滤后结果

# 5. 提取 PASS 的突变
bcftools view -f "PASS" \              # 只保留PASS
  filtered_somatic.vcf.gz \            # 输入
  -o final_somatic.vcf.gz             # 最终结果

# 6. 功能注释(VEP)
vep --input_file final_somatic.vcf.gz \  # 输入VCF
  --output_file annotated.vcf \          # 输出注释VCF
  --cache \                              # 使用本地缓存
  --assembly GRCh38 \                    # 基因组版本
  --pick \                               # 每个变异只选一个转录本
  --vcf                                  # VCF输出格式

面试常问点

★ 为什么体细胞突变检测需要配对正常样本?

参考答案:因为每个人都有大量的胚系变异(约 400-500 万个 SNP),如果只看肿瘤样本,无法区分哪些是遗传来的、哪些是肿瘤后天获得的。配对正常样本提供了个体的遗传背景,体细胞突变 = 肿瘤中有但正常组织中没有的变异。没有配对样本时可以用 tumor-only 模式,但假阳性率会高很多。

★ Panel of Normals (PoN) 是什么?

参考答案:PoN 是用一组正常样本(通常 40 个以上)调用出来的变异合集。它不是用来找真正的变异,而是收集技术噪音——比如测序平台特有的系统性错误、比对工具在特定区域的假阳性。在 Mutect2 中使用 PoN 可以显著减少这类技术伪影造成的假阳性。

★ FFPE 样本为什么需要特殊处理?

参考答案:FFPE(福尔马林固定石蜡包埋)是临床样本最常见的保存方式,但甲醛固定会导致 DNA 脱氨基(C→U→T),产生大量 C>T / G>A 假突变。Mutect2 通过 LearnReadOrientationModel 学习方向偏差模型来识别这类伪影——真正的突变在正向和反向读段中应该均匀出现,而 FFPE 伪影通常只出现在一个方向。


速查卡片

问题答案
核心工具GATK Mutect2
配对分析Tumor vs Normal(必须)
WES 推荐深度Tumor 100-200x, Normal 50-80x
Panel 推荐深度500-1000x
PoN 作用去除技术噪音假阳性
gnomAD 作用过滤常见胚系变异
FFPE 伪影C>T 方向偏差
VAF变异等位基因频率
注释工具VEP / Funcotator
其他检测工具Strelka2, VarScan2, MuSE