Smith-Waterman算法路径检测澄清

时间:2012-02-13 05:02:47

标签: algorithm

使用Smith-Waterman算法进行书籍家庭作业,我制作了一个价值表。一旦我理解了如何获得这些值,那么构建表格很容易,但现在我很难确定表中最佳的对齐顺序。

表格示例是根据公式

生成的
min(  (i+1, j+1)+penalty)
      (i+1, j)+2)
      (i, j+1)+2))

在书中伪代码中,如果i == j则惩罚值为0,否则为1。

前4行和列看起来像这样,不匹配的罚分为1,间隙的罚分为2。 :

14   12   10   8
15   13   11   9
16   14   12   10
17   15   13   11

根据书中的指示,确定路径的方法是

  1. 从数组槽[0] [0]开始,在这种情况下,值为14
    • 检查插槽[0] [1]。当我们向左移动到插槽时,插入一个间隙,从而将值加2,得到14
    • 检查插槽[1] [0],插入另一个间隙,结果为17
    • 检查插槽[1] [1]。当我们沿对角线移动时,惩罚值被添加到槽值中,得到14
    • 的结果
  2. 由于我在[0] [1]和[1] [1]中有两种匹配的可能性,它们将用于下一步?

2 个答案:

答案 0 :(得分:3)

请参阅this有关实施Smith-Waterman的概述,包括追溯。在矩阵中的每个位置,您应该检查4件事:

  • 如果位置值等于空位罚分加上面的位置,则up是有效的移动。
  • 如果位置值等于空位罚分加上左侧位置,则左侧是有效移动。
  • 如果位置值等于匹配值加上向上和向左的位置,则对角线是有效的移动。
  • 如果位置值为0,则表示您已完成。

第一个和第二个选项与在其中一个字符串中插入间隙相关,第三个选项与对齐两个字符相关联。如果多个路径有效,那么您有多个可能的路线。正如文章所述,那时的决定在很大程度上取决于背景(你有几种选择)。

答案 1 :(得分:0)

在我看来,你在构造矩阵时已经应用了权重,至少,这就是SW的标准变化的工作原理。要确定路径,您可能只需遵循较低数字的路径,而不再添加惩罚。我可能错了;如果有疑问,请在Google图书中发布指向图书页面的链接,或与您的图书相匹配的其他说明。在我看来,在你的情况下,最好的路径移动是3步,14-12-10-8。

在任何一种情况下,无论我在上面的疑问表达中是对还是错,你仍然可以在矩阵中找到一个模糊的路径点。正交移动表示任一序列中的间隙,而对角线移动对应于对齐(如果选择不明确,则我认为总是表示不匹配,但证明了这一点)。真的,你可以遵循任何一条道路。只要你到达零或角落,就会得到两条成本相同的路径。在构造矩阵时,已经应用了间隙与不匹配的偏好,这种矩阵以间隙和不匹配惩罚的平衡编码,因此情况确实不明确。