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 的输入——线性化且拓扑排序后的参考子图如下。表中每个字符节点后面列出它的后继节点(出边),所有边的索引都满足“从低索引指向高索引”。
| 索引 | 字符 | 所属原始节点 | 后继(索引:字符) |
|---|---|---|---|
| 0 | A | Node0 | 1: C |
| 1 | C | Node0 | 2: T |
| 2 | T | Node0 | 3: C (Node0→Node1) |
| 3 | C | Node1 | 4: G |
| 4 | G | Node1 | 5: C |
| 5 | C | Node1 | 6: G |
| 6 | G | Node1 | 7: G (Node1→Node2) |
| 7 | G | Node2 | 8: T |
| 8 | T | Node2 | 9: C |
| 9 | C | Node2 | 10: A |
| 10 | A | Node2 | 11: C (Node2→Node3) 13: A (Node2→Node4,hop 边) |
| 11 | C | Node3 | 12: T |
| 12 | T | Node3 | 13: A (Node3→Node4) |
| 13 | A | Node4 | 14: G |
| 14 | G | Node4 | 15: T |
| 15 | T | Node4 | 16: G |
| 16 | G | Node4 | 无 |
关键点说明:
- 拓扑顺序为 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 路径的匹配状态。