Un alineamiento de secuencias en bioinformática es una forma de representar y comparar dos o más secuencias o cadenas de ADN, ARN, o estructuras primarias proteicas para resaltar sus zonas de similitud, que podrían indicar relaciones funcionales o evolutivas entre los genes o proteínas consultados. Las secuencias alineadas se escriben con las letras (representando aminoácidos o nucleótidos) en filas de una matriz en las que, si es necesario, se insertan espacios para que las zonas con idéntica o similar estructura se alineen.
centrado|Un alineamiento de secuencias, generada por ClustalW entre dos proteínas dedos de zinc identificadas por el número de acceso GenBank (Clave).
Aunque las bases nucleotídicas del ADN y ARN son más similares entre sí que con los aminoácidos, la conservación del emparejado de bases podría indicar papeles funcionales o estructurales similares. El alineamiento de secuencias puede utilizarse con secuencias no biológicas, como en la identificación de similitudes en series de letras y palabras del lenguaje humano o en análisis de datos financieros. Entre los algoritmos más populares basados en la comparación de estructuras primarias de proteínas, se deben destacar el algoritmo Needleman-Wunsch, el algoritmo Smith-Waterman, BLAST y FASTA
Secuencias muy cortas o muy similares pueden alinearse manualmente. Aun así, los problemas más interesantes necesitan alinear secuencias largas, muy variables y extremadamente numerosas que no pueden ser alineadas por humanos. El conocimiento humano se aplica principalmente en la construcción de algoritmos que produzcan alineamientos de alta calidad, y ocasionalmente ajustando el resultado final para representar patrones que son difíciles de introducir en algoritmos (especialmente en el caso de secuencias de nucleótidos). Las aproximaciones computacionales al alineamiento de secuencias se dividen en dos categorías: alineamiento global y alineamiento local. Calcular un alineamiento global es una forma de optimización global que "fuerza" al alineamiento a ocupar la longitud total de todas las secuencias introducidas (secuencias problema). Comparativamente, los alineamientos locales identifican regiones similares dentro de largas secuencias que normalmente son muy divergentes entre sí. A menudo se prefieren los alineamientos locales, pero pueden ser más difíciles de calcular porque se añade el desafío de identificar las regiones de mayor similitud. Se aplican gran variedad de algoritmos computacionales al problema de alineamiento de secuencias, como métodos lentos, pero de optimización, como la programación dinámica, y métodos heurísticos o probabilísticos eficientes, pero no exhautivos, diseñados para búsqueda a gran escala en bases de datos.
Representaciones Los alineamientos se representan normalmente con un formato gráfico y de texto. En casi todas las representaciones de alineamientos, las secuencias se escriben en filas de forma que los residuos alineados aparecen en columnas sucesivas. En los formatos de texto, las columnas alineadas contienen caracteres idénticos o similares, estos últimos indicados con sistema de símbolos de conservados. En la imagen superior se utiliza el asterisco para mostrar identidad entre dos columnas. Otros símbolos menos comunes son la coma para sustituciones conservativas y el punto para sustituciones semiconservativas. Muchos programas de visualización de secuencias utilizan también esquemas coloreados para mostrar información de las propiedades de los elementos secuencia individuales; en secuencias de ADN y ARN significa asignar a cada base su propio color. En alineamientos de proteínas, como el de la imagen superior, los colores se utilizan para indicar propiedades de los aminoácidos para ayudar en la caracterización de conservación o en una sustitución aminoacídica dada. Cuando se introducen múltiples secuencias la última fila de cada columna suele representar la secuencia consenso determinada por el alineamiento. También suele representarse la secuencia consenso en un formato gráfico bajo un logo de secuencias, en el que el tamaño de la letra de cada nucleótido o aminoácido es proporcional a su grado de conservación.
Los alineamientos de secuencias pueden almacenarse en una amplia variedad de formatos de archivo de texto, muchos de los cuales han sido desarrollados a la vez que un programa o implementación de alineamiento. La mayoría de las herramientas web permiten varios formatos de entrada y salida, como el formato FASTA y GenBank. La utilización de herramientas específicas en cada laboratorio de investigación puede complicarse por la baja compatibilidad. Existen programas de conversión genérica en SEQRET (EMBOSS), o en DNA Baser
Alineamientos locales y globales Imagen de un alineamiento local y uno global demostrando la tendencia a poner huecos de los alineamientos globales si las secuencias no son muy similares.
Los alineamientos globales, que intentan alinear cada residuo de cada secuencia, son más útiles cuando las secuencias problema iniciales son similares y aproximadamente del mismo tamaño (no quiere decir que los alineamientos globales no puedan terminar en huecos). Una estrategia general de alineamiento global es el algoritmo Needleman-Wunsch basado en programación dinámica. Los alineamientos locales son más útiles para secuencias diferenciadas en las que se sospecha que existen regiones muy similares o motivos de secuencias similares dentro de un contexto mayor. El algoritmo Smith-Waterman es un método general de alineamiento local basado en programación dinámica. Con secuencias suficientemente similares, no existe diferencia entre alineamientos globales y locales.
Los métodos híbridos, conocidos como semiglobales o métodos "glocales" intentan encontrar el mejor alineamiento posible que incluya el inicio y el final de una u otra secuencia. Puede ser especialmente útil cuando la parte "corriente arriba" de una secuencia se solapa con la parte "corriente abajo" de la otra. En este caso, ni el alineamiento global ni el local son completamente adecuados: un alineamiento global intentará forzar a la alineación a extenderse más allá de la región de solapamiento, mientras que el alineamiento local no cubrirá totalmente la región solapada.
Alineamiento de pares Los métodos de alineamiento de pares, o emparejamientos, se utilizan para encontrar la mejor coincidencia en bloque (local) o alineamiento global de dos secuencias. Los alineamientos de pares sólo pueden utilizarse con dos secuencias a la vez, pero son eficientes de calcular, y son utilizados a menudo en métodos que no requieren precisión extrema, como la búsqueda en bases de datos de secuencias con alta homología de secuencia con respecto a una petición. Los tres métodos principales de generar alineamientos de pares son los de matriz de puntos, los de programación dinámica y los de búsqueda de palabra, aunque la mayoría de métodos de alineación múltiple de secuencias pueden funcionar con sólo dos secuencias. Aunque cada método tiene sus propios puntos fuertes y débiles, todos ellos tienen problemas para alinear secuencias repetitivas con bajo contenido en información, especialmente cuando el número de repeticiones puede ser diferente en las dos secuencias que se alinean. Una manera de cuantificar la utilidad de un alineamiento de pares determinado es la "máxima coincidencia individual", o la mayor subsecuencia que se da en ambas secuencias en estudio. En general, cuanto mayor sea tal subsecuencia, más cercana será su relación.
Métodos de matriz de puntos miniatura|200px|Una matriz de puntos de ADN del factor de transcripción dedo de zinc en el ser humano (GenBank ID NM_002383), mostrando autosimilitud regional. La diagonal principal representa el alineamiento de la secuencia consigo misma; las líneas fuera de esta diagonal representan patrones similares o repetitivos dentro de la secuencia. Es un ejemplo típico de gráfica recurrente. El enfoque de matriz de puntos (o matrix-dot), que implícitamente produce una familia de alineamientos para regiones individuales de la secuencia, es cualitativo y simple, a pesar de que consume mucho tiempo para análisis a gran escala. Es fácil identificar visualmente determinadas características de la secuencia (como inserciones, borrados, repeticiones, o repeticiones invertidas) en una gráfica de matriz de puntos. Para construir una gráfica de matriz de puntos, las dos secuencias se colocan a lo largo de la fila superior y de la columna que está más a la izquierda de la matriz de dos dimensiones y se coloca un punto en cualquier lugar en el que los caracteres en las columnas correspondientes coincidan (esta es una típica gráfica recurrente). Algunas implementaciones varían el tamaño o la intensidad de los puntos en función del grado de similitud de los dos caracteres, para dar cabida a las sustituciones conservadas. La gráfica de puntos de secuencias muy estrechamente relacionadas aparece como una única línea a lo largo de la diagonal principal de la matriz .
Las gráficas de puntos también pueden utilizarse para evaluar repetitividad en una sola secuencia: una secuencia se gráfica contra sí misma, y las regiones que comparten similitudes significativas aparecerán como líneas fuera de la diagonal principal. Este efecto puede ocurrir cuando una proteína consta de múltiples dominios estructurales similares.
Programación dinámica La técnica de programación dinámica puede aplicarse para producir alineamientos globales mediante el algoritmo de Needleman-Wunsch, así como alineamientos locales mediante el algoritmo de Smith-Waterman. En una utilización habitual, en los alineamientos de proteínas se utiliza una matriz de sustitución para asignar puntuaciones a las coincidencias y a las diferencias entre aminoácidos, y una penalización por gap (literalmente hueco, aunque en buena parte de la literatura en castellano se utiliza el vocablo inglés) al hacer coincidir un aminoácido de una secuencia con un hueco en otra. En alineamientos de ADN y ARN puede usarse una matriz de puntuaciones, pero en la práctica, a menudo, se asigna simplemente una puntuación positiva a las coincidencias, una negativa a las diferencias, y otra penalización negativa a los gaps. (En la programación dinámica estándar la puntuación de la posición de cada aminoácido es independiente de la identidad de sus vecinos, por lo que los efectos del apilamiento de bases no se toman en cuenta. Sin embargo, es posible hacerlo modificando el algoritmo.)
La programación dinámica puede ser útil en el alineamiento de nucleótidos con secuencias de proteínas, una tarea complicada por la necesidad de tomar en consideración las mutaciones con cambio (inserciones o borrados, normalmente). La búsqueda del marco abierto de lectura proporciona una serie de alineamientos de pares locales o globales entre una secuencia de nucleótidos a investigar (secuencia problema) y un conjunto de búsqueda de secuencias de proteínas, o viceversa. A pesar de que el método es muy lento, su habilidad para evaluar la compensación de los marcos de lectura para un número arbitrario de nucleótidos lo convierte en útil para secuencias que contengan un buen número de indels, los cuales pueden ser muy difíciles de alinear con métodos heurísticos más eficientes. En la práctica, el método requiere una buena cantidad de potencia de cómputo, o un sistema cuya arquitectura esté especializada en programación dinámica. Las suites BLAST y EMBOSS proporcionan herramientas básicas para crear alineamientos adaptados (aunque alguno de estos enfoques saca ventaja de los efectos laterales de la capacidad de búsqueda de secuencias de las herramientas). Se consiguen métodos más generales tanto de fuentes comerciales (como “FrameSearch”, distribuido como parte del paquete Accelrys GCG), como de software de código abierto (como Genewise).