Vecino uniéndose - Neighbor joining

En bioinformática , la unión de vecinos es un método de agrupamiento de abajo hacia arriba (aglomerativo) para la creación de árboles filogenéticos , creado por Naruya Saitou y Masatoshi Nei en 1987. Usualmente utilizado para árboles basados ​​en datos de secuencias de ADN o proteínas , el algoritmo requiere conocimiento de la distancia entre cada par de taxones (por ejemplo, especies o secuencias) para formar el árbol.

El algoritmo

Comenzando con un árbol de estrellas (A), la matriz Q se calcula y se usa para elegir un par de nodos para unir, en este caso f y g. Estos se unen a un nodo recién creado, u, como se muestra en (B). La parte del árbol que se muestra como líneas continuas ahora está fija y no se cambiará en los siguientes pasos de unión. Las distancias desde el nodo u a los nodos ae se calculan a partir de la ecuación ( 3 ). Luego, este proceso se repite, utilizando una matriz de solo las distancias entre los nodos, a, b, c, d, e y u, y una matriz Q derivada de ella. En este caso, uye se unen a la v recién creada, como se muestra en (C). Dos iteraciones más conducen primero a (D) y luego a (E), momento en el que se realiza el algoritmo, ya que el árbol está completamente resuelto.

La unión de vecinos toma como entrada una matriz de distancias que especifica la distancia entre cada par de taxones. El algoritmo comienza con un árbol completamente sin resolver, cuya topología corresponde a la de una red en estrella , e itera sobre los siguientes pasos hasta que el árbol está completamente resuelto y se conocen todas las longitudes de las ramas:

  1. Basándose en la matriz de distancia actual, calcule la matriz (definida a continuación).
  2. Encuentre el par de taxones distintos iyj (es decir, con ) para el que tiene su valor más bajo. Estos taxones se unen a un nodo recién creado, que está conectado al nodo central. En la figura de la derecha, fyg se unen al nuevo nodo u.
  3. Calcule la distancia desde cada uno de los taxones del par hasta este nuevo nodo.
  4. Calcule la distancia desde cada uno de los taxones fuera de este par al nuevo nodo.
  5. Inicie el algoritmo nuevamente, reemplazando el par de vecinos unidos con el nuevo nodo y usando las distancias calculadas en el paso anterior.

La matriz Q

Con base en una matriz de distancias que relaciona los taxones, calcule de la siguiente manera:

 

 

 

 

( 1 )

donde es la distancia entre taxones y .

Distancia de los miembros de la pareja al nuevo nodo

Para cada uno de los taxones del par que se está uniendo, use la siguiente fórmula para calcular la distancia al nuevo nodo:

 

 

 

 

( 2 )

y:

Taxa y son los taxones emparejados y es el nodo recién creado. Las ramas que unen y y y , y sus longitudes, y son parte del árbol que se está creando gradualmente; no afectan ni se ven afectados por los pasos posteriores de unión de vecinos.

Distancia de los otros taxones del nuevo nodo

Para cada taxón no considerado en el paso anterior, calculamos la distancia al nuevo nodo de la siguiente manera:

 

 

 

 

( 3 )

donde está el nuevo nodo, es el nodo al que queremos calcular la distancia y son los miembros del par que se acaba de unir.

Complejidad

La unión de vecinos en un conjunto de taxones requiere iteraciones. En cada paso uno tiene que construir y buscar una matriz. Inicialmente, la matriz es el tamaño , luego el siguiente paso es , etc. Implementar esto de una manera sencilla conduce a un algoritmo con una complejidad de tiempo de ; Existen implementaciones que usan heurística para hacerlo mucho mejor que esto en promedio.

Ejemplo

Vecino que se une con 5 taxones. En este caso, 2 pasos de unión de vecinos dan un árbol con topología completamente resuelta. Las ramas del árbol resultante están etiquetadas con sus longitudes.

Supongamos que tenemos cinco taxones y la siguiente matriz de distancias :

a B C D mi
a 0 5 9 9 8
B 5 0 10 10 9
C 9 10 0 8 7
D 9 10 8 0 3
mi 8 9 7 3 0

Primer paso

Primera unión

Calculamos los valores mediante la ecuación ( 1 ). Por ejemplo:

Obtenemos los siguientes valores para la matriz (los elementos diagonales de la matriz no se utilizan y aquí se omiten):

a B C D mi
a −50 −38 −34 −34
B −50 −38 −34 −34
C −38 −38 −40 −40
D −34 −34 −40 −48
mi −34 −34 −40 −48

En el ejemplo anterior ,. Este es el valor más pequeño de , por lo que unimos los elementos y .

Estimación de la longitud de la primera rama

Dejar que denotan el nuevo nodo. Por la ecuación ( 2 ), arriba, las ramas de unión y a continuación, tienen longitudes:

Actualización de la primera matriz de distancias

Luego procedemos a actualizar la matriz de distancia inicial en una nueva matriz de distancia (ver más abajo), reducida en tamaño en una fila y una columna debido a la unión de with con su vecino . Usando la ecuación ( 3 ) anterior, calculamos la distancia desde cada uno de los otros nodos además de y . En este caso obtenemos:

La matriz de distancias resultante es:

