Bioinfo Blog!

blog di bioinformatica e di esperienze di studio all’estero

Spieghiamo cosa e’ Blast – come se fosse un motore di ricerca

Posted by dalloliogm su giugno 11, 2007

Qualche tempo fa avevo promesso di dedicare un post per spiegare cosa é Blast, per coloro che non fossero pratici del campo bioinformatico.

 

Visto che vorrei farlo nella maniera più semplice possibile, mi arrischio a proporre una analogia:

  • Blast é l’equivalente di google per le ricerche su sequenze proteiche o nucleiche.

Ovvero: Blast é un motore di ricerca che permette, data la sequenza di una proteina, di un gene, o qualsiasi cosa venga fuori da un esperimento, di trovare se nelle banche dati già esistenti ci sia già qualche altra sequenza identica o simile ad essa e con quale relazione.

 

Questa definizione é molto semplicistica e i lettori bioinformatici staranno storcendo il naso: se andate ad affermare una cosa del genere al vostro esame di bioinfo, il prof vi tira una botta in testa. Pero’ continuate a leggere che mi spiego meglio.


(provate ad a pensare a Blast come ad un motore di ricerca. spero che nessuno mi denunci per questo montaggio!)

 

 

Innanzitutto potete raggiungere l’home page di Blast (per la precisione, NCBI-Blast) da questo link qui:

potete provarlo se selezionate uno dei dataset presenti (per esempio, il genoma di Homo Sapiens, o quello dello Chimpanzee) e inserite la prima sequenza che vi trovate sottomano (altrimenti createne una premendo a caso i tasti A-C-G-T per un po’).

 

Ora quando lanciate Blast, vi ritrovate sullo schermo una lista di risultati, che rappresentano tutte le sequenze ‘simili’ a quella che avete inserito, in ordine decrescente di punteggio.

 

Ma come viene definito questo punteggio? Come fa Blast a decidere qual é la seq. ‘più simile’ alla vostra?
Certo se nel database esiste già una sequenza perfettamente identica a quella che avete inserito, il compito é piuttosto semplice.
Ma altrimenti? Per esempio, se ci sono tre sequenze con una differenza ciascuno:

 

-> noi inseriamo in blast la seq. ‘AAAAAAAA
-> nel database di ncbi esistono le seq. ‘AAAASAAA‘ ‘AAAAAAAY‘ e ‘AKAAAAAA‘.

 

Qual é la più simile?

 

Un problema del genere ce l’hanno anche i motori di ricerca sul web. Immaginate di cercare su Internet il termine ‘alternative splicing’. Come fa google a sapere qual é la pagina ‘numero 1’ da associare a questi termini?
Non é un problema banale, e probabilmente non é neppure possibile risolverlo senza fare delle approssimazioni.

Google affronta questo problema con l’algoritmo del Page Rank, che non ci interessa, mentre in biologia gli scienziati si sono inventati le matrici di sostituzione.

 

In parole povere, una matrice di sostituzione é una matrice in cui ad ogni possibile mutazione (per esempio, se troviamo una ‘T’ al posto di una ‘A’), viene associato un punteggio.

 

Come vengono attribuiti questi punteggi?
Si usano delle vecchie matrici calcolate negli anni ’70, le PAM e le BLOSUM, che attribuiscono i punteggi in base al tasso di sostituzione per ogni aminoacido all’interno dei migliori dataset di sequenze disponibili al momento.

 

In genere si suole considerare che la bioinformatica sia nata nel 1966 quando Margaret Dayhoff (la madre della bioinformatica) compilò le matrici PAM.

 

Quindi le matrici utilizzate attribuiscono dei punteggi in base ai tassi di sostituzione in un insieme di sequenze veramente vecchio, e nemmeno é possibile valutare direttamente il loro significato biologico (sono come le equazioni dei nodi interni in una rete neurale) ma questo poco importa, perché si tratta di matrici che sono state utilizzate fin dall’alba della bioinfo, e difatti si tratta di degli standard.

 

