断点与基因组重排
断点是基因组重排中的核心概念,用于度量两个基因组间的结构差异。通过消除断点,可以设计近似算法求解基因组排序问题。
- 断点是相邻基因对在一个基因组中连续但在另一个中不连续的位置
- 排序 by 反转等价于消除所有断点
- 基于断点的贪心算法具有 4-近似保证
- strip(连续段)结构指导反转选择策略
断点(Breakpoint) 是基因组重排分析中的关键概念,用于识别两个基因组间的结构差异点。通过分析断点,可以:
- 度量基因组间的距离
- 设计排序算法将 one 基因组转换为 another
- 推断进化历史
要解决什么生物信息学问题
Section titled “要解决什么生物信息学问题”基因组排序问题
Section titled “基因组排序问题”给定两个基因排列(一个作为参考,一个作为目标),找到最短的反转序列将目标排列转换为参考排列。
示例:
- 参考排列:
- 目标排列:
- 进化分析:比较物种间基因组结构差异
- 癌症基因组:检测体细胞结构变异
- 祖先重建:推断共同祖先的基因顺序
将排列 扩展为:
对于相邻元素对 :
- 邻接(Adjacency):(连续数字)
- 断点(Breakpoint):(不连续)
排列:
| 位置 | 对 | 类型 |
|---|---|---|
| (0,2) | 0-2 | 断点 |
| (2,1) | 2-1 | 邻接 |
| (1,3) | 1-3 | 断点 |
| (3,4) | 3-4 | 邻接 |
| (4,5) | 4-5 | 邻接 |
| (5,8) | 5-8 | 断点 |
| (8,7) | 8-7 | 邻接 |
| (7,6) | 7-6 | 邻接 |
| (6,9) | 6-9 | 断点 |
断点数:
- 单位排列
- 单位排列(0 1 2 ... n n+1) 没有断点,是唯一断点数为 0 的排列。
- 最大断点数
- n 个元素的排列最多有 n+1 个断点(如 0 6 1 3 5 7 2 4 8)。
- 反转的影响
- 一次反转最多消除 2 个断点(在反转的两端各一个)。
Strip(连续段)
Section titled “Strip(连续段)”Strip 是两个连续断点之间的最大无断点区间。
对于 :
0 | 2 1 | 3 4 5 | 8 7 6 | 9Strips:
0(单元素)2 1(递减 strip)3 4 5(递增 strip)8 7 6(递减 strip)9(单元素)
Strip 类型
Section titled “Strip 类型”| 类型 | 定义 | 示例 |
|---|---|---|
| 递增 strip | 元素递增 | 3 4 5 |
| 递减 strip | 元素递减 | 8 7 6 |
| 单元素 strip | 只有一个元素 | 定义为代表性为递减(除 0 和 n+1) |
定理:如果一个排列包含递减 strip,则存在一个反转可以减少断点数。
证明思路:
- 在所有递减 strips 中选择包含最小元素 k 的那个
- 必定位于某个递增 strip 的末端
- 反转 k 与 k-1 之间的区间,将两者合并,减少断点数
基于断点的近似算法
Section titled “基于断点的近似算法”由于每次反转最多消除 2 个断点:
其中 是最少反转次数, 是断点数。
简单贪心算法
Section titled “简单贪心算法”SIMPLEREVERSALSORT(π): while b(π) > 0: 选择消除最多断点的反转 ρ π ← π · ρ 输出 π问题:该算法可能陷入局部最优,性能保证较差。
改进算法(BREAKPOINTREVERSALSORT)
Section titled “改进算法(BREAKPOINTREVERSALSORT)”IMPROVEDBREAKPOINTREVERSALSORT(π): while b(π) > 0: if π 有递减 strip: 选择使 b(π·ρ) 最小的反转 ρ else: 选择反转一个递增 strip(创造递减 strip) π ← π · ρ 输出 π定理:IMPROVEDBREAKPOINTREVERSALSORT 是 4-近似算法。
证明概要:
- 有递减 strip 时,算法必能减少断点数(定理 5.1)
- 无递减 strip 时,反转递增 strip 创造递减 strip,下一步必能减少断点
- 因此每 2 步至少减少 1 个断点
- 总步数 ,最优解
- 近似比
输入:
初始状态:
0 → | 8 ← | 2 ← | 7 6 5 ← | 1 ← | 4 ← | 3 ← | 9 →Strips:0(增), 8 2 7 6 5 1 4 3(减), 9(增) 断点数:
Step 1:反转递减 strip 中最小元素 1 所在位置
- 1 在递减 strip 末端,0 在递增 strip 末端
- 反转区间 [1, 0] 之间:
Step 2:继续消除递减 strip
- …(继续迭代)
最终达到单位排列,总步数与最优解比值不超过 4。
扩展到其他重排操作
Section titled “扩展到其他重排操作”不同操作类型
Section titled “不同操作类型”| 操作 | 断点影响 | 近似比 |
|---|---|---|
| 反转 | 最多消除 2 个 | 4 |
| 转位 | 最多消除 3 个 | 3 |
| 反转+转位 | 更灵活 | 更小 |
多基因组断点分析
Section titled “多基因组断点分析”对于多个基因组的祖先重建问题:
多断点距离问题:给定排列集合 ,找到祖先排列 使 最小。
与煎饼翻转问题的联系
Section titled “与煎饼翻转问题的联系”煎饼翻转问题:给定一叠大小不同的煎饼,每次可以翻转前缀,求最少翻转次数使煎饼按大小排序。
等价性:这是前缀反转排序问题,是基因组重排的特例(只允许前缀反转)。
已知结果:
- William Gates 和 Christos Papadimitriou (1979) 证明:任何排列可在 步内完成
- 该问题至今未完全解决
断点概念由 Sankoff 和 Nadeau 在 1980-90 年代发展,用于比较基因组学。Kececioglu 和 Sankoff (1995) 提出了基于断点的贪心算法。Berman、Hannenhalli 和 Karpinski (2002) 改进了近似比到 1.375。
- 断点是基因组重排分析的核心度量,对应结构差异位置
- 消除断点等价于排序问题,每次反转最多消 2 个断点
- 基于断点的贪心算法具有 4-近似保证
- 递减 strips 指导反转选择,确保算法进展