1. 研究背景
- 数据库搜索方法 需要已知的蛋白数据库,但对于未知蛋白质,无法适用。
- de novo 测序方法 直接从 MS/MS 数据推断氨基酸序列,非常重要。
2. 现有方法的问题
- 暴力搜索方法:枚举所有可能的肽序列并与 MS/MS 数据比对,计算量过大,不适用于长肽。
- 谱图图(spectrum graph)方法:将质谱数据转换成图,并寻找最长路径来推断序列,存在问题:
- 缺失片段(某些离子信号丢失,导致路径断裂)。
- 噪声干扰(背景噪声峰影响正确路径的识别)。
- 同质峰重叠(同一峰可能对应多个离子类型)。
3. 解决方案
- 定义
DP(x, y)
为构造出b-ions
质量为x
,y-ions
质量为y
的最优前缀-后缀组合的最大得分。 - 递推公式:
- 计算前缀
A
和后缀A'
的得分 - 通过
chummy pair
机制(前缀和后缀质量的合理匹配)优化搜索空间 - 逐步构建最优的氨基酸序列
- 计算前缀
- 考虑所有可能的离子(b-, y-, a-, x-, c-, z-),提高匹配率。
- 使用“chummy pair”策略,减少冗余计算,加快搜索速度。
- 采用动态规划,逐步构建最优序列,而非暴力搜索所有可能的肽。
提问1: 为什么使用“chummy pair”策略
在 de novo 测序 过程中,需要构造一个 肽序列,使得其碎片离子(b-离子和 y-离子)尽可能多地匹配质谱中的峰。
直接暴力搜索所有前缀/后缀组合,会导致指数级复杂度,无法高效求解。
传统的 谱图图(spectrum graph) 方法,虽然减少了一些搜索,但仍然需要考虑大量可能的路径,计算成本高。
Chummy Pair 通过定义 前缀 A 和后缀 A' 之间的合理关系,确保我们只考虑可能产生最优解的部分匹配,避免冗余计算。
提问2: 如何寻找 “chummy pair”
核心思想:使用动态规划,逐步扩展最优的 Chummy Pair
(1) 初始化
- 设
DP(x, y)
表示:- 质量
x
的前缀A
- 质量
y
的后缀A'
- 形成的 chummy pair (A, A') 的最大得分。
- 质量
- 初始条件:
DP(0, 0) = 0
(空序列)。
(2) 递推公式
-
扩展前缀 A(加入一个氨基酸 a)
- 如果
(A, A')
是 chummy pair,且‖A‖b < ‖A'‖y
,则可以尝试扩展A
: DP(x+‖a‖,y)=DP(x,y)+f(x+‖a‖,x,y)DP(x + ‖a‖, y) = DP(x, y) + f(x + ‖a‖, x, y)DP(x+‖a‖,y)=DP(x,y)+f(x+‖a‖,x,y) - 这里
f(u, v, w)
是新增一个离子后,增加的匹配得分。
- 如果
-
扩展后缀 A'(加入一个氨基酸 a')
- 如果
(A, A')
是 chummy pair,且‖A'‖y \geq ‖A‖b
,则可以尝试扩展A'
: DP(x,y+‖a′‖)=DP(x,y)+f(M−(y+‖a′‖),M−y,M−x)DP(x, y + ‖a'‖) = DP(x, y) + f(M - (y + ‖a'‖), M - y, M - x)DP(x,y+‖a′‖)=DP(x,y)+f(M−(y+‖a′‖),M−y,M−x)
- 如果
(3) 终止条件
- 遍历所有可能的
DP(x, y)
,找到|x + y - M| \leq ε
的最大得分DP(x, y)
。 - 逆向回溯,重构最优肽序列
P
。
总结
方法 | 计算方式 | 复杂度 | 主要问题 | Chummy Pair 如何优化? |
---|---|---|---|---|
暴力搜索 | 枚举所有序列 | 指数级 O(20^n) | 计算量太大 | 避免暴力搜索 |
谱图方法 | 通过最长路径求解 | O(n^2) | 峰匹配不稳定 | 减少错误的峰匹配 |
本算法 | 动态规划 + Chummy Pair | O(n) | - | 高效搜索最优序列 |
提问3: Case 1 和 Case 2 中A<和A>是什么,怎么理解它们的作用
在 Definition 1 里面,A⟨
和 A⟩
是对前缀 A
和后缀 A'
进行一步缩短后的结果。它们的作用是确保 前缀 A
和后缀 A'
的增长是单调的,从而优化动态规划的搜索空间。
A⟨
就是 减少前缀A
的最后一个氨基酸,相当于 倒退一步。A'⟩
就是 减少后缀A'
的第一个氨基酸,相当于 往后推一步。
在 动态规划求解 de novo 测序 时,我们希望:
- 以正确的方式扩展前缀
A
和后缀A'
,确保计算路径是最优的。 - 保证增长的单调性,即:
- 当
A
增长时,A'
不能随意缩短。 - 当
A'
增长时,A
不能随意缩短。
- 当
- 减少冗余计算,避免探索无效的
A, A'
组合。
A⟨
和 A⟩
在 Case 1 和 Case 2 中的作用:
- 如果
A⟨
仍然满足 chummy pair 条件,说明A
的最后一个氨基酸并不是必须的,我们可以 减少 A 的大小。 - 如果
A'⟩
仍然满足 chummy pair 条件,说明A'
的第一个氨基酸并不是必须的,我们可以 减少 A' 的大小。
这样做的 核心目的是:
- 确保
A
和A'
是合理的前后缀组合。 - 避免无意义的扩展,减少计算量。
- 通过缩短
A/A'
,我们可以找到更紧凑的A, A'
组合,避免A
/A'过长导致搜索空间过大。