Пређи на садржај

Нидлмен-Ваншов алгоритам

С Википедије, слободне енциклопедије

Нидлмен-Ванш алгоритам извршава глобално поравњање две секвенце (“А” I “Б”). Обично се користи у биофарматици за поравнање секвенци протеина или нуклеотида. Алгоритам су објавили 1970године Саул Б. Неедлеман и Цхристиан D. Wунсцх. .[1] Нидлмен-Ванш алгоритам је пример динамичког програмирања, и то је прва примена динамичког програмирања на поредјење биолошких секвенци.

Модерна презентација[уреди | уреди извор]

Резултати за поравнате карактере су одређени матрицом сличности. је сличност карактера „а“и „б“. На пример, ако би матрица сличности била

А Г C Т
А 10 -1 -3 -4
Г -1 7 -5 -3
C -3 -5 9 0
Т -4 -3 0 8

Онда би поравнање:

AGACTAGTTAC
CGA‒‒‒GACGT

са казненим јазом од -5, имало следећи резултат

Да би пронашли поравнање са највећим резултатом, дво димензиони низ или матрица „Ф“ је алоцирана. . Постоји једна колона за сваки карактер у секвенци „А“, и један ред за сваки карактер у секвенци „Б“. Ако бисмо поравнавали секвенце величине „н“ и „м“, количина меморије коришцена је . Хирсбергов алгоритам има само подскуп низа у меморији и користи простор, али је сличан Нидлмен-Ваншовом алгоритму и јос увек захтева време. Како алгоритам напредује, ће бити додељено оптималном резултату за поравнање првог карактера у „А“ и првог у „Б“. Белманова једначина је примењена и следи испод:

  • Основно:
  • Рекурзија, базирана на принципу оптималности

Псеудо код за алгоритам за израчунавање Ф матрице изгледа овако:

for i=0 to length(A)
  F(i,0) ← d*i
for j=0 to length(B)
  F(0,j) ← d*j
for i=1 to length(A)
  for j=1 to length(B)
  {
    Match ← F(i-1,j-1) + S(Ai, Bj)
    Delete ← F(i-1, j) + d
    Insert ← F(i, j-1) + d
    F(i,j) ← max(Match, Insert, Delete)
  }

Када је Ф матрица израчуната, унос даје максимални резултат између свих могућих поравнања. За израчунавање поравнања који заправо даје овакав резултат, поцињемо од доње десне целије и поредимо вредност са три могућа извора (Матцх, Инсерт и Делете изнад) да видимо одакле долази. Ако је Матцх, онда и су поравнати, Ако је Делете онда је поравнато са „рупом“ и ако је Инсерт онда је поравната са „рупом“ (генерално, висе од једног избора може имати исту вредност водеци алтернативним оптималним поравнањима.)

AlignmentA ← ""
AlignmentB ← ""
i ← length(A)
j ← length(B)
while (i > 0 or j > 0)
{
  if (i > 0 and j > 0 and F(i,j) == F(i-1,j-1) + S(Ai, Bj))
  {
    AlignmentA ← Ai + AlignmentA
    AlignmentB ← Bj + AlignmentB
    i ← i - 1
    j ← j - 1
  }
  else if (i > 0 and F(i,j) == F(i-1,j) + d)
  {
    AlignmentA ← Ai + AlignmentA
    AlignmentB ← "-" + AlignmentB
    i ← i - 1
  }
  else (j > 0 and F(i,j) == F(i,j-1) + d)
  {
    AlignmentA ← "-" + AlignmentA
    AlignmentB ← Bj + AlignmentB
    j ← j - 1
  }
}

Историјске белеске[уреди | уреди извор]

Нидлмен и Ванш су описали свој алгоритам експлицитно за случај када поравнања имају казну према неускладјености, и када јаз нема казну (д=0). Оригинална публикација[1] из 1970 препоруцује рекурзију. .

Казнени фактор, број одузет за сваки јаз који је направљен, мозе се оценити као баријера за дозвољавање јаза. Казнени фактор може бити функција величине и/или правац јаза.

Бољи алгоритам динамичког програмирања са квадратним временом извршавања истог проблема(нема казненог јаза) био је први пут објављен у[2] од Дејвида Санкофа 1972 године.

Слични квадратни алгоритми били су осмисљени независно Т. К. Винтсyук[3] 1968 године за обраду говора. ("тиме wарпинг"), и Роберт А. Wагнер иМицхаел Ј. Фисцхер[4] 1974године за поклапање стринга.

Нидлмен и Ванш су формулисали проблем као максимизацију сличности. Друга могућност за минимизацију је Левенштајново растојање измедју секвенци које је представио Владимир Левенсхтеин. Петер Х. Селлерс је показао у[5] 1974године да су ова два проблема еквивалентна.

Референце[уреди | уреди извор]

  1. ^ а б Неедлеман, Саул Б. & Wунсцх, Цхристиан D. (1970). „А генерал метход апплицабле то тхе сеарцх фор симиларитиес ин тхе амино ацид сеqуенце оф тwо протеинс”. Јоурнал оф Молецулар Биологy. 48 (3): 443—53. ПМИД 5420325. дои:10.1016/0022-2836(70)90057-4.  Пронађени су сувишни параметри: |ластаутхорамп= и |ласт-аутхор-амп= (помоћ)
  2. ^ Санкофф D (1972). „Матцхинг сеqуенцес ундер делетион/инсертион цонстраинтс”. Процеедингс оф тхе Натионал Ацадемy оф Сциенцес оф тхе УСА. 69 (1): 4—6. ПМЦ 427531Слободан приступ. ПМИД 4500555. дои:10.1073/пнас.69.1.4. 
  3. ^ Винтсyук ТК (1968). „Спеецх дисцриминатион бy дyнамиц программинг”. Кибернетика. 4: 81—88. 
  4. ^ Wагнер РА, Фисцхер МЈ (1974). „Тхе стринг-то-стринг цоррецтион проблем”. Јоурнал оф тхе АЦМ. 21 (1): 168—173. дои:10.1145/321796.321811. 
  5. ^ Селлерс ПХ (1974). „Он тхе тхеорy анд цомпутатион оф еволутионарy дистанцес”. СИАМ Јоурнал он Апплиед Матхематицс. 26 (4): 787—793. дои:10.1137/0126070.