跳转至

Strelka2 — 快速准确的胚系与体细胞小变异检测工具


一句话说明

Strelka2(v2.9.10)是 Illumina 出品的变异检测工具——能同时做胚系变异(正常人群)和体细胞变异(肿瘤vs正常配对),速度快、假阳性低,是临床和科研中肿瘤变异检测的主流工具之一。


安装与配置

# 方法1:conda安装(推荐)
conda create -n strelka2 python=3.6   # Strelka2依赖Python 3.6
conda activate strelka2
conda install -c bioconda strelka     # 安装最新版Strelka2(v2.9.10)

# 验证安装
configureStrelkaGermlineWorkflow.py --help   # 胚系流程配置脚本
configureStrelkaSomaticWorkflow.py --help    # 体细胞流程配置脚本

# 方法2:下载预编译二进制包(无需root,推荐服务器环境)
wget https://github.com/Illumina/strelka/releases/download/v2.9.10/strelka-2.9.10.centos6_x86_64.tar.bz2
tar xjf strelka-2.9.10.centos6_x86_64.tar.bz2
cd strelka-2.9.10.centos6_x86_64/bin
./configureStrelkaGermlineWorkflow.py --help  # 验证

# 方法3:结合Manta使用(推荐,获得更好的Indel检测)
conda install -c bioconda manta strelka  # 同时安装Manta和Strelka2

核心用法

模式一:胚系变异检测(单样本或多样本)

# 第一步:配置流程
configureStrelkaGermlineWorkflow.py \
    --bam sample.bam \             # 输入BAM(可多个--bam追加)
    --referenceFasta reference.fasta \  # 参考基因组
    --runDir strelka_germline      # 输出目录

# 第二步:运行流程
strelka_germline/runWorkflow.py \
    -m local \                     # 本地运行(也支持SGE/LSF等集群)
    -j 16                          # 使用16个线程

模式二:体细胞变异检测(肿瘤-正常配对)

# 第一步:先运行Manta获取候选Indel(提升Strelka2 Indel精度)
configManta.py \
    --normalBam normal.bam \
    --tumorBam tumor.bam \
    --referenceFasta reference.fasta \
    --runDir manta_output
manta_output/runWorkflow.py -m local -j 16

# 第二步:配置Strelka2体细胞流程(使用Manta候选Indel)
configureStrelkaSomaticWorkflow.py \
    --normalBam normal.bam \           # 正常样本BAM
    --tumorBam tumor.bam \             # 肿瘤样本BAM
    --referenceFasta reference.fasta \
    --indelCandidates manta_output/results/variants/candidateSmallIndels.vcf.gz \  # Manta的候选Indel
    --runDir strelka_somatic           # 输出目录

# 第三步:运行体细胞变异检测
strelka_somatic/runWorkflow.py -m local -j 16

参数详解

配置脚本参数说明示例值
--bam输入BAM文件(胚系模式支持多个)sample.bam
--normalBam正常样本BAM(体细胞模式)normal.bam
--tumorBam肿瘤样本BAM(体细胞模式)tumor.bam
--referenceFasta参考基因组FASTAhg38.fasta
--callRegions限定分析区域BED文件targets.bed.gz(需bgzip+tabix索引)
--indelCandidatesManta提供的候选Indel VCFcandidateSmallIndels.vcf.gz
--runDir输出目录strelka_output/
-m local本地运行模式localsgelsf
-j线程数16

实战案例

# 完整体细胞变异检测流程(hg38,WGS)

REF="hg38.fasta"
NORMAL="normal_sample.bam"
TUMOR="tumor_sample.bam"

# 1. Manta结构变异检测(为Strelka2提供Indel候选)
configManta.py \
    --normalBam $NORMAL \
    --tumorBam $TUMOR \
    --referenceFasta $REF \
    --runDir manta_sv_out
manta_sv_out/runWorkflow.py -m local -j 20

MANTA_INDELS="manta_sv_out/results/variants/candidateSmallIndels.vcf.gz"

# 2. Strelka2体细胞变异检测
configureStrelkaSomaticWorkflow.py \
    --normalBam $NORMAL \
    --tumorBam $TUMOR \
    --referenceFasta $REF \
    --indelCandidates $MANTA_INDELS \
    --runDir strelka_somatic_out

strelka_somatic_out/runWorkflow.py -m local -j 20

# 3. 查看输出结果
ls strelka_somatic_out/results/variants/
# somatic.snvs.vcf.gz   - 体细胞SNV
# somatic.indels.vcf.gz - 体细胞Indel

# 4. 过滤:仅保留通过QC的变异(FILTER=PASS)
bcftools view -f PASS strelka_somatic_out/results/variants/somatic.snvs.vcf.gz \
    -o somatic_snvs_pass.vcf.gz -O z

# 统计通过的变异数
bcftools stats somatic_snvs_pass.vcf.gz | grep "number of SNPs"

常见报错与解决

报错1:ERROR: Failed to open BAM file - 原因:BAM文件未建索引或路径错误 - 解决:samtools index sample.bam;确认BAM文件是否排序samtools view -H sample.bam | grep SO

报错2:callRegions file must be bgzip-compressed and tabix-indexed - 原因:--callRegions参数的BED文件未压缩索引 - 解决:bgzip targets.bed && tabix -p bed targets.bed.gz

报错3:胚系检测变异数量异常少 - 原因:测序深度不足(建议WGS≥30x),或BAM重复未标记 - 解决:检查深度samtools depth sample.bam | awk '{s+=$3}END{print s/NR}';确认是否有标记重复


速查表

命令用途
configureStrelkaGermlineWorkflow.py配置胚系检测
configureStrelkaSomaticWorkflow.py配置体细胞检测(需normal+tumor BAM)
runWorkflow.py -m local -j N本地运行N线程
somatic.snvs.vcf.gz体细胞SNV结果
somatic.indels.vcf.gz体细胞Indel结果
genome.vcf.gz胚系GVCF结果
variants.vcf.gz胚系变异VCF结果
--indelCandidates传入Manta的候选Indel提升精度(推荐)