Articulo de referencia

Alineación de los árboles

En filogenética computacional , el alineamiento de árboles es un problema computacional que consiste en generar alineamientos de secuencias múltiples , es decir, alineamientos d...

En filogenética computacional , el alineamiento de árboles es un problema computacional que consiste en generar alineamientos de secuencias múltiples , es decir, alineamientos de tres o más secuencias de ADN , ARN o proteínas . Las secuencias se organizan en un árbol filogenético que modela las relaciones evolutivas entre especies o taxones . Las distancias de edición entre secuencias se calculan para cada uno de los vértices internos del árbol, de manera que se minimice la suma de todas las distancias de edición dentro del árbol. El alineamiento de árboles se puede realizar utilizando diversos algoritmos con diferentes compensaciones entre el tamaño manejable del árbol y el esfuerzo computacional.

Definición

Entrada : Un conjuntoS{\displaystyle S}de secuencias, un árbol filogenéticoT{\displaystyle T}etiquetada con hojas porS{\displaystyle S}y una función de distancia de ediciónd{\displaystyle d}entre secuencias.

Salida : Un etiquetado de los vértices internos deT{\displaystyle T}de tal manera queΣmiTd(mi){\displaystyle \Sigma _{e\in T}d(e)}se minimiza, donded(mi){\displaystyle d(e)}es la distancia de edición entre los puntos finales demi{\displaystyle e}.

La tarea es NP-difícil . [ 1 ]

Fondo

Alineación de secuencias

Este es un alineamiento de secuencias simple del gen de la insulina entre rata, humano y pollo. Los nucleótidos marcados son los nucleótidos diferentes en ratas; I y --- indican los nucleótidos faltantes.

En bioinformática , el método básico de procesamiento de información consiste en contrastar los datos de secuencias. Los biólogos lo utilizan para descubrir la función, la estructura y la información evolutiva en las secuencias biológicas. Los siguientes análisis se basan en el ensamblaje de secuencias : el análisis filogenético , la comparación de haplotipos y la predicción de la estructura del ARN . Por lo tanto, la eficiencia del alineamiento de secuencias influye directamente en la eficacia para resolver estos problemas. Para diseñar un alineamiento de secuencias racional y eficiente, la derivación de algoritmos se ha convertido en una rama importante de la investigación en el campo de la bioinformática.

En general, el alineamiento de secuencias consiste en construir una cadena a partir de dos o más cadenas dadas con la mayor similitud posible, añadiendo o eliminando letras, o agregando un espacio a cada una . El problema del alineamiento múltiple de secuencias se basa generalmente en el alineamiento de secuencias por pares y, actualmente, para este problema, los biólogos pueden utilizar un enfoque de programación dinámica para obtener su solución óptima. Sin embargo, el problema del alineamiento múltiple de secuencias sigue siendo uno de los más complejos en bioinformática. Esto se debe a que encontrar la solución óptima para el alineamiento múltiple de secuencias ha demostrado ser un problema NP-completo y solo se puede obtener una solución óptima aproximada. [ 2 ]

método de matriz de distancias

El método de distancia mide el número mínimo de operaciones de inserciones , eliminaciones y sustituciones de caracteres que se requieren para transformar una secuencia u en otra secuencia v cuando se opera sobre un par de cadenas. El cálculo de la distancia de edición puede basarse en programación dinámica , y la ecuación es en tiempo O(|u|×|v|), donde |u| y |v| son las longitudes de u y v. [ 3 ] La estimación eficiente de la distancia de edición es esencial ya que el método de distancia es un principio básico en biología computacional [ 4 ] Para funciones de propiedades hereditarias se puede utilizar la "simetrización". Debido a que se utiliza una serie de funciones para calcular la distancia de edición, diferentes funciones pueden dar resultados diferentes. Encontrar una función de distancia de edición óptima es esencial para el problema de alineación de árboles.

El problema de la alineación de árboles

Esta figura indica la tasa de crecimiento en función del tiempo exponencial, el tiempo polinómico y el tiempo lineal.

