Skip to main content

5. Linearized subgraph example

Node0: ACT;Node1: CGCG; Node2: GTCA; Node3: CT;Node4: AGTG Node0连Node1, Node1连Node2,Node2连Node4;Node 2连Node3;Node3连Node4 请以此图给出BitAlign 的输入是线性化且拓扑排序后的参考子图。拓扑排序确保:

如果存在一条有向边(包括 hop)从节点 i 指向节点 j,那么在线性化序列中,j 一定排在 i 的后面。


一种合法的拓扑排序是:

Node0 → Node1 → Node2 → Node3 → Node4

按这个顺序把每个原始节点展开成单字符节点,得到 BitAlign 的输入——线性化且拓扑排序后的参考子图如下。表中每个字符节点后面列出它的后继节点(出边),所有边的索引都满足“从低索引指向高索引”。

索引字符所属原始节点后继(索引:字符)
0ANode01: C
1CNode02: T
2TNode03: C (Node0→Node1)
3CNode14: G
4GNode15: C
5CNode16: G
6GNode17: G (Node1→Node2)
7GNode28: T
8TNode29: C
9CNode210: A
10ANode211: C (Node2→Node3)
13: A (Node2→Node4,hop 边)
11CNode312: T
12TNode313: A (Node3→Node4)
13ANode414: G
14GNode415: T
15TNode416: G
16GNode4无

关键点说明:

  • 拓扑顺序为 Node0, Node1, Node2, Node3, Node4,因此所有原始边都满足“起点索引 < 终点索引”。
  • Node2→Node4 是一条 hop 边:在展开序列中,它从索引 10 的 A 直接指向索引 13 的 A,中间跨过了 Node3 的索引 11 和 12。
  • 索引 10 的 A 有两个后继:一个是 Node2→Node3 的普通边指向 11,另一个是 Node2→Node4 的 hop 边指向 13。
  • 索引 13 的 A 有两个前驱:来自 Node2 的 hop 边(10→13)和来自 Node3 的普通边(12→13)。
  • BitAlign 会从索引 16 逆序遍历到 0。处理索引 10 时,它的所有后继(11 和 13)都已经处理完毕,因此可以正确合并普通路径和 hop 路径的匹配状态。