Bioinformatica e Web 2.0

Inside Bioinfo

18 giugno 2007 - 17:39

blast su DB – una nuova proposta (progetti utili o disutili?)

Blast è molto probabilmente al momento l’algoritmo migliore per allineamento di sequenze. Come viene definito ufficialmente:

The Basic Local Alignment Search Tool (BLAST) finds regions of local similarity between sequences. The program compares nucleotide or protein sequences to sequence databases and calculates the statistical significance of matches. BLAST can be used to infer functional and evolutionary relationships between sequences as well as help identify members of gene families.

Ne ha già scritto Dalloliogm in un post molto intuitivo sul suo blog personale. Per chi non sapesse di cosa di stia parlando consiglio di leggerlo qui.

Blast è usato in un bazilione di applicazioni interessanti. Qui vi volevo sottoporre un nuovo progetto proposto da Felipe Albrecht sul suo blog. Si propone infatti di integrare Blast con un database tipo PostgreSQL .

Il progetto è descritto (sommariamente per ora) su sourceforge. In inglese, per fortuna (nonostante tutto, lo trovo più facile dello spagnolo :-) .

Senza voler polemizzare eccessivamente, mi chiedo se tali progetti possano apportare un effettivo beneficio alla comunità scientifica, almeno pari al sudore della fronte speso nel realizzarli. Lo stesso autore è ben cosciente del fatto che esso si sovrappone parzialmente con altri progetti similari che cercano di integrare ed estendere l’uso di un potentissimo tool come postgrSQL alla biologia computazionale e all’analisi di dati high throughput (Biopostgres). C’è inoltre da considerare un aspetto, secondo me importantissimo, ovvero che proprio l’assoluta semplicità/modularità di Blast permette di integrarlo velocemente in script perl (e/o python).

Aver installato su di un server locale Blast permette di accedervi attraverso script CGI, o per linea di comando. Estrarne l’output in formato testo e farne quindi mille usi diversi. Anche partir dai risultati generati per sondare altri database disponibili online. Dove sta quindi l’effettiva utilità di questo progetto? L’autore mette l’accento su un aspetto:

A [good] approach is to use good data bases schemas, like GUS , to store the sequences and their information, but a problem occur when a search by similarity is needed. The sequences must be dumped into a temporary file, this temporary file must be formatted to the blast format and finally, the search can be performed. After this process, the results must be saved into the data base. This process wastes time [and money].

Personalmente non mi convince molto. Racchiudere l’algoritmo di Blast in confini legandolo ad un database ne limiterebbe l’utilizzo (sebbene ammetto che permetterebbe un più immediato recupero di informazioni genomiche/proteomiche connesse, attraverso un accorto uso delle query). Al contempo però credo crescerebbero esponenzialmente le problematiche da affrontare in fase di sviluppo. Ovvero quali dati inserire all’interno di questo database, come tener conto di futuri sviluppi e di basi dati nuovi e interessanti?

Piccola provocazione per incentivare la conversazione. Cosa ne pensate?

Related Posts

  1. Nuova uscita per Bio::Blogs #18
  2. Openhelix (una risorsa importante per il bioinformatico)
  3. Una biblioteca di PDF scientifici (per Mac ma non solo)
  4. L’integrazione della complessità. Una interessante analisi
  5. Protein ID mapping (come passar da una nomenclatura ad un’altra in due facili click)
  • Andrea - 19 giugno 2007 # 1

    Io direi che i due algoritmi euristici più importanti siano blast e fasta. Siccome calcolano diversamente la significatività statistica, possono dare risultati un poco differenti ed entrambi validi.
    Consiglierei a tutti di utilizzarli entrambi.

    Mi spiace non poter discutere la questione legata a quel database, perchè non ho confidenza con la programmazione e non ho compreso i vantaggi e i limiti di quell’applicazione.

  • Giovanni (gdm) - 19 giugno 2007 # 2

    Interessante,
    quindi tu dici che questi tizi vorrebbero migliorare Blast, utilizzando un database invece che flat-files per immagazzinare le sequenze target?

    Beh non e’ una brutta idea… alla fine, ci si potrebbe inventare un sistema per creare automaticamente un database, cosi’ come adesso funziona lo script formatdb (si chiama cosi’?)

    E’ un processo in piu’ durante l’installazione pero’ se aumenta la velocita’ di esecuzione…non e’ male :)

    Poi e’ vero che ci sono tanti progetti per migliorare Blast… una volta se non sbaglio, avevo sentito parlare di qualcosa al S.Raffaele di Milano.

    ciao!

  • dawe - 21 giugno 2007 # 3

    Bah, migliorare BLAST e’ gia’ possibile. Anzi, e’ gia’ fatto: BLAT. I ragazzi dell’UCSC hanno creato questo BLAST Like Alignment Tool che, come si puo’ leggere qui ha gli stessi scopi ma permette migliori performance.
    Sulla questione di interfaccia con un database, io sono un po’ scettico. Mi spiego meglio: se parliamo di semplici allineamenti non e’ che si guadagna qualcosa nel mettere in un database delle sequenze (raw), il vantaggio di un database si ha quando il programma (o i programmi) che lo utilizzano sono piu’ strutturati e servono a gestire diversi tipi di informazioni. In secondo luogo, se proprio si volessero archiviare delle sequenze in un formato “relazionale”, basterebbe SQLite. Un database relazionale come PostgreSQL (o MySQL o altri ancora) e’ utile quando si ha necessita’, tra le altre cose, di accessi in lettura/scrittura di molteplici utenti in un solo momento. Allineare sequenze e’ una questione di lettura di un dato, il set di sequenze contro cui allineare, e confronto con sequenze query.

  • tredinertok - 10 luglio 2007 # 4

    Hello

    Very interesting information! Thanks!

    G’night

 

RSS feed per i commenti di questo post | TrackBack URI