Algoritmos Bioinfirmatica - Algorito de Smith. Waterman - Blast

65
Algoritmos en Bioinform´ atica John Trujillo Universidad Del Valle - Cali [email protected] 19 de noviembre de 2013 John Trujillo (Univalle) Intro. BioInform´ atica 19 de noviembre de 2013 1 / 65

Transcript of Algoritmos Bioinfirmatica - Algorito de Smith. Waterman - Blast

Algoritmos en Bioinformatica

John Trujillo

Universidad Del Valle - Cali

[email protected]

19 de noviembre de 2013

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 1 / 65

Resumen

1 Programacion Dinamica

2 Algoritmo de Needleman-Wunschi

3 Algoritmo de Smith Waterman

4 Algoritmo de Blast

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 2 / 65

Programacion Dinamica

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 3 / 65

Programacion Dinamica: Concepto

Dividir el problema en Subproblemas (Dividir y conquistar).

Optimizar resultados.

Resolver cada Subproblema de forma optima.

Computar bajo la tecnica Bottom-Up.

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 4 / 65

Programacion Dinamica: Etapa

Etapa

Fase donde se produce un cambio debido a una decision.

Cada sub-problema puede ser visto como una fase.

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 5 / 65

Programacion Dinamica: Estado

EstadoSituacion actual del sistema en una etapa determinada.

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 6 / 65

Programacion Dinamica: Tecnica Bottom-Up

Bottom-Up

Cuando se usa esta relacion recursiva, el procedimiento de solucioncomienza al final y se mueve hacia atras etapa por etapa, hasta queencuentra la polıtica optima desde la etapa inicial.

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 7 / 65

Programacion Dinamica: Ejemplo Fibo

FibonachiFn = 0 if n=0

Fn = 1 if n = 1

Fn = Fn-1 + Fn-2

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 8 / 65

Programacion Dinamica: Diagrama Fibo

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 9 / 65

Programacion Dinamica: Diagrama Fibo

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 10 / 65

Programacion Dinamica: Diagrama Fibo

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 11 / 65

Programacion Dinamica: Diagrama Fibo

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 12 / 65

Programacion Dinamica: Diagrama Fibo

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 13 / 65

Programacion Dinamica: Diagrama Fibo

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 14 / 65

Programacion Dinamica: Diagrama Fibo

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 15 / 65

Programacion Dinamica: Diagrama Fibo

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 16 / 65

Programacion Dinamica: Diagrama Fibo

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 17 / 65

Programacion Dinamica: Diagrama Fibo

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 18 / 65

Programacion Dinamica: Camino mas Corto

Encontrar el camino mas corto en un grafo de S a T

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 19 / 65

Programacion Dinamica: Camino mas Corto

Encontrar el camino mas corto en un grafo de S a T

1+2+5 = 8

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 20 / 65

Programacion Dinamica: Camino mas Corto

Encontrar el camino mas corto en un grafo de S a T

Path Largo : (S, A, D, T) : 1 + 4 + 18 = 23

Path Corto : (S, C, F, T) : 5 + 2 + 2 = 9

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 21 / 65

Programacion Dinamica: Camino mas Corto

Encontrar el camino mas corto en un grafo de S a T

d(S, T) = min{1+d(A, T), 2+d(B, T), 5+d(C, T)}

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 22 / 65

Programacion Dinamica: Camino mas Corto

Encontrar el camino mas corto en un grafo de S a T

d(A, T) = min{1+5+d(D, T), 1+11+d(E, T), 2+9+d(D, T),2+5+d(E, T), 2+16+d(E, T), 5+2+d(F, T) }

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 23 / 65

Programacion Dinamica: Camino mas Corto

Encontrar el camino mas corto en un grafo de S a T

d(A, T) = min{1+5+18, 1+11+13, 2+9+18, 2+5+13, 2+16+13,5+2+2}

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 24 / 65

Programacion Dinamica: Camino mas Corto

Encontrar el camino mas corto en un grafo de S a T

d(A, T) = 9

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 25 / 65

Algoritmo de Needleman-Wunschi

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 26 / 65

Algoritmo de Needleman-Wunschi

Saul Needleman y Christian Wunsch. 1970.

Es un ejemplo de programacion dinamica

Alinear dos secuencias : Secuencias de proteınas o de acidos nucleicos

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 27 / 65

Algoritmo de Needleman-Wunschi

Alineamiento de secuencias

Local.

Global: Needleman-Wunschi.

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 28 / 65

