Numeri e grafi per il genoma umano

I rapidi progressi nelle recenti tecniche di sequenziamento del DNA hanno portato a una grande proliferazione di dati, un vero e proprio diluvio, senza precedenti e senza paragoni. Una quantità di dati superiore a quella prodotta finora da siti web quali Youtube o da altri settori scientifici quali l’astronomia o la fisica delle particelle. Sono i Big Data della genomica caratterizzati dalle 3 principali V che contraddistinguono questi tipi di dati: grandi volumi, velocità di produzione associata a una importante riduzione dei costi, varietà nei tipi non uniformi di informazioni prodotte. E se da un lato questi dati richiedono l’uso delle più moderne tecniche informatiche associate all’Intelligenza Artificiale, dall’altro vengono riorganizzati grazie a semplici algoritmi matematici legati alla teoria dei grafi. Vediamo come.

 

Come si caratterizzano i Big Data della genomica?

Sono soprattutto i volumi a porci grossi problemi di capacità di archiviazione e gestione dei dati. A conclusione dello straordinario progetto Genoma Umano, nel 2003, abbiamo ottenuto la sequenza dei 3.000.000.000 di nucleotidi che compongono il patrimonio genetico dell’uomo.
La stampa di questo testo, composto da un alfabeto di 4 lettere (le sigle delle basi azotate A, G, C, T)  si estende su 130 volumi con pagine scritte fitte fitte, fronte e retro, in caratteri di 4 punti. Se mettessimo in fila questi caratteri il genoma umano si estenderebbe per 9.000 km.


Una pagina dei volumi del Genoma Umano (immagine: Richard Spalding/Flickr)

Ma il campo è appena iniziato. Gli scienziati si aspettano che fino a 1 miliardo di persone abbiano il genoma sequenziato entro il 2025. Grazie a tempi di sequenziamento sempre più brevi (siamo passati dai 13 anni del Progetto Genoma alle 8 ore di una notte di lavoro automatizzato) e a costi sempre più bassi, come si vede nell’immagine sotto, la quantità di dati prodotti al giorno raddoppia ogni sette mesi e si prevede che genererà tra 2 e 40 exabyte nel prossimo decennio.


Grafico dei costi di sequenziamento per singolo genoma (immagine: https://www.genome.gov/)

Per abituarci a usare e immaginare queste nuove potenze di numeri informatici, possiamo  pensare che se passiamo dai più familiari Terabyte (circa 1012 byte) ai Petabyte (circa 1015 byte)  la quantità di dati che otteniamo può raggiungere l’altezza di un grattacielo alto 300 metri riempito di semplici DVD, mentre per un Exabyte ( circa 1018 byte) lo stack di DVD supererebbe la distanza Terra Luna. E così via per gli Zettabyte (1021 byte) e gli Yottabyte (1024 byte).

 

In che modo l’informatica moderna ci aiuta a organizzare questi dati?

L’Intelligenza Artificiale, divenuta il campo dell’informatica che si occupa di estrarre informazioni utili da grandi quantità di dati, mette a disposizione del trattamento dei Big Data tecniche di Machine Learning e Deep Learning.
Semplificando, possiamo dire che nelle tecniche di Machine Learning, dopo un set iniziale di dati da identificare si individuano modelli caratterizzanti gli oggetti di studio (per esempio la forma dei baffi o delle orecchie di un gatto), mentre le tecniche di Deep Learning usano enormi quantità di dati iniziali per ottenere classificazioni per analogia.

Inoltre per risolvere problemi di archiviazione, analisi e condivisione dati, si stanno sviluppando sempre più soluzioni cloud per la genomica. Per esempio, il progetto Watson IBM collabora con il New York Genome Center per analizzare migliaia di dati clinici nella speranza di trovare una cura genetica del glioblastoma, una forma di tumore al cervello. Mentre Google con il progetto Baseline Study ricerca e analizza dati genetici, ma non solo, per costruire un modello di uomo o di donna in buona salute.

In questo video del canale Youtube Mathlab trovi un’introduzione al Deep Learning:

 

Quali algoritmi matematici contribuiscono al sequenziamento del DNA?

Nei ultimi anni si è passati dalla tecnica di sequenziamento di Sanger ai nuovi strumenti NGS (Next-Generation Sequencing).
Il problema da risolvere è il riordino in sequenza (‘sequenziamento’ appunto) dei piccoli filamenti di DNA (più brevi di 1000 o 2000 basi ) in cui viene suddiviso l’intero genoma per poterlo studiare. Di solito si paragona questo sforzo a quello di ricostruire un puzzle di milioni di pezzi.
Nei moderni metodi NGS si lavora con molte copie identiche di uno stesso filamento di DNA, ognuna delle quali è casualmente frammentata. Le copie sono perciò sovrapponibili in alcune parti e questo permette la ricostruzione dell’intera sequenza come se procedesse costruendo una parete di lego sovrapposti.

 

Ma allineare due sequenze in un numero così grande di possibilità è molto complicato e richiede un numero di tentativi molto alto. A meno che non si usino algoritmi di programmazione dinamica o di teoria dei grafi.

Il metodo Sanger spiegato in un video Zanichelli:

 

Come si usa la programmazione dinamica per il sequenziamento?

Prendiamo, per esempio, le due sequenze AAGTCTAA  e ACGGCTTA che potrebbero essere coincidenti e sovrapponibili a meno di tre lettere errate.
Se le collochiamo ortogonalmente possiamo notare che se le sequenze fossero identiche la loro relazione cartesiana di uguaglianza fornirebbe una diagonaleElementi non coincidenti nella sequenza invece generano dei vuoti o ‘gap’. Perciò per trovare sequenze (quasi) coincidenti e allineamenti dobbiamo trovare percorsi ottimali che nel caso descritto si allontanino il meno possibile dalla diagonale.



Per farlo si possono attribuire punteggi ad ogni casella, come in un vero e proprio gioco interattivo. Partendo da 0 (casella all’incrocio degli assi) possiamo per esempio sommare +5 quando le celle sono elementi della diagonale generati da elementi di riga e colonna che coincidono, sottrarre -2 per gli elementi sulla diagonale originati da elementi di riga e colonna diversi tra loro e sottrarre -4 nel caso di  ‘gap’, cioè se ci si ‘sposta’ lateralmente e non in diagonale.
L’immagine sotto mostra un possibile risultato di questi calcoli, evidenziando come la diagonale (contenente i numeri più alti) sia il percorso ottimale e come le due sequenze possano essere considerate sovrapponibili).

 

 

