BLAST

Basic Local Alignment Search Tool

Introducción

BLAST

Herramientas online

Herramientas de escritorio

Bibliotecas

Introducción

BLAST

Herramientas online

Herramientas de escritorio

Bibliotecas

  • Los secuenciadores de última generación hacen que secuenciar organismos sea cada vez más "barato"
  • El ensamblado y anotación de las secuencias continúa siendo una ardua tarea
  • Ya hay mucha información de secuencias previamente anotadas
  • No necesitamos partir de cero, se puede tratar de inferir información de anotaciones previas
  • Para ello, existen muchas herramientas de búsqueda de secuencias similares a la nuestra

Búsqueda de similaridad en secuencias

  • Las secuencias a analizar pueden ser fundamentalmente:
    • Secuencias de proteínas (aminoácidos) (izqda.)
    • Secuencias de ADN (nucleótidos) (dcha.)

Tipos de secuencias y búsquedas

Si dos secuencias son similares, muy probablemente...

  • Deriven de una secuencia ancestral común
  • Compartan una misma estructura
  • Tengan una función biológica similar

Importancia de la similaridad

Homólogos (I)

  • Dos secuencias muy similares
  • ¿Qué significa muy similares? Bueno, puede haber discrepancias si tratamos de cuantificarlo, pero en varias fuentes aparecen:
    • En proteínas, >25% aminoácidos idénticos
    • En genes, >70% nucleótidos idénticos
  • No tomándose como dogma, puede dar una idea

Homólogos (II)

  • Para aportar mayor grado de certeza:
    • E-valor (medida de significación estadística)
    • Longitud de las secuencias
    • Patrones de conservación
    • Número de inserciones/borrados

Alineamiento de secuencias

  • Alineamiento de dos cadenas (entre dos dadas, o de una dada contra una base de datos)
    • Global (secuencia completa contra otra/s)
    • Local (busca subsecuencias similares)
    • Semiglobal (huecos en extremos no penalizados)
  • Alineamiento múltiple

Introducción

BLAST

Herramientas online

Herramientas de escritorio

Bibliotecas

BLAST (I)

  • Algoritmo más extendido de alineamiento local
  • Método heurístico, no garantiza solución óptima
  • Emplea programación dinámica
  • Busca secuencias similares en bases de datos
  • Existen muchos programas de la familia blast
  • Existen muchas variantes de BLAST
  • Y muchas herramientas para ello

BLAST (II)

  • Funcionamiento básico
    1. Búsqueda de hits, subsecuencias similares cuya puntuación supere un umbral:
      • En general, regiones idénticas de una cierta longitud. Al menos de alta puntuación en matriz de referencia (ej: BLOSUM)
    2. Extensión de pares de hits próximos (si tras la extensión superan umbral => HSP, high scoring pair)
    3. Evaluación del alineamiento (e-value)

BLAST (III) - Detalle

  • Dadas dos secuencias, un par de segmentos es un par de subsecuencias de la misma longitud entre las secuencias problema y de la base de datos superando un umbral de puntuación.
  • El algoritmo busca coincidencias de longitud fija, que se extienden a continuación hasta que se alcanzan ciertos parámetros umbral.
  • Los pares de puntuación alta (HSP, high scoring pairs) constituyen la base de los alineamientos que obtiene como salida BLAST.

BLAST (IV) - Ejemplo

BLAST (V) - Descripción detallada

  • Supongamos una secuencia Q y una base de datos D
  • Dada una secuencia Q:
    1. Eliminar regiones de baja complejidad de Q
    2. Recopilar k-tuplas de Q
    3. Filtrar tuplas: mantener las de alta puntuación, por encima de un umbral T
    4. "Sembrar" un conjunto de posibles alineamientos
    5. Generar pares de alta puntuación (HSPs) a partir de las semillas
    6. Evaluar la significancia/importancia estadística de las coincidencias de los HSPs
    7. Presentar el informe de alineamientos encontrados a partir de los HSPs

BLAST. 1-Eliminar baja complejidad

  • Si intentáramos alinear HHHHHHHHKMAY con HHHHHHHHURHD:
    • ​Tendrá alta puntuación en matriz BLOSUM
    • Pero la parte significativa es KMAY vs URHD
  • ​Por tanto, eliminaremos la región de H's (de baja complejidad) de la secuencia Q
  • El módulo SEG que suele venir con BLAST hace esa labor, aunque puede desactivarse.
    • ​Idea: establece una ventana que se mueve en Q, usa una rutina para determinar baja complejidad, y reemplaza el segmento por algo simplificado

