Assegnamento di Geni Ortologhi attraverso il Riarrangiamento Genomico Bioinformatica A.A. 2008-2009 Selene Centi Carlo Alberto Fabbretti Introduzione Ortologhi, paraloghi, speciazione, omologia Mutazioni locali, riarrangiamenti globali Costruzione famiglie di geni omologhi (BLAST) Problematiche nel calcolo della distanza Un algoritmo euristico per SRDD Risultati sperimentali Introduzione • ORTOLOGHI geni, in diverse specie, che si sono evoluti dallo stesso gene nell’ultimo antenato comune (evoluzione) • PARALOGHI geni duplicati da un singolo gene sullo stesso genoma(inparalog, outparalog) Introduzione • SPECIAZIONE processo evolutivo grazie al quale si formano nuove specie da quelle preesistenti (antenato comune) • OMOLOGHI geni che hanno un’origine evolutiva comune (es. ala uccello e pinna anteriore foca) Introduzione Introduzione L’evoluzione molecolare procede in due differenti modi: Mutazioni locali Riarrangiamento globale Inserzione Inversione 53241 532461 1 2 3 -6 -5 -4 7 8 9 Trasposizione Delezione 53241 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 3241 6 7 8 9 1 2 3 4 5 Traslocazione 1 2 3 4 5 6 1 2 3 11 12 13 7 8 9 10 11 12 13 Introduzione Scopo: cercare geni ortologhi • Lavori precedenti -> mutazioni locali. Misurate da assegnamento omology-based • Articolo -> mutazioni locali (geni) + riarrangiamento globale (genomi)(inversione) misurate con il minimo numero di eventi SOAR Sistema SOAR: Costruisce famiglie di geni da un genoma annotato usando la ricerca basata sull’omologia (BLASTp) Assegna ortologia usando un algoritmo euristico per SRDD riarrangiando un genoma in un altro con il più piccolo numero di eventi di riarrangiamento(MCP,MCD) Due genomi con geni annotati Costruisce famiglie di geni omologhi: 1- comparazione tutti-verso-tutti con BLASTp 2- chaining HSPs Assegna ortologia con l’algoritmo SRDD: 1- applicando tre regole (sub)ottimali 2- applicando il minimum common partition 3- maximum cycle decomposition Lista di coppie di geni ortologhi SOAR: Costruire famiglie di geni omologhi BLASTp Programma euristico per cercare omologia Input-> sequenza, valore T (11-15) Output -> sequenze simili alla sequenza in input SOAR: Costruire famiglie di geni omologhi BLASTp, funzionamento: 1. 2. 3. 4. Dalla sequenza presa in input si estraggono parole di w lettere Per ogni parola viene creata una lista di parole di w lettere (il cui punteggio di similarità,calcolato usando matrici, deve essere almeno pari a T) Nel DB cerca corrispondenze esatte con almeno una parola creata al passo 2 Si prendono in considerazione i caratteri adiacenti alla parola (sia a dx che a sx). Per ogni carattere aggiunto si ricalcola il punteggio con la sequenza del DB e fino a che questo aumenta si aggiungono caratteri alla parola SOAR: Costruire famiglie di geni omologhi BLASTp, esempio: SOAR: Costruire famiglie di geni omologhi BLASTp, funzionamento: 5. Gli HSP accettati sono quelli che sono compatibili con il 50% della stringa in input 6. Non tutti gli allineamenti prodotti hanno rilevanza biologica. BLAST aggiunge all’autput un E-Value che indica quanto è probabile che ci sia correlazione biologica fra due sequenze. 1є – 20 <E-value< 2 SOAR: Costruire famiglie di geni omologhi Risultati: Ogni insieme di geni omologhi dello stesso genoma costituiscono una famiglia di geni I geni senza controparte omologa nell’altro genoma saranno rimossi dalla lista dei geni I geni rimanenti sono riordinati sul genoma in accordo alle loro vecchie locazioni Genomi di uguale contenuto e tutti i geni derivano dai geni del comune genoma ancestrale Riarrangiamento globale: inversione Esempio inversione G = +c-b+a+b H = +a-b-b-c Riarrangiamento globale: inversione Perché sono importanti gli eventi di riarrangiamento? In G la prima copia del gene b Potrebbe corrispondere alla seconda copia del gene b in H PROBLEMA: come ordinare una sequenza di geni (con duplicati) in un’altra con il minimo numero di inversioni? Terminologia • • • • • A alfabeto finito di simboli +,- rappresentano l’orientamento di ogni simbolo Un simbolo dell’alfabeto rappresenta un gene Un genoma è una sequenza di simboli segnati Singleton è un gene che è l’unico membro della sua famiglia • Duplicated è un gene che non è l’unico membro della sua famiglia • I genomi G e H sono related se hanno lo stesso contenuto genomico (ugual numero di famiglie della stessa dimensione) Terminologia Operazione di inversione ρ (i,j) G = (g1…gi-1gigi+1…gj-1gjgj+1…gn) G ∙ ρ (i,j) = (g1…gi-1-gj-gj-1…-gi+1-gigj+1…gn) Reversal distance Dati due genomi G e H Reversal distance problem trovare il numero minimo di inversioni ρ1,ρ2,…ρt tali che G ∙ (ρ1, ρ2,… ρt) = H Reversal distance d(G,H) = t Reversal distance Reversal distance Se i geni di G e H sono duplicated - M insieme di tutti i possili assegnamenti ortologhi - mєM - genoma G Gm dopo l’assegnamento dell’ortologia m Lemma Dati i genomi G e H, d(G,H) = minmєMd(Gm,Hm) SRDD è NP-Arduo!!!![3] Una prima approssimazione I primi e gli ultimi geni di due genomi related sono identici e singleton positivi I geni con segno vengono rappresentati: gihgit se gi positivo G = (g1g2…gn) gitgih se gi negativo Una prima approssimazione Partial graph G(V,E) V = { gis| 1≤ i ≤n, sЄ {h,t } } E = link che collegano due nodi in V che corrispondono a simboli adiacenti in G h e gt eccetto g i i ~ V= insieme di simboli distinti in V dove gih = gjh se gi e gj appartengono alla stessa famiglia fG(v~1,v~ 2) = numero di collegamenti in E che collegano due nodi distinti in G(V,E) Una prima approssimazione Esempio: G = +c-a-b+a+d H = +c+a+b+a+d Grafo parziale gihgit se gi positivo G = (g1g2…gn) gitgih se gi negativo ch ct at ah bt bh ah at dh dt ch ct ah bh bt ah at dh dt at Una prima approssimazione ~~ ~~ ~ ,v~ }є ~V {v 1 2 x se x>0 δ (x) = 0 altrimenti br(G,H) = 2 d(G,H) =1 Algoritmo Heur-SRDD(G, H) 1.Applica le tre regole (sub)ottimali i. Lemma 1 ii. Lemma 2 iii. Lemma 3 2.Esegui MCP 3.Esegui MCD 4.Ordina G in H Lemma 1 G ... gi-1 H ... hl G' ... gi-1 H' ... hl gi ... gi+1 hhj-1j-1 gi ... hhj j gi+1 hj-1 ... ... hj gk ... hhj+1 j+1 ... gk ... hj+1 ... d (G, H) ≤ d (G', H') ≤ d (G, H)+1 Algoritmo Heur-SRDD(G, H) 1.Applica le tre regole (sub)ottimali i. Lemma 1 ii. Lemma 2 iii. Lemma 3 2.Esegui MCP 3.Esegui MCD 4.Ordina G in H Lemma 2 G ... gi-1 gi ... gj-1 gj ... H ... hk-1 hk hkk-1 ... hl-1 hl hll-1 ... gj-1 gj ... G' duplicati singleton ... gi-1 gi ... d (G, H) = d (G', H') H' ... hl hl-1 ... hk hk-1 ... Algoritmo Heur-SRDD(G, H) 1.Applica le tre regole (sub)ottimali i. Lemma 1 ii. Lemma 2 iii. Lemma 3 2.Esegui MCP 3.Esegui MCD 4.Ordina G in H Formula H-P: δd(G,H) (G,H) = b(G,H) – c(G,H) + h(G,H) + f(G,H) Lemma 3 G ... gi-1 H ... hl G' ... gi-1 H' ... gi ... gi ... hj-1 hj ... gk ... hj+1 j ... gk ... δ (G,H) = δ (G',H') hl ... hj-1 hj ... Algoritmo Heur-SRDD(G, H) 1.Applica le tre regole (sub)ottimali i. Lemma 1 ii. Lemma 2 iii. Lemma 3 2.Esegui MCP 3.Esegui MCD 4.Ordina G in H Minimum Common Partition (MCP) G segmento partizione H Minimum Common Partition (MCP) Rappresentazione contratta G H Sia L(G,H) la cardinalità della MCP ( = 3 in questo caso ) ceiling( (L(G,H) -1))/2) ≤ d(G,H) ≤ L(G,H) - 1 MCP è NP-complesso !!![1] Approx-MCP G H Single Pair match match Non breakpoint Breakpoint Sia M una funzione che assegna geni di G a geni di H Sia b il numero di breakpoint in questo assegnamento L(G,H) = b Approx-MCP G H Pair match graph P(V,E) Approx-MCP Il problema di trovare l'insieme massimale di elementi indipendenti (IS) di P(V,E) è equivalente al MCP(G,H) Il problema della copertura di vertici (VC) di P(V,E) è il complemento di IS Si può calcolare MCP utilizzando un algoritmo approssimato e noto per il calcolo di VC l ≤ ( r-1 ) (|V| - n ) + r (L(G,H)) l: dimensione della common partition trovata da ApproxMCP |V|: numero di vertici del grafo P n: lunghezza genoma G r: rate approssimazione di VC Approx-MCP (ricapitolando) /* prende in input due genomi G e H simili */ 1.Costruisce il grafo dei pair match P(V,E) per G e H 2.Trova una copertura di vertici C approssimata per P 3.Identifica i segmenti basandosi sui pair match di V – C 4.Restituisce tutti i segmenti come una common partition di G e H Algoritmo Heur-SRDD(G, H) 1.Applica le tre regole (sub)ottimali i. Lemma 1 ii. Lemma 2 iii. Lemma 3 2.Esegui MCP 3.Esegui MCD 4.Ordina G in H Maximum Cycle Decomposition Rappresentazione gene: +a → ah at - a → at ah G H Grafo completo G(V, E) ch ct at ah b t bh ah at dh dt +c -a -b +a +d +c +a +b +a +d ch ct ah at bh bt ah at dh dt MCD: 1.Ogni vertice appartiene esattamente a un ciclo 2.I due vertici che rappresentano testa e coda di un gene devono essere collegati ai rispettivi vertici di un qualche gene nell'altro genoma 3.Gli archi si alternano tra vertici dello stesso genoma e non Maximum Cycle Decomposition Dati due genomi parenti G e H si ha che: n - 1 - C ≤ d(G, H) ≤ n – 1 – C4 n: lunghezza di G C: numero di cicli nella MCD C4: numero di cicli di dimensione 4 della decomposizione che ne presenta di più MCD è NP-complesso !!![2] Greedy-MCD /* prende in input due genomi G e H simili */ 1.Costruisce il grafo completo G(V,E) per G e H 2.while V is not empty do a. Seleziona un vertice da V b. Trova il ciclo più breve che passa per questo vertice e che non violi i vincoli c. Rimuovi i vertici del ciclo 3.Restituisci i cicli trovati come cicle decomposition Algoritmo Heur-SRDD(G, H) 1.Applica le tre regole (sub)ottimali i. Lemma 1 ii. Lemma 2 iii. Lemma 3 2.Esegui MCP 3.Esegui MCD 4.Ordina G in H Risultati sperimentali Riferimenti [1]A. Goldstein, P. Kolman, and J. Zheng, “Minimum Common String Partition Problem: Hardness and Approximations,” Proc. 15th Int’l Symp. Algorithms and Computation (ISAAC), pp. 473484,2004. [2]Z. Fu, “Assignment of Orthologous Genes for Multichromosomal Genomes Using Genome Rearrangement” UCR CS technicalreport, 2004. [3]X Chen J Zheng, Z Fu, P Nan, Y Zhong, S Lonardi, T Jiang, “Assignment of orthologous genes via genome rearrangement”