La programmazione dinamica riduce drasticamente il numero di passaggi necessari per calcolare il miglior allineamento di due sequenze. Se le sequenze sono lunghe ciascuna di n caratteri il numero di passaggi è proporzionale a n2 , che è molto inferiore al vasto numero di possibili allineamenti che devono essere controllati nell’approccio standard.

 

Come viene usata la teoria dei grafi per il sequenziamento del genoma umano?

La teoria dei grafi ha fornito negli ultimi anni nuovi algoritmi di sequenziamento. Immaginiamo di avere ottenuto stringhe di DNA e di averle suddivise in gruppi della stessa lunghezza. Ricostruirne la sequenza equivarrebbe a generare un grafo di Hamilton in cui in ogni nodo entra e esce uno e un solo arco. Un semplice esempio di grafo di Hamilton si ha quando i nodi sono disposti in cerchio.

 

Determinare il grafo di Hamilton corrispondente alla corretta sequenza di un genoma corrisponde a sequenziare “in serie” i vari frammenti come nel metodo utilizzato nel primo progetto Genoma Umano. Per ottenere grafi più semplici da costruire nei quali individuare un “percorso ottimale” occorre ricorrere a grafi euleriani, dove per ogni nodo il numero di archi entranti è uguale al numero di archi uscenti, ma gli archi entranti o uscenti possono essere più di uno per nodo. I grafici di Eulero sono i più noti perché hanno permesso al grande matematico di risolvere il problema dei ponti di Konigsberg, dimostrando che era impossibile attraversarli tutti senza passare per lo stesso ponte per più di una volta. E questo proprio per il fatto che la condizione per l’uguaglianza tra numero di nodi entranti e uscenti non era verificata.

 

Il problema dei ponti di Konigsberg (immagine: Wikipedia.org) 

Tornando alla sequenziazione, nel 2008 è stato ideato l’algoritmo di Velvet che permette di sequenziare stringhe di DNA con un grafo De Brujin, dove ogni eventuale ripetizione di nodi viene assorbita in un unico nodo, trasformando così il problema “difficile” di determinare un grafo di Hamilton nel un problema più semplice di determinare un percorso ottimale in un grafo di tipo euleriano.

Per chi volesse approfondire ecco un video del bio-informatico Pavel Pevzner autore di corsi MOOC sul sequenziamento del genoma umano e di un ottimo canale Youtube:

La matematica si conferma allora come linguaggio della scienza?

Nella conferenza stampa che nel 2003 in diretta mondiale annunciava la conclusione del Progetto Genoma, lo scienziato Collins dichiarava di aver scoperto il linguaggio di Dio.
Potremmo aggiungere enfaticamente che se la scienza parla il linguaggio di Dio, la matematica forse contribuisce a fornirne la grammatica.

 

Per la lezione

Prosegui la lettura

Commenti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *