Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Appunti bioinformatica, Sintesi del corso di Bioinformatica

Brevi appunti di bioinformatica, insieme di libro sopracitato e appunti del prof

Tipologia: Sintesi del corso

2021/2022

Caricato il 22/03/2023

robb.bberta
robb.bberta 🇮🇹

2 documenti

1 / 8

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Nozioni fondamentali
Capitolo 2 - L’informatica essenziale
Algoritmi e programmi
Immaginiamo di dover scrivere un programma che risolva l’equazione di secondo grado dati i
valori a, b e c nella forma ax^2+bx+c=0.!
Un algoritmo è la serie di operazioni che dati un insieme di dati iniziali (input) produrranno la
soluzione del problema (output). Il programma vero e proprio consiste a questo punto
nell’implementazione dell’algoritmo, ovvero nella sua scrittura in una forma (linguaggio)
comprensibile per un computer (il linguaggio può essere C, C++, Pascal, JavaScript etc).!
Parte fondamentale dell’implementazione è la gestione delle eccezioni, ovvero prevedere a priori e
includere nell’implementazione tutti i casi eccezionali su cui l’algoritmo non può funzionare.!
Esempio: nel caso della formula di risoluzione dell’equazione di secondo grado si deve tener
conto se il delta è negativo, se il denominatore è pari a zero, se il risultato rientra nei valori reali
etc.!
Ci sono dei casi in cui il problema è molto complesso e quindi intrattabile a causa di una serie di
fattori come calcoli molto lunghi, infinità nella processazione dei dati e nessuna soluzione
matematica definita al problema; questi problemi sono definiti “NP-hard” (Non deterministico
polinomiale). Esempio delle possibili combinazioni di formare una sequenza con n nucleotidi. Man
mano che n aumenta, le possibilità crescono esponenzialmente nell’ordine di O(n^k) dove k
rappresenta le sequenze di lunghezza n. Nel caso in cui k>2 si ricorre a un allineamento di
sequenze multiplo e quindi euristico; ovvero, l’algoritmo applicato avrà complessità e tempo di
esecuzione minore ma non avremo una soluzione esatta o quella migliore per il programma.!
Basi di dati
Una base di dati o database (DB) è un sistema di archiviazione
di dati organizzati per consentire una facile consultazione. Il DB
Management System (DBMS) invece il programma per creare e
gestire i dati in un DB. !
Si dividono in:!
I. Relazionali: un database relazionale è composto da una
serie di righe che sono univocamente identificato da un
codice denominato chiave. Le righe rappresentano i record e
ogni record è l'insieme dei dati di un singolo elemento. Le
colonne della tabella rappresentano i campi.
L'organizzazione dei dati si basa sul concetto matematico di
relazione tra dati contenuti in tabelle distinte;!
II. Non relazionali (gerarchici): hanno una struttura semplice,
che non permette procedure avanzate, simile a schedari/
tabelle del tutto indipendenti tra loro, in cui la modifica di un
dato non ha alcuna influenza sui dati inseriti negli altri
schedari/tabella.!
Progettazione di un database!
Si seguono tre fasi:!
1. Progettazione concettuale: al compito di rappresentare le informazioni mediante uno schema
formale che consente di organizzare i dati a un alto livello di astrazione;!
2. Progettazione logica: consente di tradurre lo schema concettuale con un modello di
rappresentazione dei dati;!
3. Progettazione fisica: hai il compito di completare lo schema logico con le specifiche dei
parametri di memorizzazione dei dati.!
Accesso ai dati!
I vari tipi di linguaggi per la definizione dei dati consentono la definizione dello schema (o
struttura) del database. Viceversa, il linguaggio per la manipolazione e gestione dei dati è
pf3
pf4
pf5
pf8

Anteprima parziale del testo

Scarica Appunti bioinformatica e più Sintesi del corso in PDF di Bioinformatica solo su Docsity!

Nozioni fondamentali

Capitolo 2 - L’informatica essenziale