Algoritmo de Needleman-Wunschi

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 29 / 65

Algoritmo de Needleman-Wunschi

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 30 / 65

Algoritmo de Needleman-Wunschi

Secuencia A y B. Tamano(A) = M y Tamano (B) = N.

Se tiene la matriz de Pesos.

Se define una penalizacion por cada Gap encontrado.

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 31 / 65

Algoritmo de Needleman-Wunschi: Matriz de Pesos

A G C TA 10 -1 -3 -4G -1 7 -5 -3C -3 -5 9 0T -4 -3 0 8

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 32 / 65

Algoritmo de Needleman-Wunschi: Matriz de Pesos

A G C TA 10 -1 -3 -4G -1 7 -5 -3C -3 -5 9 0T -4 -3 0 8

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 33 / 65

Algoritmo de Needleman-Wunschi: Ejemplo

f (i , j) = max =

Fi−j ,j−1 + S(Xi ,Yj)Fi−j ,j + gFi ,j−1 + g

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 34 / 65

Algoritmo de Needleman-Wunschi: Ejemplo

Coincidencias : + 5Diferencia : - 3Hueco (Gap): -4

f (i , j) = max =

Fi−j ,j−1 + S(Xi ,Yj)Fi−j ,j + gFi ,j−1 + g

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 35 / 65

Algoritmo de Needleman-Wunschi: Ejemplo

Coincidencias : + 5Diferencia : - 3Hueco (Gap): -4

f (i , j) = max =

0 + 5 = 5−4 + (−4) = −8−4 + (−4) = −8

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 36 / 65

Algoritmo de Needleman-Wunschi: Ejemplo

Coincidencias : + 5Diferencia : - 3Hueco (Gap): -4

f (i , j) = max =

0 + 5 = 5−4 + (−4) = −8−4 + (−4) = −8

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 37 / 65

Algoritmo de Needleman-Wunschi: Ejemplo

Coincidencias : + 5Diferencia : - 3Hueco (Gap): -4

f (i , j) = max =

−4 + (−3) = 5−8 + (−4) = −45 + (−4) = 1

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 38 / 65

Algoritmo de Needleman-Wunschi: Ejemplo

Coincidencias : + 5Diferencia : - 3Hueco (Gap): -4

f (i , j) = max =

Fi−j ,j−1 + S(Xi ,Yj)Fi−j ,j + gFi ,j−1 + g

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 39 / 65

Algoritmo de Needleman-Wunschi: Ejemplo

Coincidencias : + 5Diferencia : - 3Hueco (Gap): -4

f (i , j) = max =

Fi−j ,j−1 + S(Xi ,Yj)Fi−j ,j + gFi ,j−1 + g

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 40 / 65

Algoritmo de Needleman-Wunschi: Ejemplo

Coincidencias : + 5Diferencia : - 3Hueco (Gap): -4

f (i , j) = max =

Fi−j ,j−1 + S(Xi ,Yj)Fi−j ,j + gFi ,j−1 + g

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 41 / 65

Algoritmo de Needleman-Wunschi: Ejemplo

Coincidencias : + 5Diferencia : - 3Hueco (Gap): -4

f (i , j) = max =

Fi−j ,j−1 + S(Xi ,Yj)Fi−j ,j + gFi ,j−1 + g

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 42 / 65

Algoritmo de Needleman-Wunschi: Ejemplo

EjemploJohn Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 43 / 65

Algoritmo de Smith Waterman

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 44 / 65

Algoritmo de Smith Waterman

Hay tres variantes respecto al algoritmo anterior.

Un gap se toma como un cero

Un valor negativo se toma como cero

La maxima puntuacion puede estar en cualquier lugar de la tabla. Elretroceso comienza en la posicion de la casilla mas elevada y prosiguehasta alcanzar un cero.

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 45 / 65

Algoritmo de Smith Waterman: Ejemplo

f (i , j) = max =

Fi−j ,j−1 + S(Xi ,Yj)Fi−j ,j + gFi ,j−1 + g

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 46 / 65

Algoritmo de Smith Waterman: Ejemplo

Alineamiento Local

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 47 / 65

Algoritmo de Blast y Sus variantes

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 48 / 65

Algoritmo de Blast

BLAST (Basic Local Alignment Search Tool) .

Desarrollado a partir de 1990 por Stephen Altschul.

Metodo heurıstico: utilizacion de reglas empıricas para llegar a unasolucion.

Buscar secuencias en base de datos.

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 49 / 65

