Fragment Assembly of DNA
Esempi, modelli e
soluzioni
I.Arduini, G.Caravagna, M.Pavesi
Indice
Storia
Problema ed esempi
Modelli
Algoritmi
Euristiche
Assemblatori in pratica
Le tappe
Phage Phi-x174: 5kb, 1977
Bacteriophage lambda: 50kb, 1982
Haemophilius influenzae: 1.9Mb,
1995
Drosophila: 180Mb, 2000
Human: 3B, 2001
La storia
Tappe dello shotgun sequencing
80’s
• Si sequenziavano 5/10 kbp
<90
• Si sequenziavano circa 40 kbp
1995 (H. influenzae)
• Si supera il limite massimo supposto di 50 kbp
• Primo programma efficiente
La storia (I)
Opinioni di G.Myers
“I risultati del 1995 hanno ispirato me e
J.Webber a proporre l’uso dello shotgun
sequencing per sequenziare il genoma
umano”
US National Institutes of Health non li
finanzia
• Maggio 1998: nasce Celera
La storia (II)
Celera
Obiettivi
• 1999: Drosophila
• 2001: Genoma umano
• Costi
• $ 0.01 per ogni base
• $ 130M per ogni anno di lavoro (≈3)
• $ 90M per software ed hardware
La storia (III)
• 26 Giugno 2000
• Celera Genomics annuncia il completamento
del primo assembly del genoma umano
• HGSC annuncia di aver completato una prima
bozza dello stesso progetto
La storia (IV)
• Febbraio 2001
• I due team pubblicano contemporaneamente
le loro analisi
• comprovare i loro risultati
• ridurre le critiche
• dimostrare uno scopo comune
Celera v.s. HGP
Il problema
Sequenziare lunghi filamenti di DNA
1. Problema biologico
2. Problema informatico
Il problema biologico
Incapacità tecnica delle macchine
Frammentazione dei filamenti
Shotgun
Sequencing dei frammenti
Gel elettroforesi
Limiti tecnologici
• Metodi Gilbert-Sanger
• 500
1000 basi
• G.H. ≈ 3B di basi
ABI PRISM® 3100
Genetic Analyzer
Frammentazione
Clonazione
Virus
Shotgun
Enzima
Gel Elettroforesi
Tecnica che permette di separare frammenti
di acido nucleico, in funzione del peso
molecolare.
Il problema informatico
500-2000 frammenti di lunghezza
tra le 200 e le 700 basi.
Riassemblare i frammenti
Riassemblare i frammenti
Esempi
Caso ideale
Complicazioni
Modelli
Algoritmi
Approccio pratico
Caso ideale - frammenti
A C C G T
C G T G C
T T A C
T A C C G T
Caso ideale - overlap
A C C G T
C G T G C
T T A C
T A C C G T
Caso ideale – allineamento
- - A C C G T - -
- - - - C G T G C
T T A C - - - - - T A C C G T - -
T T A C C G T G C
Complicazioni (caso reale)
Errori
Base call errors (BCE)
Contaminazione
Chimere
Orientamento sconosciuto
Mancanza di copertura
Ripetizioni
Dirette
Inverse
BCE - frammenti
Errore di lettura (biologico)
A C C G T
C G T G C
T T A C
T G C C G T
BCE - overlap
Errore di lettura (biologico)
A C C G T
C G T G C
T T A C
T G C C G T
BCE - layout
- - A C C G T - -
- - - - C G T G C
T T A C - - - - - T G C C G T - -
T T ? C C G T G C
BCE - soluzione
A
-
Selezione per
maggioranza
•2A
A
•1G
•1–
G
?
Vince la A !!!
BCE – stringa di consenso
- - A C C G T - -
- - - - C G T G C
T T A C - - - - - T G C C G T - -
T T A C C G T G C
Chimere
Fusione di due sottosequenze non
contigue in un unico frammento
DNA
frammento
Chimere
Problema biologico
Durante la clonazione
• Contaminazione dall’ospite
• DNA Arrays
Soluzione
Preprocessing dell’input
Chimere - frammenti
A C C G T
C G T G C
T A C C G T
T T A T G C
Chimere - overlap
A C C G T
C G T G C
T A C C G T
T T A T G C
TTATGC
TTA
TGC
Chimere – consenso
- - A C C G T - -
- - - - C G T G C
T T A - - - - - -
T T A C C G T G C
T T A - - - T G C
Contaminazioni
Le chimere sono
contaminazioni
Il processo di
clonazione “sporca”
i filamenti con
pezzi di genoma
dell’organismo
ospite
DNA da clonare e dell’ospite
Processo di
clonazione
Unica soluzione il
preprocessing
DNA “sporco” e quello originale
Orientamento Sconosciuto
I frammenti clonati provengono da
una qualsiasi delle sequenze
In principio non sappiamo da quale
Con n frammenti abbiamo 2n(n-1)
coppie considerando le 2 eliche
ACTG
reverse
GTCA
complement
CAGT
Orientamento - frammenti
C A C G T
A C T A C G
G T A C T
Orientamento – quale elica?
C A C G T
A C G T G
A C T A C G
C G T A G T
G T A C T
A G T A C
1. genero tutti i possibili frammenti
2. ne scelgo alcuni (come?)
Orientamento – layout
Ori.
C A C G T - - - - - - C G T A G T - -
- - - - - A G T A C
C A C G T A G T A C
Copertura
La stringa target si riassembla da
dei frammenti
1. Quanti frammenti vogliamo?
• abbastanza
2. Quanti sono abbastanza?
• non lo sappiamo (non calcolabile)
3. Possono non bastare?
• sì
?
Copertura
Problema biologico
Il sampling è un processo casuale
Buon Principio
Più frammenti abbiamo, più è sicuro il
consenso basato sulla maggioranza
quindi
Quanti: tanti
Quali: non si sa
Ripetizioni
Sequenze che compaiono 2 o più
volte nella sequenza target
x
x
DNA
Dato un frammento contenente x, in
quale punto del target lo assemblo?
sono sempre “pericolose” ?
Ripetizioni – quelle facili
Quelle facili
x
x
DNA
frammenti
I segmenti
e
disambiguano
Facili quando sono contenute
totalmente nei frammenti
Ripetizioni – quelle difficili
Quelle difficili
x
x
DNA
frammenti
NO
OK
i frammenti collassano !
Difficili se si spezza una ripetizione
Ripetizioni difficili – XXX
frammenti
A
x
B
x
C
x
D
DNA
frammenti
A
x
C
x
B
x
D
consenso
Ripetizioni difficili – XYXY
frammenti
A
x
B
y
C
x
D
y
E
DNA
frammenti
A
x
D
y
C
x
B
y
E
consenso
Ripetizioni – dirette/inverse
Abbiamo visto quelle dirette
Facili
Difficili
Ce ne sono altre?
x
Quelle inverse
Facili
Difficili
x
Ruota 180°
x
x
Modelli
SCS (Shortest Common Superstring)
RECONSTRUCTION
MULTICONTIG
Nessuno risolve i problemi biologici
Chimere
Contaminazione
SCS
Il problema:
Data una collezione F di stringhe
Trovare la più breve stringa S tale che
per ogni f appartanente ad F, S sia una
superstringa di f.
SCS (II)
In biologia:
La collezione F è l’insieme di frammenti
• orientati
S è la sequenza del DNA della molecola
target
SCS (III)
Limiti:
S deve essere una superstringa
perfetta
• Non tiene conto degli errori
Bisogna conoscere l’orientamento
• Quasi sempre impossibile
La superstringa trovata potrebbe non
essere la soluzione corretta
• Problema delle ripetizioni
SCS (IV)
In conclusione:
Il problema SCS è NP-hard
Esistono algoritmi di approssimazione
Non sono interessanti
• Limiti del modello
RECONSTRUCTION
Il problema:
Dati
• una collezione F di stringhe
• Un margine di errore ε, 0<ε<1
Trovare la più breve stringa S tale che
per ogni f appartanente ad F, sia
• Min(ds(f,S),ds(-f,S))<= ε|f|
RECONSTRUCTION (II)
Min(ds(f,S),ds(-f,S))<= ε|f|
ds è la substring edit distance
• Edit distance ignorando cancellazioni alle estremità
della seconda sequenza.
• ds(a,b)= min d(a,s)
• Dove s è una qualsiasi sottostringa di b
ε è il livello di errore tollerato
|f| è la lunghezza della stringa f
Cosa significa tutto questo?
RECONSTRUCTION (III)
Cosa significa tutto questo?
Errore tollerato ε per ogni base.
• ε=0.05 significa che sono ammessi 5 errori
ogni 100 basi.
Cerco una stringa S
• di dimensioni minime
• ogni frammento (o inverso) è sottostringa
di S con margine ε.
RECONSTRUCTION (IV)
Vantaggi:
Tiene conto degli errori
Svantaggi:
Non risolve il problema delle chimere
Il problema è ancora NP-hard
• Contiene SCS come caso particolare con
ε =0
MULTICONTIG
Introduce il concetto di good linkage
Def: good linkage
Misura del livello di sovrapposizione
di frammenti
--TAATG
TGTAA--
Livello di collegamento: 3
MULTICONTIG (PRO)
PRO
Errori (Base Call Errors)
Orientamento
Mancanza di copertura
Ripetizioni?
MULTICONTIG (CONTRO)
CONTRO
Non sfrutta le informazioni relative alla
dimensione della molecola target
NP-hard
• Cammini Hamiltoniani
Ripetizioni?
MULTICONTIG (Def. I)
F : collezione di frammenti
L : allineamento multiplo dei
frammenti (Layout)
T G T A A - - - - - - T A A T G - - -
- - - - - - G T A C
MULTICONTIG (Def. II)
Numerazione delle colonne
Per ogni frammento f si l(f) e r(f)
Il valore di l e r dipende dalla
colonna
l(f1)=1
r(f1)=1
1 2 3 4 5 6 7 8 9 10
f1
T G T A A - - - - - - T A A T G - - - - - - - - G T A C
MULTICONTIG (Def. III)
|f|=r(f) - l(f) + 1
Overlap [x..y]:
intersezione [l(f)..r(f)] e [l(g)..r(g)]
Nonlink: se un altro frammento
contiene propriamente [x..y]
Link: altrimenti
Weakest link: la più piccola
dimensione dei link della collezione
MULTICONTIG (VII)
T-contig
Un layout L è un t-contig se il suo
weakest link ha dimensione t
Una collezione F ammette t-contig se è
possibile costruire un t-contig con i suoi
frammenti
MULTICONTIG
(formulazione error-free)
PROBLEMA: Multicontig
INPUT
F, collezione di stringhe
t≥0, intero
OUTPUT
Una partizione di F nel minimo numero
di sottocollezioni Ci , 1≤i≤k, tale che
ogni Ci ammetta un t-contig
MULTICONTIG (esempio)
F={GTAC,TAATG,TGTAA}
t=3
T G T A A - -
G T A C
- - T A A T G
t=2
- - - T G T A A
T A A T G - - -
t=1
T G T A A - - - - - - T A A T G - - - - - - - - G T A C
G T A C
MULTICONTIG (errori)
Si associa a L una sequenza di consenso
S
Immagine di f nel consenso: S[l(f)..r(f)]
Tolleranza di errore: e
e-consenso: S è un e consenso per
questo contig quando la distanza di edit
fra ciascuno frammento allineato f e la
sua immagine nel consenso è al più e|f|.
MULTICONTIG
(formulazione)
PROBLEMA: Multicontig
INPUT
F, collezione di stringhe
t≥0, intero
0≤e≤1, tolleranza di errore
OUTPUT
Una partizione di F nel minimo numero di
sottocollezioni Ci , 1≤i≤k, tale che ogni Ci
ammetta un t-contig con un e-consenso
MULTICONTIG
(complessità)
Np-arduo
Anche nel caso error-free e
orientamento noto
Contiene una istanza di cammino
hamiltoniano
Indice Algoritmi
Rappresentare gli Overlap
Overlap Multigraph
Superstringhe e cammini
SCS come cammini su grafi
Algoritmo Greedy
Sottografi aciclici
Rappresentare gli
Overlap(I)
Dati due frammenti
f1= TACGAA
f2= AACA
Quanti modi ci sono di sovrapporli?
• t=2
TACG AA
AA CA
t
f1
t
• t=1
TACGA A
A ACA
• t=0
TACGAA
t
AACA
f2
Ordinamento
f
su un grafo
f2 f f1
Rappresentare gli
Overlap(II)
F={TACGA, ACCC, CTAAAG, GACA}
Grafo
Escludendo da subito le sovrapposizioni nulle
(concatenazioni di frammenti)
TACGA
ACCC
CTAAAG
GACA
Rappresentare gli
Overlap(III)
TACGA
ACCC
CTAAAG
GACA
TACGA
ACCC
ACCC
GACA
CTAAAG
ACCC
Overlap Multigraph (I)
OM(F)=(F,A)
I nodi rappresentano i frammenti
(a,b), con peso t≥0 A suffix(a,
t) = prefix(b, t)
t
prefix(b,t)
a
b
a
t
b
suffix(a,t)
t=2
a
TAGC AA
AA GC
TAGCAA
b
2
AAGC
Overlap Multigraph (II)
Raffinamenti possibili:
Elevato numero di nodi n
Elevato numero di archi
• n2 solo per t=0
Valore di soglia su t
• Eliminare gli overlap “troppo deboli”
• Poco significativi
• Errori?
Superstringhe e cammini
I cammini in un OM rappresentano
un allineamento multiplo.
La sequenza di consenso è una
superstringa comune ai frammenti
del cammino
Non necessariamente la più corta.
Superstringhe e
cammini(II)
Cammini come sequenze di archi
Più di un arco tra due nodi
TACG AA
AA CA
t
TACGA A
A ACA
2
t
TAGCAA
1
AAGC
0
TACGAA
t
AACA
n overlap tra due frammenti
generano n cammini fra due
nodi
Superstringhe e
cammini(III)
Overlap multigraph
Quanti cammini?
ACCC
1
TACGA
2
1
1
CTAAAG
1
GACA
Superstringhe e
cammini(III)
ACCC
1
TACGA
2
1
1
CTAAAG
1
TACGA--------------ACCC--------------CTAAAG--------------GACA
TACGACCCTAAAGACA
GACA
Superstringhe e
cammini(III)
ACCC
1
TACGA
2
1
1
CTAAAG
1
TACGA------------GACA-------------ACCC-------------CTAAAG
TACGACACCCTAAAG
GACA
consenso
più corto
Considerazioni (I)
Come scegliere un cammino?
Due modi:
Senza regole
Massimizzo S pesi
CS-Problem
SCS-Problem
Common Superstring
Shortest Common
Superstring
Considerazioni (II)
Ma in fondo, quali cammini
vogliamo?
Hamiltonian Path (HAM)
HAM
Un cammino in un grafo non orientato
che visita tutti i vertici una e una sola
volta
HAM NP-C
Overlap Graph (OG)
Vogliamo cammini di peso massimo
Eliminiamo
Tra archi paralleli quelli meno pesanti
2
TAGCAA
1
AAGC
0
TAGCAA
2
AAGC
L’Algoritmo
Un tentativo “greedy” per calcolare
Cammino di peso massimo sull’ OG
IDEA
Scegliere, al passo i-esimo, l’arco di peso massimo
tra quelli non ancora attraversati.
Questo arco non deve interferire con il cammino
HAM che stavamo costruendo al passo (i-1)-esimo
Ordinamento decrescente degli archi rispetto ai pesi
L’Algoritmo: terminazione
OG è completo
Tra due nodi esiste sempre un arco
Se |F| = n , allora ci fermiamo quando il cammino
è lungo (n-1) nodi.
Il cammino calcolato toccherà tutti i nodi del grafo.
L’Algoritmo: variazioni
Vediamo l’algoritmo direttamente su F
1.
Scegli ( f, g ) F di peso massimo
2.
Sovrapponi f a g secondo l’overlap
3.
Togli f e g da F
4.
Aggiungi la sovrapposizione a F
Ci fermiamo quando |F| = 1
• Otteniamo sempre il miglior risultato?
Un esempio
F = {GCC,ATGC,TGCAT}
GCC
Passo
Peso
F
1 3 {GCC,ATGCAT}
2
2 0 {ATGCATGCC}
2
ATGC
TGCAT
GCC
3
0
ATGCAT
ATGCATGCC
Un esempio(II)
Un cammino alternativo migliore
GCC
2
2
0
2
ATGC
2
TGCAT
3
3
ATGCATGCC v.s. TCGCATGCC
SOTTOGRAFI ACICLICI
Basato sul modello Multicontig
Buon Campionamento
I frammenti coprono l’intera molecola
Le connessioni fra frammenti sono
sufficienti
Campionamento
S={A,C,G,T}*
Campionamento di S
Collezione A di intervalli di S
A copre S
Se per ogni 1 ≤ i ≤|S| abbiamo almeno un
intervallo [j..k]є A t.c. i є [j..k]
Connessione
Due intervalli a e b sono connessi a
livello t
se |a∩b|≥t
Un campionamento di A è connessa
a livello t
Se per ogni coppia a e b є A esiste una
serie di intervalli ai con 0≤i≤l t.c. a=a0,
b=al e ai è connessa a livello t con ai+1
per 0≤i≤l-1
Copertura: esempio
Campionamento di A connesso a
livello t
È
sufficiente che ogni coppia di intervalli abbia una catena
di intervalli l’uno con l’altro sovrapposto a livello t
G C C
C C A T G
T G A G
A G T G
GCC
e AGTG non sono connessi a livello 2, ma il
campionamento è comunque connesso a livello 2
Buon campionamento
Un campionamento è buono se A è
connesso ad un livello t’ prefissato
t’ è 10, tipicamente.
Studieremo quindi collezioni di frammenti
connessi a livello t che coprono una
stringa S
Modifica al grafo
Si tagliano da OM(F) tutti gli archi da
f a g che pesino meno di t
Gli archi connettono solo nodi
corrispondenti a intervalli connessi a
livello t
Si indica con OM(F,t)
Concettualmente
Nel grafo
gli archi sono le sovrapposizioni
I nodi sono intervalli
Stringa cercata = cammino che non
visiti due volte un nodo e visiti tutti i
nodi
Cammino Hamiltoniano
Esiste?
Cammini Hamiltoniani
Si può dimostrare che, dati
Allora il multigrafo OM(F,t)
Una stringa S sull’alfabeto {A,C,G,T}
Una collezione A connessa a livello t,
campionamento di S.
Con F generato da A
Ammette un cammino Hamiltoniano P.
Se A copre S, allora P può essere scelto
tale che S(P)=S.
Intuitivamente
Condizioni sufficienti per la presenza
di un cammino hamiltoniano
Il cammino hamiltoniano
rappresenta una stringa
ci si muove su frammenti sovrapposti,
ovvero susseguenti
In assenza di cicli, questo cammino
si dimostra essere unico
Problema
Abbiamo F, vogliamo ricostruire S
Trovando un cammino hamiltoniano
Possiamo farlo?
Il problema sono le ripetizioni
Sì, in assenza di ripetizioni
Non si sa, altrimenti
Presenza di ripetizioni
Cicli nel grafo => ripetizioni nel grafo
Il contrario non sempre è vero
Intersezione comune fra due intervalli è
dovuta a uno fra
Sovrapposizione (overlap)
Ripetizione
Si dimostra che in caso di ciclo nel grafo,
esisten almeno una ripetizione
Unicità del cammino
hamiltoniano
Trasformare il multigrafo OM in un
grafo aciclico OG
Se S non ha riptezioni, il cammino
hamiltoniano su OG esiste ed è unico
Il cammino hamiltoniano rappresenta
la stringa target ricercata
Topological sorting
Questo approccio è noto come
Topological Sorting
Trovare un ordinamento di nodi
consistente con un insieme aciclico di
archi
In cui gli archi rappresentino un
ordinamento
Greedy VS Acyclic Subgraph
S=AGTATTGGCAATCGATGCAAACCTTT
TGGCAATCACT
w=AGTATTGGCAATC
z=AATCGATG
u=ATGCAAACCT
x=CCTTTTGG
y=TTGGCAATCACT
Greedy VS Acyclic Subgraph
Greedy:
w, y, z, u, x
9
4
w
z
3
3
3
u
x
y
Sottografi aciclici:
w, z, u, x, y
Greedy VS Acyclic Subgraph
Greedy
Lunghezza 36
Weakest Link 0
Superstringa
Sottografi aciclici
Lunghezza 37
Weakest Link 3
Superstinga
Vince Acyclic Subgraph
Fra i due, prevale la logica del
migliore livello di sovrapposizione
Anche se la superstringa minore è quella
generalmente preferibile
Euristiche
Nessun formalismo è adeguato
Ci buttiamo sulle euristiche
Quanto è adeguato un allineamento?
• Scoring
• Coverage
• Linkage
Assembly in pratica
Scoring
Situazione ideale:
In ogni colonna, un solo carattere
Uniformità: bene
Variabilità: male
Scoring: entropia
Entropia:
Definita su frequenze relative
• Bassa una frequenza “spicca” nel gruppo
• Alta frequenze omogenee
Su una colonna:
4 A, 1 G
• Entropia bassa, si sceglie A
3 A, 2G
• Entropia alta, non si sa cosa scegliere
Scoring: in pratica
Allineamento buono
Entropia bassa
• Sappiamo cosa scegliere per ogni colonna
Coverage
Un frammento “copre” una colonna?
Siano l(f) e r(f) gli estremi sinistro e
destro di f
f copre la colonna i se l(f)≤i≤r(f)
a=CAGTC--b=--GTCATc=----CAT-
a e b coprono la
colonna, c no
Coverage (II)
Coverage di una colonna:
Numero di frammenti che la coprono
Coverage=0 per una colonna
Layout disconnesso
CATAG-------------
---AGTCGA------------------CTAGACTA
Coverage=0 !
Coverage (III)
In conclusione:
Più colonne con coverage=0
• Qualsiasi permutazione delle regioni tra di
esse è accettabile.
• Regione=contig
Coverage alta = consensus affidabile
Linkage
Il modo in cui ogni frammento si
lega agli altri
Presenza di overlaps
------ACTTTT-----TCCGAG------ACGGAC
------ACTTTT------
TCCGAG------ACGGAC
Esempio di buona copertura
ma scarso linkage
Assembly in pratica
Un buon algoritmo deve:
bilanciare
• Scoring
• Coverage
• Linkage
trovare tutte le soluzioni buone
Un compito difficile, quindi?
Assembly in pratica (II)
Un compito difficile
Si divide il problema in tre fasi:
• Trovare overlaps
• Costruire un layout
• Calcolare un consensus
Modello overlap-layout-consensus
Assembly in pratica (III)
Si divide il problema in tre fasi
Pro:
Più gestibile
Contro:
Difficile capire la relazione tra input e
output
Assembly in pratica (IV)
Di fatto
I metodi usati nelle tre fasi sono spesso
euristici
• Nessuna garanzia sulla qualità della
soluzione
Ci sono molte implementazioni
• Buone all’atto pratico
• Vale la pena studiare le tecniche
Trovare overlaps
Proviamo ogni coppia di frammenti
Anche i complementari inversi
Con un margine di errore
Algoritmo di programmazione dinamica
• Nessuna penalità per gaps alle estremità
• 1 match
• -1 mismatch
• -2 gaps
Costruire un layout
Trovare un buon ordinamento dei
frammenti in un contig.
Ogni frammento si sovrappone al
successivo
• Si trova il layout
Costruire un layout (II)
Non esiste un algoritmo
Semplice
Generale
Neanche affidandosi alle euristiche
Facciamo considerazioni pratiche
Da tenere a mente
Costruire un layout (III)
Considerazioni pratiche
Complementari inversi
• Espandere F con gli inversi
• Se due frammenti hanno overlap, anche i loro
inversi lo hanno
Errori
• Matching approssimato
Costruire un layout (IV)
Considerazioni pratiche
Trovare percorsi diretti sull’ OG
• Significa trovare ordinamenti
• Si costruisce contemporaneamente l’inverso
• Vengono costruiti entrambi i filamenti del DNA
Due ostacoli:
• Mancanza di coverage
• Ripetizioni
Costruire un layout (V)
Mancanza di copertura
Deriva da un grafo disconnesso
Ripetizioni
Causano cicli nel grafo
• Se la copertura è buona
Creano ambiguità
Danno coverage stranamente alto
• Tutte le copie sono impilate insieme
• La coverage sale
Costruire un layout (VI)
Per concludere:
Percorsi complementari
Ignorare frammenti contenuti
Cicli indicano ripetizioni
Coverage “strano”
• Può derivare da ripetizioni
Consensus
Abbiamo un ordinamento di
frammenti
Come li disponiamo?
• Banale nel caso ideale
• Problematico con overlaps approssimati
Consensus (II)
Abbiamo un ordinamento
fgh
• f = CATAGTC
• g = TAACTAT
• h = AGACTATCC
• Due allineamenti possibili tra f e g
CATAGTC---
CATAGTC---
--TAA-CTAT
--TA-ACTAT
Problema: stesso punteggio!
Consensus (III)
Due allineamenti possibili tra f e g
Con lo stesso punteggio
Quando entra in gioco h:
CATAGTC-----
CATAGTC-----
--TAA-CTAT--
--TA-ACTAT--
---AGACTATCC
---AGACTATCC
CATAG?CTATCC
CATAGACTATCC
Consensus (IV)
Evidenziamo le differenze tra
frammenti e consensus
CATAGTC-----
CATAGTC-----
--TAA-CTAT--
--TA-ACTAT--
---AGACTATCC
---AGACTATCC
CATAG?CTATCC
CATAGACTATCC
2 differenze
1 differenza
Consensus (V)
In pratica
Struttura dati che distingue
• Basi già “piazzate” da altri frammenti
• Basi con posizionamento “ambiguo”
Sequenza come lista di nodi (basi)
Consensus (VI)
Sequenza come lista di nodi (basi)
Assemblatori
Due generazioni
Prima (1992≈1998)
• CAP
• Phred & Phrap
Seconda(1995≈..)
• TIGR
• Celera
Assemblatori: prima
generazione
Contig Assembly Program (CAP) di
Xiaoqiu Huang, Genomics
Risolve SCS con programmazione
dinamica su coppie di frammenti
Del 1992, migliorato in CAP2 nel 1996
“As to performance, CAP took 4 hours to assemble 1015
fragments of a total of 252,000 characters on a Sun
SPARCstation SLC”
http://www.cs.sunysb.edu/~algorith/implement/cap/implement.shtml
Assemblatori: prima
generazione
Phred Phrap di Phil Green,
Laboratory of Phil Green
Del 1998
Approccio
Controllo della qualità dei frammenti
Guidato da una euristica
Assemblatori: seconda
generazione
The Institute for Genomic Research
(TIGR)
Nel 1995 sequenzia H.influenzae (1.8Mb)
Approccio
Utilizzo di strutture dati sofisticate
• Unitigs (UNIquely Assemblable conTIG)
• Scaffold (unitigs contigui ed ordinati)
Assemblatori: seconda
generazione
Celera Genomics
Celera: pipeline
Screener
Cerca le ripetizioni conosciute in un database
Il database per la Drosophila era “fatto a mano”
Overlapper
Ogni frammento viene comparato con quelli
precedentemente esaminati
• Differenza < 6%
• Overlap più lunghi di 40 basi
L’approccio è quello di BLAST
Celera: pipeline
Unitigger
Riunisce frammenti non ambigui in unitigs
• U-unitigs : quelli fuori dalle ripetizioni
Scaffolder
U-unitigs vengono raccolti in insiemi di contig di
dimensione nota orientati ed ordinati
Celera: pipeline
Repeat Resolution
Elimina le ripetizioni note
Aggiorna il database
Consensus
“La qualità della sequenza è così alta che il consenso
è ottenuto da un semplice algoritmo denominato
Abacus “
Myers et al
Osservazioni finali
Overlap Layout Consensu: le
tecniche più avanzate per la fase
Layout sono NP-hard
Ma il vero ostacolo è nella fase Overlap,
anche se quadratica
3Miliardi di basi x 12 (copertura) x 2
(orientamento)
Osservazioni 2
Celera e HGSC hanno annunciato di
aver sequenziato del genoma umano
Come si fa a dare questa valutazione, se
non si può confrontare il risultato con il
“vero genoma”?
Metro di valutazione: lunghezza
Siamo davvero simili al topo per il
99% del genoma?
Osservazioni 3
La soluzione del problema biologico è
stata favorita dall'Informatica
Ma l'informatica ha fino ad ora fatto
uso dei PROPRI mezzi principalmente
E' possibile sfruttare meglio i vincoli
biologici?
Uso di database come guida