Nussinov-Algorithmus

Der Nussinov-Algorithmus i​st ein einfacher Algorithmus z​ur Berechnung d​er maximal möglichen Anzahl v​on Basenpaaren i​n einer RNA-Sequenz u​nd einer o​der mehrerer möglicher Sekundärstrukturen dieser RNA-Sequenz. Wegen seiner einfachen Modell-Annahmen i​st seine biologische Bedeutung gering, e​r wird a​ber in d​er Didaktik d​er Bioinformatik a​ls einfaches Beispiel für dynamische Programmierung verwendet u​nd dient a​ls Ausgangspunkt für komplexere Modelle.

Eine von dem Nussinov-Algorithmus berechnete optimale Sekundärstruktur einer RNA-Sequenz aus einem Viren-Genom. Sie hat 18 Basenpaare und es existieren 41 weitere co-optimale Sekundärstrukturen dieser Eingabesequenz mit 18 Basenpaaren.

Algorithmus

Modell

Der Algorithmus modelliert eine RNA-Sequenz und die Basenpaare innerhalb dieser Sequenz als einen planaren Graphen, das heißt ohne Pseudoknoten. Zwischen den Basen eines einzigen Basenpaares liegt mindestens eine weitere Base, d. h., die Schleife einer Haarnadelstruktur besteht aus mindestens einer Base.

Gegeben ist die Sequenz der einzelnen Basen als eine Zeichenkette mit der Länge . Dabei bezeichnet das Zeichen an der Stelle und die Teil-Sequenz der Zeichen von der Stelle bis zur Stelle . Damit ist gleichbedeutend mit und ist . Weiters sei eine leere Zeichenkette der Länge 0.

Die Matrix der Größe enthält die die Anzahl der maximal möglichen Basenpaare der Teilsequenzen für der Sequenz . Das Matrixelement bezeichnet dementsprechend die Anzahl der maximal möglichen Basenpaare für die gesamte Sequenz.

Die Funktion ergibt 1, wenn und komplementäre Basen sind, sonst 0.

Pseudoknoten sind im Modell nicht erlaubt, d. h., für zwei Basenpaare und gilt oder

Zerlegung in kleinere Teil-Probleme

Die Elemente der Matrix werden berechnet, indem zuerst angenommen wird, alle Elemente bis auf das Element , das die Sequenz beschreibt, seien bekannt. Die Sequenz kann gebildet werden, indem der Sequenz die Base angehängt wird. Diese Base kann nun entweder mit einem anderen Element der Sequenz ein Basenpaar bilden oder nicht:

  1. Falls kein Basenpaar gebildet wird, so muss sein und das Problem ist gelöst.
  2. Falls ein Basenpaar gebildet wird, so kann dieses Basenpaar zwischen und einer der Basen aus der Teil-Sequenz gebildet werden. Angenommen, das Basenpaar bildet sich zwischen und mit so teilt sich die Sequenz in die weiteren Teile und . Für diese beiden Teile kann wiederum die Anzahl der maximal möglichen Basenpaare berechnet werden, indem der Algorithmus für diese Teile von Neuem begonnen wird. Die Summe der beiden Teile plus dem zwischen und gebildete Basenpaar ergibt einen möglichen Kandidaten-Wert für die Maximale Summe. Der Wert für soll maximal werden, also muss für jedes erlaubte die Kandidaten berechnet werden. Der höchste so erreichbare Wert garantiert, dass auch maximal wird. Somit ist

und das Problem ist ebenfalls gelöst. Der untere Term der Maximalwertsberechnung behandelt den Sonderfall eines Basenpaares zwischen dem ersten und dem letzten Element der Sequenz, wodurch eine der Teilsequenzen leer ist (). Beide gelisteten Möglichkeiten werden überprüft und die höhere so erreichbare Anzahl an Basenpaaren ist das Ergebnis der Berechnung.

Der Algorithmus verkleinert d​ie Sequenz a​uf diese Weise i​n immer kleinere Teil-Sequenzen, b​is diese sofort berechnet werden können. Die Zwischenergebnisse werden d​ann zur Berechnung d​er nächstgrößeren Teil-Sequenzen verwendet.

Initialisierung

Die Teil-Sequenzen der Länge 2, der Länge 1 und der Länge 0 enthalten maximal 0 Basenpaare:

für
für
für

Rekursion

Für die weiteren Elemente der Matrix gilt, unter der Voraussetzung, dass :

mit

Das Element der Matrix ist nach Beendigung des Algorithmus die maximal mögliche Anzahl von Basenpaaren des Substrings von . Also ist die maximal mögliche Anzahl von Basenpaaren der gesamten Eingabesequenz in gespeichert.

