VARIABILITA’ GENETICA
Gli organismi viventi, pur discendendo da un antenato comune, possiedono genomi
abbastanza diversi tra loro. Questo dipende dagli errori che si verificano durante i
processi di replicazione del DNA. Sebbene l’apparato di replicazione sia molto
accurato, è possibile che si verifichino degli errori, ovvero mutazioni della sequenza di
DNA, che possono poi essere “fissati” attraverso un processo casuale in tutta la
popolazione degli individui di quella specie o in una larga frazione di essa. I
cambiamenti possono essere dovuti a:
Sostituzione di un nucleotide con un altro lungo la sequenza di DNA;
Inserzioni di tratti più o meno lunghi di DNA;
Delezioni di tratti più o meno lunghi di DNA;
Riarrangiamenti di vario tipo.
Se gli errori vengono fissati si ha la creazione di nuove varianti geniche. Le variazioni
genetiche, che sono il presupposto per l’evoluzione biologica, affinché possano
risultare evolutivamente rilevanti devono poter essere trasmesse alla progenie e
quindi gli errori devono interessare le cellule germinali. Il processo durante il quale la
mutazione si propaga nella popolazione si definisce fissazione. La fissazione è
completa quando il 100% della popolazione contiene l’allele mutato. Il fatto che una
mutazione venga fissata all’interno di una popolazione può risultare da due processi
distinti:
1. La selezione naturale: questo fenomeno prevede che la capacità di
riproduzione di un individuo dipende dal suo adattamento all’ambiente, cioè la
sua riproduzione è tanto più favorita quanto più è adattato all’ambiente. La
riproduzione di individui poco adattati è contrastata. Sulla base di questo
concetto, la selezione naturale permette la fissazione di mutazioni vantaggiose
a discapito di quelle svantaggiose e non ha alcuna influenza sulle mutazioni
neutrali (mutazioni che non causano cambiamenti a livello fenotipico).
2. La deriva genica casuale: questo fenomeno può favorire la fissazione di
mutazioni neutrali attraverso un processo puramente casuale che vede
aumentare nel tempo la frequenza di un allele mutato fino alla sua fissazione
nella popolazione.
Le tipologie di mutazioni che intervengono nel corso del processo di evoluzione
molecolare sono:
Le sostituzioni puntiformi: delezione e inserzione;
Le inversioni.
L’avvento della genomica rende oggi possibile confrontare interi genomi o i suoi
prodotti (trascrittomi o proteomi).
CONFRONTO DI DUE SEQUENZE
Tradizionalmente, a partire dal lavoro pioneristico di Carlo Linneo, lo studio
dell’evoluzione e delle relazioni tra organismi è stato condotto attraverso l’analisi dei
caratteri morfologici. L’enorme quantità di dati di sequenze nucleotidiche e proteiche
disponibili oggi nelle banche dati ha fatto sì che al classico approccio morfologico
utilizzato nell’analisi filogenetica si affiancasse un approccio molecolare, basato sul
confronto diretto delle sequenze disponibili per un dato organismo. Qualora si abbiano
a disposizione due sequenze di geni o proteine, il primo e fondamentale passo per
studiare l’evoluzione delle due sequenze è stabilire se tra esse sussista una relazione
di omologia (RICORDA: due geni si dicono omologhi se hanno in comune la sequenza,
o perlomeno una buona percentuale di essa; in genere dovrebbero codificare per
proteine con funzione simile; si trovano in organismi differenti e derivano da un
antenato comune). Poiché, naturalmente, non è possibile seguire direttamente
l’evoluzione di due o più sequenze, l’unico metodo di cui si dispone per stabilire una
relazione di omologia è il confronto delle sequenze attraverso un allineamento.
Il problema che sta alla base della bioinformatica, però, è come confrontare e allineare
due sequenze proteiche o nucleotidiche. In primo luogo è necessario capire che cosa
significhi “confrontare” e “allineare” due sequenze. Questi termini indicano il confronto
tra stringhe, dove con “stringa” si intende qualunque sequenza di simboli. “La
bioinformatica è schifosa” è una stringa di caratteri; oppure “AATYKLTRFK” è una
stringa di caratteri e così via. Per confrontare due stringhe, dobbiamo allinearle. Ad
esempio, abbiamo le seguenti due stringhe:
1. LA CASA E’ NUOVA
2. LA CASSA E’ VUOTA
e vogliamo confrontarle. Per farlo, procediamo con il loro allineamento. Cioè le
disponiamo come di seguito: LA CAS-A E’ NUOVA
LA CASSA E’ VUOTA
Se si dispongono le stringhe in questo modo, su due righe, le loro differenze divengono
evidenti e quindi si riescono a elencare le operazioni in grado di trasformare, ad
esempio, una stringa nell’altra. Per esempio, per trasformare la frase 1 nella frase 2,
dovremmo inserire una “S” nella stringa 1; cambiare una “N” in “V” e una “V” in “T”.
Esistono, però, vie alternative attraverso cui si può trasformare la stringa 1 nella
stringa 2. Per esempio: LA CAS-A E’ N-UOV-A
LA CASSA E’ -VUO-TA
In questo caso, per trasformare la stringa 1 nella stringa 2, bisogna aggiungere una
“S”; rimuovere una “N” e aggiungere una “V”; rimuovere una “V” e aggiungere una
“T”. Rispetto a prima, il numero di operazioni da fare è maggiore. Tra tutti i possibili
allineamenti, quindi, si sceglie quello che prevede il numero minore di operazioni. La
lunghezza minima della sequenza di operazioni misura la distanza tra la
stringa 1 e la stringa 2. Se le due stringhe fossero due sequenze aminoacidiche o
nucleotidhce, queste considerazioni rimarrebbero le stesse se non per il fatto che
ciascun simbolo questa volta rappresenta un’entità chimica: un aminoacido o una
base nucleotidica. Quando effettuiamo un allineamento potrebbe verificarsi che: i
simboli delle due sequenze coincidono in uno o più punti; che i simboli delle due
sequenze sono diversi in uno o più punti; che uno o più simboli sono presenti in una
sequenza ma non nell’altra. Nel primo caso i residui aminoacidici o i nucleotidi in
quella posizione sono rimasti invariati, cioè conservati durante l’evoluzione. L’identità
di residui appaiati è chiamata match. Nel secondo caso, durante l’evoluzione, un
residuo è stato sostituito da un altro, e si parla di mismatch. Nel terzo caso, per poter
ottimizzare la corrispondenza tra gli aminoacidi o i nucleotidi delle due sequenze si è
dovuto inserire una interruzione (gap) in una sequenza piuttosto che nell’altra.
Durante l’evoluzione, in quelle posizioni, uno o più residui sono andati persi in una
sequenza oppure è successo che nell’altra si sono aggiunti uno o più residui.
L’allineamento riassume la storia evolutiva delle due sequenze e indica le zone più
conservate e quelle più variabili. Quando si analizzano sequenze biologiche che
possono essere lunghe anche diverse centinaia di simboli, il semplice confronto
manuale non è più praticabile e si deve ricorrere necessariamente a sistemi
automatici.
Se le sequenze di due proteine o di DNA sono molto simili allora lo saranno anche le
loro strutture e le funzioni. Non è però vero il contrario. Infatti, proteine con funzione e
struttura simili non hanno necessariamente sequenze simili. Siccome stiamo trattando
sequenze biologiche, il problema può essere approcciato utilizzando due diversi punti
vista, che di fatto conducono allo stesso risultato. Si dice infatti che, per capire se si
tratta di geni omologhi ad esempio, si cerca:
minima distanza
la tra le due sequenze; o
massima similarità
la tra le due sequenze
Nel primo caso si fa riferimento al processo evolutivo. Nel secondo caso, si fa
riferimento più direttamente alla ricerca di zone simili, per poterne derivare delle
relazioni strutturali e funzionali.
COME CALCOLARE LA DISTANZA TRA DUE
SEQUENZE
Al fine di classificare i geni omologhi appartenenti a una stessa famiglia è
fondamentale la costruzione di un albero filogenetico che ne descriva in modo
accurato le relazioni evolutive. Per fare questo, alcuni metodi richiedono la misura
delle distanze evolutive tra i geni in esame.
DI LEVENSHTEIN
ALGORITMO edit distance
La distanza di Levenshtein, o , è una misura per la differenza fra due
stringhe. La distanza di Levenshtein tra due stringhe A e B è il numero minimo di
modifiche elementari che consentono di trasformare la A nella B. Per modifica
elementare si intende
la cancellazione di un carattere,
la sostituzione di un carattere con un altro, o
l’inserimento di un carattere.
Per esempio, per trasformare la parola “bar” in “biro” occorrono due modifiche:
1. “bar” -> “bir” (sostituzione di ‘a’ con ‘i’)
2. “bir” -> “biro” (inserimento di ‘o’)
Non è possibile trasformare la prima parola nella seconda con meno di due modifiche,
quindi la distanza di Levenshtein fra “bar” e “biro” è 2.
Vediamo quest’altro esempio:
Specie A A W T V A S A V R T S I
Y A
Specie B A T V A A V R T S I
A L
Y
Specie C A T V A A V T S I
L’edit-distance è adatta nel caso degli allineamenti globali. Per l’editdistance deve
valere la disuguaglianza triangolare. Se ho x, y e z e l’evento di mutazione da x a y ha
un costo > dell’evento di mutazione x->z + z->y allora ogni volta che devo
sostituire x con y devo effettuare due sostituzioni prima con z e poi con y perché al
fine del punteggio finale “costano” meno. L’editdistance, infatti, prevede che si
devono minimizzare i costi di eventi di mutazioni per passare da una sequenza
all’altra. Prevale il concetto che l’evoluzione deve “risparmiare”. Quindi, facendo
riferimento all’esempio, da A si passa a B per mezzo di 2 mutazioni e da B si passa a C
per mezzo di 1 mutazione. Quindi sommando 2 mutazioni + 1 mutazione otteniamo
tre mutazioni che si sono susseguite nel corso dell’evoluzione per passare dalla
sequenza A a quella C. I
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.