RICERCA DI SIMILARITA’ TRA SEQUENZE
Un altro problema comunissimo in bioinformatica è quello della ricerca di
similarità tra sequenze. In particolare, data una sequenza query di nucleotidi
o di amminoacidi, vogliamo trovare le sequenze più simili ad essa tra tutte le
sequenze di un database. Il programma che normalmente si usa per questo
scopo è BLAST.
Nel corso di Bioinformatica2 dovreste avere
già visto l’algoritmo di BLAST (Basic Local
Alignment Search Tool, Altschul et al., 1990)
e tutti i suoi parametri e dovreste aver
provato ad usarlo attraverso il WEB, sul sito
NCBI.
Noi invece vedremo l’esecuzione di BLAST da linea di comando UNIX e in
particolare la possibilità di automatizzare, grazie alla scrittura di appositi
programmi Perl, l’esecuzione di tali ricerche e l’analisi dei risultati prodotti
dal programma
BIOINFO3 - Lezione 36
1
BLAST
Supponiamo che sulla macchina UNIX (LINUX) in cui stiamo lavorando sia
già stata installata la versione eseguibile da linea di comando del BLAST.
Se foste comunque interessati ad installare l’ultima versione sul vostro
computer,
potete
sempre
scaricarla
dal
sito
http://www.ncbi.nlm.nih.gov/BLAST/ . Sul sito trovate anche tutte le istruzioni
necessarie per l’installazione.
Il programma eseguibile che effettua la ricerca di BLAST si chiama blastall e
dovrebbe essere installato in una directory presente nel PATH in modo che da
qualunque directory il programma sia eseguibile semplicemente scrivendo
blastall e non tutto il path completo della directory in cui è stato
effettivamente installato.
Proviamo a chiedere dove
è installato blastall
BIOINFO3 - Lezione 36
2
REQUISITI DI BLAST
Blastall ha bisogno di almeno due parametri: la sequenza query e il database
di sequenze, in cui cercare le sequenze più simili alla query. Per effettuare
molto velocemente le ricerche, il programma BLAST non le effettua sul DB
originale in formato FASTA, ma in una sua versione “binaria”,
preventivamente ottenuta attraverso il programma formatdb (ovviamente
fornito anch’esso nel pacchetto di installazione di BLAST).
Pre-elaborazione
formatdb
DB di sequenze in
formato “binario”
DB di sequenze in formato FASTA
blastall
sequenza query
BIOINFO3 - Lezione 36
Risultato di BLAST
3
FORMATDB
Per vedere cos’è e come funziona il programma formatdb, quali parametri
richiede, ecc. chiediamone la pagina di manuale UNIX relativa, con il
comando “man formatdb”
BIOINFO3 - Lezione 36
4
FORMATDB
Tipicamente (se il database è un file di sequenze in formato FASTA) i
parametri che si usano con formatdb sono:
-i filename
-p F
Il primo è il nome del file di sequenze da formattare ed il secondo è necessario
solo se le sequenze del DB sono nucleotidiche
BIOINFO3 - Lezione 36
5
FORMATDB
Supponete di scrivere il file FASTA con tutte le sequenze EST delle
esercitazioni nella vostra directory /local/wwwstud/html/bioinfo3-xx.
Proviamo a creare la versione binaria del nostro database (flat-file) di EST
Notare i file “binari” creati
(.nhr, .nin, .nsq)
Notare il file di log creato
(formatdb.log)
BIOINFO3 - Lezione 36
6
BLASTALL
E’ importante che l’utente che eseguirà il blast abbia il diritto di leggere i file
binari. Se vogliamo eseguire il blast attraverso un programma cgi, e quindi
dall’utente con cui gira il server web httpd, dovremo esser sicuri che tale
utente possa leggere i file. Se comunque anche la creazione dei file binari con
il formatdb avviene attraverso un programma cgi e quindi è effettuata
sempre dall’utente con cui gira httpd, non dovrebbero esserci problemi,
sempre che tale utente abbia il permesso di scrivere nella directory.
Proviamo a scoprire qualcosa di più su blastall:
BIOINFO3 - Lezione 36
7
BLASTALL
E ovviamente anche con “man blastall”
BIOINFO3 - Lezione 36
8
BLASTALL
Anche in questo caso un’esecuzione “tipica” richiede pochi parametri:
-p versione-specifica-di-blast
-d database
-i query
La versione specifica di blast da usare (blastn, blastp, blastx,…) dipende
dalla nature della sequenza query e delle sequenze del database formattato.
Il database sarà il nome originale del database di sequenze in formato
FASTA, che dovrà essere stato preventivamente formattato
Query è il nome del file contenente la sequenza query
Blastall restituisce il risultato della sua elaborazione sullo standard output.
Per ottenerlo in un file sarà sufficiente redirezionare lo standard output con
il simbolo di > .
BIOINFO3 - Lezione 36
9
BLASTALL
Supponiamo di aver creato in /local/wwwstud/cgi-bin/bioinfo3-64 un file
fasta, chiamato seq, contenente una sequenza query. Tale sequenza potrebbe
ad esempio essere stata ricevuta via web: l’utente ha immesso nella form tale
sequenza desiderando verificarne le similarità contro il nostro database.
Proviamo per curiosità a lanciare il blastall di tale sequenza contro un
database non formattato (EST.fas anziché EST-ginseng.fas)
Il programma si accorge che il
database non è formattato!
BIOINFO3 - Lezione 36
10
BLASTALL
Proviamo invece a vedere il risultato di un blast correttamente eseguito sul
database formattato di sequenze
BIOINFO3 - Lezione 36
11
AUTOMATIZZAZIONE DEL BLAST
Programma che riceve come argomento una sequenza nucleotidica ed
effettua il blast contro il database di EST
BIOINFO3 - Lezione 36
12
ESECUZIONE
BIOINFO3 - Lezione 36
13
ESECUZIONE
BIOINFO3 - Lezione 36
14
ESECUZIONE
Una volta terminata l’esecuzione del programma proviamo anche a
verificare il file temp creato dal programma stesso. Per poter creare tale file
l’utente che esegue il programma deve poter scrivere nella directory (notare
come siano perciò stati settati a 777 i diritti per il file “.”, cioè per la directory
corrente. Eventualmente, una volta eseguito il blast, il programma potrebbe
anche rimuovere il file temp, di cui non ci sarà più bisogno.
BIOINFO3 - Lezione 36
15
RIEPILOGO
•Ricerca di similarità tra sequenze
•Il BLAST da linea di comando
•FormatDB
•Blastall
•Esecuzione da programma
BIOINFO3 - Lezione 36
16
Scarica

bioinfo3-36b