Алгоритм Нидлмана-Вунша
Одним из наиболее распространенных алгоритмов выравнивания является алгоритм Нидлмана и Вунша ( Needleman & Wunsch, 1970 ) Суть алгоритма в следующем. По матрице расстояний между аминокислотами (или, соответственно, между нуклеотидами) итеративным образом рассчитывается матрица всех возможных маршрутов *Sij*: Sij=Dij+max(Si-1,j-1,max k<j-1 (Si-1,k - G),max k<i-1 (Sk,j-1-S)) где Sij - элемент i-й строки j-го столбца, Dij - расстояние между i-й и j-й аминокислотами (или нуклеотидами), а G - штраф на делецию. Затем осуществляется проход по матрице в обратном направлении, по максимальным элементам. Полученный маршрут соответствует оптимальному выравниванию. В качестве матрицы минимальных расстояний между аминокислотами обычно используется матрица минимальных мутационных расстояний по генетическому коду между аминокислотами, но могут использоваться и другие меры. В качестве примера приведем выравнивание двух нуклеотидных последовательностей. Исходя из следующей матрицы расстояний между нуклеотидами
A T G C ┌─────────┐ A│ 1 0 0 0 │ T│ 0 1 0 0 │ G│ 0 0 1 0 │ C│ 0 0 0 1 │ └─────────┘ и штрафа на делецию G = 0, по формуле (1) насчитываем матрицу возможных маршрутов, и осуществляем обратный проход (маршрут обведен одинарной линией):
╔════════════════════════════════╗ ║ ┌───┐ ║ A ║ 1 2 2 3 3 5 │ 6 │ 5 ║ ║ ┌───┼───┘ ║ A ║ 1 2 2 3 3 │ 5 │ 5 4 ║ ║ ┌───┼───┘ ║ Выровненные T ║ 0 1 3 3 │ 4 │ 3 3 3 ║ последовательности: ║ ┌───┬───┴───┘ ║ T ║ 0 1 │ 3 │ 2 3 2 2 2 ║ AATGTAAC ║ ┌───┼───┘ ║ AAT-TAA- A ║ 1 │ 2 │ 1 1 1 2 2 1 ║ ║┌───┼───┘ ║ A ║│ 1 │ 1 0 0 0 1 1 0 ║ ║└───┘ ║ ╚════════════════════════════════╝ A A T G T A A CДля более подробного знакомства с алгоритмом смотрите книгу "Проблемы теории молекулярной эволюции", Новосибирск: Наука, 1985, стр.84. или статью Нидлмана и Вунша.(Needleman & Wunsch, 1970 )