Gli allineamenti multipli
Uno dei problemi principali di FASTA e BLAST è che effettuano soltanto allineamenti pair-wise (tra coppie di sequenze). Tuttavia, se si vogliono fare studi che permettano di relazionare più sequenze omologhe e spiegarne l'evoluzione ritornano utili gli allineamenti multipli. Essi possono essere utilizzati per la costruzione di alberi filogenetici, per identificare motivi di sequenza comuni e conservati, per prevedere la struttura secondaria delle proteine, e così via. Possono inoltre essere utilizzati per codificare le caratteristiche strutturali di una superfamiglia proteica, in modo tale da ottenere una "impronta digitale" che può essere utilizzata per cercare nelle banche dati altri membri evolutivamente distanti appartenenti alla medesima famiglia, altrimenti difficilmente individuabili.
Il problema principale degli MSA (Multiple Sequences Alignment) è come tener conto allo stesso tempo di tutti i matches, mismatches, gaps e del grado di variazione. Per gli allineamenti multipli non è possibile usare algoritmi di programmazione dinamica: impiegherebbero troppo tempo. La grande utilità pratica degli allineamenti multipli ha stimolato lo sviluppo di tecniche di calcolo in grado di risolvere almeno in parte le difficoltà intrinseche alla costruzione di questi allineamenti. Il primo tentativo più ovvio è stato estendere gli algoritmi dinamici per l'allineamento di due sequenze al caso di allineamenti multipli. In questo modo, si potrebbe ottenere l'allineamento multiplo ottimale che massimizza la somiglianza tra tutte le coppie di sequenze ivi contenute.
Purtroppo gli algoritmi dinamici non possono essere semplicemente estesi all'allineamento di più sequenze, a causa della complessità dell'algoritmo. Per esempio, date N sequenze di lunghezza M, la quantità di memoria e il numero di passi di calcolo necessari per elaborare l'allineamento crescono come NM. Quindi già per numeri relativamente piccoli, il problema diviene intrattabile. Di fatto, gli algoritmi dinamici sono stati applicati solo al caso dell'allineamento di poche sequenze. Per allineare efficientemente decine e decine di sequenze, è stato necessario ricorrere ad algoritmi euristici. Questi algoritmi forniscono una soluzione approssimata ma molto vicina a quella ottimale. Negli anni sono state proposte diverse strategie euristiche, ma forse quella che ha dato i maggiori risultati è l'allineamento progressivo di coppie di sequenze.
ClustalW
Uno dei programmi oggi più diffusi di allineamento multiplo che utilizza una strategia di tipo progressivo è ClustalW. Questo programma applica progressivamente l'algoritmo di allineamento dinamico a coppie di sequenze. Descriviamo i passaggi chiave di cui consiste la versione base del metodo.
Fase 1
Nella prima fase, vengono allineate tutte le sequenze (proteiche o nucleotidiche) con tutte le sequenze. Per esempio, supponiamo di avere 6 sequenze (A, B, C, D, E, F). Si allinea la sequenza A con la sequenza B, poi con la sequenza C, e così via.