序列比对:避免不可能的比对

时间:2015-05-31 13:35:40

标签: algorithm sequence-alignment

我使用等效于Needleman-Wunsch Algorithm的算法,使用相似矩阵进行模糊序列匹配。

部分结果接近最佳:

SIL d   e:  n   SIL A+  r   t   i:  k   E+  l   SIL SIL A+  f   t   @   SIL b   u:  @   n   @   SIL aU  s
-   d   e:  n   -   -   @   t   e:  k   9   l   SIL "   A+  f   d   @   -   b   9   A+  n   @   SIL aU  s

但有些不是:

SIL d   E+  r   SIL I+  n   h   A+  l   t   SIL S+  t   e:  t   SIL u:
-   -   -   -   -   -   -   z   I+  -   k   -   -   -   -   f   -   - 

删除和插入时会出现问题:算法会对齐删除附近的单个字母,这些字母几乎与缺失的部分匹配。

我已经尝试惩罚差距的开始,因此该算法比小的算法更有利于大的差距。结果非常糟糕,因为如上所示,长度为1和2的间隙在正确对齐的部分非常常见。

如何修改算法以避免执行这些错误的对齐,其中包含分散不佳的分散字母(例如f中的- - - - f - -,显然应该只是另一个-) ?

编辑:对于那些不熟悉算法的人:当计算分数时,将采用的方式未知,因为方式取决于猜测:分数。

这意味着在计算分数时我不能考虑相邻的比对,因为它们是未知的。但是如果一个对齐是否足够好取决于邻居:如果一对不合适(记住:我使用填充了概率的相似性矩阵)并被间隙包围,它应该得到一个非常糟糕的分数(见第二个例子) 。如果它被其他更好的拟合对包围,它应该得到一个好分数(见第一个例子)。

所以在计算分数时我有点鸡和蛋的问题。

0 个答案:

没有答案