„Gotoh-Algorithmus“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
[gesichtete Version][ungesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Keine Bearbeitungszusammenfassung
→‎Affine Gapkosten: Gap extensions werden nur nur Gaplänge-1 berechnet, weil beim opening schon Kosten entstehen. Beispiel: http://www.mpi-inf.mpg.de/departments/d1/projects/CompBio/vorlesungk/node
Zeile 2: Zeile 2:


== Affine Gapkosten ==
== Affine Gapkosten ==
Mit affinen Gapkosten bezeichnet man Kosten für Gaps in Alignments, welche sich durch eine [[lineare Funktion]] <math>g(l) = gap\_start + l \cdot gap\_extend</math> beschreiben lassen. Dabei ist l die Anzahl der Stellen, die das [[Gap (Bioinformatik)]] enthält. <math>gap\_start</math> sind die Kosten für den Start eines neuen Gap, und <math>gap\_extend</math> sind die Kosten für die Erweiterung eines existierenden Gaps um eine Stelle.
Mit affinen Gapkosten bezeichnet man Kosten für Gaps in Alignments, welche sich durch eine [[lineare Funktion]] <math>g(l) = gap\_start + (l - 1) \cdot gap\_extend</math> beschreiben lassen. Dabei ist l die Anzahl der Stellen, die das [[Gap (Bioinformatik)]] enthält. <math>gap\_start</math> sind die Kosten für den Start eines neuen Gap, und <math>gap\_extend</math> sind die Kosten für die Erweiterung eines existierenden Gaps um eine Stelle.


Biologisch können affine Gapkosten mehr Sinn ergeben, als rein lineare Gapkosten, da man eine Insertion bzw. Deletion von mehreren Zeichen in bestimmten Zusammenhängen als wahrscheinlicher betrachten möchte als ein Indel von einem einzigen Zeichen, z.B. beim Alignieren von [[cDNA]] gegen Genom-[[DNA]] (Gusfield, 1999).
Biologisch können affine Gapkosten mehr Sinn ergeben, als rein lineare Gapkosten, da man eine Insertion bzw. Deletion von mehreren Zeichen in bestimmten Zusammenhängen als wahrscheinlicher betrachten möchte als ein Indel von einem einzigen Zeichen, z.B. beim Alignieren von [[cDNA]] gegen Genom-[[DNA]] (Gusfield, 1999).

Version vom 17. April 2009, 09:28 Uhr

Der Gotoh-Algorithmus berechnet das Sequenzalignment von zwei Sequenzen bei affinen Gapkosten. Er verwendet die Programmiermethode der dynamischen Programmierung.

Affine Gapkosten

Mit affinen Gapkosten bezeichnet man Kosten für Gaps in Alignments, welche sich durch eine lineare Funktion beschreiben lassen. Dabei ist l die Anzahl der Stellen, die das Gap (Bioinformatik) enthält. sind die Kosten für den Start eines neuen Gap, und sind die Kosten für die Erweiterung eines existierenden Gaps um eine Stelle.

Biologisch können affine Gapkosten mehr Sinn ergeben, als rein lineare Gapkosten, da man eine Insertion bzw. Deletion von mehreren Zeichen in bestimmten Zusammenhängen als wahrscheinlicher betrachten möchte als ein Indel von einem einzigen Zeichen, z.B. beim Alignieren von cDNA gegen Genom-DNA (Gusfield, 1999).

Matrix-Rekurrenzen

Spezifikation des Algorithmus durch Matrix-Rekurrenzen:

Initialisierung:


Rekursion:

  • u,v - Sequenzen über einem Alphabet
  • m = length(u), n = length(v)
  • w(a, b), - Similarity-Funktion
  • gap_start - Kosten für den Beginn eines Gaps
  • gap_extend - Kosten für die Erweiterung eines Gaps
  • g(l) - affine Gap-Kosten Funktion
  • S(i,j) - der optimale Similarity Score des optimalen Alignment des Präfixes u[1..i] von u und des Präfixes v[1..j] von v unter affinen Gapkosten
  • H(i,j) - der optimale Similarity Score des optimalen Alignment des Präfixes u[1..i] von u und des Präfixes v[1..j] von v, welches mit einem Gap in u endet
  • V(i,j) - der optimale Similarity Score des optimalen Alignment des Präfixes u[1..i] von u und des Präfixes v[1..j] von v, welches mit einem Gap in v endet

Die Initialisierung der Hilfsmatrizen V und H wird in mehreren Literaturquellen falsch angegeben mit: (Stoye, 1997 - Beweis und weitere Literatur). Denn für H(i,0) bzw. V(0,j) enden die Alignments nicht in einem Gap in u bzw. v.

Bei der Berechnung des globalen optimal Alignment ist der Score der optimalen Alignment der Sequenzen u und v in D(m, n) gespeichert.

Effizienz

Die Laufzeit der Algorithmus ist in O(mn) und Speicherplatzbedarf liegt in , was man einfach mit Hilfe der Matrix-Rekurrenzen erkennen kann. Dies ist eine Verbesserung zum Needleman-Wunsch-Algorithmus, welcher für beliebige Gapkosten eine Laufzeit von hat.

Wenn nur der Score des optimalen Alignments berechnet werden soll, können alle Matrizen auch spalten- bzw. zeilenweise berechnet werden, da jeder Eintrag nur von der vorherigen Spalte bzw. Zeile abhängt. Also sinkt der Speicherplatzbedarf auf .

Der Gotoh Algorithmus kann auch mit der Divide-and-Conquer-Methode implementiert werden, so dass das optimale Aligment mit linearem Platzbedarf berechnet werden kann. Siehe Hirschberg-Algorithmus.

Literatur

  • O. Gotoh: An improved algorithm for matching biological sequences. In: J. Mol. Biol. Band 162, 1982, S. 705–708 (PDF, 206 KB).
  • J. Stoye. Divide-and-Conquer Multiple Sequence Alignment. Dissertation Thesis. Universität Bielefeld, Forschungsbericht der Technischen Fakultät, Abteilung Informationstechnik, Report 97-02, S.26-27, 1997. ISSN 0946-7831
  • D. Gusfield. Algorithms on Strings, Trees and Sequences. 11.8:235-244 , 1999, ISBN 0-521-58519-8

Weblinks