POLITECNICO DI BARI
Corso di Laurea Magistrale in
Ingegneria Elettronica
BIOINFORMATICA
DNA COMPUTING
Docente
Prof. Giuseppe Mastronardi
Sommario
 Introduzione
 Cenni di biologia
 Modello di Adleman
 Modello di Lipton
 Implementazione
 Conclusione
Introduzione
- Agli inizi del Novecento è iniziata la prima vera indagine sulla natura del mondo
microscopico che si è rivelato molto più elusivo di quanto si potesse immaginare e
profondamente diverso dal mondo macroscopico di cui ci si è fatto un preciso modello.
- Uno dei più grandi fisici di quegli anni, Richard Feynman, in uno straordinario
discorso tenuto nel 1959, aveva già delineato le incredibili prospettive del progressivo
processo di miniaturizzazione in atto nella tecnologia ed aveva ipotizzato che fosse
possibile arrivare a costruire dispositivi di varia natura utilizzando individualmente
persino gli stessi atomi.
- La miniaturizzazione dei componenti ha però un limite fisico, non si può andare sotto
le dimensioni atomiche. Una volta raggiunto tale limite, per ottenere un ulteriore
aumento delle prestazioni del calcolatore elettronico, si rende necessario cambiare
radicalmente tecnica. Molto lavoro di ricerca si sta sviluppando in tale direzione e si
stanno profilando almeno due ipotesi molto promettenti: i quantum-computer ed i
DNA-computer.
Cenni di biologia (1/6)
DNA = DeoxyriboNucleic Acid
- Il DNA è una macromolecola formata da due
lunghi filamenti uniti tra loro come lo sono i
montanti di una scala collegata dai pioli. Gli
elementi di costruzione del DNA sono
monomeri, detti nucleotidi, ognuno dei quali
contiene tre parti: uno zucchero a cinque atomi
di carbonio (il deossiribosio), un gruppo fosfato
e una base azotata (cioè contenente azoto).
- I nucleotidi del DNA contengono lo stesso tipo di zucchero e di gruppo fosfato,
ma differiscono per la base azotata. Ci sono quattro diversi tipi di basi: adenina
(A), citosina (C), guanina (G) e timina (T); si osserva che nei filamenti di RNA la
timina è sostituita dall’uracile (U).
Cenni di biologia (2/6)
CODONI = triplette di nucleotidi
- Le 4 basi azotate del DNA (A, T, C, G) costituiscono l’alfabeto genetico, mentre
ogni unità del codice genetico è una sequenza di 3 basi azotate che prende il nome
di codone. Ad esempio, il filamento di RNA UUUACACAG si compone di 3 codoni,
UUU, ACA e CAG, a cui corrispondono rispettivamente gli amminoacidi
fenilalanina, treonina e glutammina. Una catena di DNA costituita da diverse
centinaia di codoni può formare, usando solo i 4 nucleotidi, il codice per una
proteina complessa.
- Prendendo le 4 basi azotate a gruppi di 3 si possono ottenere 64 combinazioni
differenti (infatti 43=64); in natura, però, esistono solo 20 amminoacidi nelle
proteine ed è pertanto evidente che alcuni amminoacidi vengono indicati da più di
un codone. La ridondanza rende il codice genetico meno vulnerabile alle
mutazioni casuali.
Cenni di biologia (3/6)
codifica dei codoni
CODONI = triplette di nucleotidi
seconda base
U
U
C
prima
base
A
G
C
A
G
UUU fenilalanina
UUC fenilalanina
UUA leucina
UUG leucina, start
CUU leucina
CUC leucina
CUA leucina
CUG leucina, start
AAU isoleucina, start
AUC isoleucina
AUA isoleucina
AUG metionina, start
UCU serina
UCC serina
UCA serina
UCG serina
CCU prolina
CCC prolina
CCA prolina
CCG prolina
ACU treonina
ACC treonina
ACA treonina
ACG treonina
UAU tirosina
UAC tirosina
UAA ocra, stop
UAG ambra, stop
CAU istidina
CAC istidina
CAA glutammina
CAG glutammina
AAU asparagina
AAC asparagina
AAA lisina
AAG lisina
UGU cisteina
UGC cisteina
UGA opale, stop
UGG triptofano
CGU arginina
CGC arginina
CGA arginina
CGG arginina
AGU serina
AGC serina
AGA arginina
AGG arginina
GUU valina
GUC valina
GUA valina
GUG valina, start
GCU alanina
GCC alanina
GCA alanina
GCG alanina
GAU acido aspartico
GAC acido aspartico
GAA acido glutammico
GAG acido glutammico
GGU glicina
GGC glicina
GGA glicina
GGG glicina
Cenni di biologia (4/6)
CODONI = triplette di nucleotidi
Sigla
Ala
Arg
Asn
Asp
Cys
Gln
Glu
Gly
His
Ile
Leu
Lys
Met
Phe
Pro
Ser
Thr
Trp
Tyr
Val
start
stop
Nome
alanina
arginina
asparagina
acido aspartico
cisteina
glutammina
acido glutammico
glicina
istidina
isoleucina
leucina
lisina
metionina
fenilalanina
prolina
serina
treonina
triptofano
tirosina
valina
amminoacidi di start
amminoacidi di stop
codifica inversa
Codoni
GCU, GCC, GCA, GCG
CGU, CGC, CGA, CGG, AGA, AGG
AAU, AAC
GAU, GAC
UGU, UGC
CAA, CAG
GAA, GAG
GGU, GGC, GGA, GGG
CAU, CAC
AUU, AUC, AUA
UUA, UUG, CUU, CUC, CUA, CUG
AAA, AAG
AUG
UUU, UUC
CCU, CCC, CCA, CCG
UCU, UCC, UCA, UCG, AGU, AGC
ACU, ACC, ACA, ACG
UGG
UAU, UAC
GUU, GUC, GUA, GUG
AUG, GUG
UAG, UGA, UAA
Cenni di biologia (5/6)
Alcune tecniche di biologia molecolare
- Separazione (melting): divisione di una molecola o di un frammento di DNA nei due
filamenti complementari che lo costituiscono; tale operazione si effettua creando delle
adeguate condizioni di temperatura, acidità, ecc. per rompere il debole legame idrogeno
fra le basi azotate.
- Accoppiamento (annealing): unione di due filamenti di DNA complementari ottenuta
raffreddando la soluzione ed aggiungendo l’enzima ligasi per favorire il processo e
rendere più stabili gli accoppiamenti.
- Separazione o estrazione per affinità: è una tecnica che permette di estrarre dei
filamenti di DNA che hanno dei sottofilamenti con particolari configurazioni (pattern),
basandosi sul principio di complementarietà delle basi.
- Sintesi artificiale del DNA: permette di sintetizzare in laboratorio molecole di DNA con
una sequenza desiderata fino a 100 nucleotidi, in breve tempo e a costi contenuti; inoltre
con questa tecnica è possibile sintetizzare sequenze casuali di nucleotidi ancora più
lunghe.
Cenni di biologia (6/6)
Alcune tecniche di biologia molecolare
- Amplificazione: produzione di copie di un filamento di DNA mediante la reazione a
catena della polimerasi. È necessario l’utilizzo dell’enzima DNA-polimerasi per replicare
un filamento di DNA: l’enzima legge il filamento e sceglie da una miscela di basi azotate
presenti in soluzione quale inserire seguendo la regola della complementarietà. La
reazione consiste nella duplicazione a catena di un filamento iniziale di DNA, per cui
dopo n cicli si saranno prodotte 2n copie del filamento di partenza.
- Elettroforesi su gel: è una tecnica che permette di separare i filamenti di DNA sulla
base della loro lunghezza. Consiste nel mettere la soluzione contente il DNA in un
pozzetto all’estremità di un sottile strato di gel a cui viene applicata una corrente
elettrica; quindi le molecole di DNA verranno attirate verso l’anodo perché possiedono
una carica negativa. La caratteristica fondamentale di questa tecnica è che le velocità di
migrazione all’anodo per le molecole più corte è maggiore rispetto a quella delle
molecole più lunghe; questo determina la formazione di un “tracciato”. Il sistema così
ottenuto si può osservare utilizzando particolari reagenti ed illuminando il gel con luce
ultravioletta; inoltre è possibile calcolare esattamente il peso molecolare di ciascun
frammento separato con una semplice tecnica.
Modello di Adleman (1/4)
- Nel suo famoso articolo del 1994 Adleman mostrò la possibilità di eseguire delle
computazioni a livello molecolare; egli presentò una “soluzione biologica” per una
istanza del problema del percorso hamiltoniano.
- Un cammino hamiltoniano su un grafo orientato è un percorso che inizia da un
vertice ed arriva ad un altro dopo essere passato per tutti i vertici esattamente una
volta; tale cammino, se esiste, sarà formato da n-1 lati se il grafo ha n vertici
- Il problema del percorso hamiltoniano per un grafo orientato (PPHO) affrontato
da Adleman chiede di stabilire se in un dato grafo orientato, in cui siano stati scelti
due vertici, esiste almeno un cammino hamiltoniano che li unisce.
- L’algoritmo è il seguente:
passo 1) si generano tutti i cammini attraverso il grafo;
passo 2) si considerano solo i percorsi che iniziano dal nodo di partenza e terminano
nel nodo di arrivo;
passo 3) si considerano solo i percorsi che attraversano esattamente n vertici;
passo 4) si considerano solo i percorsi che passano per un vertice una sola volta;
passo 5) si verifica se almeno un percorso è rimasto dopo le selezioni dei passi
precedenti; in caso positivo quello è il cammino che si stava cercando.
Modello di Adleman (2/4)
- Adleman utilizzava dei frammenti di DNA come oggetti di calcolo e particolari
enzimi e tecniche di biologia molecolare come operatori. L’implementazione di
questo algoritmo si basava sull’intuizione di Adleman di codificare in maniera
opportuna l’istanza del problema da risolvere.
- Adleman codificò il grafo con le seguenti regole:
• ad ogni vertice i del grafo G si associa un filamento di una sequenza casuale
di DNA della lunghezza di 20 nucleotidi;
• ogni arco i → j in G viene codificato con un filamento di DNA di 20 nucleotidi
ottenuto concatenando gli ultimi 10 nucleotidi del vertice i ed i primi 10
nucleotidi del vertice j.
- In questo modo i filamenti potevano accoppiarsi per formare una macromolecola
che codificasse un percorso attraverso il grafo: uno dei filamenti è la concatenazione
delle sequenze di codifica di archi
consecutivi, l’altro filamento è la
concatenazione delle sequenze
complementari associate ai vertici
del percorso considerato.
Modello di Adleman (3/4)
-L’“algoritmo biologico” proposto da Adleman è il seguente:
passo 1) per ogni vertice e per ogni lato si codificano un numero sufficientemente
grande di filamenti di DNA che si mettono in una provetta con acqua, con l’enzima
ligasi, sali ed altre sostanze che favoriscono l’accoppiamento. In questo modo si
codificano pressoché istantaneamente (quasi) tutti i possibili cammini tra i vertici.
passo 2) si procede con la reazione a catena della polimerasi per amplificare solo
quei filamenti di DNA che possiedono il corretto vertice di partenza e di arrivo;
passo 3) con l’elettroforesi su gel si separano tutte le molecole di DNA che hanno la
lunghezza giusta (120 nucleotidi nell’esperimento di Adleman in cui il cammino
hamiltoniano era lungo 6 lati da 20 nucleotidi ciascuno).
passo 4) si selezionano i percorsi che passano per tutti i vertici con la tecnica di
separazione per affinità. Questa tecnica permette di estrarre tutte le sequenze che
contengono la codifica di un dato vertice, sfruttando il principio di complementarietà
delle basi; ripetendo questa estrazione per ogni vertice si riescono ad estrarre tutti i
percorsi che passano per ogni vertice.
passo 5) si verifica se almeno un filamento di DNA è rimasto dopo le selezioni dei
passi precedenti procedendo prima ad amplificazione con polimerasi e poi con
elettroforesi su gel che permette di individuare l’eventuale filamento; se esiste, quel
filamento codifica il cammino hamiltoniano che si stava cercando.
Modello di Adleman (4/4)
- Questo esperimento non dimostrò soltanto la possibilità di ottenere una “soluzione
biologica” al problema di ricerca del cammino hamiltoniano, ma anche e
soprattutto la possibilità più generale di calcolare con il DNA.
- Il numero di operazioni richieste in laboratorio cresce linearmente con il numero
n di vertici del grafo, benché è noto che questo problema è NP-completo. Il numero
di molecole diverse richieste per la computazione è lineare nel numero m degli archi
del grafo; infatti il passo 1 richiede la sintesi artificiale di n+m sequenze di DNA, il
passo 4 richiede la ripetizione della procedura per n volte e gli altri passi si svolgono
in un tempo costante.
- Questo significa che un computer a DNA offre una enorme capacità di calcolo
parallelo che può renderlo molto più rapido di un supercomputer elettronico per la
risoluzione di alcuni problemi, soprattutto all’aumento del numero di variabili
coinvolte. Nell’esempio del PPHO il parallelismo si manifesta nella velocità con cui
all’inizio si codificano (quasi) tutti i possibili cammini attraverso il grafo.
- Inoltre la capacità di memorizzazione del DNA è enormemente superiore rispetto
a un computer tradizionale poiché un grammo di DNA, equivalente all’incirca ad
un centimetro cubo, può immagazzinare l’informazione contenuta in circa mille
miliardi di CD.
Modello di Lipton (1/3)
- Uno scienziato di Princeton, Richard Lipton, ha inventato uno schema per tradurre
le coppie di basi del DNA in sequenze di 0 e di 1. Egli è anche stato in grado di
sviluppare una tecnica che consente alle molecole di DNA nella provetta di reazione di
simulare il comportamento delle porte logiche di un computer elettronico.
- Lipton ha così mostrato come un computer molecolare può utilizzare anch’esso la
logica booleana degli operatori NOT, OR, AND ed essere quindi sostanzialmente
programmabile come qualsiasi altro computer general-purpose.
- Lipton ha affrontato in particolare il problema della soddisfacibilità di una formula
booleana (SAT-problem) che ha da subito suscitato notevole interesse nella comunità
scientifica.
- Nel 1995 Richard Lipton propose uno schema teorico di algoritmo per la risoluzione
con il DNA del problema della soddisfacibilità per una formula booleana. Egli considerò una formula booleana nella forma normale disgiuntiva, cioè tipo FB
,
1