Algoritmi e programmi Immaginiamo di dover scrivere un programma che risolva l’equazione di secondo grado dati i valori a, b e c nella forma ax^2+bx+c=0. Un algoritmo è la serie di operazioni che dati un insieme di dati iniziali (input) produrranno la soluzione del problema (output). Il programma vero e proprio consiste a questo punto nell’implementazione dell’algoritmo, ovvero nella sua scrittura in una forma (linguaggio) comprensibile per un computer (il linguaggio può essere C, C++, Pascal, JavaScript etc). Parte fondamentale dell’implementazione è la gestione delle eccezioni, ovvero prevedere a priori e includere nell’implementazione tutti i casi eccezionali su cui l’algoritmo non può funzionare. Esempio: nel caso della formula di risoluzione dell’equazione di secondo grado si deve tener conto se il delta è negativo, se il denominatore è pari a zero, se il risultato rientra nei valori reali etc. Ci sono dei casi in cui il problema è molto complesso e quindi intrattabile a causa di una serie di fattori come calcoli molto lunghi, infinità nella processazione dei dati e nessuna soluzione matematica definita al problema; questi problemi sono definiti “NP-hard” (Non deterministico polinomiale). Esempio delle possibili combinazioni di formare una sequenza con n nucleotidi. Man mano che n aumenta, le possibilità crescono esponenzialmente nell’ordine di O(n^k) dove k rappresenta le sequenze di lunghezza n. Nel caso in cui k>2 si ricorre a un allineamento di sequenze multiplo e quindi euristico; ovvero, l’algoritmo applicato avrà complessità e tempo di esecuzione minore ma non avremo una soluzione esatta o quella migliore per il programma. Basi di dati Una base di dati o database (DB) è un sistema di archiviazione di dati organizzati per consentire una facile consultazione. Il DB Management System (DBMS) invece il programma per creare e gestire i dati in un DB. Si dividono in: I. Relazionali: un database relazionale è composto da una serie di righe che sono univocamente identificato da un codice denominato chiave. Le righe rappresentano i record e ogni record è l'insieme dei dati di un singolo elemento. Le colonne della tabella rappresentano i campi. L'organizzazione dei dati si basa sul concetto matematico di relazione tra dati contenuti in tabelle distinte; II. Non relazionali (gerarchici): hanno una struttura semplice, che non permette procedure avanzate, simile a schedari/ tabelle del tutto indipendenti tra loro, in cui la modifica di un dato non ha alcuna influenza sui dati inseriti negli altri schedari/tabella. Progettazione di un database Si seguono tre fasi:

  1. Progettazione concettuale: al compito di rappresentare le informazioni mediante uno schema formale che consente di organizzare i dati a un alto livello di astrazione;
  2. Progettazione logica: consente di tradurre lo schema concettuale con un modello di rappresentazione dei dati;
  3. Progettazione fisica: hai il compito di completare lo schema logico con le specifiche dei parametri di memorizzazione dei dati. Accesso ai dati I vari tipi di linguaggi per la definizione dei dati consentono la definizione dello schema (o struttura) del database. Viceversa, il linguaggio per la manipolazione e gestione dei dati è

composto da quei linguaggi che consentono di intervenire sul database per l'inserimento, cancellazione, aggiornamento, recupero e visualizzazione dei dati. Il linguaggio SQL (StructureQueryLanguage) è un linguaggio specifico per la gestione di database. Le principali ma anche le più frequenti operazioni che generalmente vengono svolte sono: inserimento, selezione, modifica e cancellazione di dati. Le operazioni di selezione in informatica vanno sotto il nome di query. Qualità di un database

  1. Aggiornato;
  2. Facilità di utilizzo;
  3. Intuitivo;
  4. Ben organizzato;
  5. Query chiare e precise;
  6. Ridondante: quanto l'informazione biologica ripetuta all'interno del database stesso.la ridondanza non è solo un problema di ottimizzazione ma anche di analisi. Se la dimensione del database è sovrastimata, i risultati potrebbero essere distorti;
  7. Possibilità di scaricare l'intero contenuto del database.

Capitolo 3 - La statistica essenziale

Vedere concetto p-value

Allineamenti

Capitolo 4 - L’evoluzione biologica