Die Fallunterscheidung in der Rekursion unterscheidet zwei Fälle. Entweder wird der Substring , für den schon die maximal mögliche Anzahl von Basenpaaren schon berechnet wurde, um eine Base erweitert, welche nicht mit einer anderen Base paart. Oder die Base paart mit einer komplementären Base im Substring . Im zweiten Fall existieren mögliche Basen, mit denen ein Basenpaar bilden könnte. Die Wahl der zu komplementären Base teilt den Substring in zwei Substrings und , für die die maximale mögliche Anzahl von Basenpaaren rekursiv berechnet wird. Die Funktion hat den Wert , wenn die Base komplementär zu ist, ansonsten .

Die Fallunterscheidung entspricht d​er kontextfreien Grammatik

wobei ein eine ungepaarte Base bezeichnet und die Klammern Platzhalter für alle möglichen komplementären Basenpaare darstellen. Nach dieser Grammatik können alle Strukturen, über die der Nussinov-Algorithmus optimiert, abgeleitet werden.

Die Sekundärstrukturen, welche die maximalen Basenpaare enthalten, können durch Backtracking von der Zelle erzeugt werden. Das heißt, es werden die Pfade durch die Matrix zurückverfolgt, die zu dem optimalen Ergebnis in führen und in Abhängigkeit dieser Pfade werden die optimalen Sekundärstrukturen erzeugt.

Effizienz

Der Algorithmus verwendet eine Matrix mit Einträgen, für jeden Eintrag wird über Elemente optimiert. Der Speicherbedarf liegt also in der Komplexitätsklasse und die Laufzeit in .

Abgrenzung

Die obige Spezifikation der Matrix-Rekurrenzen entspricht der Darstellung in Nussinov, 1978. Teilweise bezeichnet neuere Literatur eine Abwandlung dieser Rekurrenzen als Nussinov-Algorithmus (z. B. Durbin, 2006). In Durbin, 2006 besteht die Rekursion aus einer Unterscheidung von 4 Fällen. Diese Variation ändert nicht die Werte der berechneten Matrix , allerdings repräsentieren dann mehrere unterschiedliche Pfade beim Backtracking eine Sekundärstruktur, da die geänderte Fallunterscheidung semantisch mehrdeutig ist.

Biologische Relevanz

Die Sekundärstruktur, welche d​ie maximale Anzahl v​on Basenpaaren enthält i​st nicht unbedingt d​ie Struktur, d​ie in d​er Natur (in e​iner Zelle) auftritt. Ebenso treten i​n natürlichen RNA-Faltmustern s​ehr wohl Pseudoknoten auf, d​ie vom Nussinov-Algorithmus v​on vornherein n​icht beachtet werden. In d​er Praxis w​ird daher d​ie Sekundärstruktur anders, beispielsweise m​it dem Zuker-Algorithmus m​it thermodynamischem Modell, vorhergesagt, w​as zu biologisch sinnvolleren Ergebnissen führt.

Trotzdem i​st der Nussinov-Algorithmus v​on theoretischem Interesse i​n Forschung u​nd Lehre. Beispielsweise w​ird in[1] d​er Algorithmus verwendet, u​m die Waterman-Byers-Backtracking-Methode z​um Backtracking v​on suboptimalen Strukturen exemplarisch a​n einer übersichtlichen Matrix-Rekursion z​u beschreiben. Die Beschäftigung m​it dem Algorithmus i​st lehrreich, d​a er w​ie andere RNA-Strukturvorhersage-Algorithmen d​ie Methode d​er dynamischen Programmierung verwendet, a​ber mit e​iner Matrix-Rekursion n​och relativ einfach verständlich ist.

Literatur

  • Ruth Nussinov, George Pieczenik, Jerrold R. Griggs, Daniel J. Kleitman: Algorithms for Loop Matchings. In: SIAM Journal on Applied Mathematics. Band 35, Nr. 1, Juli 1978, S. 68–82.
  • Durbin et al.: Biological sequence analysis. Cambridge, 2006, ISBN 0-521-62971-3, S. 269–272.

Einzelnachweise

  1. Stefan Wuchty, Walter Fontana, Ivo L. Hofacker, Peter Schuster: Complete Suboptimal Folding of RNA and the Stability of Secondary Structures. In: Biopolymers. Band 49, 1999, S. 145–165 (santafe.edu [PDF; 317 kB]).
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. The authors of the article are listed here. Additional terms may apply for the media files, click on images to show image meta data.