Intro Alineamiento

Sin lugar a duda, el alineamiento es uno de los pilares principales de la bioinformática. Un sinfín de aplicaciones se basan en la comparación de dos secuencias:

  • Ensamblar un contig requiere la comparación de todas las lecturas producidas
  • La secuenciación del genoma de un individuo requiere el alineamiento de todas las lecturas frente al genoma de referencia.
  • Un análisis evolutivo molecular se basa en la comparación de secuencias homólogas

Como nota, hoy en día se usa frecuentemente el término ‘mapear’ si nos referimos a la comparación de una secuencia consigo misma (buscar la posición de una lectura dentro del genoma por ejemplo) dejando el término ‘alinear’ para la comparación entre dos secuencias homólogas.

Podemos distinguir diferentes tipos de alineamiento:

Métodos exhaustivos:

Estos métodos suelen garantizar encontrar el mejor alineamiento entre dos secuencias (alineamientos óptimos) dado un sistema de puntuación. Se llaman exhaustivos ya que comprueban todas las posibilidades. Entre los algoritmos más conocidos con estas características destacan el Needleman-Wunsch (Needleman and Wunsch, 1970b) y Smith-Waterman (T.F. Smith and Waterman, 1981). La base de estos algoritmos es la comparación de dos secuencias mediante una matriz de puntos (véase ilustración 1). Los algoritmos recorren todos los caminos posibles atreves de la matriz garantizando así encontrar el mejor alineamiento. La desventaja es que este procedimiento exhaustivo es muy lento, y por lo tanto prohibitivo para muchas aplicaciones como la búsqueda de una secuencia dentro de una base de datos.

Heurístico:

Los métodos heurísticos en cambio son mucho más rápidos pero no siempre encuentran la mejor solución. FASTA (Lipman and Pearson, 1985), BLAST (Altschul et al., 1990) y BLAT (Kent, 2002) son los representantes más famosos de este tipo de algoritmos. La idea básica detrás es de determinar primero si dos secuencias comparten una sub-secuencia de cierta longitud (semilla). Si esta secuencia existe, se realiza un alineamiento local exacto.

Global y local

Alineamientos pueden ser local (Smith-Waterman) o global (Needleman-Wunsch). Un alineamiento global alinea a la fuerza las dos secuencias en su longitud total. Esto puede llevar a problemas si dos secuencias son muy diferentes globalmente, pero comparten una región conservada con secuencias altamente similares (un dominio funcional por ejemplo). Para detectar estos casos con más exactitud, se busca las sub-secuencias con mayor similitud entre ellas.