Cosa vuol dire che Blast é un algoritmo ‘euristico’?

Un’altra complicazione che i creatori di ncbi-blast é che eseguire il confronto tra una sequenza e l’intero database é un’operazione decisamente costosa computazionalmente, perché bisogna analizzare il punteggio di ogni singola combinazione tra la sequenza inserita e quelle target, e se si utilizzasse un algoritmo preciso, considerato il numero di scienziati che ogni giorno lanciano blast, i computer dell’NCBI scoppierebbero.

 

Non é un problema facilmente risolvibile: ogni giorno i database di sequenze crescono, così che non basta aumentare la potenza dei computer a meno di non fare investimenti miliardari.

 

E’ questo il punto per cui NCBI-Blast é popolare: invece di eseguire un allineamento base per base, utilizza dei trucchetti, ovvero confronta coppie o triplette o piccole sottosequenze alla volta, rintracciando gli allineamenti più lunghi successivamente, e cosi’ e’ ragionevolmente piu’ veloce: questo permette che l’intera comunità scientifica possa utilizzarlo.

 

Naturalmente ci sono dei piccoli svantaggi utilizzando questi trucchetti: i risultati ottenuti potranno non essere esattamente i migliori possibili, o saranno in un ordine sbagliato; ma quelli che si ottengono sono in genere sempre dei risultati soddisfacenti, anche perché altrimenti Blast non sarebbe così popolare.

 

Per i dettagli vi rimando al vostro corso di bioinformatica preferito.

 

Attenzione a non fare confusione: ci sono almeno due punti in cui si fanno approssimazioni nell’intero processo, quello in cui si assume che la matrice di sostituzione utilizzata sia verosimile, e quello introdotto da Blast.

 

Aspetta, aspetta!

Ci sarebbero ancora tante cose da dire su Blast.
Così come é possibile utilizzare i motori di ricerca in tanti modi diversi, anche Blast può essere utilizzato per fare tante cose.

Per esempio, immaginate di avere una mano la sequenza di un gene umano: se la lanciate contro il genoma di un altro organismo come il topo, potreste trovare un possibile ortologo (una sequenza che ha una origine in comune con quella che avete in mano).
Oppure, é possibile confrontare due sequenze fra di loro, invece che contro un database: in realtà, dal punto di vista del programma si tratta dello stesso problema.

 

 

 

Spero di non avervi spaventati con questa mia visione apocrifa di blast. Ci tengo a precisare che quella che vi ho illustrato é solo una analogia, e che altre persone potrebbero non essere d’accordo.

 

Volevo solo dare un esempio per illustrare il modo d’uso per cui questo programma é stato pensato, e che potrebbe essere utilizzato dai ricercatori. In fondo alla maggior parte degli scienziati, non interessa conoscere i dettagli di come funzionano i programmi che usano (purtroppo!), ma solo come poter utilizzarli.

 

 

Ciao! 🙂

