python-2.7 – 史密斯水手算法选择多个对齐方式

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

S1: acgtgt
S2: ttcgtgacagt...

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

最佳答案 成对对齐算法(如Smith-Waterman)只能提供最佳对齐.较差的对齐将具有不同的回溯步行,Smith-Waterman使用的动态编程算法将不会遵循该回溯步行.

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

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

而不是使用史密斯 – 沃特曼,你可能想尝试一些类似BLAST的东西,它会给你多次点击

点赞