本页面已设置访问密码,请输入密码查看全文:
结构变异(Structural Variant, SV)通常指基因组上长度大于50 bp的序列改变,主要包括缺失(Deletion)、插入(Insertion)、重复(Duplication)、倒位(Inversion)和易位(Translocation)。
工具虽然不少,但其实归纳起来,基于NGS数据的变异检测算法并不多。总的来说主要有以下4种不同的策略和方法,分别是:
- Read Pair Mapping,简称RP或者PEM;
- Split Read,简称SR;
- Read Depth,简称RD,也有人将其称为RC——Read Count的意思,它与Read Depth是同一回事,顾名思义都是利用read覆盖情况来检测变异的方法;
- 序列从头组装(de novo Assembly, 简称AS)的方法。
单个样本的 SV 分析拆分为了 5 个独立的步骤(提取 discordants、排序、提取 splitters、排序、运行 lumpy)和 1 个独立的统计步骤(SV_stat)
参考:https://zhuanlan.zhihu.com/p/40290546
基于 LUMPY 算法。在评估SV假说时,LUMPY采用概率模型,通过搜寻两种相互独立的诊断性证据来计算结构变异存在的后验概率:
-
异常双端比对(Discordant Read Pairs):基于测序文库的插入片段长度(Insert size)先验分布。如果一对双端测序(PE)Reads比对到参考基因组上的物理距离显著偏离预期,或比对方向异常(例如预期为FR,实际为FF或RR),则作为两点之间存在结构变异的诊断性证据。该信号能确定变异类型和大致范围,但断点定位精度较低。
-
分裂比对(Split Reads):当一条测序Read恰好跨越变异断点时,BWA算法会将其切断,前半部分和后半部分分别比对到参考基因组的不同位置,产生补充比对(在BAM文件中标记为SA标签)。该信号提供单碱基级别的变异断点(Breakpoint)确凿证据。
流程解构与指令分析
整个工作流严格遵循“提取特征证据 $\rightarrow$ 联合概率推断 $\rightarrow$ 结果统计”的客观逻辑。以下是对提供脚本的逐步解析:
第一步:提取异常双端比对证据 (Discordants)
-
指令:
samtools view -b -F 1294 [input.bam] > [discordants.unsorted.bam] -
解析: 核心在于SAM Flag参数
-F 1294。数字 1294 是以下状态参数的按位或总和:1024(PCR或光学重复)+ 256(非主要比对)+ 8(配对Read未比对上)+ 4(当前Read未比对上)+ 2(处于正常配对状态)。-F表示排除这些Reads。过滤后,留下的就是双端均已比对但处于异常配对状态的Discordant Reads。随后通过samtools sort进行坐标排序。
第二步:提取分裂比对证据 (Splitters)
-
指令:
samtools view -h [input.bam] | extractSplitReads_BwaMem -i stdin | samtools view -Sb - > [splitters.unsorted.bam] -
解析: 直接读取完整BAM文件,利用LUMPY自带的解析脚本提取携带补充比对信息的Split Reads。随后同样执行
samtools sort按坐标排序。
第三步:多证据联合计算 (SV Calling)
-
指令:
lumpyexpress -B [input.bam] -S [splitters.bam] -D [discordants.bam] -o [output.sv.vcf] -
解析:
lumpyexpress是LUMPY的自动化执行封装。它同时接收三个维度的输入数据:全量BAM(提供测序深度信息等背景先验)、提取的Splitters BAM和Discordants BAM。算法整合这些独立证据的概率分布,输出标准VCF格式的SV结果集。
第四步:变异结果统计
-
指令:
SV_stat.pl [sample_name] [input.sv.vcf] [output.sv.stat] -
解析: 这是一个定制化的Perl脚本,其目的是解析VCF文本,对最终诊断出的各类SV(如DEL, DUP, INV等)的数量和长度分布进行分类统计归档。
针对你当前的240个样本项目,是否需要我将这套SV提取与推断逻辑整合为适配当前绝对路径和Singularity环境的自动化任务生成脚本(.sh)?