Vergleich von RNA Strukturen A General Edit Distance between RNA Structures von Sebastian Juenemann
Inhalt Einleitung Motivation Einführung Edit Operations Base Edit Operations Arc Edit Operations Edit Distance Komplexität von Eidit(Crossing, Plain) Dynamic Programming Algorithm for Edit(Nested, Plain) Edit(Crossing, Nested) Literatur
Einleitung Die sekundäre und tertiäre Struktureigenschaft der RNA ist ein wichtiger Faktor in biologischen Systemen arc-annotated sequences sind eine nützliche Repräsentation von RNA-Struktur-Information „edit distance“ um strukturelle Gleichheit zwischen RNA Sequenzen zu ermitteln
Motivation verschiedene Möglichkeiten RNA Strukturen abzubilden und Vergleiche zu formulieren sek. Struktur mittels (un- / oder benannten) trees Algorithmen von Zhang, Shasha, Shapiro SCFGs Sakakibara, Brown Vergleich auf dem Sequenz-Level Sankoff, Zhang, Zucker
Einführung Primäre RNA Sequenz = String S {A, U, C, G}*, wobei |S| = n Sekundäre und tertiäre Struktur von S = Menge P von „arcs“ Für alle (i 1, i 2 ) P gilt 1 i 1 i 2 n S[i 1 ] und S[i 2 ] sind komplementäre Basen Basenpaar Für belibige (i 1, i 2 ), (i 3, i 4 ) P gilt i 1 i 2 i 3 i 4 (independent) i 1 i 3 i 4 i 2 (nested) i 1 i 3 i 2 i 4 (crossing) „arc-annotated sequence“ (S, P)
edit operations Allgemeine Deffinitionen: arc-annotated sequence (S 1, P 1 ) und (S 2, P 2 ) über fixen Alphabet und einem sequenc alignment M (i 1, i 2 ) P 1 und (j 1, j 2 ) P 2 S 1 [i 1 ] aliniert mit ( ) S 2 [j 1 ] und S 1 [i 2 ] aliniert mit ( ) S 2 [j 2 ]
base edit operations „free“: Base S 1 [i] ausserhalb eines Bogenereignis „base-match“: S 1 [i] S 2 [j] AND S 1 [i] =S 2 [j] cost: nothing „base-mismatch“: S 1 [i] S 2 [j] AND S 1 [i] ≠S 2 [j] cost: w m „base-deletion“ („base-insertion“): S1[i] Leerfeld cost: w d
arc edit operations „arc-match“: S 1 [i 1 ] = S 2 [j 1 ] AND S 1 [i 2 ] = S 2 [j 2 ] cost: nothing „arc-mismatch“: S 1 [i 1 ] ≠ S 2 [j 1 ] AND S 1 [i 2 ] ≠ S 2 [j 2 ] cost: w am S 1 [i 1 ] ≠ S 2 [j 1 ] OR S 1 [i 2 ] ≠ S 2 [j 2 ] cost: w am ½ „arc-breaking“: S 1 [i 1 ] S 2 [j 1 ] AND S 1 [i 2 ] S 2 [j 2 ] (i 1, i 2 ) P 1 (j 1, j 2 ) P 2 bricht (i 1, i 2 ) auf und hinterlässt S 1 [i 1 ] und S 1 [i 2 ] free cost: w b
arc edit operations „arc-altering“: S 1 [i 1 ] S 2 [j 1 ] AND S 1 [i 2 ] Leerfeld löscht Base S 1 [i 2 ] und bricht (i 1, i 2 ) auf cost: w a „arc-removing“: S 1 [i 1 ] Leerfeld AND S 1 [i 2 ] Leerfeld Bricht arc (i 1, i 2 ) auf und deletes beide Basen cost: w r (normalerweise: w r w d )
edit distance between arc- annotated sequences Komplexität der Transformierung von S 1 in S 2 abhängig von der Komplexität der Eingabesequenzen Komplexitätsklassen des Edit Distance Problem: Edit(Crossing, Crossing), Edit(Crossing, Nested), Edit(Crossing, Plain), Edit(Nested, Nested), Edit(Nested, Plain), Edit(Plain, Plain). Berechenbar in Ο(nm) (Levenstein, Sankof und Kruskal) Edit distance = minimale Kosten der edit transcipts = Summe der darin enthaltenden edit operations
[1]
Komplexität von Edit(Crossing, Plain) MAX-CUT-3: gegeben ein gerichteter Graph G = (V, E), finde Teilmenge von V assoziiert mit der maximalen Kardinalität einer Menge E(V 1, V 2 ) von Kanten. Dieses Problem ist MAX SNP-hard Konstruktion eine L-Reduktion von MAX-CUT-3 nach Edit(Crossing, Plain). Edit(Crossing, Plain) ist MAX SNP-hard Teilproblem von Edit(Crossing, Nested), somit ist auch Edit(Crossing, Nested) MAX SNP-hard
[1]
Dynamic Programming Algorithm for Edit(Nested, Plain) (S 1, P 1 ) und (S 2, Ø) Instanzen von Edit(Nested, Plain) DP(i, i’; j, j’) entspricht der edit distance zwischen dem Paar partieller Sequnezen (S 1 [i, i’], P 1 [i, i’]) und (S 2 [j, j’], Ø) Fall 1: Für beliebige 1 i n und 1 j j‘ m, Fall 2: Für beliebige 1 i i‘ n und 1 j m, sodass (i) i = 1 oder (i -1, i‘‘) P 1 für einige i‘‘ > i‘ und (ii) jeder arc aus P 1 komplett das Interval [i, i‘] enthält, darin enthalten oder disjunkt von ihm ist
Dynamic Programming Algorithm for Edit(Nested,Plain) Fall 3: Für beliebigen arc (i, i‘) P1 und 1 j j‘ m,
Dynamic Programming Algorithm for Edit(Nested,Plain) Fall 4: Für beliebige 1 i i‘ n und 1 j j‘ m, sodass (i) (i, i‘) P1, (ii) i = 1 oder (i – 1, i‘‘) P1 für einige i‘‘ > i‘, (iii) jeder arc aus P 1 komplett das Interval [i, i‘] enthält, darin enthalten oder disjunkt von ihm ist Wenn i‘ frei ist, dann: Wenn i‘ nicht frei ist:
Dynamic Programming Algorithm for Edit(Nested,Plain) Fall 1 und Fall 3 (max |P1| = n/2 ): O(nm 2 ) Fall 2: O(nm) Fall 4: O(nm 3 ) Benutzung von „back-tracing technique“ optimale Alinierung von S 1 und S 2 in O(nm 2 ) Edit(Nested, Plain) ist lösbar in O(nm3)
Dynamic Programming Algorithm for Edit(Crossing, Nested) Generell nicht berechenbar (MAX SNP-hard) Lösung: score condition: 2 w a = w b + w r cost von base-deletion w r – w am /2 base Wegfall von arc-altering und arc-removing Somit: dynamic programming algorithm ähnlich dem Edit(Nested, Plain) Laufzeit O(n 2 m) Approximationswert von max {2 w a / w b + w r, w b + w r / 2 w a }
Literatur [1]Tao Jiangn Guohui Lin, Bin Ma, undKaizhong Zhang, 2002, Pp , A General Edit Distance between RNA Structures