Fig. 7
tabla de programación dinámica utilizada en el algoritmo 2 para procesar MEMs extraídos en la Fig. 3b. La celda i y j representan el valor de \(S_{i}^{j}\). Las celdas vacías no se evalúan en Φ2. La evaluación de las células con la marca cruzada se salta en Φ2A. el valor inicial de Sj se calcula en Φ1. El valor Final de Sj y su fuente (lo que maximiza Sj) se resaltan para cada fila. El Sj más alto (S13) es la puntuación de alineación., M13 es el último MEM en la alineación y el MEM antes es MW = M3. Desde W = -1, M3 es el primer MEM en la alineación. El sistema de puntuación para esta alineación es Rm=2,Px=3,Po=4 y Pe=1
Fig. 8
valores Intermedios para calcular \(S_{i}^{j}\) en la Fig. 7. Tenga en cuenta que Sij en esta figura se refiere a \(s_{i}^{j}\)
Φ1: puntuación de cada MEM para todos sus símbolos coincidentes., Tenga en cuenta que hay símbolos LJ coincidentes en Mj. Sj representa la puntuación de alineación más alta para la alineación que termina en Mj. Inicializar Sj en este paso es similar a calcular la puntuación de alineación parcial cuando solo se incluye Mj en la alineación. W se utiliza para retroceder. El valor de -1 indica que el Sj actual se obtiene considerando Mj solo en la alineación.
Φ2: cálculo de Sj para cada MEM (Mj)., Para calcular Sj, para cada MEM Mi Donde Mi aparece antes de Mj en la lista, el algoritmo agrega Mj a la alineación que termina en Mi (extendiendo alineaciones previamente encontradas) y busca la extensión que maximiza Sj (resolviendo un subproblema más grande usando subproblemas previamente resueltos).
Φ2A: Omitir la extensión cuando no es posible. Si ETi> ETj entonces Mi contiene parte de la secuencia de destino que está más allá de la alineación que termina en Mj y la extensión no es posible. Si EQi=Eqj o ETi = ETj o SQI≥SQJ o STI≥STj, entonces uno de los MEMs se solapa completamente con el otro MEM., En este caso, Mi y Mj no pueden estar alineados juntos.
Φ2B: calculando la longitud de la superposición entre Mi y Mj. Si \({MO}_{i}^{j}\) es menor o igual a cero, entonces no existe superposición.
Φ2C: mantener una copia de Mj antes de excluir la superposición.
Φ2D: si existe superposición, excluyendo la superposición de Mj
Φ2E: calcular la posición final de Mj en T y Q.
Φ2F: calcular la distancia (número de símbolos) entre Mi y Mj en T y Q.
Φ2G: calcular el número de desajustes y huecos entre Mi y Mj.,
Φ2H: calculando la penalización por los desajustes y huecos entre Mi y Mj (\(P_{i}^{j}\)). Si existe brecha, solo se resta una penalización de apertura de brecha.
Φ2I: cálculo de la puntuación de alineación \(\left (s_{i}^{j}\right)\) cuando se agrega Mj a la alineación que termina en Mi. La puntuación de todos los símbolos coincidentes en Mj (Lj×Rm) se añade a la puntuación de alineación para la alineación que termina en Mi (Si). Luego se resta la penalización por los huecos y desajustes entre Mi y Mj\(\left (P_{i}^{j}\right)\).,
Φ2J: si extender Mj a la alineación que termina en Mi resulta en una puntuación \(\left (s_{i}^{j}\right)\) mayor que la puntuación actual para Mj (Sj), entonces la nueva puntuación se almacena en Sj. También W se establece en i para realizar un seguimiento de la Mi que maximizar la puntuación de Mj.
Φ2K: restaurar el valor de Mj antes de la exclusión para que Mj pueda usarse en otras extensiones de alineación.
Φ3: buscando el MEM con el Sj más alto. Este MEM es el último MEM en la alineación (Me)., La puntuación más alta (Se) se devuelve como S, que es la puntuación de alineación más alta para las secuencias dadas. El índice del MEM que maximiza Sj se almacena en e Para comenzar a retroceder de mí.
Φ4: en la alineación, el MEM anterior inmediato para mí es el que maximiza la puntuación de alineación para mí. El índice de dichos MEM se almacena en W. como resultado, la iteración de F←W visita el índice de todos los MEMs en la alineación. Cuando W es igual a -1, Mf es el primer MEM en la alineación y la iteración se detiene.,
en nuestro algoritmo, no penalizamos desajustes y huecos antes del primer MEM y después del último MEM en la alineación. Esto resulta en un algoritmo de alineación local. Al considerar estas penalizaciones el algoritmo genera una alineación global (archivo adicional 1: Sección V).
la ecuación para calcular \(p_{i}^{j}\) en Φ2H del algoritmo 2 asume que no hay un símbolo coincidente entre T Y Q en el área entre Mi y Mj (todos los símbolos se cuentan como desajustes o huecos)., Aunque esta suposición no es cierta para todos los Mi, siempre es cierta para el Mi que conduce al máximo \(S_{i}^{j}\) que anula el efecto de que la suposición sea incorrecta para otros Mi. Como prueba, supongamos que hay un símbolo coincidente en el área entre Mi y Mj. El símbolo correspondiente sería un MEM (Mk). Mk ya está extendido a la alineación que termina en Mi. Por lo tanto, al extender Mj A Mk se logra una puntuación más alta cuando se compara con extender Mj a Mi.
encadenar semillas colineales como se discute en han sido ampliamente utilizados en la alineación de grandes secuencias, es decir, la alineación genoma-a-genoma., También se ha utilizado para identificar regiones candidatas para una lectura dada una serie de MEMs en BWA. Los Algoritmos de Encadenamiento con puntuación son similares al algoritmo de programación dinámica que propusimos (DP-MEM). Sin embargo, hay diferencias que hacen que DP-MEM sea adecuado para la alineación por pares de secuencias cortas. DP-MEM tiene en cuenta que todos los MEMs dentro de un cierto tamaño de espacio se proporcionan en la entrada y optimiza el número de iteración en el algoritmo. DP-MEM también implementa un enfoque heurístico para compensar el efecto de MEMs cortos eliminados de la lista de entrada resultantes de las brechas entre MEMs.,
Optimization
dadas las secuencias de longitud n, El algoritmo para extraer MEMs (proporcionado en la sección «Extracción de MEM») requiere 2(n−1) shift y 2n−1 compare operaciones en vectores de bits (cada acto en palabras máquina \(\lceil \frac {n}{32} \rceil\)) que resultan en un algoritmo con complejidad de O(n2) para producir vectores de bits de borde para el par de secuencias dado. La complejidad de la función que calcula el posicionamiento de MEMs desde el vector de bits de borde y los ordena en función de EQ aún no se ha agregado. Además, si se extraen M MEMs, Φ2 del algoritmo 2(DP-MEM) tiene la complejidad de O (m2)., Teniendo en cuenta la complejidad de la extracción de MEM y DP-MEM, MEM-Align es mucho más lento que los Algoritmos de alineación disponibles. Para acelerar el proceso, presentamos varias optimizaciones para MEM-Align que logran un tiempo de ejecución más rápido al sacrificar la precisión. Por otro lado, introducimos métodos para mejorar la precisión con una pérdida de rendimiento mínima.
alineación de bandas
La alineación de bandas es un método heurístico conocido para acelerar el proceso de alineación. Esta técnica limita el patrón de los huecos en la alineación (archivo adicional 1: Sección VI)., En consecuencia, si la alineación entre dos secuencias no sigue este patrón, el algoritmo no identificará la alineación. En la programación dinámica tradicional, La alineación se obtiene después de calcular el valor de todas las celdas de la tabla. Sin embargo, con la optimización de alineación de bandas, solo se evalúan las celdas en el diámetro y cerca de la diagonal. gl es el ancho de la banda en la alineación de bandas donde las células más lejos que gl al diámetro no se evalúan. Células más oscuras en la Fig. 1 mostrar el caso donde gl = 1.,
a diferencia del enfoque de programación dinámica tradicional, MEM-Align no tiene una tabla similar para aplicar la alineación de bandas. Sin embargo, encontramos que podemos simular el mismo efecto limitando el número de operaciones de cambio en el proceso de extracción de MEM. Por ejemplo, si desplazamos la secuencia de consulta hasta gl a la derecha y a la izquierda, alcanzamos la alineación de bandas con la banda de gl. La alineación de bandas reduce la complejidad de la extracción de MEM de O(n2) A O(n.(2gl+1)) donde gl es un valor pequeño y fijo. Por lo tanto, la complejidad de la extracción MEM es O(n) cuando se aplica alineación de bandas., Además, con dicha alineación de bandas, es probable que se extraigan menos MEMs, lo que acelera los pasos algorítmicos posteriores.
eliminación de MEM cortos
observamos que la mayoría de los Mem extraídos son cortos y son el resultado de símbolos coincidentes al azar. Para acelerar la alineación MEM, los MEMs más cortos que sl se filtran durante el proceso de extracción MEM. Esto reduce el número de MEMs a extraer y procesar (posteriormente acelerando el algoritmo). El filtrado de MEM corto se realiza extendiendo el algoritmo 1 con un conjunto de operaciones de desplazamiento y bits (archivo adicional 1: Sección VII).,
por otro lado, hay casos raros en los que MEMs cortos son parte de la alineación; por ejemplo, un símbolo coincidente rodeado de desajustes. Sin tener todos los MEMs en la lista de entrada, DP-MEM no es capaz de encontrar la misma alineación que encuentra cuando todos los MEMs existen en la lista de entrada. Para compensar la pérdida de MEMs cortos en la entrada, modificamos Φ2H de DP-MEM para considerar la posibilidad de tener coincidencias cortas entre MEMs (archivo adicional 1: Sección VIII).
Puede haber casos más difíciles donde en la alineación, existen múltiples MEMs cortos entre dos MEMs(ver Fig. 9)., La única manera de identificar correctamente la puntuación para el área entre Mi y Mj en Φ2H es aplicar una alineación global a esta región. Sin embargo, Φ2H es una operación frecuente y debe permanecer rápido. En consecuencia, decidimos superar parcialmente el problema limitando los posibles casos (un método heurístico).
Fig., 9
Un ejemplo que muestra múltiples MEM en el área pequeña entre Mi y Mj en una alineación
Si hay lagunas en la zona entre Mi y Mj, suponemos que sólo hay una continua brecha, ya sea a la izquierda o a la derecha de la zona. Entonces, solo dos alineaciones son posibles para el área., El número de símbolos coincidentes se cuenta para ambos casos de manera secuencial y el que resulta en coincidencias máximas se toma como el número de coincidencias entre Mi y Mj (archivo adicional 1: Sección IX). La comparación secuencial es una operación costosa y diseñamos un método para evitar la comparación secuencial cuando sea posible (archivo adicional 1: Sección X).
cualquier otro caso que no se ajuste a la suposición anterior resulta en una alineación con una puntuación más baja., Sin embargo, teniendo en cuenta la baja tasa de brechas y desajustes, la posibilidad de tener múltiples brechas y desajustes en un área pequeña es baja.
extensión de alineación eficiente
en Φ2 de DP-MEM, Mj extiende todas las alineaciones que terminan en {M1} Mj−1} (si es posible). Sin embargo, para cada Mj hay un subconjunto más pequeño Ωj {{M1 M Mj−1} tal que al extender Mj a todas las alineaciones que terminan en un Mi∈Ωj se encuentra la alineación que termina en Mj (EC. 2). En otras palabras, habría menos \(s_{i}^{j}\) que evaluar. Definición del conjunto Ωj y la prueba de EC. 2 se proporcionan en el archivo adicional 1: Sección XI., La definición de Ωj se ve afectada cuando se aplica la optimización de eliminación de MEM corto (archivo adicional 1: Sección XII).
$$ \max\limits_{M_{i} \in \Omega_{j}}{S_{i}^{j}} = \max\limits_{1 \leq i \leq j-1}{S_{i}^{j}} $$
(2)
Híbrido alineación
Para mantener la precisión del algoritmo, se decidió utilizar un método híbrido que es una combinación de MEM-Alinear y Smith-Waterman algoritmo. Definimos tres casos en los que MEM-Align puede ser inexacto., Si la alineación de un par de secuencias cae en uno de estos casos, usamos el algoritmo Smith-Waterman para alinear secuencias. Estos casos son:
cuando las secuencias son repetitivas, y el número de MEMs extraídos supera el umbral TM. Encontramos que MEM-Align es probable que produzca una alineación inexacta al alinear secuencias repetitivas. Un valor de TM apropiado disminuye la posibilidad de reportar una alineación inexacta con un aumento insignificante en el tiempo promedio de procesamiento.,
Cuando la puntuación de alineación calculada para la alineación generada por MEM-Align es inferior a un umbral TS. Este caso ocurre principalmente cuando hay una brecha en la alineación que no se puede identificar debido a la alineación de bandas.
Cuando no existe MEM más largo que sl para ser extraído (un caso raro)., Si sl se establece en un valor alto y la similitud entre secuencias es baja,
aunque enviar pares de secuencias a un algoritmo externo resulta en un cálculo adicional, el número de secuencias enviadas al algoritmo externo permanece pequeño si se eligen valores apropiados para TM y TS.
omitir MEMs distantes
Cuando la distancia entre Mi y Mj es grande, no es probable que tenga Mi y Mj como MEMs adyacentes en la alineación., Por lo tanto, el algoritmo omite la extensión si la distancia entre Mi y Mj es más larga que un umbral TD (reduciendo aún más el número de \(s_{i}^{j}\) a evaluar). Esta optimización mejora ligeramente el rendimiento con un efecto secundario insignificante en la precisión.