Algoritmo de Blast

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 50 / 65

Algoritmo de Blast

Primera Etapa

En la primera etapa, BLAST busca coincidencias exactas de una pequenalongitud fija W entre la secuencia de consulta y las secuencias de la basede datos.

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 51 / 65

Algoritmo de Blast

1era Etapa

Query 1 : AGTTAC

Query 2: ACTTAG

Word : 3

Blast identifica = TTA es comun en ambas secuencias.

Entre W mas grande mas rapido - Menos preciso.

Entre W mas pequeno mas demorado - Mas preciso.

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 52 / 65

Algoritmo de Blast

2da Etapa

Extender la coincidencia en ambas direcciones

Extiende la busqueda hacia los extremos buscando un mejor puntajede busqueda

Si es encontrado un alineamiento sin huecos de alto puntaje, la basede datos de secuencias pasa a la tercera etapa.

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 53 / 65

Algoritmo de Blast

3ra Etapa

BLAST realiza un alineamiento sin huecos entre la secuencia deconsulta y la secuencia de la base de datos Usando una variacion delalgoritmo de Smith-Waterman.

Los alineamientos relevantes estadısticamente son mostrados alusuario.

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 54 / 65

Algoritmo de Blast

E-ValueE-Value es un parametro que indica el numero de Hits o aciertos queuno puede esperar por azar cuando buscamos una secuencia en unabase de datos.

E-Value decrece exponencialmente con el Score (S).

E-Value = 0 seria el valor Ideal.

E-Value tiene encuenta la longitud de la secuencia.

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 55 / 65

Algoritmo de Blast:E-Value

No solo basarse en la puntuacion obtenida.

Tener encuenta el contexto biologico.

Determinar si el resutado es estadısticamente significativo.

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 56 / 65

Algoritmo de Blast:E-Value

HSP (High Scoring Pair) : Alineamientos con las puntuaciones masaltas.

MSP (Maximal Segment Pair)

Se ajusta a una distribucion de valores extremos: Calcular laprobabilidad que MSP tenga un valor mayor o igual.

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 57 / 65

Algoritmo de Blast:E-Value

Funcion de Densidad

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 58 / 65

Algoritmo de Blast:E-Value

Funcion de Distribucion

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 59 / 65

Algoritmo de Blast:E-Value

Tengo un valor S (score ) el cual es el maximo puntaje o score paraun alineamiento

Los MSP se ajustan a una distribucion de valores extremos.

Es posible calcular la probabilidad de que un MSP tenga unapuntuacion igual o mayor que S por simple casualidad.

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 60 / 65

Algoritmo de Blast:E-Value

Esta probabilidad se llama Valor P y se calcula con la siguienteexpresion :

p(score >= S) = 1− exp(−Kmn+e−λS ) (1)

m y n son las longitudes de la secuencias comparadas

K y Lambda son dos parametros que dependen de la matriz desustitucion empleada.

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 61 / 65

Algoritmo de Blast:E-Value

Ademas del valor p tambien se suele incluir el valor E : El numero dealineamientos que espero encontrar en una base de datos de ese tamanocon una puntuacion igual o mayor que S.

E = kmne−λS (2)

Donde m y n indican la longitud de la secuencia problema y de labase de datos.

S es la puntuacion del alineamiento y k y lambda son dos constantesque dependen del sistema de puntuacion.

Cuanto menor sea el valor E, menos probable es que el alineamiento sedeba a una simple causalidad.

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 62 / 65

Algoritmo de Blast:E-Value

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 63 / 65

Algoritmo de Blast

VariantesBLASTN: Compara una secuencia de nucleotidos desconocida contrauna base de datos de nucleotidos.

BLASTP: Compara una secuencia de aminoacidos desconocida contrauna base de datos de proteınas.

BLASTX: Compara los seis marcos de lectura teoricos (de ambossentidos de traduccion) de una secuencia de nucleotidos desconocidacontra una base de datos de proteınas.

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 64 / 65

Algoritmo de Blast

VariantesTBLASTN: Compara una secuencia desconocida de proteına contrauna base de datos de nucleotidos dinamicamente traducida en los seismarcos de lecturas de ambos sentidos de traduccion.

TBLASTX: Compara los seis marcos de lectura teoricos de unasecuencia de nucleotidos desconocidos contra los seis marcos delectura de una base de datos de nucleotidos.

Archivo fastaAlgoritmo

John Trujillo (Univalle) Intro. BioInformatica 19 de noviembre de 2013 65 / 65