基因组距离计算与排序反转序列研究
1. 基因组距离计算算法
在基因组研究中,计算基因组之间的距离是一个重要的问题。这里我们主要关注计算重复基因组(D)和 RD 基因组(G)之间距离的算法。
1.1 算法复杂度分析
对于寻找以 CB(D, G) 中给定顶点为起点的大小为 k 的循环,由于每个顶点与两条黑色边相邻,该操作可以在 O(2k) 时间内完成。因此,该算法的最坏运行时间复杂度为 Σn
k=1n.2k,虽然理论上不比 O(n.2n) 的穷举方法好,但在实际实验中,由于边移除步骤(第 7 行),它能快速减少图的规模,并在少量迭代后停止,实际运行速度更快。
1.2 多染色体基因组情况
当 G 和 D 是多染色体基因组时,我们定义收缩断点图 CB(D, G),它包含一个额外的顶点 O。D 中的任何端点顶点通过两条灰色边连接到 O,G 中的任何端点顶点通过一条黑色边连接到 O。除了 O 与 2NG 条黑色边和 2ND 条灰色边相邻(NG 是 G 的染色体数量,ND 是 D 的染色体数量),其他每个顶点都与两条灰色边和两条黑色边相邻。
在这种情况下,若将 Complete - Graph(G,D) 算法的第 3 行替换为 “If CB(D, G) is acyclic”,该算法可用于多染色体基因组。算法输出的是一个无环的部分完成图,剩余的路径连接的是 G 的两个端点或 D 的两个端点。要完成图 B(G),只需添加 CB(D, G) 的剩余路径。由于与 O 相关的 2(NG + ND) 条边,最坏时间复杂度是环形基因组的复杂度乘以 NG.ND,即 O(n.NG.ND.2n)。不过在实际中,由于探索在较小的循环大小
超级会员免费看
订阅专栏 解锁全文
18

被折叠的 条评论
为什么被折叠?



