Sunteți pe pagina 1din 43

Algoritmos de emparejamiento exacto

José Colbes
E-mail: jose.colbes.sanabria@gmail.com

Facultad Politécnica – 1er. Semestre, 2018

6 de marzo de 2018
Contenido
• El algoritmo naive es ineficiente.
• Algoritmo de Knuth-Morris-Pratt (KMP)
• Algoritmo de Boyer-Moore
• Regla del caracter erróneo
• Regla del sufijo correcto
• Pre-procesamiento

• Algoritmos aproximados

2
Secuenciación de genomas

Reads

B Haas y M. Zody “Advancing RNA-Seq analysis” (2010) 3


Alineamiento de reads

Reads

?
Genoma secuenciado

Adaptación de slides de “Algorithms for DNA Sequencing”, Coursera. 4


Alineamiento exacto de reads
Algoritmo naive
𝑃: para
𝑇: Este es el curso de algoritmos para secuenciar genomas
para para para para para para para para para para para
para para para para para para para para para para
para para para para para para para para para para
para para para para para para para para para para
para para para para para para para para para para

Se supone que el genoma a secuenciar y el de referencia son iguales.


Además, no existen errores en la determinación de los reads.

Adaptación de slides de “Algorithms for DNA Sequencing”, Coursera. 5


Algoritmo de Knuth-Morris-Pratt (KMP)

Algoritmo exacto sencillo

Knuth-Morris-Pratt

6
Algoritmo KMP

P: curso
T: Estoy cursando el curso de Bio

Estoy cursando el curso de Bio


curso
curso
Puedo hacer este salto con toda seguridad!

7
Algoritmo KMP
P: ATCGATCT
T: CCCCGTCATCGATCGATCTATGGC

CCCCGTCATCGATCGATCTATGGC
ATCGATCT
ATCGATCT

¿Podemos hacer esto?

8
Algoritmo KMP P: nano
T: banananobano
0 1 2 3 4 5 6 7 8 9 10 11
T: b a n a n a n o b a n o
i=0:X
i=1: X
i=2: n a n X
i=3: X
i=4: n a n o
i=5: X
i=6: n X
i=7: X
i=8: X
i=9: n X
i=10: X
https://www.ics.uci.edu/~eppstein/161/960227.html
9
Prefijos y sufijos
El prefijo de una cadena 𝑆 es una sub-cadena que empieza al
comienzo de 𝑆

El sufijo de una cadena 𝑆 es una sub-cadena que termina al


final de 𝑆

10
Caso a considerar: sufijo de un prefijo
P: ATCGATCT
ATCGATC