10 Risposte to “Spieghiamo cosa e’ Blast – come se fosse un motore di ricerca”

  1. domi84 said

    Ciao Dall’ò 😀 .
    Ottima l’analogia!!!Non ho ancora fatto l’esame di bioinformatica, ma mi sembra di aver capito tutto di Blast ;D (lo so che non è così). Continua così!!!

    P.S. sì, sono lo stesso di MolecularLab…hai spammato talmente tanto che era impossibile non visitare il tuo blog e aggiungerlo fra i preferiti… 😉

  2. dalloliogm said

    ciao domi!!
    eheh muchas gracias, modestamente sono abbastanza bravo nel farmi spam 🙂

    Ho provato a fare questa analogia.. però fai attenzione, perché é più che altro una opinione personale e molti prof ti potrebbero storcere il naso a sentirla.

    Ascolta bene il modo in cui il tuo prof ti spiegherà blast, che sicuramente lo farà meglio di me… questo modo di vedere blast ti potrebbe servire per avere un’idea alternativa su come utilizzarlo, giusto per inquadrarlo meglio.

    ciauz!! 🙂

  3. Andrea said

    Ciao dalloliogm, bella l’idea di spiegare blast come google. molto didattica. Vorrei discutere se non sia meglio inserire sequenze aminoacidiche, piuttosto che nucleotidiche, quando parli della matrice di punteggio, per non creare confusione.

    “-> noi inseriamo in blast la seq. ‘AAAAAAAA‘
    -> nel database di ncbi esistono le seq. ‘AAAAGAAA‘ ‘AAAAAAAT‘ e ‘ACAAAAAA‘.”

    Se non erro pam e blosum valgono per gli aminoacidi, dove si valuta non solo l’identità ma anche la similarità.
    sei d’accordo?

  4. Alessandro said

    “-> noi inseriamo in blast la seq. ‘AAAAAAAA‘
    -> nel database di ncbi esistono le seq. ‘AAAAGAAA‘ ‘AAAAAAAT‘ e ‘ACAAAAAA‘.”

    Un *pessimo* esempio. In Blast le sequenze ripetitive come quella dell’esempio (una bella coda di poliadenilazione..) vengono filtrate e nascoste PRIMA di efettuare la ricerca.

    Idem per le matrici:

    In parole povere, una matrice di sostituzione é una matrice in cui ad ogni possibile mutazione (per esempio, se troviamo una ‘T’ al posto di una ‘A’), viene associato un punteggio.

    Le matrici di sostituzione di DNA sono molto povere, perche’ comprendono solo i valori 0 e 1 (non c’e’ motivo per cui una transizione debba avere un valore diverso da una trasversione).

    Per il resto l’analogia e’valida, ma molto povera dal punto di vista biologico.

  5. Andrea said

    Alessandro ti sei confuso. Blast maschera le regioni a bassa ripetizione di “default” ma tale filtro è opzionale.

  6. dalloliogm said

    uh ok!
    Credo che abbiate ragione. Cambierò le sequenze da nucleotidiche a aminoacidiche.

    Però vorrei tenere come esempio ‘AAAAAAAAA’ anche se effettivamente non é molto appropriato con Blast. Il fatto é che mi sembra più semplice capire quale sia il problema nel calcolare la similarità di due sequenze se si vede che differiscono solo di un aminoacido.

    Che oligonucleotide ci metto? Pensavo di lasciare AAAAAAAAA, perché se non mi sbaglio é la prima sequenza proteica sintetizzata artificialmente (o mi sbaglio? Non é uno dei primi esperimenti per studiare la traduzione proteica? Come si chiamava?)

    ciao!

  7. […] 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. […]

  8. marco said

    ciao ragazzi vorrei sapere dove posso trovare materiale su blast in italiano… grazie!

  9. dalloliogm said

    Vediamo un po’ in italiano, non credo che ci siano molte risorse su blast.

    Potresti trovare qualche diapositiva proveniente dai vari corsi di bioinformatica degli atenei italiani, se cerchi su google con parole chiave come ‘blast corso’ o ‘blast bioinformatica diapositive’.
    Ma tutto dipende da cosa vuoi trovare: se una semplice guida che ti spieghi come si usa l’interfaccia sul sito dell’ncbi, o se vuoi installarlo in locale, o se vuoi sapere le differenze tra WU e NCBI e blast, e così via.

    Se ti va bene del materiale in inglese ti consiglio due ottimi documenti:
    – il capitolo su NCBI Handbook (http://www.ncbi.nlm.nih.gov/books/bv.fcgi?rid=handbook.chapter.ch16)
    – gli articoli su wikiomics/openwetware (http://wikiomics.org/wiki/BLAST , http://openwetware.org/wiki/Wikiomics:BLAST).

  10. Ernesto said

    Puoi trovare qualcosa di BLAST in italiano in uno di questi libri:

    – BIOINFORMATICA della Prof. Tramontano
    – INTRODUZIONE ALLA BIOINFORMATICA dei prof. Valle, Citterich, Attimonelli, Pesole

    Entrambi pubblicati da Zanichelli.

    Ciao

Sorry, the comment form is closed at this time.