史密斯水手算法选择多个对齐

时间:2013-12-05 08:24:04

标签: python-2.7 matrix alignment dynamic-programming bioinformatics

我想将一个小序列S1与另一个较大的核苷酸序列S2对齐,例如:

S1: acgtgt
S2: ttcgtgacagt...

在这个示例中,s1在s2中的2个位置命中:cgtgacgt,s2中的间隙为2.我想使用史密斯水手算法,但我的问题是:如果2个路线有2个不同的得分,即一个4和另外3个如何从动态programimg矩阵获得2个对齐?是否有任何工具或库可以执行此操作?我从biopython尝试了paorwise2,它只给出了在矩阵

中得分高的对齐

3 个答案:

答案 0 :(得分:2)

成对对齐算法(如Smith-Waterman)仅提供一个最佳对齐。较差的对齐将具有不同的回溯步骤,而Smith-Waterman使用的动态编程算法将不会遵循该跟踪步行。

如果有多个具有相同最佳分数的路线,则S-W将仅选择其中一个路线(哪一个是特定于实施的,因为它们具有相同的分数并不重要)。

如果你真的想要返回多个路线并使用类似Smith-Waterman的东西,那么每次配置差距惩罚时,你必须多次重新对齐序列。我不推荐这个,因为它会非常昂贵。

不要使用史密斯 - 沃特曼,你可能想尝试像BLAST那样会给你多次点击

答案 1 :(得分:0)

符合替换矩阵中得分的所有可能的比对都在回溯矩阵T中重现 - 只是某些实现可能无法让您访问T。

要提取多个路线,您首先需要查看得分矩阵H并选择要追溯的分数 - 例如,您可能会查看最高的10个分数。矩阵T中的值将告诉您追溯的路线。继续前进,直到H中的相应分数为零。

要小心 - 10个最高分可能都是同一个对齐的一部分,在这种情况下,你只得到一个结果,这是另一个结果的子序列。为避免这种情况,最好先追溯得分最高的对齐,然后在第一个对齐方式未通过的单元格中查找高值。

答案 2 :(得分:0)

请参阅Durbin - Biological Sequence Analysis

中的重复匹配部分
  

enter image description here

     

让我们假设我们只对得分更高的比赛感兴趣   超过一些门槛T.这一般都是正确的,因为那里   总是短的局部比对,甚至是小的正分数   在完全不相关的序列之间。设y为包含的序列   域或主题,x是我们正在寻找的序列   多场比赛。

     

重复算法的一个例子如图2.7所示。我们又来了   使用矩阵F,但现在复发是不同的,因为   F(i,j)的含义。在最终对齐中,x将被分区为   在有缺口的路线中与y的部分匹配的区域,以及与该区域相匹配的区域   是无与伦比的。我们将谈论得分   已完成的匹配区域作为其标准间隙对齐   得分减去阈值T.所有这些匹配分数都是正数。   j≥1的F(i,j)现在是x1 ... i匹配得分的最佳总和,   假设xi在匹配区域,并且相应的匹配   以xi和yj结尾(如果是a,则它们实际上可能不对齐   比赛的缺口部分)。 F(i,0)是完成的最佳总和   将分数与子序列x1 ... i匹配,即假设xi在a中   无与伦比的地区。

     

为了达到预期的目标,我们从一开始   像往常一样初始化F(0,0)= 0,然后使用。填充矩阵   以下重现关系:

     

enter image description here

     

公式(2.11)仅处理不匹配的区域和匹配的结尾   当比赛得分至少为T时,允许比赛结束。方程   (2.12)处理匹配和扩展的开始。总分   通过向矩阵添加额外的单元格来获得所有匹配,F(n   + 1,0),使用(2.11)。每个比赛的分数将减去T;如果没有得分大于T的匹配则为0,   通过重复应用(2.11)中的第一个选项获得。

     

在   可以通过从细胞追溯获得个体匹配比对   (n + 1,0)到(0,0),在每个点返回到的单元格   max()操作中当前单元格中得分的来源。这个   回溯程序是一个全局程序,显示每个残留物   在x中将对齐。生成的全局对齐将包含   更常规的间隙局部对齐子序列的部分   x对y的子序列。

     

注意算法获得所有   本地比赛一次传球。它找到了最大得分集   匹配,在最大化多余的总和的意义上   每个比赛得分高于阈值T.改变T的值   改变算法找到的内容。增加T可以排除匹配。   减少它可能会分裂它们,以及寻找新的较弱的那些。一个   在前一节意义上的局部最佳匹配将是   如果它包含内部子对齐得分较少,则分成几部分   比-T。然而,这可能是想要的:给出两个相似的高点   得分段本身就很重要,由一个分开   非匹配部分具有强烈的负分,目前尚不清楚   是否最好报一两场比赛。