El alineamiento de árboles resulta en un problema NP-difícil , donde los modos de puntuación y los tamaños del alfabeto están restringidos. Se puede encontrar como un algoritmo, que se utiliza para encontrar la solución optimizada. Sin embargo, existe una relación exponencial entre su eficiencia y el número de secuencias, lo que significa que cuando la longitud de la secuencia es muy grande, el tiempo de cálculo requerido para obtener resultados es enormemente largo. Usar el alineamiento en estrella para obtener la solución optimizada aproximada es más rápido que usar el alineamiento de árboles. Sin embargo, independientemente del grado de similitud de secuencias múltiples, la complejidad temporal del alineamiento en estrella tiene una relación proporcional con el cuadrado del número de secuencias y el cuadrado de la longitud promedio de la secuencia. Como es habitual, la secuencia en el alineamiento múltiple de secuencias es tan larga que también resulta ineficiente o incluso inaceptable. Por lo tanto, el desafío de reducir la complejidad temporal a lineal es uno de los problemas centrales en el alineamiento de árboles.

Estrategia de optimización combinatoria

La optimización combinatoria es una buena estrategia para resolver problemas de alineamiento múltiple de secuencias (MSA). La idea de la estrategia de optimización combinatoria es transformar el alineamiento múltiple de secuencias en un alineamiento de secuencias por pares para resolver este problema. Dependiendo de su estrategia de transformación, la estrategia de optimización combinatoria se puede dividir en el algoritmo de alineamiento en árbol y el algoritmo de alineamiento en estrella. Para un conjunto de secuencias múltiples dadoS{\displaystyle S}={s1{\displaystyle s_{1}},...,snorte{\displaystyle s_{n}}}, encontrar un árbol evolutivo que tenga n nodos hoja y establecer una relación uno a uno entre este árbol evolutivo y el conjuntoS{\displaystyle S}Al asignar la secuencia a los nodos internos del árbol evolutivo, calculamos la puntuación total de cada arista, y la suma de las puntuaciones de todas las aristas constituye la puntuación del árbol evolutivo. El objetivo de la alineación de árboles es encontrar una secuencia asignada que permita obtener la máxima puntuación y obtener el resultado final de la coincidencia entre el árbol evolutivo y la secuencia asignada a sus nodos. La alineación en estrella puede considerarse un caso especial de la alineación de árboles. En la alineación en estrella, el árbol evolutivo tiene un único nodo interno y n nodos hoja. La secuencia asignada al nodo interno se denomina secuencia central. [ 5 ]

La teoría del árbol de palabras clave y el algoritmo de búsqueda de Aho-Corasick.

Cuando se utiliza la estrategia de optimización combinatoria para transformar el alineamiento de secuencias múltiples en alineamiento de secuencias por pares, el problema principal cambia de "Cómo mejorar la eficiencia del alineamiento de secuencias múltiples" a "Cómo mejorar la eficiencia del alineamiento de secuencias por pares". La teoría del árbol de palabras clave y el algoritmo de búsqueda de Aho-Corasick constituyen un enfoque eficiente para resolver el problema del alineamiento de secuencias por pares. El objetivo de combinar la teoría del árbol de palabras clave y el algoritmo de búsqueda de Aho-Corasick es resolver este tipo de problema: para una cadena larga dadaT{\displaystyle T}y un conjunto de cuerdas cortasPAG{\displaystyle P}={pag1{\displaystyle p_{1}},pag2{\displaystyle p_{2}},... ,pagz{\displaystyle p_{z}}} (z∈N,z>1), encuentra la ubicación de todosPAGi{\displaystyle P_{i}}enT{\displaystyle T}. El árbol de palabras clave producido por el conjuntoPAG{\displaystyle P}se utiliza y luego se busca enT{\displaystyle T}con este árbol de palabras clave a través del algoritmo de búsqueda de Aho-Corasick. [ 6 ] La complejidad temporal total de usar este método para encontrar todosPAGi{\displaystyle P_{i}}La ubicación de en T es O(metro{\displaystyle m}+norte{\displaystyle n}+k{\displaystyle k}), dóndemetro{\displaystyle m}=|T{\displaystyle T}| (la longitud deT{\displaystyle T}),norte{\displaystyle n}=Σ|PAGi{\displaystyle P_{i}}| (la suma de todosPAGi{\displaystyle P_{i}}longitudes) yk{\displaystyle k}significa la suma de ocurrencias para todosPAGi{\displaystyle P_{i}}enT{\displaystyle T}.

teoría del árbol de palabras clave

El árbol de palabras clave del conjuntoPAG{\displaystyle P}={pag1{\displaystyle p_{1}},pag2{\displaystyle p_{2}},... ,pagz{\displaystyle p_{z}}} (z∈N,z>1) es un árbol con raíz, cuya raíz se denota por K, y este árbol de palabras clave satisface:

(1): Cada borde delimita claramente una letra.