Gli studi di Evoluzione Molecolare si basano essenzialmente su analisi comparativa e quindi presuppongono la conoscenza delle macro molecole biologiche almeno a livello della struttura primaria.la conoscenza delle funzioni della macromolecola in esame non è indispensabile per intraprendere un'analisi evolutiva. La Filogenesi Molecolare, invece, ha come obiettivo lo studio delle relazioni evolutive tra geni e proteine al fine di studiare la storia evolutiva degli organismi e dei loro geni. Le variazioni genetiche, che sono il presupposto fondamentale per l'evoluzione biologica, hanno origine spontaneamente in seguito errori che hanno luogo nel processo della replicazione o mutazioni accidentali, anche dovuti a fattori ambientali, che in qualche modo alterano la sequenza del DNA. Le mutazioni del DNA possono essere classificate sulla base del tipo di variazione provocata nella molecola informazionale. Possiamo avere infatti: I. Mutazioni puntiformi; II. Delezioni; III. Inserzioni; IV. Inversioni. Due geni (o proteina) si dicono omologhi se derivano da un progenitore comune. Alla luce di questa definizione è evidente che l'omologia è un carattere qualitativo cui non può essere attribuito un valore quantitativo, che invece può essere riferito al grado di similarità tra due sequenze. Vi sono due diversi tipi di omologia. Due sequenze omologhe si definiscono ortologhe se appartengono a due specie diverse e il loro processo di divergenza avuto origine in seguito al processo di speciazione da cui le due specie suddette hanno avuto origine. Due sequenze omologhe si definiscono paragoge se loro processo di divergenza avuto origine in seguito a un processo di duplicazione genica. Se in un'analisi filogenetica si mescolano geni orologi e paraloghi, la filogenesi risultante illustrerà il processo evolutivo dei geni, e non quello delle specie corrispondenti. Si assume che i prodotti di geni ortologhi conservino la stessa funzione, mentre quelli di geni paraloghi spesso si specializzano in funzioni differenti, talvolta antagoniste.

Capitolo 5 - Allineamenti tra sequenze

Uno dei metodi fondamentali dell'analisi bioinformatica di seguenze biologiche consiste quindi nel confronto tra due o più sequenze diverse, limitandosi a esaminare gli elementi che le compongono. Tuttavia, questo principio può essere ulteriormente esteso a sequenze non

Matrici di sostituzione Per l'allineamento di sequenze di aminoacidi è tuttavia necessario fare ulteriori considerazioni. Immaginiamo, data una proteina perfettamente funzionale di sostituire un amminoacido con un altro completamente differente. In un secondo momento la sostituzione la facciamo avvenire tra amminoacidi con caratteristiche chimiche e fisiche simili. In questo caso la seconda opzione prevale su quella iniziale in quanto più ottimale. Un'idea per rendere gli allineamenti più sensibili a considerazioni di questo tipo e quindi di assegnare valori differenti alle differenti sostituzioni, a seconda di quali siano gli aminoacidi coinvolti, in cui sostituzione del tipo I —> L avranno un punteggio migliore - rispetto alla bontà dell’allineamento - di sostituzione tipo G —> C. A questo punto c'è bisogno di quantificare esattamente queste considerazioni per ogni possibile coppia di aminoacidi.poiché l'allineamento allo scopo di ricostruire una possibile storia evolutiva comune alle sequenze, allora si può utilizzare ancora una volta l'evoluzione per stimare i punteggi delle diverse sostituzioni - che allora volta hanno lo scopo di riassumere quanto accaduto durante l’evoluzione. Per calcolare i punteggi da associare a ciascuna sostituzione è possibile usare una tecnica molto comune in bioinformatica, ovvero confrontare il numero di sostituzioni osservato da un aminoacido a un altro con il rispettivo valore atteso (le sostituzioni, idealmente, sono neutre). Le prime matrici di sostituzione sono basate su queste considerazioni, che assegnavano a ogni coppia di residui un valore corrispondente alla loro frequenza di sostituzione in un allineamento, furono introdotte nel 1978 e sono note come PAM (Point Accepted Mutation). La matrice così costruita è derivata dalle probabilità di sostituzione di un singolo residuo su 100 in seguenze omologhe, ovvero un singolo passo evolutivo, per cui viene detta PAM1. L'idea fu quella di simulare una serie di passi evolutivi successivi moltiplicando la matrice PAM per se stessa, sotto l'assunzione di indipendenza tra tempi evolutivi. Eseguendo questa operazione 100 volte, otteniamo una una matrice PAM100, in cui la distanza evolutiva è appunto di 100 passi. É importante precisare che questo non significa che il 100% delle seguenze sarà mutato, ma che la matrice corrisponde alle sostituzioni trovate dopo 100 passi evolutivi, in ognuno dei quali viene sostituito l'1% degli aminoacidi rispetto al risultato del passo precedente con la possibilità che molte sostituzioni cadano su posizione già variate ai passi precedenti. Le matrici PALM così calcolate comunemente usate variano tra una PAM10 e una PAM250 .Maggiore è il numero associato alla matrice, maggiore sarà la divergenza delle sequenze. Più precisamente, i valori associati a tutte le coppie di aminoacidi in una matrice PAMn dipendono dalla probabilità di trovare, dopo n passi evolutivi, i due aminoacidi allineati, quindi correlati filogeneticamente e di conseguenza omologhi. Un'altra matrice di sostituzione e BLOSUM (BLOCKS Substitution Matrix), seguite da un numero che indica la percentuale di identità delle sequenze di partenza.quest'ultimo valore, quindi dovrà essere maggiore di 0 e minore di 100. Abbiamo così matrici come BLOSUM30, costruita con sequenze con almeno il 30% d’identità, BLOSUM45 per almeno il 45%, fino ad arrivare a una BLOSUM corrispondente al 95%.