tu C D mi
tu 0 7 7 6
C 7 0 8 7
D 7 8 0 3
mi 6 7 3 0

Los valores en negrita corresponden a las distancias recién calculadas, mientras que los valores en cursiva no se ven afectados por la actualización de la matriz, ya que corresponden a distancias entre elementos no involucrados en la primera unión de taxones.

Segundo paso

Segunda unión

La matriz correspondiente es:

tu C D mi
tu −28 −24 −24
C −28 −24 −24
D −24 −24 −28
mi −24 −24 −28

Podemos elegir entre unirnos y , o unirnos y ; ambos pares tienen el valor mínimo de , y cualquiera de las opciones conduce al mismo resultado. Para ser concretos, vamos a unir y y llamar al nuevo nodo .

Estimación de la longitud de la segunda rama

Las longitudes de las ramas de unión y a puede ser calculada:

La unión de los elementos y el cálculo de la longitud de la rama ayudan a dibujar el árbol de unión vecino como se muestra en la figura .

Actualización de la segunda matriz de distancia

La matriz de distancia actualizado para los 3 nodos restantes, , , y , ahora se calcula:

v D mi
v 0 4 3
D 4 0 3
mi 3 3 0

Último paso

La topología del árbol está completamente resuelta en este punto. Sin embargo, para mayor claridad, podemos calcular la matriz. Por ejemplo:

v D mi
v −10 −10
D −10 −10
mi −10 −10

Para ser más concretos, unámonos y y llamemos al último nodo . Se pueden calcular las longitudes de las tres ramas restantes:

El árbol de unión vecino ahora está completo, como se muestra en la figura .

Conclusión: distancias aditivas

Este ejemplo representa un caso idealizado: observe que si nos movemos de un taxón a otro a lo largo de las ramas del árbol y sumamos las longitudes de las ramas atravesadas, el resultado es igual a la distancia entre esos taxones en la matriz de distancia de entrada. Por ejemplo, pasando de a tenemos . Una matriz de distancias cuyas distancias concuerdan de esta manera con algún árbol se dice que es "aditiva", una propiedad que es rara en la práctica. No obstante, es importante señalar que, dada una matriz de distancias aditiva como entrada, la unión de vecinos está garantizada para encontrar el árbol cuyas distancias entre taxones concuerden con ella.

Unión de vecinos como evolución mínima

La unión de vecinos puede verse como una heurística codiciosa para el criterio de Evolución Mínima Equilibrada (BME). Para cada topología, BME define la longitud del árbol (suma de las longitudes de las ramas) como una suma ponderada particular de las distancias en la matriz de distancias, con los pesos dependiendo de la topología. La topología óptima de BME es la que minimiza esta longitud de árbol. El vecino que se une en cada paso se une con avidez a ese par de taxones que darán la mayor disminución en la longitud estimada del árbol. Este procedimiento no garantiza encontrar el óptimo para el criterio de BME, aunque a menudo lo hace y suele estar bastante cerca.

Ventajas y desventajas

La principal virtud de NJ es que es rápido en comparación con los métodos de mínimos cuadrados , máxima parsimonia y máxima verosimilitud . Esto lo hace práctico para analizar grandes conjuntos de datos (cientos o miles de taxones) y para bootstrapping , para lo cual otros medios de análisis (por ejemplo, máxima parsimonia , máxima probabilidad ) pueden resultar prohibitivos desde el punto de vista computacional .

La unión de vecinos tiene la propiedad de que si la matriz de distancias de entrada es correcta, el árbol de salida será correcto. Además, la exactitud de la topología del árbol de salida está garantizada siempre que la matriz de distancia sea 'casi aditiva', específicamente si cada entrada en la matriz de distancia difiere de la distancia real en menos de la mitad de la longitud de la rama más corta del árbol. En la práctica, la matriz de distancias rara vez satisface esta condición, pero la unión de vecinos a menudo construye la topología de árbol correcta de todos modos. La exactitud de la unión de vecinos para matrices de distancias casi aditivas implica que es estadísticamente consistente en muchos modelos de evolución; dados datos de suficiente longitud, la unión de vecinos reconstruirá el árbol verdadero con alta probabilidad. En comparación con UPGMA y WPGMA , la unión de vecinos tiene la ventaja de que no asume que todos los linajes evolucionan al mismo ritmo ( hipótesis del reloj molecular ).

Sin embargo, la unión de vecinos ha sido reemplazada en gran medida por métodos filogenéticos que no se basan en medidas de distancia y ofrecen una precisión superior en la mayoría de las condiciones. La unión de vecinos tiene la característica indeseable de que a menudo asigna longitudes negativas a algunas de las ramas.

Implementaciones y variantes

Hay muchos programas disponibles que implementan la unión de vecinos. RapidNJ y NINJA son implementaciones rápidas con tiempos de ejecución típicos proporcionales a aproximadamente el cuadrado del número de taxones. BIONJ y Weighbor son variantes de uniones vecinas que mejoran su precisión al hacer uso del hecho de que las distancias más cortas en la matriz de distancias son generalmente más conocidas que las distancias más largas. FastME es una implementación del método de evolución mínima equilibrada estrechamente relacionado.

Ver también

Referencias

Otras fuentes

enlaces externos