BLAST. 2-Recopilar k-tuplas en Q

  • k la longitud de la ventana con la que recorrer Q:
    • Generalmente 3 para proteínas, 11 para ADN
    • Puede variar
  • Las tuplas suelen llamarse palabras (w, words). Al conjunto de las mismas se las suele denominar W

BLAST. 3-Encontrar k-tuplas de alta puntuación

  • Dada una palabra w de W, encontrar en la base de datos otras palabras de longitud k tales que:
    • Aparezcan en alguna secuencia, o bien
    • Su puntuación según la matriz (BLOSUM o similar) supere un umbral T
  • ​Elegir T para limitar el número considerado
  • Llamar a esas palabras tuplas de alta puntuación

BLAST. 3-Encontrar k-tuplas de alta puntuación - Ejemplo

  • Ej: sea w=MVK, y sea T=8
  • Supongamos que encontramos MVK, MEK, PVK, MVL y FVK en la base de datos
    • Blosum(MVK,MVK) = 5+4+5=14

    • ​Blosum(MVK,MEK) = 5-2+5=8

    • Blosum(MVK,PVK) = -2+4+5=7

    • Blosum(MVK,MVL) = 5+4-2=7

    • Blosum(MVK,FVK) = 0+4+5=9

  • ​Sólo se mantendrán MVK y FVK

BLAST. 3-Encontrar k-tuplas de alta puntuación - Consideraciones

  • Para cada w en W, se habrán encontrado todas las tuplas de alta puntuación.
    • Se deben organizar, recordando todos los lugares de Q donde se encontraba.
  • Cada tupla de alta puntuación será una semilla
    • Para generar posibles alineamientos

    • Una semilla puede generar más de un alineamiento

BLAST. 4-"Sembrar" posibles alineamiento

  • Para cada tupla v en Q (no en W):
    • Recuperar las palabras de alta puntuación, Hv.
    • Recuperar la lista de lugares de Q donde ocurre v, Pv.
  • Para cada par (w en Hv, pos en Pv)
    • Encontrar todas las secuencias (D) de la base de datos:

      • ​Con una coincidencia exacta con w en pos'.

    • ​Almacenar un alineamiento entre Q y D, con v en la posición pos en Q y w en la posición pos' en D

BLAST. 4-"Sembrar" posibles alineamiento - Ejemplo

  • Supongamos Q = MVKLAKAGKTHGMVK
  • Comenzaríamos con v=MVK:
    • Hv = {MVK, FVK}, Pv = {1, 13} 
  • Supongamos la secuencia en la base de datos
    • D =  LHMVKKEGHIJFVK
  • Los posibles alineamientos "sembrados" serían:

BLAST. 5-Generar pares de alta puntuación (HSPs)

  • Para cada "alineamiento" A, con secuencias Q y D emparejadas, con la región original de emparejamiento M:
    • Extender M a la izquierda, hasta que la puntuación comience a decrecer
    • Extender M a la derecha, hasta que la puntuación comience a decrecer 
  • De los tramos de secuencias mayores que la tupla original, nos quedamos con los de puntuación mayor que un umbral de puntuación, y deshechamos el resto

BLAST. 5-Generar pares de alta puntuación (HSPs) - Ejemplo

Así, tras la extensión por la derecha, nos quedamos con MVKLQT, con puntuación 21

BLAST. 6-Comprobar significancia estadística

  • Se trató de extender la regiones a alinear, para minimizar la probabilidad de que la coincidencia o la puntuación según la matriz (BLOSUM, etc.) ocurra por azar
  • Cuestión a dilucidar: ¿es un HSP significativo?
    • Supongamos un HSP con puntuación S para una región de longitud L en las secuencias Q y D
    • Se calcula la probabilidad de que dos secuencias aleatorias Q' y D' puntúen S en una región de longitud L, con Q' de igual longitud que Q y D' que D.
  • Esta probabilidad deberá ser muy pequeña para que sea significativo el HSP

BLAST 7 Informar de los alineamientos

  • Por cada HSP estadísticamente significativo:
    • Se incluye el alineamiento en el informe
  • Si una secuencia D tiene dos HSPs con la secuencia Q:
    • Se incluyen en el informe dos alineamientos distintos
    • Algunas versiones de BLAST unifican ambos.