Allineamento locale Poco dopo l'introduzione dell'algoritmo di allineamento globale (1970) ne venne sviluppato uno per costruire un allineamento locale di due sequenze. A quest'ultimo, introdotto da Smith e Waterman nel 1973, è basato su una semplice considerazione. Utilizzando matrici di sostituzione come la PAM e le BLOSUM, i punteggi negativi indicano sostituzioni che rendono poco probabile un'ipotesi di omologia; viceversa, similarità risultanti da una storia evolutiva comune porteranno molto più probabilmente ad allineamenti con punteggi positivi. L’introduzione di gap all’inizio dell’allineamento porterebbe a punteggi negativi, e quindi viene preferito 0. Per ricostruire l'allineamento, si eseguirà un traceback come nel caso dell'allineamento globale, partendo però proprio dalla cella A(i,j) della matrice invece che da A(m,n). Il traceback si fermerà non appena verrà raggiunta una cella con valore 0 non collegata ad altre. Questo indica infatti che quest'ultima cella corrispondeva a un reset, che faceva ricominciare l’allineamento. L'algoritmo restituirà così un allineamento che copre soltanto parte delle sequenze. Ricerche per similarità di banca dati L'allineamento di sequenze si è rivelato nel corso degli anni è uno strumento estremamente utile importante in tutti gli ambiti della ricerca biomolecolare moderna. L'allineamento locale o globale di due sequenze omologhe ci permette di studiare come si sono evolute nel corso del tempo di quali siano i residui o i domini rimasti conservati. L'idea è abbastanza intuitiva: allineare la sequenza che vogliamo studiare con tutte le sequenze note dello stesso tipo, allo scopo di determinare sulla base dei risultati le sequenze che possono essere considerate omologhe ad essa, o comunque presentino qualsiasi tipo di similarità. Il processo è automatizzato, ovvero non è l'utente che deve scaricare le sequenze della banca dati, ma è un programma che si occupa di calcolare ciascuna lineamento recuperando una per l'una le sequenze della banca dati. Questo procedimento è noto come ricerca per similarità in banca dati(similarità search); la sequenza di partenza utilizzata come chiave di ricerca è detta anche sequenza query (o sequenza di richiesta). Un programma che segue una ricerca in banca dati per similarità deve quindi calcolare in pochi minuti migliaia migliaia di allineamenti a coppie di sequenze, ovvero la lineamento di ciascuna delle sequenze la banca dati con la sequenza query. Tuttavia nonostante la loro velocità, la loro applicazione diretta e sequenziale a centinaia di migliaia di allenamenti ti chiederebbe ugualmente un tempo di esecuzione dell'ordine delle ore. Per poter quindi velocizzare ulteriormente la procedura, gli strumenti moderni utilizzati per ricerche in banca dati basate sul similarità calcolano gli allineamenti usando dei procedimenti euristici. BLAST BLAST (Basic Local Alignment Search Tool) È lo strumento che oggi può essere considerato lo standard di fatto per le ricerche per similarità di banche dati di sequenze. É infatti inclusa nelle principali banche dati mondiali di seguenze, come per esempio quelle curate dall’NCBI e dall’EBI. Come si può evincere dal nome, gli allineamenti su cui è basata la ricerca sono locali. BLAST selezione a priori un sottoinsieme delle sequenze della banca dati che soddisfa certi criteri, e soltanto per queste calcola l’allineamento locale. Data una sequenza query da utilizzare per la ricerca e una banca dati di sequenze, il primo fondamentale passo che l'algoritmo su cui si basa BLAST esegue è la suddivisione della sequenza guerra in tutte le possibili parole (o frammenti)

