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 | 参考基因组FASTA | hg38.fasta |
--callRegions | 限定分析区域BED文件 | targets.bed.gz(需bgzip+tabix索引) |
--indelCandidates | Manta提供的候选Indel VCF | candidateSmallIndels.vcf.gz |
--runDir | 输出目录 | strelka_output/ |
-m local | 本地运行模式 | local、sge、lsf |
-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提升精度(推荐) |