Skip to main content

2.1.3 Affine gap penalty

在 Banded Smith-Waterman(BSW)中,你给出的两个公式:

E(i+1,j)=max⁡{H(i,j)−go, E(i,j)−ge, 0}E(i+1,j) = \max\{H(i,j) - g_o,\ E(i,j) - g_e,\ 0\} F(i,j+1)=max⁡{H(i,j)−go, F(i,j)−ge, 0}F(i,j+1) = \max\{H(i,j) - g_o,\ F(i,j) - g_e,\ 0\}

是用于处理 affine gap penalty(仿射间隙罚分) 的辅助递推。它们分别跟踪两种不同类型的 gap:一种是在序列 YY 中插入 gap(即 XX 比 YY 多出一个字符),另一种是在序列 XX 中插入 gap(即 YY 比 XX 多出一个字符)。下面逐层解释。


1. 为什么需要 E 和 F?​

Smith-Waterman 的基本得分矩阵 H(i,j)H(i,j) 只记录以 X(i)X(i) 和 Y(j)Y(j) 结尾的最优局部比对得分。但当比对中出现插入或缺失时,罚分不是简单的线性罚分,而是 仿射罚分:

  • gap opening penalty:打开一个新的 gap,罚 gog_o;
  • gap extension penalty:延长一个已有的 gap,罚 geg_e。

通常 go>geg_o > g_e,即打开 gap 的代价比延长 gap 更高。为了区分“打开”和“延长”,需要额外的矩阵来记录当前是否已经处于 gap 状态。

于是引入:

  • E(i,j)E(i,j):表示在 XX 方向上前进(即 ii 增加),而 YY 不动,也就是在 YY 中插入一个 gap(deletion)。它跟踪的是“已经打开了一个 deletion gap”的得分。
  • F(i,j)F(i,j):表示在 YY 方向上前进(即 jj 增加),而 XX 不动,也就是在 XX 中插入一个 gap(insertion)。它跟踪的是“已经打开了一个 insertion gap”的得分。

2. 逐项解释 E 的递推​

E(i+1,j)=max⁡{H(i,j)−go, E(i,j)−ge, 0}E(i+1,j) = \max\{H(i,j) - g_o,\ E(i,j) - g_e,\ 0\}

这里 E(i+1,j)E(i+1,j) 表示在 XX 的第 i+1i+1 个位置、YY 的第 jj 个位置处,以 deletion gap 结尾的得分。它有三种可能来源:

  1. 从 H(i,j)H(i,j) 打开一个新的 gap
    H(i,j)−goH(i,j) - g_o:在 (i,j)(i,j) 处结束一个正常比对,然后向下走一步(ii 增加,jj 不变),打开一个新的 deletion gap。代价是减去 gap opening penalty gog_o。

  2. 从 E(i,j)E(i,j) 延续已有的 gap
    E(i,j)−geE(i,j) - g_e:之前已经处于 deletion gap 状态,现在继续向下走一步,延长这个 gap。代价是减去 gap extension penalty geg_e。

  3. 取 0
    Smith-Waterman 是局部比对,得分不能为负。如果以上两种选择都导致负分,就取 0,表示从当前位置重新开始一个新的局部比对。

所以 E(i+1,j)E(i+1,j) 记录的是:在 (i+1,j)(i+1,j) 处,以 deletion gap 结尾的最优得分。


3. 逐项解释 F 的递推​

F(i,j+1)=max⁡{H(i,j)−go, F(i,j)−ge, 0}F(i,j+1) = \max\{H(i,j) - g_o,\ F(i,j) - g_e,\ 0\}

类似地,F(i,j+1)F(i,j+1) 表示在 XX 的第 ii 个位置、YY 的第 j+1j+1 个位置处,以 insertion gap 结尾的得分。它的来源:

  1. 从 H(i,j)H(i,j) 打开一个新的 gap
    H(i,j)−goH(i,j) - g_o:在 (i,j)(i,j) 处结束正常比对,然后向右走一步(jj 增加,ii 不变),打开一个新的 insertion gap。

  2. 从 F(i,j)F(i,j) 延续已有的 gap
    F(i,j)−geF(i,j) - g_e:之前已经处于 insertion gap 状态,继续向右走一步,延长这个 gap。

  3. 取 0
    同样,局部比对不允许负分。


4. 如何与主矩阵 H 结合?​

最终 H(i,j)H(i,j) 的更新通常为:

H(i,j)=max⁡{0, H(i−1,j−1)+S(X(i),Y(j)), E(i,j), F(i,j)}H(i,j) = \max\{0,\ H(i-1,j-1) + S(X(i),Y(j)),\ E(i,j),\ F(i,j)\}

其中:

  • H(i−1,j−1)+S(X(i),Y(j))H(i-1,j-1) + S(X(i),Y(j)):从左上角对角线来,表示匹配或错配;
  • E(i,j)E(i,j):从上方来,表示以 deletion gap 结尾;
  • F(i,j)F(i,j):从左方来,表示以 insertion gap 结尾;
  • 0:保证局部比对得分非负。

所以 EE 和 FF 是 HH 的候选来源,它们共同实现了仿射 gap 罚分。


5. 用一个简单例子理解​

假设:

  • go=2g_o = 2,ge=1g_e = 1;
  • 当前 H(i,j)=5H(i,j) = 5,E(i,j)=4E(i,j) = 4。

那么:

E(i+1,j)=max⁡{5−2, 4−1, 0}=max⁡{3, 3, 0}=3E(i+1,j) = \max\{5 - 2,\ 4 - 1,\ 0\} = \max\{3,\ 3,\ 0\} = 3

这表示:从 (i,j)(i,j) 向下走一步,无论是打开新 gap 还是延续旧 gap,得分都是 3。如果 H(i,j)H(i,j) 很小,比如 H(i,j)=1H(i,j) = 1,那么:

E(i+1,j)=max⁡{1−2, 4−1, 0}=max⁡{−1, 3, 0}=3E(i+1,j) = \max\{1 - 2,\ 4 - 1,\ 0\} = \max\{-1,\ 3,\ 0\} = 3

此时延续旧 gap 更好。如果两者都很负,就取 0,重新开始。


6. 直观图示​

在 DP 表中:

j j+1
i H(i,j) → F(i,j+1) (向右:在 X 中插入 gap)
i+1 ↓
E(i+1,j) (向下:在 Y 中插入 gap)
  • 向下箭头:ii 增加,jj 不变 → 在 YY 中插入 gap → 对应 EE;
  • 向右箭头:jj 增加,ii 不变 → 在 XX 中插入 gap → 对应 FF。

7. 一句话总结​

EE 和 FF 是 Smith-Waterman 中用于实现仿射 gap 罚分的辅助矩阵:

  • E(i+1,j)E(i+1,j) 跟踪向下移动(在 YY 中插入 gap)的得分,可选择从 HH 打开新 gap、从 EE 延续 gap、或取 0 重新开始;
  • F(i,j+1)F(i,j+1) 跟踪向右移动(在 XX 中插入 gap)的得分,递推逻辑相同;
  • 它们最终被 H(i,j)H(i,j) 取最大值,从而允许比对在匹配、插入、缺失之间灵活切换,同时区分打开和延长 gap 的不同代价。