Smith-Waterman:序列局部比对算法

Identification of Common Molecular Subsequences
T.F. Smith, M.S. Waterman · J. Mol. Biol. 1981 · ← 导航

1. 从全局到局部

Needleman-Wunsch(1970)的全局比对将两条序列从端到端对齐。但对许多生物学问题,序列只在局部区域相似(如共享功能结构域),全局比对会强行对齐不相似区域,结果误导。

Smith & Waterman 的局部比对算法只比对相似度最高的子序列片段,不相似的区域被重置为 0 而非计入负分。

一句话区别: 全局比对递推中负分向下传递,局部比对递推中负分被 0 取代——"忘记"不相似的区域。

2. 算法定义

2.1 递推关系(仿射空位)

H(i,j) = max{ 0, H(i-1,j-1) + s(ai,bj), E(i,j), F(i,j) }    (1)
E(i,j) = max{ H(i,j-1) − q, E(i,j-1) − r }    (2)
F(i,j) = max{ H(i-1,j) − q, F(i-1,j) − r }    (3)

q = gap open 罚分,r = gap extension 罚分(通常 r < q)。

2.2 DP 矩阵示例

局部比对 DP 矩阵(匹配 +2,错配 -1,gap open -2) 序列 A: ACGTA    序列 B: ACTA A C G T A 0 0 0 0 0 0 A 0 2 0 0 0 0 C 0 1 4 0 0 0 T 0 0 3 0 0 0 A 0 0 2 0 0 2 ↑ 最大分 4(AC-G vs AC-G)
局部比对 DP 矩阵。H(i,j) = max{0, 对角+匹配, 插入, 删除}。最大分 4 → 回溯得最佳局部比对 "ACG" vs "ACG"。

2.3 回溯

  1. 找矩阵中最大 H(i*, j*)
  2. 回溯到第一个 0
  3. 路径对应 A[i₀…i*] 和 B[j₀…j*] 即最优局部比对

2.4 复杂度

O(mn) 时间,O(min(m,n)) 空间(优化后)。

3. 在 BWA-MEM 中的应用

BWA-MEM 不在全长参考上运行 SW(3Gb × 100bp 不可行),而是在种子附近的条带窗口内运行 banded DP:

场景SW 类型搜索空间
种子延伸Banded affine-gap DP + Z-dropoff种子 ±~100bp
Mate rescue标准 SW + SSE2 向量化[μ−4σ, μ+4σ] 窗口内
常用参数(BWA-MEM): 匹配 +1,错配 -4,gap open -6,gap extension -1

4. 算法谱系

年份算法意义
1970Needleman-Wunsch全局比对,DP 首次用于序列比对
1981Smith-Waterman局部比对,理论最优
1982Gotoh仿射空位 O(mn) 优化
1990BLAST启发式加速,牺牲敏感性换速度
2007Farrar(Striped SW)SSE2 向量化 6× 加速
2013BWA-MEMSMEM + Banded DP + Z-dropoff

Smith-Waterman 是理论最优(保证找到最佳局部比对),但在基因组规模需种子过滤 + 条带化来约束搜索空间。