1.3 Graph Chaining
Graph Chaining 阶段的直接输入是:
Linear Chaining 阶段输出的局部链,以及 pangenome graph 的拓扑结构。
具体来说:
1. 主要输入:Linear Chaining 产生的局部链
Linear Chaining 在同一个图顶点内部把种子连成局部链。
每条局部链通常包含:
- 所属的图顶点 ID;
- 链的起始和结束锚点;
- 在 query 上的起止位置;
- 在顶点内的起止偏移;
- 链的得分;
- 锚点偏移信息;
- 方向等。
论文第 3.1 节提到,每条 linear chain 需要 字节来存储边界位置、分数和锚点偏移。
这些局部链就是 Graph Chaining 要跨顶点连接的基本单元。
2. 辅助输入:Pangenome graph 的拓扑信息
Graph Chaining 需要知道图的结构,才能判断两条局部链能不能跨顶点连起来。
它需要:
- 顶点序列;
- 边和邻接关系;
- 顶点之间的可达性;
- 变异泡的位置和结构。
这些信息通常来自图索引或 Graph Topology Bank。
Graph Chaining 用它们来计算局部链端点之间的最短路径,验证能否通过变异泡。
3. 不直接输入原始种子
原始种子已经在 Linear Chaining 阶段被组织成局部链。
Graph Chaining 不再直接处理成千上万的零散 seed anchors,而是处理压缩后的局部链。
4. 不输入 Filtering 后的结果
Filtering 在 Graph Chaining 之后。
所以 Graph Chaining 的输入是未经过滤的局部链,其中可能包含来自重复区域的假阳性链。
Graph Chaining 先把它们跨顶点连接成候选图路径,然后才由 Filtering 根据频率和空间一致性剔除不可信部分。
5. 输出是什么?
Graph Chaining 的输出是 graph chains,也就是跨顶点的候选路径。
这些图链把多个局部链连接起来,表示 read 可能经过的图路径。
总结
Graph Chaining 的输入是:
- Linear Chaining 输出的局部链,每条链带边界、得分、锚点偏移、所属顶点等信息;
- Pangenome graph 的拓扑结构,包括顶点、边、序列和邻接关系,用于最短路径和可达性判断。
它不直接处理原始种子,也不处理过滤后的链。
流程是:
Seeding → Linear Chaining → Graph Chaining → Filtering → Alignment
Graph Chaining 负责把局部链跨顶点连接成候选图路径,为后续过滤和精细比对做准备。