B
2.

.. B
m
in cui ogni Bi è una particolare formula booleana detta clausola; una clausola si presenta nella forma BX
, in cui ogni Xi è una delle n variabili o una delle n
1

X
2.

.. X
k
possibili negazioni.
Modello di Lipton (2/3)
- L’algoritmo utilizzato da Lipton per trovare la soluzione al SAT-problem è il
seguente: si generano tutte le possibili combinazioni di valori per le n variabili della
formula booleana; poi si eliminano tutte le assegnazioni che non soddisfano la prima
clausola B1 e si ripete progressivamente la stessa operazione per tutte le assegnazioni
che non soddisfano la clausola Bi, con i = 2, …, m; infine si verifica se sono rimaste
delle assegnazioni di valori per le variabili e, in caso positivo, quelle assegnazioni
soddisfano la formula booleana.
- L’implementazione proposta da Lipton si basava sulla codifica di un grafo
orientato con la stessa tecnica adottata da Adleman, in cui ogni nodo xi rappresenta
una variabile della formula booleana ed ogni xi’ la sua negazione. I cammini che
vanno dal nodo a1 al nodo an+1 si possono considerare come la codifica di un numero
binario ad n cifre, in cui si può stabilire per convenzione che se dal vertice ai il cammino va verso un vertice xi allora quel tratto codifica uno 0,
altrimenti se va verso un vertice
xi’ codifica un 1.
Modello di Lipton (3/3)
- All’inizio dell’esperimento si mettono in soluzione nella provetta t0 un numero sufficientemente grande di copie di filamenti di DNA della lunghezza di 20 nucleotidi che
codificano i vertici e gli archi di questo grafo così costruito. A questo si aggiungono
copie di sequenze q1’ e pn’, dove indichiamo con q1’ il filamento complementare degli
ultimi 10 nucleotidi che codificano a1 e con pn’ il filamento complementare dei primi
10 nucleotidi che codificano an+1.
Con il procedimento di accoppiamento si formeranno tutti i possibili percorsi attraverso il grafo ed inoltre la presenza dei frammenti q1’ e pn’, assicureranno la formazione prevalente di cammini dal nodo a1 al nodo an+1; inoltre la simmetria del grafo
implicherà che questi cammini si formeranno nella medesima quantità.
Partendo dalla provetta t0 si eliminano i frammenti di DNA che corrispondono alle
assegnazioni che non soddisfano la prima clausola B1 della formula booleana. L’operazione che si effettua è l’estrazione per affinità che può essere vista come una funzione E(t,i,a) che denota l’insieme di tutte le sequenze contenute nella provetta t che
hanno la componente i-esima uguale ad a, con a {0,1}.
Quindi per passi successivi si costruiscono le provette t1, t2, …, tm, in cui la provetta ti
contiene tutte le sequenze di ti-1 che soddisfano la clausola Bi. In questo modo nella
provetta tm resteranno, se esistono, solo i frammenti di DNA che soddisfano tutte le
clausole, ovvero l’intera formula booleana F. Pertanto a questo punto basta solo
verificare la presenza di DNA nella provetta per dare una risposta al problema di
soddisfacibilità della formula booleana considerata.
Implementazione – Progetto 1
Implementazione – Progetto 2