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”