CCCCGTCATCGATCGATCTATGGC
ATCGATCT
ATCGATCT
Salto = max(1, #caracteres iguales – longitud máxima (pref=suf))

11
Arreglo auxiliar B 𝐵 = 𝑃

0 𝑖 𝑃
B … 𝑤 …

Indica que, en la subcadena 𝑃[0: 𝑖] el sufijo propio


de mayor tamaño que es igual al prefijo en la misma
subcadena tiene un tamaño igual a 𝑤.

P A T C G A T C T
B -1 0 0 0 0 1 2 3

12
Aplicación del arreglo B

CCCCGTCATCGATCGATCTATGGC
ATCGATCT
ATCGATCT

P A T C G A T C T
B -1 0 0 0 0 1 2 3

13
El algoritmo principal

Cómo lo hacemos?

14
Cálculo del arreglo B

𝑋 𝑌
pos
P

B 𝑋

Debemos encontrar el prefijo de máxima longitud


X que sea igual al sufijo Y (del mismo tamaño)
15
Cálculo del arreglo B

𝑋 𝑌
𝑋 pos
P
pos-1
𝑍

B 𝑋

Qué valor tendría B[pos] si P[pos-1]=P[ 𝑋 ]??


𝑋 +1
16
Cálculo del arreglo B

𝑋 𝑌
𝑋 pos
P
pos-1
𝑍

B 𝑋

Qué pasa si P[pos-1]!=P[ 𝑋 ]??

17
Si P[pos-1]!=P[ 𝑋 ]
𝑋 𝑌
𝑋 pos
P
pos-1

B 𝑀 𝑋

Hagamos un “acercamiento” a las subcadenas 𝑋 e 𝑌

18
Si P[pos-1]!=P[ 𝑋 ]

𝑋
𝑀 𝑀

𝑋 = 𝑌 !!!
𝑌
𝑀 𝑀

19
Entonces…
𝑋 𝑌
𝑀
𝑋 pos
P 𝑀 𝑀 𝑀 𝑀
pos-1

B 𝑀 𝑋

Si P[ 𝑀 ]=P[pos-1], entonces B[pos] = 𝑀 +1. Si no


son iguales, se continúa el mismo proceso (hasta
llegar a un valor igual a cero en B, asignándose así
B[pos]=0).
20
Cálculo del arreglo B

21
Algoritmo de Boyer-Moore

Algoritmo exacto sencillo

Knuth-Morris-Pratt Boyer-Moore

22
Idea
𝑃: prensa
𝑇: La primera función fue solamente para la prensa
prensa

Como “i” no está presente en 𝑃, podemos saltar los


siguientes dos alineamientos:
𝑃: prensa
𝑇: La primera función fue solamente para la prensa
prensa
prensa
prensa Se puede saltar!
prensa

Adaptación de slides de “Algorithms for DNA Sequencing”, Coursera. 23


Boyer-Moore
Se aprende de las comparaciones de caracteres para evitar
alineamientos que no coincidirán.

Los alineamientos se prueban de izquierda a derecha, y los


caracteres se comparan de derecha a izquierda.

𝑃: prensa
𝑇: La primera función fue solamente para la prensa
prensa

Boyer, RS y Moore, JS. "A fast string searching algorithm.“ Communications of the ACM 20.10 (1977): 762-772. 24
Regla del carácter erróneo
Se aprende de las comparaciones de caracteres para evitar
alineamientos que no coincidirán.
Los alineamientos se prueban de izquierda a derecha, y los
caracteres se comparan de derecha a izquierda

Paso 1

Paso 2

Paso 3
Adaptación de slides de “Algorithms for DNA Sequencing”, Coursera. 25
Regla del sufijo correcto
Sea 𝑡 una sub-cadena coincidente, entonces se salta hasta que
(a) no existan diferencias entre 𝑃 y 𝑡, o (b) que 𝑃 pase a 𝑡.

Paso 1

Paso 2

Paso 3

Adaptación de slides de “Algorithms for DNA Sequencing”, Coursera. 26


Algoritmo de Boyer-Moore
Se usa la regla del caracter erróneo o la del sufijo correcto, lo
que tenga más saltos.

Paso 1 𝑐𝑒 = 6, 𝑠𝑐 = 0
Caracter erróneo

Paso 2
𝑐𝑒 = 0, 𝑠𝑐 = 2
Sufijo correcto

Paso 3
𝑐𝑒 = 2, 𝑠𝑐 = 7
Sufijo correcto

Paso 4

Adaptación de slides de “Algorithms for DNA Sequencing”, Coursera. 27


Boyer-Moore: preprocesamiento
Se pueden pre-calcular los saltos. Como ejemplo, consideramos
la regla del carácter erróneo:

Adaptación de slides de “Algorithms for DNA Sequencing”, Coursera. 28


Un paso más al caso real: sustituciones
Hasta ahora, sólo consideramos el caso en que cada fragmento
coincida exactamente con el genoma de referencia.

...TGCAGCACGGGACAACTTGACGTTTTACGGCCTACTACATTAC…

ACTTGACGT
ACTAGACGT ?
ACTAGACCT ??

29
Algoritmo naive
(para lidiar con un número máximo de sustituciones)

Problema: muy ineficiente! (como en el caso del


emparejamiento exacto)
30
Emparejamiento Aproximado
Objetivo: encontrar la forma de aplicar algoritmos
de emparejamiento exacto al caso aproximado!

31
Idea

𝑃
𝑢 𝑣

Si 𝑃 ocurre en 𝑇 con 1 sustitución, entonces 𝑢


o 𝑣 se empareja exactamente con 𝑇

Cómo será para el caso de tolerar hasta k sustituciones?

32
Emparejamiento aproximado

𝑃
𝑝1 𝑝2 𝑝3 𝑝4 … 𝑝𝑘+1

Si 𝑃 ocurre en 𝑇 con a lo más 𝑘 sustituciones,


entonces al menos uno de 𝑝1 , 𝑝2 , … , 𝑝𝑘+1 se
empareja exactamente con 𝑇.

33
Ejemplo (𝑘 = 4)

𝑃
Caso 1 𝑋𝑋𝑋 𝑋

Caso 2 𝑋𝑋 𝑋 𝑋

Caso 3 𝑋 𝑋 𝑋 𝑋

34
Partición - Proceso

𝑃
𝑝1 𝑝2 𝑝3 𝑝4 𝑝5

Alineamiento Exacto

35
Partición - Proceso

𝑝2
Coincide

36
Partición - Proceso

𝑝1 𝑝2 𝑝3 𝑝4 𝑝5
Verificar Coincide Verificar Verificar Verificar

37
De exacto a aproximado…

Algoritmo exacto sencillo

Knuth-Morris-Pratt Boyer-Moore

38
Pre-procesamiento: Algoritmo sencillo

𝑃 𝑇

Algoritmo exacto sencillo

Resultados

Adaptación de slides de “Algorithms for DNA Sequencing”, Coursera. 39


Pre-procesamiento: KMP y Boyer-Moore

𝑇
Tabla de
backtracking, Tablas
para las reglas de KMP, Boyer-Moore
caracter erróneo y
sufijos correctos
Resultados

Adaptación de slides de “Algorithms for DNA Sequencing”, Coursera. 40


Pre-procesamiento

𝑃 Y si pre-procesamos T?

Algoritmo exacto sencillo

Resultados

Adaptación de slides de “Algorithms for DNA Sequencing”, Coursera. 41


Pre-procesamiento
Si un algoritmo pre-procesa T, es “fuera de línea” (offline).
De lo contrario, es “en línea” (online).

𝑇
¿Online u offline?

𝑃 • Algoritmo sencillo
• KMP
• Boyer-Moore
• Motor de búsqueda web
• Alineamiento de reads con
un genoma.

Adaptación de slides de “Algorithms for DNA Sequencing”, Coursera. 42


Gracias por la atención

S-ar putea să vă placă și