Needleman Wunsch算法与蛮力相比如何?

时间:2016-11-15 16:45:53

标签: string algorithm bioinformatics sequence-alignment needleman-wunsch

我想知道如何量化Needleman-Wunsch算法的结果(通常用于比对核苷酸/蛋白质序列)。

考虑一些固定的评分方案和两个长度不同S1S2的序列。假设我们通过强力计算S1S2的每个可能对齐,并且得分最高的对齐具有得分x。当然,这比Needleman-Wunsch方法复杂得多。

使用Needleman-Wunsch算法查找序列比对时,请说它的分数为y

r视为针对两个随机序列R1R2通过Needleman-Wunsch生成的分数。

xy相比如何?对于两个已知同源序列,y总是大于r吗?

一般来说,我确实理解我们使用Needleman-Wunsch算法来显着加快序列比对(与蛮力方法相比),但不了解随附的准确性成本(如果有的话)它。我曾经阅读过原始论文(Needleman& Wunsch,1970),但仍留下这个问题。

2 个答案:

答案 0 :(得分:5)

Needlman-Wunsch总能提供最佳答案 - 它比蛮力要快得多,并且在此过程中不会牺牲准确性。它使用的关键见解是,实际上并不需要生成所有可能的对齐,因为它们中的大多数包含不良的子对齐并且不可能是最佳的。 Needleman-Wunsch算法的工作原理是缓慢地为原始链的片段建立最佳比对,然后使用保证任何最佳比对必须包含对于略小的情况的最佳比对,将这些较小的比对缓慢地生长为更大的比对。

答案 1 :(得分:2)

我认为你的问题归结为动态规划是否找到了最优解,即保证y >= x。对于这方面的讨论,我会提到那些可能比我聪明的人:

https://cs.stackexchange.com/questions/23599/how-is-dynamic-programming-different-from-brute-force

基本上,它表示动态编程可能会产生最佳结果,即与蛮力相同,但仅适用于满足 Bellman最优性原则的特定问题。

根据针对Needleman-Wunsch的维基百科页面,该问题确实满足 Bellman最优性原则

https://en.wikipedia.org/wiki/Needleman%E2%80%93Wunsch_algorithm

具体做法是:

  

Needleman-Wunsch算法仍被广泛用于最优全局   对齐,特别是当全局对齐的质量是   至关重要。但是,该算法很昂贵   尊重时间和空间,与长度的乘积成正比   两个序列,因此不适合长序列。

在同一维基百科页面的其他地方也提到了最佳性。