754. 结构变异SV检测DELLY/Manta
一句话概述:检测基因组中的大片段变异(>50bp的缺失、重复、倒位、易位)——SNV是"错别字",SV是"整段文字被删除、复制、颠倒或移动"。
核心知识点速查表
| SV类型 | 白话解释 | 检测信号 |
|---|
| 缺失(DEL) | 一段DNA丢了 | reads间距异常大 |
| 重复(DUP) | 一段DNA多了一份 | reads间距异常小+方向异常 |
| 倒位(INV) | 一段DNA翻转了 | reads方向异常(同向) |
| 易位(BND) | DNA从一条染色体跳到另一条 | reads比对到不同染色体 |
| 插入(INS) | 外来序列插入 | reads中出现未比对片段 |
一、检测原理
四种SV检测信号:
1. 读对距离异常(RP): insert size太大→缺失; 太小→重复
2. 分裂读(SR): 一条read比对到两个位置→断点
3. 覆盖度变化(RD): 覆盖度升高→重复; 降低→缺失
4. 从头组装(AS): 组装出含SV的contig
DELLY: 使用RP+SR
Manta: 使用RP+SR+AS(更全面)
二、DELLY分析
# 安装DELLY
conda install -c bioconda delly # 安装
# 运行SV检测
delly call \
-g ${REF} \ # 参考基因组
-o ${SAMPLE}.delly.bcf \ # 输出BCF格式
${SAMPLE}.recal.bam # 输入校准后的BAM
# 转换为VCF
bcftools view ${SAMPLE}.delly.bcf > ${SAMPLE}.delly.vcf # BCF转VCF
# 过滤
delly filter \
-t DEL \ # 只看缺失
-o ${SAMPLE}.delly.filtered.bcf \
${SAMPLE}.delly.bcf
# 体细胞SV检测(肿瘤-正常配对)
delly call \
-g ${REF} \
-o somatic.bcf \
tumor.bam normal.bam # 同时输入肿瘤和正常BAM
delly filter \
-t DEL \
-f somatic \ # 体细胞模式
-o somatic.filtered.bcf \
-s samples.tsv \ # 样本信息(tumor/normal标签)
somatic.bcf
三、Manta分析
# 安装Manta
conda install -c bioconda manta
# 配置Manta
configManta.py \
--normalBam normal.bam \ # 正常样本BAM(如有)
--tumorBam tumor.bam \ # 肿瘤样本BAM
--referenceFasta ${REF} \ # 参考基因组
--runDir manta_output/ # 输出目录
# 运行
manta_output/runWorkflow.py -j 8 # 使用8个线程运行
# 结果文件
# manta_output/results/variants/
# ├── candidateSV.vcf.gz # 候选SV
# ├── candidateSmallIndels.vcf.gz # 候选小indel
# ├── diploidSV.vcf.gz # 种系SV(如果有正常样本)
# └── somaticSV.vcf.gz # 体细胞SV
四、常见报错与解决
| 报错信息 | 原因 | 解决方案 |
|---|
DELLY: no split reads | BAM未包含SA标签 | 确保用BWA-MEM比对 |
Manta: max depth exceeded | 覆盖度太高的区域 | 使用--exome参数 |
Too many SVs | 过滤不足 | 增加最小质量分和最小支持reads数 |
Missing pairs | BAM未排序 | samtools sort排序 |
五、速查表
# DELLY
delly call -g ref.fa -o out.bcf sample.bam
delly filter -t DEL -o filtered.bcf out.bcf
# Manta
configManta.py --tumorBam tumor.bam --referenceFasta ref.fa --runDir out/
out/runWorkflow.py -j 8
# SV类型: DEL缺失 DUP重复 INV倒位 BND易位 INS插入
# DELLY擅长: 低覆盖度大缺失
# Manta擅长: 中高覆盖度全类型SV