Redisposizione Genomica Gotzone Ortega Bioinformatica 2008/2009 INTRODUZIONE Due genomi hanno gli stessi geni ma in diverso ordine Sono diversi Ordinare uno dei genomi Sono uguali A {x, y, z} B {x, z, y} A {x, y, z} B {x, y, z} Capire come i genomi hanno evoluto. “We know, for example, that human and mouse have a common ancestor. If we can transform the genome of a mouse into the genome of a human, then somewhere in the process, we should form the genome of our common ancestor” Anne Bergeron. GENI, CROMOSOME e GENOMI Gene: Si rappresenta con 2 estremi Coda = Tail = estremo 3' = at Testa = Head = estremo 5' = ah Estremi adiacenti = adiacenze {ah, bt}, {ah, bh}, {at, bt}, {at, bh} Estremi no adiacenti = telomeri {ah}, {at} Cromosoma: Si rappresentano le adiacenze e i telomeri come vertici e si uniscono. Un cromosoma è un componente del grafo Genoma: Il grafo GENI, CROMOSOME e GENOMI Esempio: A={{at}, {ah, ct}, {ch, dh}, {dt}, {bh, et}, {eh, bt}, {ft}, {fh, gt}, {gh}} 7 geni = {a, b, c, d, e, f, g} VERTICI Grado 1 {p} = esterno Grado 2 {p, q} = interno COMPONENTI DEL GRAFO Secondo il tipo di vertici Circolare = Ciclo Lineare = cammino Secondo il numero di lati Pari Dispari OPERAZIONE “DCJ” DCJ = “Double Cut and Join” “Doppio taglio e Unione” Sopra 2 vertici di grado 1 o 2 3 modi: (a) u={p, q}, v={r, s} {p, r}, {s, q} | {p, s}, {q, r} (b) u={p, q}, v={r} {p, r}, {q} | {q, r}, {p} (c) u={q}, v={r} {q, r} * OPERAZIONI Vertici in diversi cammini Vertici nello stesso cammino Traslocazione Identità Fusione Fisione Inversione Escisione Integrazione Circolarizzazione Linearizzacione Vertici in cicli Inversione Fusione Fisione VERTICI IN DIVERSI CAMMINI Traslocazione Identità Fusione Fisione VERTICI NELLO STESSO CAMMINO Investimento Scissione Integrazione Circolarizzazione Linearizzazione VERTICI IN CICLI Investimento Fusione Fisione DISTANZA DCJ dDCJ (A, B) = Distanza DCJ tra A e B. Sequenza più corta di operazioni DCJ per trasformare A in B. Esempio: A = {{at}, {ah, ct}, {ch, dh}, {dt}, {bh, et}, {eh, bt}, {ft}, {fh, gt}, {gh}} {{at}, {{et}, {{et}, {{et}, B = {{et}, {ah, {ah, {ah, {ah, {ah, bt}, bt}, bt}, bt}, bt}, {ch, {ch, {ch, {ch, {ch, dh}, {dt}, dh}, {dt}, dt}, {dh}, dt}, {dh}, dt}, {dh}, {bh, {bh, {bh, {bh, {bh, et}, at}, at}, at}, at}, -Distanza DCJ tra A e B è dDCJ(A,B) = 5 {eh, ct}, {ft}, {fh, gt}, {gh}} {eh, ct}, {ft}, {fh, gt}, {gh}} {eh, ct}, {ft}, {fh, gt}, {gh}} {eh}, {ct}, {ft}, {fh, gt}, {gh}} {eh}, {ct}, {ft, gh}, {fh, gt}} GRAFO DI ADIACENZA A=B? Se A<>B, trasformare A in B. GRAFO DI ADIACENZA Esempio: A = {{at}, {ah, ct}, {ch, dh}, {dt}, {bh, et}, {eh, bt}, {ft}, {fh, gt}, {gh}} B = {{ah, bt}, {bh, at}, {ct}, {ch, dt}, {dh}, {et}, {eh}, {fh, gt} , {gh, ft}} Algoritmo 1 (Costruzione del grafo) 1: 2: 3: 4: 5: 6: 7: 8: Creare un vertice por ogni adiacenza e ogni telomero in genomi A e B for each adiacenzia {p, q} nel genoma A do creare un ramo collegando {p, q} con il vertice del genoma B in ciu si trova p creare un ramo collegando {p, q} con il vertice del genoma B in cui si trova q end for for each telomero {p} del genoma A do creare un ramo collegando {p} con il vertice del genoma B in cui si trova p end for A=B? A e B due genomi con lo stesso insieme di N geni. A = B N = C + I/2 (C = nº di cicli; I = nº di cammini dispari) C=1 I=2 7=1+2/2 C=5 I= 4 7=5+4/2 TRASFORMARE A IN B Algoritmo 2 (Redisposizione) 1: for each adiacenza {p, q} nel genoma B do 2: c’è u, un elemento del genoma A dove si trova p 3: c’è v, un elemento del genoma A dove si trova q 4: if u <> v then 5: sostituire u e v in A per {p, q} y (u \ {p}) U (v \ {q}) 6: end if 7: end for 8: for each telomero {p} nel genoma B do 9: c’è u, un elemento del genoma A dove si trova p 10: if u è una adiacenza then 11: sostituire u in A por {p} y (u \ {p}) 12: end if 13: end for TRASFORMARE A IN B Esempio: Algoritmo 2 (Redisposizione) 1: for each adiacenza {p, q} nel genoma B do 2: c’è u, un elemento del genoma A dove si trova p 3: c’è v, un elemento del genoma A dove si trova q 4: if u <> v then 5: sostituire u e v in A per {p, q} y (u \ {p}) U (v \ {q}) 6: end if 7: end for 8: for each telomero {p} nel genoma B do 9: c’è u, un elemento del genoma A dove si trova p 10: if u è una adiacenza then 11: sostituire u in A por {p} y (u \ {p}) 12: end if 13: end for TRASFORMARE A IN B Esempio: Algoritmo 2 (Redisposizione) 1: for each adiacenza {p, q} nel genoma B do 2: c’è u, un elemento del genoma A dove si trova p 3: c’è v, un elemento del genoma A dove si trova q 4: if u <> v then 5: sostituire u e v in A per {p, q} y (u \ {p}) U (v \ {q}) 6: end if 7: end for 8: for each telomero {p} nel genoma B do 9: c’è u, un elemento del genoma A dove si trova p 10: if u è una adiacenza then 11: sostituire u in A por {p} y (u \ {p}) 12: end if 13: end for