Die Suche nach Signalen und Genen in DNA Zentrum für Bioinformatik der Universität des Saarlandes WS 2001/2002 Transkriptionsfaktoren ATGCGTGCAATGT..........AGGCACGCATGA TGACGCA CACGTG GGGCGG CCAAT TATA ATG Exon Intron Exon TGA Promoter transcription factor binding site Splicing site • Unter Signalen verstehen wir bestimmte in der Regel kurze Stücke von DNA, die wichtige Informationen für bestimmte Prozesse enthalten. • In der Regel binden andere Moleküle an diese Signalketten und eine chemische Reaktion wird dadurch gestartet oder gestoppt. transcription factors Transcription factor binding sites regulation of gene expression Splicing sites splicing of exons (and introns) restriction enzymes Sites of the restriction enzym DNA cutting Transcription factor binding sites TTGACAN17TATAAT N {A,T,C,G} Pu {A,G} E. coli promoter binding site Sites of the restriction enzym PumCN40-2000PumC McrBC Endonuclease GAATTC EcoRI CCAN9TGG Xcm I restriction enzyme Wie kann man diese magischen Worte in einer vorgegebenen Menge von Sequenzen finden? Der triviale Ansatz, alle Worte der Länge l in allen vorgegebenen Sequenzen zu suchen, ist natürlich nur bei kurzen Worten ohne Lücken und Mutationen erfolgreich. Annahme: Ein populärer Ansatz in der DNA-Linguistik basiert auf der Annahme, dass DNA-Signale in der Regel Worte sind, die häufig oder selten vorkommen. Wie kann man potentielle Signal-Muster finden und ihre statistische Signifikanz beweisen? Ansatz: (1) Man definiere ein Fitness-Maß (z.B. Häufigkeit des Auftretens). (2) Berechne die Häufigkeit von jedem Wort in einer Menge von DNA-Fragmenten. (3) Gebe das beste Wort oder die besten Worte als potentielle Signale aus. Wie kann man entscheiden, ob ein Wort W häufig oder selten vorkommt? Hierzu benötigt man den Erwartungswert E(W) und die Varianz Var(W)=2(W) für die Zahl der Vorkommen eines Worts W. Var(W ) E (W 2 ) E (W )2 E (W 2 ) E (W ) E (W ) Spiel mit zwei Spielern: Spieler 1 wählt ein binäres Wort A der Länge L. Spieler 2 kennt das Wort, das Spieler 1 gewählt hat. Spieler 2 wählt anschließend ein (anderes) binäres Wort B der Länge L. Dann werfen Sie solange {0,1}-Münzen, bis entweder das Wort A oder das Wort B erscheint. Spieler (1) wählt A = 00 Spieler (2) wählt B = 10 Münzwürfe: 0 1 1 0 =B Für L > 2 gilt: Welches Wort der Spieler (1) auch auswählt, Spieler (2) kann immer ein Wort finden, dass bessere Gewinnchancen hat. Definition: Gegeben zwei L-Worte A und B über dem binären Alphabet {0,1}. Die Korrelation AB = (c0 , ... , cL-1 ) ist ein L-Wort, dessen Komponenten wie folgt definiert sind: 1 ci 0 falls die ersten (L-i) Buchstaben von B gleich den letzten (L-i) Buchstaben von A sind. A = 01101 sonst B = 11011 AB = 01 0 0 1 11011 11011 11011 11011 Definition: Gegeben zwei L-Worte A und B über dem binären Alphabet {0,1}. Die Korrelation AB = (c0 , ... , cL-1 ) ist ein L-Wort, dessen Komponenten wie folgt definiert sind: 1 ci 0 falls die ersten (L-i) Buchstaben von B gleich den letzten (L-i) Buchstaben von A sind. sonst Das Korrelationspolynom definiert man als K AB (t ) c0 c1t ... cL1t L1 Ferner sei KAB = KAB(1/2). Mit HAB bezeichen wir die Menge der „Reste“ von A: Für jedes i mit ci = 1 fügt man die ersten i Buchstaben von A als Wort zu HAB. A = 01101 B = 11011 HAB = { 0, 0110} AB = 01 0 0 1 11011 11011 11011 Für jedes ci = 1 wird ein ergänzender Präfix von A 11011 zu HAB hinzugefügt (Rest ohne die überlappenden Teile). Mit A * B bezeichnet man die Konkatenation von A und B. Sind X und Y zwei Wortmengen, so bezeichnen wir mit X * Y die Menge aller aus X und Y konkatenierten Wörter. |X *Y|=| X | | Y |. Die Wahrscheinlichkeit P(W) eines binären Wortes W der Länge L ist gleich P (W ) 1 2L P() P( X ) Für eine Menge X von Worten sei X Lemma: KAB(1/2) = P(HAB) A = 01101 B = 11011 11011 11011 11011 11011 K AB (t ) c0 c1t ... cL1t L1 AB = 01 0 0 1 HAB = { 0, 0110} Für jedes ci = 1 wird ein ergänzender Präfix von A zu HAB hinzugefügt (Rest ohne die überlappenden Teile). Definition: Ein Wort W ist ein A-Gewinn, wenn A am Ende des Wortes steht und W das Wort B nicht enthält. Ein Wort W ist ein A-Vorgewinn, wenn W*A ein A-Gewinn ist. Ein Wort W ist ein B-Gewinn, wenn B am Ende des Wortes steht und W das Wort A nicht enthält. Ein Wort W ist ein B-Vorgewinn, wenn W*B ein B-Gewinn ist. Wir betrachten die Wortmenge = { W | W ist weder A- noch B-Gewinn}. Jedes Wort W*A mit W ist entweder ein A-Gewinn oder ein B-Gewinn. Falls W*A ein A-Gewinn ist, W VGA A-Vorgewinn Falls W*A ein B-Gewinn ist, HAA = (VG *H ) (VG *H ) A AA B BA A B HBA W VGB B-Vorgewinn Falls W*B ein A-Gewinn ist, A W VGB B-Vorgewinn Falls W*B ein B-Gewinn ist, A B B HBB = (VGB*HBB) (VGA*HAB) W VGA A-Vorgewinn B A HAB (VGA*HAA) (VGB*HBA) = (VGB*HBB) (VGA*HAB) => P(VGA *HAA) + P (VGB*HBA) = P(VGB*HBB) + P(VGA*HAB) => P(VGA ) P(HAA) + P (VGB) P(HBA) = P(VGB) P(HBB) + P(VGA) P(HAB) Lemma => P(VGA ) KAA + P (VGB) KBA = P(VGB) KBB + P(VGA) KAB P(VGB ) K - KAB = AA P(VGA) KBB - KBA Satz (Conway): Die Wahrscheinlichkeit, dass das Wort B gegen A gewinnt, kann man durch den folgenden Quotienten der Wahrscheinlichkeiten der Vorgewinne von A und B abschätzen: P(VGB ) K - KAB = AA P(VGA) KBB - KBA Beweis: Siehe oben (Pevzner [1993]). Li [1980] Guibas & Odlyzko [1981]). Gegeben ein Bernouilli-Text der Länge n über einem Alphabet mit r Buchstaben. Wir nehmen an, dass der Text circulär ist. Die Wahrscheinlichkeit, dass ein Buchstabe an einer bestimmten Position auftritt, ist (1/r). Sei W ein Wort der Länge L. Die Zufallsvariable xi hat den Wert 1, falls das Wort W an der i-ten Position im Text startet (0 sonst). Die Zahl der Vorkommen von W wird durch die folgende Zufallsvariable beschrieben: n X xi i 1 n E ( X ) E ( xi ) n i 1 1 : np L r Var( X ) E ( X 2 ) E ( X )2 E( x x ) E( x )E( x ) {1i , j n } 0 i j i j i j E( x x ) E( x )E( x ) {( i , j ):|i j|0} ? (siehe nächste Seite) i E( x x ) E( x )E( x ) {( i , j ):|i j| L} n(p-p2) j i j i j E( x x ) E( x )E( x ) {( i , j ):0 |i j| L} i j i j n L1 E ( x x ) E ( x ) E ( x ) E ( x x ) E ( x ) E ( x ) {( i , j ):0|i j| L} i j i i+t i j i 1 t 1 { j:|i j|t } 1 p E ( xi xi t ) r t 0 i j i j falls der t-te Koeffizient ct des Korrelationspolynoms KWW gleich 1 ist sonst 1 E ( xi xi t ) ct p t r L1 L1 E ( xi x j ) 2 p ct t 1 { j:|i j|t } t 1 1 1 2 p ( K ( ) 1) WW t r r n 1 E ( x x ) E ( x ) E ( x ) ( 2 p ( K ( ) 1) 2( L 1) p 2 ) i j i j WW r {( i , j ):0|i j| L} i 1 1 np( 2( KW W ( ) 1) 2( L 1) p ) r Gegeben ein Bernouilli-Text der Länge n über einem Alphabet mit r Buchstaben. Wir nehmen an, dass der Text circulär ist. Die Wahrscheinlichkeit, dass ein Buchstabe an einer bestimmten Position auftritt, ist (1/r). Sei W ein Wort der Länge L. Die Zufallsvariable xi hat den Wert 1, falls das Wort W an der i-ten Position im Text startet (0 sonst). Die Zahl der Vorkommen von W wird durch die folgende Zufallsvariable beschrieben: n X xi i 1 n 1 np L r i 1 Var( X ) E ( X 2 ) E ( X )2 E ( xi x j ) E ( xi ) E ( x j ) E ( X ) E ( xi ) n {1i , j n } 0 E( x x ) E( x )E( x ) {( i , j ):|i j| L} n(p-p2) j i j E( x x ) E( x )E( x ) {( i , j ):|i j|0} 1 np( 2( KW W ( ) 1) 2( L 1) p ) r i i j i j E( x x ) E( x )E( x ) {( i , j ):0 |i j| L} i j 1 Var( X ) np(2( KW W ( ) 1) ( 2 L 1) p ) r i j Beispiel: Für ein Alphabet mit vier gleich wahrscheinlichen Buchstaben A,T, C, G gilt: Var( AAA) 99 Var( ATG) 59 Var( AA) 21 Var( AT ) 13 Die folgenden Arbeiten präsentieren Approximations-Formeln für die Varianz von Texten, die durch Markov-Ketten generiert wurden: • Fousler & Karlin [1987] • Stuckle et al. [1990] • Kleffe & Borodowsky [1992] Die Grenzverteilung für die Zahl von Wortvorkommen im Markov-Modell haben • Prum et al. [1995] veröffentlicht. Exakte und approximative Formeln für den Erwartungswert, die Varianz und die Wahrscheinlichkeit von approximativen Wortvorkommen haben • Regnier & Szpankowski [1998] veröffentlicht. Bezeichnung: Für ein Wort W und eine Menge von Sequenzen bezeichnen wir mit nW(S) die Zahl der Vorkommen von W in S. Problem: Suche das Wort W der Länge L, das am häufigsten vorkommt (mit maximalem nW(S)). Lösung: Trivial: Zähle alle Worte der Länge L in S. Problem: Suche das Wort W der Länge L, das approximativ am häufigsten vorkommt. Hierbei erlaubt man bis zu k Fehler (mismatches). Lösung: • Waterman et al. [1984] • Galas et al. [1985] haben TTGACA und TATAAT als Promoter-Signale von E.coli identifiziert. Consensus-String-Problem (CSP): Gegeben eine Menge S={s1, ... , sn} von Sequenzen und eine ganze Zahl L, finde einen Median-String s der Länge L und einen Teilstring ti der Länge L für jede Sequenz si, so dass die folgende Summe der Abstände (Hamming-Distanz) minimal ist. n d i 1 H ( s, ti ) Lösung: Li et al. [1999] zeigten, dass CSP „NP-hard“ ist, und präsentierten ein PTAS (Polynomial Time Approximation Scheme). Das seltenste Dinukleotid in vielen Genomen ist CG. Es existieren jedoch häufig sogenannte CG-Inseln in der Nähe von Genen, wo CG relativ gehäuft vorkommt. Wie kann man feststellen, ob ein bestimmter Bereich mit einigen CGs eine CG-Insel ist? Dieses Problem ist mit dem folgenden Münzwurfproblem (Durbin et al. [1998]) verwandt: Ein Spieler hat zwei Münzen zur Verfügung, eine „normale“ Münze mit Wahrscheinlichkeit ½ für Kopf (0) und Zahl (1) und eine „gezinkte“ Münze mit Wahrscheinlichkeit ¾ für Kopf (1) und ¼ für Zahl (0). Der Spieler kann diese Münzen während des Spiels auswechseln, ohne dass es die Mitspieler erkennen können. Er wechselt jedoch selten (Wahrscheinlichkeit 0.1) wegen der Gefahr, doch erwischt zu werden. Sei x = x1x2....xn eine Folge von Münzwurfen ohne Vertauschen der Münzen: n 1 2n i 1 n 1 3k 3k P( x | gezinkt ) p( xi ) nk k n 4 4 4 i 1 n 3k 1 k n k 3 2 log 2 (3) 4n 2n P( x | normal ) p( xi ) k ist die Anzahl der Einsen (1) wurde wahrscheinlich mit der gezinkten Münze geworfen. HMM: • sei ein Alphabet. • Q sei eine Menge von Zuständen, die Symbole aus produzieren. • A = (aij) ist eine |Q|x|Q| Matrix mit Wahrscheinlichkeiten von Zustandsübergängen. • P = (pq()) ist eine |Q|x|| Matrix mit „Produktionswahrscheinlichkeiten“. Beispiel: Münzwürfe mit normaler und gezinkter Münze: • = { 0, 1} (Zahl oder Kopf). • Q = { normal, gezinkt}, je nachdem, mit welcher Münze geworfen wird. • anormal,normal = agezinkt, gezinkt = 0.9 und anormal, gezinkt = agezinkt, normal = 0.1. • pnormal(0) = ½ , pnormal(1) = ½, pgezinkt(0) = ¼ , pgezinkt(1) = ¾ . Ein Pfad q = q1q2...qn in einem HMM ist eine Folge von Zuständen, z.B., normal, gezinkt, normal, .... Die Wahrscheinlichkeit, dass eine Folge x = x1x2 ... xn von Münzwürfen durch einen Pfad q generiert wurde, ist n n n P( x | q) P( xi | qi ) P( qi | qi 1 ) aq0 ,q1 pqi ( xi )aqi ,qi 1 a0,1 pqi ( xi )ai ,i 1 i 1 i 1 i 1 wobei a0 und an+1 die fiktiven Start- und Endzustände „begin“ und „end“ sind. Das vorhergehende Model definiert die Wahrscheinlichkeit für eine gegebene Folge x von Münzwürfen und einen (bekannten) Pfad von Zuständen. Normalerweise kennt jedoch nur der Spieler den Pfad, der die Münzen wirft. Man spricht daher auch von einem „versteckten“ (hidden) Pfad. Dekodierungsproblem: Man finde einen optimalen Pfad q* = arg maxq P(x|q) für x, so dass P(x|q) maximiert wird. Idee: Man betrachte einen Präfix x1x2 ... xi+1 und man überlege, wie man den optimalen Pfad für diesen Präfix und einen beliebigen Status qi+1 rekursiv aus den optimalen Pfaden des Präfix x1x2 ... xi berechnen kann. Sei wq(i) die Wahrscheinlichkeit des wahrscheinlichsten Pfades für den Präfix x1x2 ... xi , der xi aus dem Zustand q produziert: wq (i 1) pq ( xi 1 ) max {wk (i )akq } kQ P( x | q* ) max {wk (n)ak ,end } Initialisierung: wbegin (0) 1 und wk (0) 0 kQ für k begin. Viterbi Algorithmus [1967] 1 normal 0 gezinkt 0 begin 1 end 0 0 1 0 1 1 0 1 0.45 0.2025 .091125 0.075 .016875 Die Berechnungen im Viterbi-Algorithmus werden in der Regel mit einer „logarithmischen Skala“ durchgeführt: Wq (i ) log( wq (i )) Wq (i 1) log( pq ( xi 1 )) max {Wk (i ) log( akq )} kQ Die Laufzeit des Viterbi-Algorithmus ist O(n|Q|). • Gene kodieren die Baupläne für den Aufbau der molekularen Bausteine (Proteine, RNA). Bei der Translation wird die in der mRNA gespeicherte Information übersetzt und der entsprechende Baustein (Protein) synthetisiert. Tyr Ala Arg Tyr Val Arg Thr Translation Bei der mRNA-Reifung und Splicing werden die Introns aus der mRNA herausgeschnitten. in Protein UACGCACGUUACGUGCGUACU mRNA-Reifung Bei der Transkription wird eine mRNA-Kopie (messenger RNA) des Gens erstellt. plus Splicing UACGCACGUUAGT..........AGCGUGCGUACU Transkription Transkriptionsfaktoren mRNA-Molekül ATGCGTGCAATGT..........AGGCACGCATGA TGACGCA CACGTG GGGCGG Promoter CCAAT TATA ATG Exon Intron Exon TGA Wie kann man die Gene im Genom finden? Man sucht statistisch nach charakteristischen Signalen (magischen Wörtern), die häufig in der Nähe eines Gens oder in einem Gen auftauchen und sonst selten. Man sucht zum Beispiel nach „Open Reading Frames“ (ORFs). Ein ORF startet mit einem Start-Kodon (ATG), endet mit einem von drei Stopp-Kodons (z.B. TGA) und es gibt kein StoppKodon dazwischen. Die Durchschnittsdifferenz in zufälliger DNA zwischen Stopp-Kodons ist: 64/3 = 21. Ein langes ORFs kann ein Indiz für ein potentielles Gen sein. In kodierenden und nicht-kodierenden Bereichen trifft man auf unterschiedliche KodonHäufigkeiten (Häufigkeiten der Kodons in einem Fenster einer bestimmten Größe). Am Anfang und am Ende von Introns treten gewisse Signale (magische) Worte auf. ATGCGTGCAATGT..........AGGCACGCATGA TGACGCA CACGTG GGGCGG Promoter CCAAT TATA ATG Exon Intron Exon TGA Wie kann man die Gene im Genom finden? Ähnlichkeitssuche: Gegeben ein noch nicht auf Gene untersuchtes DNA-Molekül. Man suche mit Hilfe von Alignment-Algorithmen nach Sequenzen im DNA-Molekül, die zu bekannten Genen ähnlich sind. Tyr Ala Arg Tyr Val Arg Thr Die Ähnlichkeitssuche (Alignment) kann jedoch auch von einem Genprodukt ausgehen. Translation in Protein UACGCACGUUACGUGCGUACU Ein solcher Ansatz wurde von Gelfand et al. 1996 veröffentlicht. mRNA-Reifung plus Splicing UACGCACGUUAGT..........AGCGUGCGUACU Die Methode wird als Spliced-Alignment- Transkription mRNA-Molekül Verfahren bezeichnet. ATGCGTGCAATGT..........AGGCACGCATGA TGACGCA CACGTG GGGCGG Promoter CCAAT TATA ATG Exon Intron Exon TGA Sei G = g1g2 ... gn ein String (das neue DNA-Molekül). Seien ferner B = gi gi+1 ... gj und B‘ = gi‘gi‘+1 ... gi‘ Teilstrings von G. Wir schreiben B B‘ , falls j < i‘ ist. Eine Folge = (B1 , B2 , . . . , Bs) von Teilstrings von G wird dann als Kette bezeichnet, wenn gilt: B1 B2 ... Bs Mit * = B1 * B2 * ... * Bs bezeichnen wir die Konkatenation der Bis. Sei T = t1t2 ... tm eine Sequenz, die sogenannte Target-Sequenz (in unserem Beispiel die mRNA). Sei ferner E = { B1, B2, ... ,Bp } eine Menge von Teilstrings von G. Die Menge E erhält man, in dem man alle potentiellen Exons von G berechnet. UACGCACGUUACGUGCGUACU mRNA-Reifung plus Splicing UACGCACGUUAGT..........AGCGUGCGUACU Transkription mRNA-Molekül ATGCGTGCAATGT..........AGGCACGCATGA TGACGCA CACGTG GGGCGG Promoter CCAAT TATA ATG Exon Intron Exon TGA Spliced-Alignment-Problem: Gegeben G, T und E = { B1, B2, ... Bp }, bestimme aus allen möglichen Ketten von E eine Kette von Strings in E mit optimalem Alignment, d.h., der Score D(*, T) von dem Alignment zwischen der Konkatenation * der Strings von und dem String T ist optimal (maximal). Komplement der mRNA ATCAGTGCAATGCAGCCATGA T = t1t2 ... tm E = { B1, B2, ... Bp } ATCAGTGCAATGT..........AGGCAGCCATGA Exon Intron Exon G Spliced-Alignment-Problem: Gegeben G, T und E = { B1, B2, ... Bp }, bestimme aus allen möglichen Ketten von E eine Kette von Strings in E mit optimalem Alignment, d.h., der Score D(*, T) von dem Alignment zwischen der Konkatenation * der Strings von und dem String T ist optimal (maximal). Wir benötigen die folgenden Bezeichnungen: Sei B = gf ...gi ... gl ein Block aus E. • first(B) = f • last(B) = l • size(B) = l – f+1 • E(i) = {Bk E| last(Bk) < i } • B(i) = gf ... gi Sei = (B1 , ... , Bk , ... , Bt) eine Kette, so dass Bk die Position i (gi) enthält. • *(i) = B1 * B2 * ... * Bk-1 * Bk(i) Sei D(i, j, k ) max alleKettendieBk enthalten D( * (i ), T ( j )) Spliced-Alignment-Problem: Gegeben G, T und E = { B1, B2, ... Bp }, bestimme aus allen möglichen Ketten von E eine Kette von Strings in E mit optimalem Alignment, d.h., der Score D(*, T) von dem Alignment zwischen der Konkatenation * der Strings von und dem String T ist optimal (maximal). Um das Spliced-Alignment-Problem zu lösen, muß man das folgende Maximum bestimmen: max D (last ( Bk ) , m, k ) k Die folgende Rekursion ermöglicht die Berechnung dieses Maximums: D (i , j , k ) D(i 1, j 1, k ) d ( gi , t j ) i first(Bk) D(i 1, j, k ) d ( gi ,) D (i, j 1, k ) d ( , t j ) max D(last ( Bl ), j 1, l ) d ( gi , t j ) i first(Bk) max D(last ( Bl ), j, l ) d ( gi ,) i = first(Bk) Bl B ( i ) Bl B ( i ) i = first(Bk)