(2): Cualquier par de aristas separadas del mismo nodo deben corresponder a letras diferentes.

(3) Cada patrónPAGi{\displaystyle P_{i}}(i=1,2,...,z) corresponde a un nodov{\displaystyle v}y el camino desde la raíz K hasta el nodov{\displaystyle v}puede deletrear la cadena correctamente.PAGi{\displaystyle P_{i}}.

Para cada nodo hoja de este árbol K, corresponde a uno de los patrones determinados del conjuntoPAG{\displaystyle P}.

L(v){\displaystyle L(v)}se utiliza para representar la CADENA que está conectada desde el nodo raíz al nodov{\displaystyle v}.Lpag(v){\displaystyle Lp(v)}Luego se utilizará para representar la longitud del sufijo más largo (además, este sufijo es el prefijo de uno de los patrones en el conjunto).PAG{\displaystyle P}). Buscando este prefijo desde el nodo raíz en el árbol de palabras clave, y el último nodo denotado pornortev{\displaystyle n_{v}}cuando la búsqueda haya terminado. [ 7 ]

Por ejemplo, el conjuntoPAG{\displaystyle P}={patata, tatuaje, teatro, otro}, y el árbol de palabras clave se muestra a la derecha. En ese ejemplo, siL(v){\displaystyle L(v)}=patata, entoncesLpag(v){\displaystyle Lp(v)}=|tat|=3, y el enlace de falla del nodov{\displaystyle v}se muestra en esa figura.

Establecer un vínculo de fallo es la clave para mejorar la complejidad temporal del algoritmo Aho-Corasick. Se puede utilizar para reducir el tiempo polinomial original al tiempo lineal para la búsqueda. Por lo tanto, el núcleo de la teoría del árbol de palabras clave es encontrar todos los vínculos de fallo (lo que también significa encontrar todosnortev{\displaystyle n_{v}}s) de un árbol de palabras clave en tiempo lineal. Se supone que cadanortev{\displaystyle n_{v}}de todos los nodosv{\displaystyle v}cuya distancia desde el nodo raíz es menor o igualk{\displaystyle k}, se puede encontrar. Elnortev{\displaystyle n_{v}}del nodov{\displaystyle v}cuya distancia desde el nodo raíz esk{\displaystyle k}Luego se puede buscar + 1. Su nodo padre esv{\displaystyle v'}y la letra representada por el nodov{\displaystyle v}yv{\displaystyle v'}, esincógnita{\displaystyle x}.

