160 likes | 377 Views
Alineamiento de secuencias múltiples. ¿ Por qué alinear simultáneamente varias secuencias?. Un ejemplo claro de este caso sería comparar proteínas muy conservadas evolutivamente que cumplen igual función en distintos organismos, de esta forma se podrían confeccionar árboles evolutivos.
E N D
Alineamiento de secuencias múltiples ¿ Por qué alinear simultáneamente varias secuencias? Un ejemplo claro de este caso sería comparar proteínas muy conservadas evolutivamente que cumplen igual función en distintos organismos, de esta forma se podrían confeccionar árboles evolutivos. Un caso muy estudiado en mamíferos es la insulina, la cual está muy conservada en distintas especies. “Los cambios acumulados en una secuencia biológica se producen a una tasa relativamente constante e independiente de parámetros poblacionales” El alineamiento de múltiples secuencias es muy utilizado en la búsqueda de que varias especies estén emparentadas por un ancestro común .
problema: • conjunto de secuencias s1, s2, ...,sk( del mismo alfabeto) • tenemos que insertar espacios hasta que queden todas de igual • longitud ej: M Q P I L L L M L R – L L – M K – I L L L M P P V L I L M Q P I L L L M L R L L M K I L L L M P P V L I L
¿ Cómo definimos la calidad de un alineamiento múltiple? M Q P I L L L M L R – L L – M K – I L L - M P P V L I L Necesitamos una definición para el score de cada columna • Definimos una función que sea: • 1) independiente del orden de los argumentos • score(I,-,I,V)= score(V,I,I,-) • 2) sume cuando los símbolos son iguales o parecidos y • reste cuando son diferentes y cuando hay espacios Función SP (suma de a pares) SP-score(I,-,I,V)=p(I,-)+p(I,I)+p(I,V)+p(-,I)+p(-,V)+p(I,V) p(a,b) p(-,-)=0 alineamiento múltiple ij= alineamiento inducido por de si y sj buscamos el alineamiento con máximo score
. . . . . . i j Usando programación dinámica ... k secuencias de longitud n a k dimensiones a[i1, ..., ik] score de s1[1...i1],...,sk[1...ik] • algoritmo... • inicializar a[0,...0] 0 • llenar la matriz aO(nk) • -computar cada entrada: • depende de 2k-1 entradas anteriores O(2k) M Q P I L L L M L R – L L – M K – I L L - M P P V L I L - score de las columnas: pares O(k2) Tiempo estimado de la corrida de O(k22knk) Es exponencial en el input de secuencias, debido a la cantidad de celdas a llenar NP-completo !!
V S N S N A A S - - A V - A V S - - A S - - - S N V - - V S - - - - v s A v s - v- -s -A v- -s -- -v s- -- -v s- -A v-- -s- --A - s A - s - -v -s A- v- -s A- -v s- A- v s A K=3, aes de 3 dim.
NP-completo nkceldas Hay algoritmos heurísticos para computar sólo algunas celdas celdas celdas relevantes ¿qué celdas son relevantes y por qué? idea: proyecciones de a pares de las celdas (test de relevancia) Sea una alineación óptima para s1, ..., sk celda relevante cada una de sus proyecciones de a pareses parte de una alineación óptima de las dos secuencias del par. Pero todavía tenemos que mirar todas las celdas... O(nk) Un método para olvidarnos de las irrelevantes ...
Estrategia para olvidar las celdas irrelevantes: • En cada tiempo t consideramos un pool de celdas • * celdasdependientes • * celdas influyentes • i influye sobre j si i es una de las cedas usadas en la computación máxima • para determinar el valor de a[j]. • (cada celda depende (e influye), a lo sumo, de 2k-1 otras) . . . . . . i j • ¿ pool ? • contiene las celdas relevantes en todos los tiempos • inicialmente 0=(0,...0) • en cada paso se remueve una celda del pool ( “lexicográficamente menor”)
Algoritmo de alineamiento de secuencias múltiples input: s=(s1,...,sk) y límite inferior L output: valor del alineamiento óptimo * Cálculo de Lxy, 1 x < y k para todox e y, 1 x < y k, hacer: calcular cxy, la matrizdel score total para sxy sy para todox e y, 1 x < y k hacer: Lxy L – * Cálculo de la matriz a: pool { 0 } whilepool no esté vacío hacer: i celda del pool lexicogrphically smallest pool pool \ {i} ifcxy[ix, iy] Lxy , x, y 1 x < y k, then*test de relevancia para todoj dependiente de i hacer: ifj poolentonces pool pool {j} a[j] a[i] + SP-score(Column(s,i,j-i)) else a[j] máx {a[j] , a[i] + SP-score(Column(s,i,j-i)) }returna[n1,..., nk]
s1 s2 sc . sk . . Alineamiento estrella k secuencias s1,..., sc,...,sk elegimos una, sc, como centro de la estrella Y buscamos el alineamiento óptimo entre siy sc problema de alineamiento entre pares programación dinámica O(kn2) se usa la técnica: “once a gap, always a gap” (los gap que agregamos en sc para cada alineación de a pares, se mantienen en la alineación múltiple)
Un ejemplo para: 3 miembros de la superfamilia • serin-proteasa
s1= A T T G C C A T T s2= A T G G C C A T T s3= A T C C A A T T T T s4= A T C T T C T T s5= A C T G A C C ejemplo: 5 secuencias de ADN ¿cuál elegimos como central? un criterio posible: calcular el score de todos los pares posibles, y elegir “la más similar” 2 1 -11 -3 -17 alineamos s1 con cada una ...
alineamientos de a pares: (s1 y otra) ej. alineamiento estrella s1= A T T G C C A T T - - s2= A T G G C C A T T - - s3= A T C - C A A T T T T s4= A T C T T C - T T - - s5= A C T G A C C - - - - s1= A T T G C C A T T s2= A T G G C C A T T s1= A T T G C C A T T s2= A T G G C C A T T s3= A T C C A A T T T T s4= A T C T T C T T s5= A C T G A C C s1= A T T G C C A T T - - s3= A T C - C A A T T T T s1= A T T G C C A T T s4= A T C T T C - T T armamos el alineamiento múltiple ... (“once a gap, always a gap”) s1= A T T G C C A T T s5= A C T G A C C - - alin. pares O(kn2) cálculo del score del alineamiento múltiple: O(k2l) total... O(kn2+ k2l) l es la longitud de la sec. más larga en los alin.de a pares
C A T C T G G T C G Alineamiento árbol ¿Por qué alinear de esta manera? a veces hay árboles evolutivos para las secuencias involucradas k secuencias y un árbol con k hojas asignamos secuencias en los nodos internos computamos los pesos para cada eje =sim entre secuencias de nodos incidentes nodo p(a,b)=1 si a=b =0 si ab p(a,-)=-1 1 1 C G 1 1 C T 2 score total: 6 eje
Symbol 3-letter Codons A Ala GCT GCC GCA GCG C Cys TGT TGC D Asp GAT GAC E Glu GAA GAG F Phe TTT TTC G Gly GGT GGC GGA GGG H His CAT CAC I Ile ATT ATC ATA K Lys AAA AAG L Leu TTG TTA CTT CTC CTA CTG M Met atg N Asn AAT AAC P Pro CCT CCC CCA CCG Q Gln CAA CAG R Arg CGT CGC CGA CGG AGA AGG S Ser TCT TCC TCA TCG AGT AGC T Thr ACT ACC ACA ACG V Val GTT GTC GTA GTG W Trp TGG Y Tyr TAT TAC * End TAA TAG TGA
Amino Acidos BASIC AA HYDROPHOBIC H R K L I ACID AA A V AA AROMATIC AA E Y F D W NEUTRAL AA C S T P G Q N M