software

minigraph 实跑|同一段 1400 bp,换一个骨架后,为什么连变异坐标的长度也变了?

作者:发布于 2026-11-15约 6 分钟阅读
同一段序列,两种骨架坐标。额外的 1400 bp 在图里都能找到,逐样本调用却有差异。短骨架,骨架起点和终点均为 45000,零长度支路和 1400 bp 支路各有样本支持。长骨架,骨架上的区间长 1400 bp,两份样本在该气泡的路径栏均为点。复核,分别查看图连接和查询比对,高质量的分段匹配也可能缺少跨气泡路径。

把长短相差一千四百碱基的两个单倍型放进泛基因组图,差异看起来很简单。当短序列作为参考,额外序列是某个位置上的插入。换成长序列作为参考,没有这段序列的样本便跨过一段参考区间。用同一对输入实际建两次图,可以看到坐标、节点来源和样本路径如何一起变化。还有一个值得保留的结果,第二张图正确容纳了两种结构,但这次逐样本回查没有给出穿过气泡的确定路径。minigraph 作者的构图与调用说明

先分清三个不同的坐标

一个图节点有自己的编号、内部序列和长度。rGFA 还为该节点保留一套稳定坐标,包括它来源于哪条序列、在这条序列中的起始偏移,以及在构图中所在的层级。第一份作为骨架的参考对应零层,后面加入的序列可以为图贡献新的片段。样本组装与图重新做比对时,还会出现第三套位置,即样本自身的坐标。同一个数字可能分别是骨架断点、原始序列上的偏移或查询样本的对齐边界,抄写到结果表前应加上对应序列名。rGFA 格式及稳定坐标定义

构图输入也有讲究。作者的增量建图流程把每一份后续文件看作一个个体的组装,试图找出适合加入图的对应区域。把很多个体的组装随意拼在同一个文件里,会改变同一区域出现多少次,进而影响对应判断。做工具试验时最好用独立文件保留每份样本的身份,记录输入顺序和初始骨架。从图中看到第一份以外的样本名,不代表该样本的每个碱基都新建了一个节点,共享部分通常可以沿已有节点行走。

实跑经验|先用短骨架,再把两份输入对调

两条人工序列共享四万五千碱基的左翼和四万七千碱基的右翼。短序列长九万二千碱基,长序列在左右翼之间多出一段固定随机种子生成的一千四百碱基。我们从源码编译 minigraph 0.21。第一次直接用构图预设,短骨架输出只有一个九万二千碱基的节点,没有得到预设差异。查看这个版本的帮助,默认最小比对长度是十万,已经超过这条试验序列。按作者小数据示例把这个值降为一万后,两种输入顺序都构出了带分支的图。这个修正是为了让小对照运行,真实组装应单独评估放宽阈值会带入哪些重复匹配。minigraph 参数手册

检查项 短序列作为骨架 长序列作为骨架
额外 1400 bp 的节点来源 long,起点 45000,层级 1 long,起点 45000,层级 0
气泡在骨架上的区间 short 的 [45000,45000) long 的 [45000,46400)
对两份样本分别运行调用 短样本走长度为 0 的支路,长样本经过 1400 bp 节点 两份样本的路径栏均为一个点

短骨架上的区间起止相同,因为替代路径在两个相邻骨架片段之间多走一段,插入本身不消耗短骨架碱基。把两份输入对调,原来的额外片段成了骨架的一部分。现在短样本可以通过图中的直连边跳过它,长骨架上被跨过去的区间长一千四百。两张图里的那段序列均逐字等于我们预先加进去的碱基,来源名都是长样本,但层级一个为一,一个为零。交换参考后,如果还用旧文件中一段区间的长度去筛新表,就会把同一份结构差异拆成两套统计口径。

同一段序列,两种骨架坐标。额外的 1400 bp 在图里都能找到,逐样本调用却有差异。短骨架,骨架起点和终点均为 45000,零长度支路和 1400 bp 支路各有样本支持。长骨架,骨架上的区间长 1400 bp,两份样本在该气泡的路径栏均为点。复核,分别查看图连接和查询比对,高质量的分段匹配也可能缺少跨气泡路径。
额外的 1400 bp 在图里都能找到,逐样本调用却有差异。

人手能做一个很快的核对。把短骨架两侧节点首尾相接,应恢复原来的短序列,再把额外节点按边的方向插在中间,应恢复长序列。换成长骨架时,一条链的三段首尾相接可以还原长序列,沿跳过中段的那条边则还原短序列。这个检查只回答图中能否拼出两种序列,接下来样本如何被分配到路径上,还要另读逐样本分型输出。

星号和点承担不同的信息

短骨架的两条样本结果都有完整的路径栏。短样本的路径以星号表示气泡内部没有额外节点,紧邻的长度字段明确为零。长样本对应的是额外节点的名字和长度一千四百。长骨架结果却是两行各只有一个点,没有带出样本的内部路径和长度。打开普通图比对后,短查询分成两段,长查询分成三段,各段的映射质量都是六十,但都没有以一条记录连接气泡两侧。局部能高质量比到某个片段,与能够跨过两侧锚点确定走了哪条等位路径,是两个可以分别检查的条件。

这里不必根据真值替程序补写答案。我们知道长样本包含那段序列,是因为手里有它的完整 FASTA。若交付的是这个版本的调用表,就应把没有路径的两行保留为未判定,另列通过序列直接核实的结果。在没有人工真值的材料中,这种区别更重要。把点当作零长度等位会把查不清的样本算进缺失组,后续估计携带比例或与表型做比较都会受影响。要解决歧义,可以查看查询端的分段范围、气泡两侧的图连接和更长的序列锚点,再决定能否作出补充分型。

minigraph -cxggs -l10k -t2 short.fa long.fa > short-first.gfa
minigraph -cxggs -l10k -t2 long.fa short.fa > long-first.gfa
minigraph -cxasm -l10k --call short-first.gfa long.fa > long.calls.bed
minigraph -cxasm -l10k long-first.gfa long.fa > long.alignments.gaf

真实项目比较两次构图时,先取同一条样本序列分别走两张图,记录稳定坐标、穿越方向、两个边界和内部序列。用两侧锚定序列和内部序列身份来匹配差异,再统计坐标表达、样本判定以及缺失率是否变化。小图的节点名字可以直接查看,换一个构图顺序后它们往往会重新编号。保存初始骨架、后续文件顺序和构图参数,下游才有机会重现同一张图,再检查某个气泡的生物学解释。

下载本篇实验脚本与结果(12 篇合集 ZIP),解压后打开 082-minigraph 目录。

多套组装需要在不同骨架上交叉验证时,可以在云生信的生物信息分析服务器保留原始组装、两版图和各自的回查文件。

把知识用于当前任务

下一步可以直接开始分析

按研究目标查找在线工具、课程、计算资源或完整分析服务。

按目标找方案仍有疑问,联系客服 ↗