跳转至

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

特性Mutect2Strelka2
灵敏度更高(低VAF)中等
特异性中等更高(假阳性少)
速度快(4-5倍)
最佳实践常与Strelka2取交集常与Manta配合

四、常见报错与解决

报错信息原因解决方案
Mutect2: normal not foundnormal样本名不匹配检查-normal参数与BAM的SM标签
Too few PASS variants过滤太严格检查FilterMutectCalls参数
Strelka2: indel candidates errorManta结果路径错误检查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的交集提高可靠性