Package e interfacce per la gestione di sequenze
Prof. Giovanni Paolella
Dott. Leandra Sepe
I programmi utilizzati in bioinformatica sono molti, e variano per funzione e tipo di esecuzione. Nel solo ambito dei programmi di manipolazione di sequenze, esempi di semplici operazioni di uso comune sono:
Il calcolo della sequenza del filamento complementare viene effettuato applicando la nota regola di appaiamento delle basi, per cui A è convertita in T, C in G, G in C, T in A. Inoltre, per rispettare la polarità dei filamenti, la sequenza è invertita in modo da risultare scritta in direzione 5′-3′.
Gruppi di più nucleotidi vengono definiti word (parole). La determinazione della frequenza relativa di word di 2, 3 o più nucleotidi permette a volte di dare una grossolana valutazione sull’origine e funzione di una sequenza; ad esempio, nell’ambito di sequenze genomiche umane, quelle ricche in AT, TA, AA etc, sono spesso non codificanti, mentre quelle in cui prevalgono le parole contenenti C e/o G sono spesso codificanti. Sequenze ricche in CG potrebbero indicare la presenza di isole CpG.
Il calcolo viene semplicemente effettuato determinando la frequenza di ciascuna parola. E’ utile confrontare i valori ottenuti con quelli attesi. Ad esempio, in figura, la frequenza attesa è 0,0625 (6.25%) per parole di due nucleotidi e se tutti i nucleotidi sono ugualmente rappresentati. Valori maggiori indicano una sovrarappresentazione, come per le word AA e TG in figura.
L’esecuzione dei programmi può avvenire in modalità differenti, che dipendono dalle scelte dell’utilizzatore e dalle caratteristiche del programma. Ad esempio:
L’esecuzione remota permette di eseguire anche programmi che non possono essere eseguiti sulla macchina locale. Esempi sono programmi di difficile installazione, che richiedono un diverso sistema operativo o che hanno bisogno di accedere a collezioni di dati e risorse hardware non disponibili sulla macchina dell’utente. L’esecuzione remota amplia quindi notevolmente il panorama delle operazioni che è possibile eseguire e permette ad utenti diversi di accedere, anche contemporaneamente, alle stesse risorse di calcolo, indipendentemente dalle caratteristiche hardware e dal sistema operativo disponibile sulla macchina locale. In questo modo risulta più facile anche la gestione dei programmi, che devono essere installati e tenuti in funzione su una sola macchina.
Molti programmi sono stati sviluppati in ambiente Unix, un sistema operativo molto usato in ambito scientifico, e che prevede tipicamente l’accesso ai programmi attraverso un’interfaccia a linea di comando. Un esempio di esecuzione di tale tipo di programma è rappresentato in prima figura. La stringa:
/bioprogs/emboss/bin/transeq -sequence myseq -frame 1 -outseq my_seq.out
significa esegui il comando transeq sulla sequenza myseq traducendo il frame 1 e mettendo il risultato nel file my_seq.out.
Questo tipo di interfaccia può essere utilizzata per eseguire programmi sia direttamente sulla macchina su cui sono installati, che su un server remoto, e permette anche l’esecuzione in modalità interattiva: nella seconda figura è riportata la stessa esecuzione della prima figura, ma questa volta il programma fa richieste per la sequenza, il frame e il file di output .
L’interfaccia a linea di comando risulta però di non facile apprendimento, e richiede comunque la conoscenza degli specifici comandi necessari all’esecuzione.
La diffusione delle tecniche necessarie al world wide web, ha promosso lo sviluppo di interfacce grafiche che utilizzano browser come Internet Explorer o Firefox per effettuare il dialogo con l’utente ed eseguire i programmi in maniera remota, senza richiedere all’utente la conoscenza dei comandi come nell’interfaccia a linea di comando. Nelle figure sono rappresentati esempi di utilizzazione dello stesso programma, Translate, attraverso due diverse interfacce web, PISE (A) e CAPRI (B), sviluppata localmente e utilizzata anche per le esercitazioni nell’ambito del presente corso. Altri esempi sono le interfacce disponibili presso i siti web di EBI (C) e NCBI (D) per l’esecuzione del programma Blast.
I programmi sviluppati in ambiente unix seguono la filosofia di effettuare una singola operazione anche se con un gran numero di modalità differenti. Per questo motivo più programmi che complessivamente svolgono operazioni diverse ma finalizzate ad un obiettivo comune, sono riuniti in package. I programmi di uno stesso package rimangono separati, ma tipicamente utilizzano nei comandi una sintassi simile e permettono di scambiare dati con facilità.
Esempi di package che contengono programmi per analisi di sequenza sono:
Emboss è stato sviluppato per rispondere alle esigenze tipiche della comunità scientifica in ambito di biologia molecolare. E’ costituito da un gran numero di programmi originali, sviluppati nell’ambito del progetto, ma integra anche diversi programmi generati separatamente e di uso comune. Le aree di interesse sono piuttosto ampie e sono riportate nella prima figura. Nell’ambito del package, i vari programmi sono organizzati in gruppi omogenei per funzione, come indicato nella seconda figura.
Il gruppo definito nucleic composition (A) è costituito da programmi che analizzano la composizione in basi di una sequenza e fanno predizioni su questa base.
Programmi come wordcount (B) e compseq (C) permettono di determinare le frequenze di parole costituite da due, tre o più nucleotidi, mentre programmi come banana e btwisted sono usati per predire vari aspetti della topologia di sequenze di DNA. Dan può essere utilizzato per la stima della temperatura di melting.
La traduzione di sequenze nucleotidiche in proteine può essere effettuata con diverse modalità attraverso il gruppo chiamato nuclei translation, ad esempio:
Il gruppo nucleic restriction contiene programmi utili alla ricerca di siti di restrizione come ad esempio:
Di questo gruppo fanno parte programmi capaci di rappresentare sequenze e altri dati in forma grafica di qualità adatta alla pubblicazione. Esempi sono:
1. Genomi: organizzazione e complessità
4. Assemblaggio e annotazione di genomi (ENSEMBL)
5. Package e interfacce per la gestione di sequenze
7. Allineamento di sequenze mediante matrici di punti
10. Algoritmi dinamici di allineamento
11. Elettroforesi
13. Algoritmi di allineamento di tipo euristico
14. Preparazione di acidi nucleici
15. Cromatografia
18. Banche dati
20. Vitalità e proliferazione di cellule in coltura
21. Microscopia