CFG y RNA Aca vemos una gramatica context free que puede generar un stem de 3 bases, y un loop de GAAA o GCAA
De las gramáticas libres de contexto a las gramáticas sensitivas al contexto
Pseudoknots Las gramaticas sensitivas al contexto permiten modelar lenguajes Copy, que son los que se presentan en los pseudoknots.
Problema Sub No se conocen algoritmos generales en tiempo polinomial para parsear gramaticas sensitivas al contexto
Tres problemas basicos Scoring: Cuan probable es una secuencia dado un SCFG parametrizado? Algoritmo Inside Training: Dada un conjunto de secuencias, como estimamos los parametros de un SCFG? Algoritmo Inside Outside Alineamiento: Cual es el parsing mas probable de una secuencia a un SCFG parametrizado? Algoritmo CYK
a (i,j,v): la probabilidad suma de todos los subtrees de parsing de raiz v para la subsecuencia de i a j Determinando la probabilidad de una secuencia: El Algoritmo Inside
El algoritmo Inside
El algoritmo Inside Inicializacion: ?(i,i,v) = ev (xi )
Iteracion
Terminacion: Pr(x) = ?(1,L,1)
El algoritmo Outside: b(i,j,v)
Algoritmo CYK Dada una secuencia X encontrar el parsing mas probable. A la probabilidad del parsing mas probable del substring Xi…Xj con raiz en V la llamamos g (i,j,V). Empezamos con g (i,i,V) = log P(V®Xi) Para todo j > i, buscamos todas las producciones V®YZ y nos quedamos con la de maxima probabilidad.
Algoritmo CYK g (i,i,V) = log P(V®Xi), " no terminal V, " 1£i£N for i=1 to N-1 for j=i+1 to N " no terminal V g (i,j,V) = maxx maxy maxi£k£j [log P(V®XY)+ g (i,k,X)+ g (k+1,j,Y)]; endfor endfor return g (1,N,S)
Sub Recordamos las elecciones hechas en CYK en cada paso para reconstruir el parser optimo!
Veamos una aplicación de la gramatica a la estructura secundaria del RNA Sub .
Algoritmo Nussinov Dada: Una secuencia RNA Objetivo: Encontrar la estructura secundaria que maximice el numero de apareamiento de bases Algoritmo recursivo: Encuentra la mejor estructura para los inputs i…j intentando una de las siguientes 4 posibilidades: Agregar el par i, j sobre la mejor estructura i+1…j-1 Agregar i sin aparear a la mejor estructura i+1…j Agregar j sin aparear a la mejor estructura i…j-1 Combinar las dos estructuras optimas i…k y k+1…j
Casos en Nussinov
Algoritmo Nussinov La secuencia a analizar tiene longitud L. Es un algoritmo de programacion dinamica que llena una matriz de L x L, con la informacion del maximo apareamiento de las bases. Hacemos la funcion ? (xi, xj) = 1, si xi y xj se aparearian entre si, y ? (xi, xj) = 0, en caso contrario.
Algoritmo Nussinov Inicializacion: ? (i, i-1) = 0, i= 2…L ? (i, i) = 0, i= 1…L Recursion: for i=1…L-1, j=i+1…L
Terminacion: maxima cantidad de apareamientos de bases: ? (1, L)
Nussinov traceback Inicializacion: Push (1,L) en el stack Recursion: Repetir hasta que el stack este vacio pop(i,j) if i > j continuar else if ? (i+1, j) = ? (i, j) push (i+1, j) else if ? (i, j-1) = ? (i, j) push (i, j-1) else if ? (i+1, j-1)+?ij = ? (i, j): registrar i, j como apareamiento push (i+1, j-1) else for k= i+1 to j-1: if ? (i,k)+? (k+1,j)=? (i,j): push (k+1,j) push (i,k) break
Ejemplo
Version SCFG de Nussinov
S ® GSC: 3 ½ CSG: 3 ½ ASU: 2½USA: 2 ½GSU: 1 ½ USG: 1 S ® SS: 0 ½ e: 0 S ® AS: 0 ½ CS: 0 ½ GS: 0 ½ US: 0 S ® SA: 0 ½ SC: 0 ½ SG: 0 ½ SU: 0
Página anterior | Volver al principio del trabajo | Página siguiente |