使用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
根据书中的指示,确定路径的方法是
由于我在[0] [1]和[1] [1]中有两种匹配的可能性,它们将用于下一步?
答案 0 :(得分:3)
请参阅this有关实施Smith-Waterman的概述,包括追溯。在矩阵中的每个位置,您应该检查4件事:
第一个和第二个选项与在其中一个字符串中插入间隙相关,第三个选项与对齐两个字符相关联。如果多个路径有效,那么您有多个可能的路线。正如文章所述,那时的决定在很大程度上取决于背景(你有几种选择)。
答案 1 :(得分:0)
在我看来,你在构造矩阵时已经应用了权重,至少,这就是SW的标准变化的工作原理。要确定路径,您可能只需遵循较低数字的路径,而不再添加惩罚。我可能错了;如果有疑问,请在Google图书中发布指向图书页面的链接,或与您的图书相匹配的其他说明。在我看来,在你的情况下,最好的路径移动是3步,14-12-10-8。
在任何一种情况下,无论我在上面的疑问表达中是对还是错,你仍然可以在矩阵中找到一个模糊的路径点。正交移动表示任一序列中的间隙,而对角线移动对应于对齐(如果选择不明确,则我认为总是表示不匹配,但证明了这一点)。真的,你可以遵循任何一条道路。只要你到达零或角落,就会得到两条成本相同的路径。在构造矩阵时,已经应用了间隙与不匹配的偏好,这种矩阵以间隙和不匹配惩罚的平衡编码,因此情况确实不明确。