Allineamento di sequenze a genomi BLAST è oggi lo strumento largamente più diffuso per ricerche per similarità in banche dati.nel corso degli anni, tuttavia sono stati pubblicati e resi disponibili altri metodi. FASTA è stato forse il primo strumento di questo tipo essere diffuso, e l'attuale formato FASTA utilizzato per rappresentare le sequenze era stato introdotto proprio insieme ad esso. La strategia generale di FASTA può essere considerata analoga a quella di BLAST. Differenza fondamentale è che nella fase iniziale FASTA cerca una corrispondenza esatta tra i residui della query e delle sequenze della banca dati, anche nel caso di sequenze di aminoacidi. L’utilizzo dei W-mer simili alle parole di partenza di BLAST rende quest'ultimo più flessibile e in grado di rilevare similarità più sottili rispetto a FASTA. In generale si ritiene spesso più conveniente usare BLAST per le sequenze proteiche e allineamenti locali, mentre FASTA viene preferito per sequenze nucleotidiche e allineamenti globali. BLAST (Blast-Like Alignment Tool) e Ssaha (Sequence search and alignment by hashing algorithms) sono due metodi per l’allineamento di sequenze su interi genomi. Viene prima individuata una corrispondenza esatta di almeno n nucleotidi, che viene estesa prevedendo sostituzioni. La differenza più notevole è in come questa corrispondenza è implementata dagli algoritmi. Solitamente, viene usato un indice del genoma. Dal punto di vista informatico, un indice è una struttura dati che permette di localizzare rapidamente e in modo efficiente parole di una data lunghezza all'interno di una stringa (sequenza) di milioni o miliardi di lettere. Un'analogia che può servire a chiarire il concetto è quella dell'indice analitico di un libro. Allineamento multiplo di sequenze Il modo più efficace per analizzare le informazioni contenute in un gruppo di sequenze omologhe passa attraverso la costruzione di una lineamento multiplo, o multiallineamento. Rispetto all'allineamento di due sequenze, in questo caso ciascuna colonna potrà contenere tanti residui quante sono le sequenze allineate, e l'ipotesi indotta dall’allineamento sarà che tutti i residui nella stessa colonna siano evolutivamente correlati. Al fine di trovare comunque una soluzione accettabile per il problema che riduca il tempo di esecuzione a pochi minuti, vengono comunemente utilizzati anche in questo caso algoritmi euristici, che pur non garantendo di calcolare l'allineamento ottimale producono comunque allineamenti corretti dal punto di vista biologico ed evolutivo. L’ euristica più comunemente usata è quella di costruire l’ allineamento in modo progressivo aggiungendo nuove sequenze all’allineamento in passi successivi. La limitazione principale di questo tipo di approccio è che, quando due o più sequenze sono state allineate in un cluster, il relativo allineamento resta fissato e non sarà più modificato dall’algoritmo. Utilizzare l’albero guida per la costruzione dell’allineamento ha proprio lo scopo di minimizzare la possibilità che vengano prodotti allineamenti errati, scegliendo a ogni passo di allineare le sequenze o i cluster più simili tra loro. Un fattore che viene molto spesso trascurato è tuttavia che la correttezza e l’affidabilità di un allineamento multiplo non dipendono soltanto dall’algoritmo utilizzato, ma anche e soprattutto dalla scelta delle sequenze da allineare. Poiché alla base di ogni allineamento c’è l’ipotesi che le sequenze studiate abbiano una storia evolutiva comune, se per errore si includesse una sequenza non realmente omologa alle altre, l’allineamento calcolato dal programma risulterebbe drasticamente alterato e privo di significato biologico, in quanto cercherebbe legami evolutivi tra sequenze che non ne hanno. Esistono ad oggi diversi programmi per la costruzione di allineamenti multipli basati sull’euristica dell’allineamento progressivo. Il più utilizzato è probabilmente Clustal. Tra le caratteristiche del programma c’è anche la possibilità di aggiungere una o più sequenze a un allineamento precedente determinato. Inoltre, quando le sequenze che si vogliono allineare non sono molto divergenti, per esempio quando non vi sono troppi gap e la percentuale di identità è superiore al 50%, Clustal fornisce la soluzione ottimale

all’allineamento multiplo. Tra gli altri programmi disponibili vale la pena di ricordare T-coffee, che pure consente di allineare sequenze di vari tipi (RNA, DNA o proteine). Le matrici di cui si serve Clustal sono delle UPGMA: sono delle matrici riempite con le distanze tra le sequenze, sono “underweighted” perché la distanza non hai importanza per il risultato finale (non è rilevante se due proteine siano distanti 0.5 o 50 ad esempio), si basano su confronti tra due sequenze calcola distanza tra le varie sequenze usando la media aritmetica. Ad esempio: si conosce la distanza tra A e B e tra B e C, quanto distano A e C? Per saperlo si fa la media di AB e di BC.