(1): Si la siguiente letra del nodonortev{\displaystyle n_{v}'}esincógnita{\displaystyle x}, el otro nodo de esta arista se puede establecer comow{\displaystyle w}, ynortev{\displaystyle n_{v}}=w{\displaystyle w}.

(2): Si todas las letras no sonincógnita{\displaystyle x}buscando todos los bordes entrenortev{\displaystyle n_{v}'}y sus nodos hijos,L(nortev){\displaystyle L(n_{v})}es un sufijo deL(nortev){\displaystyle L(n_{v}')}másincógnita{\displaystyle x}. Debido a que este sufijo coincide con la CADENA que comienza con el nodo raíz (similar a un prefijo), elincógnita{\displaystyle x}despuésnortev{\displaystyle n_{v}'}puede detectarse o no. Si no, este proceso puede continuar hastaincógnita{\displaystyle x}o se encuentra el nodo raíz.

Algoritmo de búsqueda de Aho-Corasick

Después de establecer todos los enlaces de falla en el árbol de palabras clave, se utiliza el algoritmo de búsqueda Aho-Corasick para encontrar las ubicaciones de todosPAGi{\displaystyle P_{i}}(i=1,2,...,z) en tiempo lineal. En este paso, la complejidad temporal es O(m+k).

Otras estrategias

En el alineamiento múltiple de secuencias (AMS), se generan secuencias de ADN, ARN y proteínas, asumiendo que guardan una relación evolutiva. Al comparar los mapas generados de ARN, ADN y secuencias de familias evolutivas, se puede evaluar la conservación de las proteínas y encontrar dominios génicos funcionales mediante la comparación de las diferencias entre secuencias evolutivas. Generalmente, también se emplean algoritmos heurísticos y grafos de alineamiento de árboles para resolver problemas de alineamiento múltiple de secuencias.

Algoritmo heurístico

Generalmente, los algoritmos heurísticos se basan en la estrategia iterativa , es decir, a partir de un método de comparación, optimizan los resultados del alineamiento de secuencias múltiples mediante un proceso iterativo. Davie M. propuso utilizar el algoritmo de optimización por enjambre de partículas para resolver el problema del alineamiento de secuencias múltiples; Ikeda Takahiro propuso un algoritmo heurístico basado en el algoritmo de búsqueda A* ; E. Birney propuso por primera vez utilizar el modelo oculto de Markov para resolver el problema del alineamiento de secuencias múltiples; y muchos otros biólogos utilizan el algoritmo genético para resolverlo. [ 8 ] [ 9 ] Todos estos algoritmos son generalmente robustos e insensibles al número de secuencias, pero también tienen deficiencias. Por ejemplo, los resultados del algoritmo de optimización por enjambre de partículas son inestables y sus méritos dependen de la selección de números aleatorios, el tiempo de ejecución del algoritmo de búsqueda A* es demasiado largo, y el algoritmo genético es fácil que caiga en un estado de excelencia local.

Gráfico de alineación de árboles

En términos generales, el grafo de alineación de árboles tiene como objetivo alinear árboles en un grafo y, finalmente, sintetizarlos para desarrollar estadísticas. En biología, los grafos de alineación de árboles (TAG) se utilizan para eliminar los conflictos evolutivos o los taxones superpuestos de conjuntos de árboles y luego se pueden consultar para explorar la incertidumbre y el conflicto. Al integrar métodos de alineación, síntesis y análisis, el TAG busca resolver las relaciones conflictivas y los conjuntos de taxones parcialmente superpuestos obtenidos de una amplia gama de secuencias. Además, el grafo de alineación de árboles sirve como un enfoque fundamental para ejercicios de superárboles e injertos , que Berry ha probado con éxito para construir superárboles. [ 10 ] Debido a que la transformación de árboles a un grafo contiene nodos y aristas similares de sus árboles de origen, los TAG también pueden proporcionar la extracción de los árboles de origen originales para un análisis posterior. Un TAG es una combinación de un conjunto de árboles alineados. Puede almacenar hipótesis conflictivas de relaciones evolutivas y sintetizar los árboles de origen para desarrollar hipótesis evolutivas. Por lo tanto, es un método básico para resolver otros problemas de alineación. [ 11 ]

Véase también

Referencias

  1. Elias, Isaac (2006), "Resolviendo la intratabilidad del alineamiento múltiple", J Comput Biol , 13 (7): 1323– 1339, CiteSeerX 10.1.1.6.256 , doi : 10.1089/cmb.2006.13.1323 , PMID 17037961  
  2. L Wang, T Jiang. Sobre la complejidad del alineamiento de secuencias múltiples[J]. Journal of Computational Biology, 194,1(4):337— 34.
  3. Yen Hung Chen, Sobre los problemas de alineación de árboles de cuello de botella, CIENCIAS DE LA INFORMACIÓN; 1 DE JUNIO DE 2010; 180; 11; p2134-p2141
  4. Ostrovsky, Rafail; Rabani, Yuval (2007-10-01). "Incrustaciones de baja distorsión para la distancia de edición". Journal of the ACM . 54 (5). Association for Computing Machinery (ACM): 23–es. doi : 10.1145/1284320.1284322 . ISSN 0004-5411 . S2CID 15341956 .  
  5. Serafim Batzoglou. Las múltiples facetas del alineamiento de secuencias[J]. Briefings in Bioinformatics. 2005,6(1):6—22
  6. Aho AV, Corasick M J. Búsqueda eficiente de cadenas: una ayuda para la búsqueda bibliográfica[J]. Communications of ACM, 1975,18(6): 333—340.
  7. D Gusfield. Algoritmos sobre cadenas, árboles y secuencias: informática y biología computacional[M]. Cambridge: Cambridge University Press. 1997.
  8. RobertC Edgar, Serafim Batzoglou. Alineamiento de secuencias múltiples[J]. Current Opinion in Structural Biology. 2006,16(3):368— 373 Archivado el 23-10-2013 en Wayback Machine .
  9. Notredame C, Higgins DG SAGA: alineación de secuencias mediante algoritmo genético [J]. Nucleic Acids Research. 1996,24(8):1515-1524 .
  10. Wilkinson M, Pisani D, Medición del soporte y detección de relaciones no respaldadas en superárboles, Systematic Biology 54:823-831.
  11. Stephen A. Smith, Joseph W. Brown, análisis y síntesis de filogenias mediante gráficos de alineación de árboles, PLoS Computational Biology 9(9).