Variantes de la comparación

  • blastp: proteínas con base de datos de proteínas
  • tblastn: proteínas con bd nucleótidos
  • blastn: nucleótidos con base de datos de nucleótidos
  • blastx: nucleótidos con base de datos de proteínas
  • tblastx: a partir de nucleótidos traduce a proteínas, que compara con base de datos de nucleótidos

BLAST. Capacidades y alternativas

  • Encontrar genes en un genoma: subsecuencias del genoma, blastx contra bd NR, o bien ejecutar software de predicción de genes más complicado
  • Predecir la función de una proteína: lanzar blastp o blastx contra swissprot, o conducir experimentos de análisis de dominio en laboratorio
  • Predecir estructura 3-D de proteínas: blastp contra bd PDB, o conducir modelización de homología, o análisis por rayos X o NMR de las proteínas
  • Encontrar miembros de la familia: blastp o PSI-blast contra NR, y multiple sequence alignment, o bien clonar nuevos miembros usando técnicas de PCR

Herramientas para lanzar BLAST

  • Aplicaciones web
  • Aplicaciones de escritorio/línea de comandos
  • Bibliotecas software

Introducción

BLAST

Herramientas online

Herramientas de escritorio

Bibliotecas

Herramientas online

Podemos lanzar BLAST en:

       (National Center for Biotechnology Information)

       (European Bioinformatics Institute)

       (Swiss Inst. of Bioinformatics, EMBnet server)

BLAST para secuencias proteicas

  • Objetivo: tenemos una secuencia proteica, y queremos encontrar otras similares en una base de datos de secuencias.
  • Dos opciones:
    • blastp: proteínas con base de datos de proteínas (para descubrir algo sobre mi proteína)
    • tblastn: proteínas con base de datos de nucleótidos (para descubrir nuevos genes que codifiquen proteínas simples)
  • En caso de duda, usar blastp

blastp en NCBI. Ejecución (I)

  1. Acudimos al servidor de NCBI para lanzar  pblast

blastp en NCBI. Ejecución (II)

  1. Introducimos la secuencia a consultar:
    • Si ya existe en la base de datos, por ID o "accession number". Por ejemplo: P09405
    • Si no se encuentra en la misma, proporcionando la secuencia en formato FASTA
  2. Indicamos la bd SWISSPROT
  3. Marcamos blastp como algoritmo

 

  1. Lanzamos

blastp en NCBI. Resultados (I)

Tras una pequeña espera se muestran los resultados:

- Datos de la query:

 

 

- Otros informes:

blastp en NCBI. Resultados (II)

- Vista general de hits (ver descripción aquí):

 

 

- Puntuación y vista gráfica:

blastp en NCBI. Resultados (II')

- Datos mostrados:

  • Puntuación
  • Query cover (% de la secuencia buscada que se alinea con la secuencia encontrada)
  • Ident (% de similaridad entre ambas secuencias sobre la longitud del área cubierta)
  • E-value (nº hits que uno podría esperar ver por azar; decrece exponencialmente conforme se incrementa la puntuación del alineamiento)

blastp en NCBI. Resultados (III)

- Alineamientos más significativos:

blastp en NCBI. Resultados (IV)

- Detalle del alineamiento (desde la vista gráfica o la lista de alineamientos + significativos):

blastp en NCBI. Conservar datos (I)

- Request ID:

 

- Almacenar criterios de búsqueda:

blastp en NCBI. Conservar datos (II)

- Descargar resultados:

  • Globales:

 

 

  • Individuales:

blastp en ExPASy (I)

- Acudimos a la web de ExPASy para lanzar blastp, e introducimos el mismo accession number, P09405, con la selección de base de datos de proteínas, y hacemos Run.

blastp en ExPASy (II)

- Visualizamos los resultados gráficos:

blastp en ExPASy (III)

- Así como la lista de hits:

blastp en ExPASy (IV)

- Detalle de un alineamiento:

blastp en ExPASy (V)

- Criterios de búsqueda:

 

 

 

 

- Extracción de datos:

blastp en EBI (I)

- Vamos al servidor del EBI, seleccionamos Swiss-Prot, seleccionamos archivo de secuencia, y programa blastp:

blastp en EBI (I')

- Parámetros avanzados (opcional):

   Ejemplo: matriz BLOSUM o PAM

 

 

 

- Lanzamos la consulta:

blastp en EBI (II)

- Obtenemos la lista de hits como salida:

blastp en EBI (III)

- Podemos ver detalle de alineación o anotación:

 

 

 

 

 

 

   - Como vemos, también podemos descargar datos

      o enviar a otra herramienta

blastp en EBI. Salidas adicionales (I)

blastp en EBI. Salidas adicionales (II)

blastp en EBI. Salidas adicionales (III)

blastp en EBI. Salidas adicionales (IV)

blastp en EBI. Salidas adicionales (V)

Otros servidores

BLAST para secuencias nucleotídicas

- Los principios son los mismos que en las anteriores

- Requiere operaciones similares

- No es tan eficiente como en el caso de las proteínas

BLAST para ADN. Objetivos

  • Objetivo: tenemos una secuencia nucleotídica, y queremos encontrar otras similares en una base de datos de secuencias
  • Tres opciones:
    • blastn: secuencias de nucleótidos contra bd de nucleótidos, para secuencias muy similares
    • tblastx: secuencias recibida y encontrada traducidas a proteínas
    • blastx: secuencia recibida contra bd de secuencias proteicas

BLAST ADN. ¿Cuál usar?

  • Si estoy interesado en ADN no codificante, blastn
  • Si quiero descubrir nuevas proteínas, tblastx
  • Si quiero descubrir proteínas que están codificadas en mi cadena de ADN, blastx
  • Si no estoy seguro de la calidad de mi cadena de ADN (puede tener errores de secuenciación), blastx

BLAST ADN. ¿Qué bd y criterio?

  • A menos que estemos usando blastx (que se lanza contra bd de proteínas), debemos selecionar una base de datos de secuencias nucleotídicas
  • Restringe la búsqueda a bd más específica, ya que estas búsquedas son más lentas
  • Establece criterios más restrictivos de filtrado si es necesario

blastn en NCBI. Ejercicio

  • Con lo que ya hemos visto para las proteínas, podemos realizar este ejercicio:
    • Acceder al servidor de NCBI
    • Determinar si esta secuencia de ADN que hemos obtenido en un secuenciador tiene similaridad con algunos genes conocidos, para poder consultar anotaciones
    • Quedarnos con la primera secuencia cuyo gen tenga RefSeq a revisado (accession NM_...)
    • ¿Cómo se llama el gen? ¿Podemos en principio considerarlo homólogo?

blastn en NCBI. Ejercicio resuelto

  • Los detalles de este ejercicio se pueden encontrar en:

Introducción

BLAST

Herramientas online

Herramientas de escritorio

Bibliotecas

BLAST+ para Unix

Distintas formas de obtenerlo:

Una vez instalado, podemos descargarnos bases de datos como indica el manual de arriba.

En este enlace podemos ver el listado de bases de datos disponibles.

 

BLAST+ para Unix - Ejercicio

Podemos emplear estas utilidades con el mismo ejemplo de proteínas visto, mediante:

  • ftp ftp.ncbi.nlm.nih.gov, usuario anonymous
    • cd blast/db
    • bin
    • get swissprot.tar.gz
    • exit
  • tar zxvpf swissprot.tar.gz
  • makeblastdb -entry P09405 -db swissprot > P09405.fa
  • blastp -query P09405.fa -db swissprot -out P09405.blast

Introducción

BLAST

Herramientas online

Herramientas de escritorio

Bibliotecas

Perl

  • Existen muchas bibliotecas y scripts para poder trabajar con BLAST desde distintos lenguajes de programación, para:
    • Automatizar tareas
    • Pre-procesar/post-procesar secuencias o alineamientos
    • ...
  • Perl es un buen ejemplo de ello.

 

Perl

  • El paquete BioPerl proporciona mucha funcionalidad para Bioinformática, incluyendo lo relacionado con:
    • Secuencias
    • BLAST, ClustalW
    • ...
  • Algunos ejemplos:

Python

 

Python

  • En remoto:

 

 

 

 

 

Python

  • Un ejemplo simple para guardar solamente los primeros diez alineamientos:

 

 

 

 

 

 

  • Más sobre el parsing de la salida aquí

Introducción

BLAST

Herramientas online

Herramientas de escritorio

Bibliotecas

Trabajos propuestos

Trabajos propuestos

  • Estudiar las distintas variantes de BLAST que existen en la actualidad, incluyendo opciones con huecos, PSI-BLAST, etc.
  • Estudiar alternativas a BLAST, tanto exhaustivas como heurísticas, detallando las similitudes y diferencias, ventajas e inconvenientes
  • Explorar el uso de BLAST a través de bibliotecas de lenguajes de programación como:
    • Python
    • Perl
    • R

Bibliografía

 

Made with Slides.com