Dispense di bioinformatica
Banche dati
Le banche dati sono collezioni strutturate di dati messe in tabelle e gestite da un sistema detto DBMS (database management system) e servono a capire le relazioni che intercorrono tra i dati presenti. Le caratteristiche base di una banca dati sono:
- Inserire tantissimi dati in poco spazio (una scatola grande ne contiene altre più piccole)
- Facilità di accesso
- Possibilità di combinarle con strumenti informatici
Struttura
Una BD è costituita da entries che contengono le informazioni sull'oggetto principale e altre info; l'accesso alle entries deve essere rapido e facile per estrarre i dati di interesse. Le ricerche vanno fatte solo per campi utilizzando delle parole-chiave (descritte da un headers) per evitare di introdurre nella ricerca risultati non richiesti, non bisogna mai effettuare ricerche generali.
I dati presenti nelle banche dati quali, ad esempio, delle sequenze sono tutti associati ad un accession number, ma una stessa sequenza può essere associata a più accession number di cui però è importante solo il primo numero che viene detto numero primario. I file sono tutti depositati come flat-file per occupare meno spazio e poterli visualizzare più semplicemente. Le informazioni aggiuntive sono dette features.
NCBI è una banca dati americana di sequenze nucleotidiche. È importante che tra le banche dati ci siano delle relazioni (cross-references) che rendono possibili scambi di dati tra diverse banche dati.
Operatori booleani
Permettono di combinare più concetti nella stessa ricerca. I principali sono:
- AND - prodotto logico, intersezione tra due insiemi
- OR - somma logica quindi indica che deve essere presente almeno uno dei due concetti cercati
- NOT - differenza logica, esclusione di un concetto usato per limitare la ricerca
Per dare sequenzialità di ricerca si usano le parentesi.
Si considerano banche dati primarie quelle che trattano gli acidi nucleici, le principali sono EMBL (europea), GenBank (americana) e DDBJ (giapponese). Da ricordare è la banca dati PubMed che contiene bibliografia scientifica.
Banche dati di sequenze proteiche
Contengono dati ottenuti sia da sequenze proteiche che dalla traduzione di sequenze geniche. La principale banca dati proteica è UniProt divisa in:
- Swiss-Prot - contiene sequenze risolte a mano da biologi
- TrEMBL - sistema di traduzione della sequenza proteica che riconduce al database EMBL
Un'utile banca dati è anche RefSeq che tratta sia sequenze nucleotidiche che proteiche, è inoltre una raccolta di sequenze di riferimento per geni, proteine, trascritti e genomi e la sua caratteristica è data dall'associare ogni entry ad uno status che la definisce qualitativamente.
Elementi di informatica
Sistema operativo
Insieme di componenti software che consente l'utilizzo di varie apparecchiature informatiche, costituisce la piattaforma del sistema di elaborazione insieme al processore. I principali sono Windows, Macintosh, Linux. Linux risulta il più stabile in quanto gratuito e non attaccabile da virus.
- File - contenitore di informazioni in formato digitale
- Directory - indirizzo del file system in cui sono presenti altri file o directory
- Programma - oggetto informatico in cui si introducono dati (input) che il programma elabora e restituisce modificati (output)
- Open source - indica un software i cui autori ne permettono il libero studio e apporto di modifiche
Allineamenti semplici
Un allineamento di sequenze permette:
- Identificazione di associazioni funzionali
- Costruzione di alberi filogenetici
- Identificazione di domini funzionali
- Costruzione di modelli 3D per similarità di sequenze
Similarità è da non confondere con omologia in quanto due sequenze omologhe condividono una stressa origine filogenetica mentre in due sequenze definite simili questa caratteristica non è richiesta ma può occorrere per caso o per convergenza adattativa.
Strutture o sequenze ortologhe si definiscono per geni presenti in specie differenti che mostrano una omologia di sequenza. Questi derivano da un antenato comune e hanno subito evoluzione divergente. Strutture o sequenze paraloghe si definiscono per sequenze omologhe la cui evoluzione riflette casi di duplicazione genica.
Un allineamento è quindi il confronto tra due sequenze note in modo da quantificare il grado di similarità, può essere applicato a coppie di sequenze nucleotidiche o proteiche.
Misura di similarità
Numero di caratteri delle due sequenze che si appaiano esattamente. Definiamo la similarità di sequenza tra due sequenze come il punteggio più alto dei punteggi ottenuti che identifica l'allineamento migliore.
Data una sequenza n ed una m, il numero di allineamenti possibili si calcola: (n)+(m-1) mentre il numero di confronti effettuati si calcola: n x m.
Utilizzando gli allineamenti è possibile fare ricerche per similarità all'interno delle banche dati. Per calcolare la similarità in sequenze che contengono indels, associamo una penalità (gap penalty) più grave della seconda penalità (gap extension penalty). Nota bene: nel calcolo della similarità le identità saranno sommate ed i gap sottratti.
Calcolo delle similarità tra due sequenze
Per visualizzare graficamente un allineamento di sequenze si può utilizzare una dot matrix che risulta una matrice rettangolare n x m che descrive l'allineamento tra una sequenza n ed una m.
Le matrici di punti quindi possono essere utilizzate per:
- Evidenziare ripetizioni interne a singole sequenze
- Identificare similarità in posizioni diverse in 2 sequenze
- Valutare la similarità tra due sequenze diverse
In ogni punto in cui le due sequenze coincidono inseriamo un asterisco ma considerare ogni singolo nucleotide o residuo aminoacido si creerebbe un eccessivo rumore di fondo, quindi, per evitarlo si usa una determinata finestra (ad esempio 5 residui o nucleotidi) e si decide di introdurre un punto nel grafico solo se l'identità tra le due sequenze prese in quella finestra è superiore o uguale al 60%.
Otterremo così un grafico in cui gli allineamenti migliori sono visualizzati come segmenti diagonali paralleli tra loro presenti nella matrice, i gap sono visualizzati come salti di diagonali. Il rumore di fondo che si ottiene invece compilando una matrice per punti è in genere dato da tutte quelle similitudini presenti in modo sistemico quindi può ad esempio essere dovuto al fatto che alcuni amminoacidi che compongono le diverse sequenze sono molto presenti come nel caso dell'arginina che risulta un amminoacido molto presente a livello generale nelle sequenze proteiche.
Ovviamente valutare un allineamento soltanto dal numero di residui identici appaiati non è corretto in quanto risulterebbe più corretto assegnare un punteggio in base al grado di identità dei residui (ad esempio assegnare un punteggio molto elevato a due residui identici ed un punteggio alto ma inferiore al primo per due residui chimicamente simili). Per assegnare dei valori si usa una matrice di sostituzione.
Matrice di sostituzione (da non confondere con la matrice di punti dot-matrix)
È una tabella che associa un valore per ogni coppia di residui, risulta quindi una matrice quadrata 20x20 con 400 valori. Una delle matrici più usate è la PAM (percent accepted mutation) che rappresenta la divergenza di 2 sequenze. La differenza tra le matrici di punti e quelle di sostituzione è che le prime consentono di mettere in evidenza zone di identità tra sequenze diverse (m x n), mentre le seconde associano un punteggio ad ogni coppia di residui e sono quadrate e simmetriche. Le PAM più utilizzate sono la PAM 120 e la 250 che quindi rappresentano sequenze che hanno rispettivamente il 50 o il 20 % di identità di sequenza. Programmi che sfruttano algoritmi che esplorano tutto il piano della matrice di confronto tra due sequenze sono detti esaustivi.
Programmazione dinamica
È una tecnica di progettazione di algoritmi basata sulla divisione del problema in sotto-problemi e sull'utilizzo di sottostrutture ottimali. Per confrontare 2 sequenze e ottenere il migliore allineamento necessitiamo di un algoritmo che tenga conto delle possibili inserzioni o delezioni ma è ovviamente impossibile tenere conto di ogni singola posizione e per questo è stato sviluppato un algoritmo esaustivo che cerca le similarità globali di tutte le sequenze e si basa sulla programmazione dinamica.
- Aspetti positivi: L'algoritmo trova il migliore allineamento possibile
- Aspetti negativi: Nell'output spesso si trovano più allineamenti con il massimo punteggio
Il tempo di risposta del programma è dell'ordine n2.
Abbiamo 2 tipi di allineamento: locale o globale. Il locale è più interessante dal punto di vista biologico in quanto permette di identificare proteine che contengono lo stesso dominio funzionale mentre il globale confronta le intere sequenze. Per distinguere un allineamento globale da uno locale bisogna ricordarsi che, la matrice di sostituzione usata per gli allineamenti locali contiene anche valori negativi (associati ad uno 0 poi nel calcolo della somma) e quindi permette di avere il valore massimo all'interno della matrice stessa e non per forza nell'ultima riga o colonna dell'allineamento. Invece, in quello globale la matrice di sostituzione ha solo valori positivi e il valore massimo è sempre in ultima riga o colonna.
Creazione di una matrice a programmazione dinamica
Per completare un allineamento con una matrice di sostituzione andando a fare già le somme bisogna tener conto di alcune regole per il completamento dei vari quadrati. Da notare che i valori sost1, sost2 e sost3 sono semplicemente i valori presi dalla PAM di riferimento. Nota bene: in caso di valori negativi si scrive il valore negativo come sost1, sost2 o sost3 ma se anche il valore della somma dovesse essere negativo si riporta uno 0 al posto di m1, m2 o m3.
A completare quindi il valore in m4 sarà il valore più alto tra quelli calcolati tra v1, v2 e v3. Una volta completata la matrice a programmazione dinamica bisogna poi cercare di ricostruire l'allineamento migliore semplicemente partendo dal punteggio massimo ottenuto e andando poi a ritroso. Ovviamente il percorso che ricostruiremo sarà quello più interessante nel confronto tra le due sequenze, per definire se si tratta di un percorso che descrive un allineamento globale o locale bisogna far riferimento alle regole indicate al paragrafo sopra.
Metodi euristici
Sono algoritmi sviluppati per effettuare ricerche più rapide in banche dati sempre più grandi, la ricerca è resa più rapida a scapito della certezza di avere trovato il risultato ottimale.
FASTA e BLAST
I principali programmi euristici sono FASTA e BLAST. FASTA si basa su identità di sequenza mentre BLAST utilizza una matrice di sostituzione sin dalle prime fasi di utilizzo dell'algoritmo. FASTA considera la possibilità di gap fin dalle prime fasi del programma mentre BLAST, poiché costretto da un parametro (Word), può non identificare sequenze con bassa similarità. Quindi generalizzando si preferisce FASTA per sequenze di acidi nucleici e allineamenti globali, mentre si usa BLAST per sequenze proteiche e allineamenti locali.
FASTA (sviluppato nel 1985 da Liepman e Person) Per utilizzare FASTA bisogna impostare dei parametri:
- K-TUP, la lunghezza della parola con cui si effettua il primo passo dell'algoritmo (quella ottimale per sequenze nucleotidiche è 6, per sequenze proteiche è invece 2). Aumentando la K-TUP aumenta il rischio di non identificare sequenze omologhe evolutivamente distanti ma si velocizza il programma.
- Soglia, definisce la qualità minima degli allineamenti in output sotto la quale i risultati non sono considerati statisticamente rilevanti.
Una volta impostati tali parametri il programma selezionerà le sequenze con i punteggi di sostituzione più alti; utilizzando i migliori dieci risultati, si identifica un core match a punteggio massimo. Si deve considerare che i frammenti possono essere uniti solo entro una soglia di accettabilità (32 residui intorno al match ottimale).
Un problema che è opportuno risolvere nella ricerca delle BD è la ridondanza, infatti molte BD contengono sequenze e frammenti di sequenze in diverse copie tutte uguali tra loro, dunque fare confronti non è molto utile ed eliminare la ridondanza renderebbe le ricerche più veloci. Di conseguenza le sequenze che hanno una percentuale di identità uguale o superiore a una certa soglia vengono raggruppati in Cluster ognuno dei quali è rappresentato da un'unica sequenza. In UniProt sono disponibili diversi Clusters a diversi livelli di ridondanza e diverse soglie di identità. In un UniProt 90% e 50% non ci sono coppie di sequenze che abbiano rispettivamente più del 90% o 50% di identità. In UniProt 100% sono presenti solo sequenze identiche (si calcola la quantità di sacchi e non la loro pienezza quindi avremo più sacchi al 100% ma più vuoti e meno sacchi al 50% o 90% ma più pieni).
BLAST
L'algoritmo che BLAST utilizza può essere suddiviso in 3 passaggi:
- Ogni sequenza da analizzare viene suddivisa in parole di lunghezza W e per ogni parola si genera un elenco di parole affini dette anche W-mers ovviamente considerate solo entro una determinata soglia
- In ogni file della banca dati o della sequenza di confronto si cercano occorrenze identiche o con un valore superiore a quello soglia di W-mers
- Una volta riconosciuti i W-mers si cerca di estendere la regione sia al 3' che al 5' generare degli HSP (high scoring Segment Pair) poi eventualmente uniti per formare un allineamento finale
Nell'utilizzo di BLAST bisogna tener conto che il parametro W decide sia la velocità di esecuzione del programma sia la sua sensibilità ed in genere per effettuare delle buone ricerche si utilizza un valore di W=11.
Significatività statistica
Poiché in output BLAST e FASTA generano degli allineamenti posti in ordine di punteggio decrescente bisogna individuare un sistema per decidere se una certa similarità è significativa oppure se quel punteggio di similarità potrebbe essere stato generato per caso. Utilizzando la statistica è possibile affermare che un punteggio risulta più significativo quanto più è lontano dal punteggio medio e ovviamente questa significatività varia in base all'ampiezza della distribuzione. L'ampiezza di una distribuzione è descritta come deviazione standard. A questo punto possiamo quindi definire lo Z-score che è una grandezza proporzionale alla distanza di un punteggio dal punteggio medio e inversamente proporzionale all'ampiezza della distribuzione stessa secondo la formula.
Nel caso in cui si confronti una sequenza con una banca dati di sequenze la significatività di un allineamento è descritta dal suo Z-score, un punteggio si considera statisticamente significativo se lo Z-score è maggiore di 5. Un altro parametro usato per valutare la significatività statistica di un punteggio è l'E-value (expectation value) che indica il numero di allineamenti con punteggi equivalenti o migliori che ci si aspetta che compaiano per caso. Più è basso il valore dell'E-value e maggiore è la significatività del punteggio preso in esame. In un output di BLAST una buona soglia limite di E-value è 10-5 oppure più bassa poiché altrimenti con un valore superiore facendo un confronto ad esempio tra una sequenza ed un database di 1 milione di sequenze si andrebbe a prendere in considerazione anche i 1000 allineamenti dovuti al caso.
Allineamenti multipli
Un allineamento multiplo di sequenze permette di confrontare tra loro più di due sequenze alla volta permettendo di ottenere più informazioni rispetto al confronto con solo una coppia di sequenze. Un allineamento multiplo di sequenze è detto anche MSA (Multiple Sequence Alignment). Per poter generare un allineamento multiplo di proteine omologhe è necessario utilizzare un algoritmo di allineamento globale oppure in alternativa si può costruire un allineamento locale nel quale siano considerate solo le regioni o i domini comuni a proteine che possono anche non essere simili globalmente.
Un allineamento multiplo dà informazioni sulle relazioni funzionali ed evolutive tra le proteine con cui è costruito, sui residui catalitici e sulla struttura 3D della famiglia. Oltre al concetto di similarità negli allineamenti multipli si tiene conto anche del concetto di distanza tra due sequenze che è data dalla percentuale di residui diversi nell'allineamento.
Il programma più usato per generare allineamenti multipli è ClustalW (ClustalOmega) che tra le sue caratteristiche principali ha:
- Pesi individuali che vengono assegnati ad ogni sequenza per pesare meno le sequenze quasi identiche e dare più peso a quelle più divergenti tra loro
- Le matrici di sostituzione vengono cambiate ai diversi stadi dell'allineamento in dipendenza con la divergenza delle sequenze da allineare
- Le gap penalties sono residuo-specifiche e vengono ridotte localmente in corrispondenza di regioni idrofiliche incoraggiando quindi l'apertura di gap in regioni che potenzialmente codificano per dei loop
ClustalW inoltre permette anche la generazione di alberi filogenetici. Un filogramma è un diagramma a rami in cui la lunghezza dei rami è proporzionale alla divergenza mentre un cladogramma...
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Appunti Bioinformatica
-
Appunti Laboratorio di bioinformatica
-
Appunti di Bioinformatica
-
Bioinformatica - 2 modulo Appunti