一份体细胞变异表里出现了二十四个额外碱基。复核时有三个朴素的问题值得逐个回答。多出来的序列是什么,它接在参考的哪个碱基之后,正常样本在同一位置到底有没有足够的观测?SvABA 除了最终的变异表,还能留下局部组装序列重新比回参考的结果。把这两份文件与两份样本的支持数字对齐,就可以从一条候选记录回到实验本身。下面用一个事先埋好插入的例子走完全程。SvABA 项目与输出说明
给实验放一个知道答案的位点
我们固定随机种子,生成一条两万碱基的参考序列,在第一万位之后加入一段二十四碱基的序列,形成另一条单倍型。正常样本的所有片段都从原参考抽样。肿瘤样本的一半片段从原参考抽样,另一半从带插入的模板抽样,两种来源交替取样。两份文库各四千二百对读段,每端一百一十个碱基,片段长度围绕三百一十五个碱基波动。两个样本的抽样相互独立,哪条读段来自哪个片段,都能通过名字追踪。这样设计的好处是,即使最后什么都没有报出,也知道应该回到哪个位置找证据。
两份数据先各自用 BWA 比回同一条未插入的参考,再排序建索引。随后用 SvABA 1.2.0 分别以局部组装和仅检测异常配对两种模式运行。两轮使用同一对肿瘤、正常输入,同一段目标区间和同一参考。如果换模式时同时换了正常对照,候选的消失就有多种解释。这里把变量控制为分析模式,也特意保留两轮的未过滤结果,以便区分没有生成候选和生成之后被过滤这两件事。本次使用的 SvABA 版本
第一条证据是插入两侧的锚点
组装模式在经过过滤的体细胞小插入缺失文件里恰好报出一条,在对应的未过滤文件里也有一条。按染色体、位置、参考和替代序列逐项核对,两条完全相同。其余六份变异表中没有数据行。若把所有输出文件合并后按记录数报两个变异,同一事件就被重复统计。SvABA 将小插入缺失与结构变异分开输出,又区分体细胞和生殖系,并保留过滤前的候选。盘点时记下每个输入文件的口径,比在合并后猜一条记录属于哪一批可靠得多。
这条记录的参考只有一个 G,替代序列的开头也有一个 G。第一个字符是共享锚点,将它留在原位,再取替代序列右边多出来的部分,正好得到事先设计的二十四个碱基。把整条替代序列长度当作插入长度,会多算一个。接着取记录给出的组装序列名称,在组装比对文件里找到同名条目。它从参考的第 9905 位开始,先走九十六个匹配操作,再插入二十四个碱基,最后又走一百个匹配操作。因此插入前最后一个参考位置为一万,和变异表独立对上。
| 复核入口 | 本例的输出 | 能确认的事情 |
|---|---|---|
| 体细胞小变异 VCF | POS=10000,REF=G,SPAN=24 |
位置采用插入前的参考锚点 |
| 局部组装序列 | 96M24I100M,MAPQ=60 |
插入左右都有组装序列比回参考 |
| 肿瘤样本 | GT=0/1, AD=24, DP=39, SR=24, CR=5 |
有替代支持,字段要分别解释 |
| 匹配正常样本 | GT=0/0, AD=0, DP=48, SR=0, CR=0 |
分母可见,本次未见替代支持 |

为何支持数不能合并成二十九条
这一版输出头把等位深度定义为替代等位的单个支持数。很多人平常看到同名字段,习惯拆成参考和替代两个数。若照搬这个假设,这里会把一个标量错当作残缺列表,甚至把它填成参考深度。先打开文件头,再按当前行的样本字段顺序解码。拿到多人队列时也应按样本名取列。在这次输出里正常列排在肿瘤列前,肉眼照着命令行中参数出现的先后顺序解释,会把病例与对照读反。
局部的肿瘤替代支持为二十四,总深度三十九,简单相除约为百分之六十二。设计时两种模板贡献的片段各占一半,局部的有限抽样和支持读段的筛选都会影响观察值。正常样本属同一位置的深度为四十八,替代支持为零,这比只写正常基因型更能说明本次观察到了什么。把肿瘤的两项证据计数相加也有同样的陷阱。不同字段记录不同类别的支持,输出没有据此保证两个集合互斥。若确实要报独立片段数,应回到读名、配对关系与比对,明确同一片段在两类证据都出现时如何处理。
实跑经验|没有候选时先查它消失在哪一步
svaba run -t TUMOR.bam -n NORMAL.bam -G ref.fa -a demo -p 1 -k chrToy:200-19600
svaba run -t TUMOR.bam -n NORMAL.bam -G ref.fa -a pairs -p 1 -k chrToy:200-19600 --discordant-only
grep -v '^#' demo.svaba.somatic.indel.vcf
samtools view demo.contigs.bam | cut -f1-6
仅看异常配对的那一轮,八份变异表全部为空,连未过滤的小变异文件也没有这个位置。因此这次差异发生在候选生成阶段。二十四碱基插入可以被跨过接头的读段直接覆盖,片段长度本身又有分布,插入并不保证给配对距离带来明显异常。把一个没有进入候选列表的事件反复调低最终过滤门槛,无法找回这一轮从未构建的那条组装序列。这里用的是单一、无重复背景下的人工插入,不足以估计两种模式在复杂人类基因组上的检出率。
回到真实数据时,可以先导出候选两侧的一小段参考,复查插入的全部序列和两侧可唯一定位的长度。再看同一位置有没有第二个近似的比对落点,或者一侧只有极短的锚定。遇到串联重复时,不同软件可能把等价插入放在相邻坐标,此时直接求坐标交集会漏掉同一事件。重新拼出两边的替代单倍型并比较序列,比只看一行是否标记通过更能回答两份结果到底是否一致。保留局部组装序列和样本字段头,往往能让日后的复审少走好几步。
当这样的肿瘤与匹配正常样本积累成队列,需要同时保存原始比对与局部组装证据时,可以使用云生信的生物信息分析服务器开展批量复核。
