755. 体细胞变异检测Strelka2/Mutect2
一句话概述:从肿瘤-正常配对样本中找出只在肿瘤中出现的突变(体细胞变异)——就像比较两份文件,找出"肿瘤文件独有的错误"。
核心知识点速查表
| 概念 | 白话解释 | 关键工具 |
|---|
| 体细胞变异 | 只在肿瘤中存在的突变 | Mutect2, Strelka2 |
| 种系变异 | 从父母遗传来的变异 | HaplotypeCaller |
| VAF | 变异等位基因频率(该位点变异reads比例) | 重要指标 |
| Panel of Normals | 正常样本变异的数据库 | 降低假阳性 |
| 肿瘤纯度 | 肿瘤样本中肿瘤细胞的比例 | 影响检测灵敏度 |
一、Mutect2(GATK)
# ===== Mutect2体细胞变异检测 =====
# 运行Mutect2
gatk Mutect2 \
-R ${REF} \
-I tumor.bam \ # 肿瘤样本BAM
-I normal.bam \ # 正常样本BAM
-normal normal_sample_name \ # 正常样本在RG中的SM标签
--germline-resource af-only-gnomad.vcf.gz \ # gnomAD种系变异资源
--panel-of-normals pon.vcf.gz \ # Panel of Normals
-O ${SAMPLE}.mutect2.vcf.gz # 输出VCF
# 过滤
gatk FilterMutectCalls \
-R ${REF} \
-V ${SAMPLE}.mutect2.vcf.gz \ # 输入原始VCF
--contamination-table contamination.table \ # 污染估计(可选)
-O ${SAMPLE}.mutect2.filtered.vcf.gz # 输出过滤后VCF
二、Strelka2
# ===== Strelka2体细胞变异检测 =====
# Strelka2通常与Manta配合使用
# 先运行Manta获取候选indel
configManta.py --normalBam normal.bam --tumorBam tumor.bam \
--referenceFasta ${REF} --runDir manta_out/
manta_out/runWorkflow.py -j 8
# 运行Strelka2
configStrelka.py \
--normalBam normal.bam \
--tumorBam tumor.bam \
--referenceFasta ${REF} \
--indelCandidates manta_out/results/variants/candidateSmallIndels.vcf.gz \
--runDir strelka_out/
strelka_out/runWorkflow.py -m local -j 8
# 结果
# strelka_out/results/variants/
# ├── somatic.snvs.vcf.gz # 体细胞SNV
# └── somatic.indels.vcf.gz # 体细胞Indel
三、Mutect2 vs Strelka2
| 特性 | Mutect2 | Strelka2 |
|---|
| 灵敏度 | 更高(低VAF) | 中等 |
| 特异性 | 中等 | 更高(假阳性少) |
| 速度 | 慢 | 快(4-5倍) |
| 最佳实践 | 常与Strelka2取交集 | 常与Manta配合 |
四、常见报错与解决
| 报错信息 | 原因 | 解决方案 |
|---|
Mutect2: normal not found | normal样本名不匹配 | 检查-normal参数与BAM的SM标签 |
Too few PASS variants | 过滤太严格 | 检查FilterMutectCalls参数 |
Strelka2: indel candidates error | Manta结果路径错误 | 检查candidateSmallIndels.vcf.gz路径 |
Low tumor purity | 肿瘤纯度低 | 检测灵敏度降低是正常的 |
五、速查表
# Mutect2
gatk Mutect2 -R ref.fa -I tumor.bam -I normal.bam -normal NORMAL -O out.vcf.gz
gatk FilterMutectCalls -R ref.fa -V out.vcf.gz -O filtered.vcf.gz
# Strelka2 (配合Manta)
configStrelka.py --normalBam N.bam --tumorBam T.bam --referenceFasta ref.fa --runDir out/
out/runWorkflow.py -m local -j 8
# 最佳实践: 取Mutect2和Strelka2的交集提高可靠性