用长读段验证泛基因组图时,一条读段可能给出好几行图比对。若每行映射质量都很高、编辑距离都是零,能否据此认为这条读段从头到尾都被图解释了?我们从一张有两条分支的图里提取同一批模拟读段,随后只从目标图中移去其中一条分支,再用 GraphAligner 比对。一个最显眼的变化是,比对表反而多了一行。按查询读段的坐标把它们拼回去,才看到两条高质量记录中间完整缺失了六百个碱基。GraphAligner 官方项目
一行图比对同时包含几套信息
GAF 的前几列记录查询名称、查询全长和本条比对覆盖的查询起止位置。再往后才是目标路径,其中的节点编号与方向描述这段查询在图上的走法。随后还有比对长度、匹配数量与映射质量。表中每一行评价的是该行选出的局部对应。质量高可以说明这段侧翼在给定图中定位明确,却不会替没有出现在这行中的查询碱基提供证据。想知道一条读段是否完整穿过某个气泡,必须读取查询坐标,而不能只用映射质量筛选。GAF 字段与坐标定义
这里的“穿过”可以直接定义为一条比对路径包含两个共享的边界节点,并且在它们之间有正确的内部节点。若读段只覆盖共享左翼,即使它与左翼序列全长相同,也没有区分两条分支的碱基。一条实验记录至少要分别说明,多少分子到达左边界,多少到达右边界,多少能用同一条连续比对明确连接两侧。三种计数可以完全不同,恰好相遇在同一个局部区域也不能合并成一条独立跨越证据。
实跑经验|同一条读段,两张目标图
我们安装 GraphAligner 1.0.20,固定随机种子生成共享的两侧节点,其中左翼长两千二百碱基、右翼长两千三百。中间分别放两条随机的六百碱基序列作为二号、三号分支。构造两条三千五百碱基的长读段,各由左侧末端一千四百五十碱基、相应内部节点和右侧起始一千四百五十碱基顺次组成。第三条读段只取共享左翼,专门代表无法区分分支的对照。三条读段都保持原样,软件采用同一个适用于变异图的预设和一个线程。
| 查询及目标图 | 返回路径 | 查询区间 | 编辑距离和 MAPQ |
|---|---|---|---|
| 含三号分支的读段,对完整图 | 1→3→4 | [0,3499) | 0,60 |
| 同一读段,对删除三号分支的图 | 1 和 4 各自一行 | [0,1450) 和 [2050,3499) | 两行都是 0,60 |
| 含二号分支的读段,对两张图 | 均为 1→2→4 | 均为 [0,3499) | 都是 0,60 |
| 共享左翼的读段,对两张图 | 均只走节点 1 | 均为 [0,1498) | 都是 0,60 |
对缺分支的图,两个查询区间的并集长度是一千四百五十加上一千四百四十九,共两千八百九十九碱基。完整图那一行覆盖三千四百九十九。两次都把末端一个碱基留在比对之外,二者相减正好是六百,也正好是输入图中删去的那段。每个侧翼都能没有错配地找到对应,所以两行的编辑距离同时为零完全符合预期。把局部比对行数当成有效读段数,却会得到这份缺分支的图支持反而更多的错误解读。

为了弄清是图变化还是输入读段发生变化,可以像这个例子一样同时保留两条性质不同的对照。一条确实穿过仍然保留的二号支路,帮助发现运行参数或文件格式一并改变的问题。另一条只在共享侧翼上,提醒分析者即使两张图的输出完全相同,它也没有给任何内部等位增加支持。真实项目中可以从已知位点或合成序列挑选相同类型的读段,并在复跑前核对原始读段文件校验值。
若后续要比较两种图的改进比例,以同一组原始查询名为分母。把从分段变为连续、从连续退回分段、两版都连续、两版都未判定分开统计。这样才看得出改进来自对已有读段的解释能力,还是来自纳入更多原本跳过的读段。
如何把结果按一条分子重新计算
先按查询名收集属于同一条原始读段的记录,将查询坐标由小到大排序后合并重叠区间,合并长度除以该条读段全长,得到被这些记录解释的碱基比例。再分别标出最大的内部空档与未比对的两端,这两类缺口所代表的问题不同。长读段末端可受接头或质量影响,图中一条内部支路缺失则常表现为两段可靠匹配之间有连续空档。出现重复序列时,多条互斥解释也可能覆盖同一段查询,不能只因区间并集很大就宣布走法唯一。
GraphAligner -g both.gfa -f reads.fa -a both.gaf -x vg -t 1
GraphAligner -g omit3.gfa -f reads.fa -a omit3.gaf -x vg -t 1
awk -F '\t' '$1=="via3"{print $1,$2,$3,$4,$6,$10,$11,$12}' omit3.gaf
还有一个常见细节,映射质量、匹配比例和编辑距离涉及不同维度。读段某段落到两个几乎相同的重复拷贝,碱基匹配可以非常好,定位却无法唯一。相反,本例两侧是直接从已知节点剪出的随机序列,能各自清楚定位,但无法跨过缺少的中段。在报告中分别列总读段数、连续跨越两侧的分子数、局部匹配质量和未解释碱基数,比用一个平均质量掩盖所有差异更容易发现图模型缺哪一类序列。GraphAligner 方法论文
真实样本出现相同空档时,图缺少一个等位只是一种待查解释。先抽取读段中未匹配的序列,看是否被多个独立分子支持、是否有一致的两侧位置,再检查同一批数据中有没有低质量区、接头或嵌合分子。若只有一条噪声很大的读段,贸然为它新增分支可能会把测序错误固化到图中。这里的输入由我们亲手生成,所缺六百碱基有明确真值,因此适合用来验证统计脚本,不能当作真实材料的检出率测定。
需要在不同版本的群体图上重放同一批长读段时,可在云生信的生物信息分析服务器保留图版本、原始读段和相应 GAF,按分子逐一核对。
