Modelos Probabilísticos de Secuencias
1. ¿Qué es una secuencia sobre un alfabeto y qué modelos probabilísticos se pueden utilizar para modelizar su composición?
Una secuencia (o palabra) sobre un alfabeto A = {a1, …, an} se define como S = s1s2…sL, donde si ∈ A.
Los modelos probabilísticos que podemos utilizar para modelizar su composición son:
- Modelo Multinomial: Cada elemento es independiente y todos tienen la misma probabilidad de aparecer (distribución idéntica). La probabilidad de una secuencia S = s1s2…sL se calcula como P(S) = Πi=1L P(si). Si los símbolos son idénticamente distribuidos, P(si) es constante para todos los símbolos.
- Modelo de Markov: La probabilidad de un símbolo depende del símbolo inmediatamente anterior. La probabilidad de una secuencia S = s1s2…sL se calcula como P(S) = P(s1) * Πi=2L P(si | si-1). Este modelo se define por:
- Un vector inicial (Π): Donde Πai = P(s1 = ai) es la probabilidad de que el primer símbolo sea ai.
- Una matriz de transición (T): Donde T(ai, aj) = P(sk = aj | sk-1 = ai) es la probabilidad de que un símbolo aj aparezca dado que el anterior fue ai.
2. Describir los elementos de un modelo multinomial y de una cadena de Markov para secuencias sobre un alfabeto.
Elementos de un modelo multinomial de secuencias:
- Alfabeto (A): El conjunto de símbolos posibles, por ejemplo, A = {a1, a2, …, an}.
- Secuencia (S): Una cadena de símbolos del alfabeto, S = s1s2…sL.
- Probabilidades para cada símbolo del alfabeto (P): P(ai) para cada ai ∈ A. Si no se especifican, se asume que son equiprobables (P(ai) = 1/|A|). La suma de todas las probabilidades debe ser 1 (Σ P(ai) = 1).
Elementos de una cadena de Markov que modelice las secuencias sobre un alfabeto:
- Estados: Los símbolos del alfabeto (A = {a1, a2, …, an}).
- Matriz de Transición (T): Contiene las probabilidades condicionadas de que aparezca un símbolo en función del anterior. Por ejemplo, T(ai, aj) = P(aj | ai).
- Vector Inicial (Π): Contiene las probabilidades de que cada símbolo sea el inicio de la secuencia. Por ejemplo, Πai = P(s1 = ai).
Ejemplo para cadenas de ADN:
Modelo Multinomial:
- Alfabeto: A = {A, T, C, G}
- Secuencia: S = TC
- Probabilidades: P(T) = X, P(C) = Y (donde X e Y son las probabilidades de los símbolos T y C, respectivamente, y P(A)+P(T)+P(C)+P(G)=1).
Modelo de Markov:
- Estados: {A, C, G, T}
- Matriz de Transición (T): Una matriz 4×4 con probabilidades como:
T = [ [P(A|A), P(C|A), P(G|A), P(T|A)], [P(A|C), P(C|C), P(G|C), P(T|C)], [P(A|G), P(C|G), P(G|G), P(T|G)], [P(A|T), P(C|T), P(G|T), P(T|T)] ]
- Vector Inicial (Π): Un vector de probabilidades para el primer símbolo: Π = [P(s1=A), P(s1=C), P(s1=G), P(s1=T)].
Cálculo de la probabilidad de la secuencia ACACGACT:
Modelo Multinomial (suponiendo i.i.d.):
Si los símbolos son independientes e idénticamente distribuidos (i.i.d.) y el alfabeto es {A, C, G, T} (tamaño 4), y asumimos equiprobabilidad:
P(S) = (1/|A|)L = (1/4)8 = 1 / 48.
Si los símbolos son independientes pero no i.i.d. (es decir, tienen distintas probabilidades P(A), P(C), P(G), P(T)):
P(S) = P(A) * P(C) * P(A) * P(C) * P(G) * P(A) * P(C) * P(T).
Modelo de Markov:
P(S) = P(s1=A) * P(C|A) * P(A|C) * P(C|A) * P(G|C) * P(A|G) * P(C|A) * P(T|C).
3. ¿Qué significa, dado un modelo probabilístico de las secuencias sobre un alfabeto, que las probabilidades de los símbolos son independientes e idénticamente distribuidas? ¿Qué probabilidad tendría, utilizando un modelo con las características anteriores, la secuencia de aminoácidos ADCGACLTA?
- Que sean independientes significa que la aparición de un elemento en una posición de la cadena no está condicionada por ningún otro factor (símbolo anterior, posterior, etc.).
- Que sean idénticamente distribuidas significa que todos los elementos del alfabeto tienen la misma probabilidad de aparecer en cualquier posición de la secuencia.
Para la secuencia de aminoácidos ADCGACLTA (longitud L=9), si asumimos un alfabeto de aminoácidos y que son i.i.d.:
Si el alfabeto de aminoácidos es {A, D, C, G, L, T} (tamaño |A|=6), y asumimos equiprobabilidad, entonces P(si) = 1/6 para cada aminoácido.
P(S) = P(A) * P(D) * P(C) * P(G) * P(A) * P(C) * P(L) * P(T) * P(A)
Dado que son i.i.d. y equiprobables, P(S) = (1/6)9 ≈ 9.9 x 10-8.
4. Para un determinado alfabeto A = {a,b} conocemos que:
- La probabilidad de que una secuencia empiece por ‘a’ es 0.53 y la probabilidad de que empiece por ‘b’ es 0.22.
- La probabilidad de que en una secuencia un símbolo sea distinto del siguiente es 0.6 (con la misma probabilidad para cualquiera de las opciones de cambio).
Calcular la probabilidad de la secuencia ‘aaba’.
Datos:
- Alfabeto A = {a, b}
- P(s1 = a) = 0.53
- P(s1 = b) = 0.22
- P(si ≠ si+1) = 0.6
De P(si ≠ si+1) = 0.6, y asumiendo que las opciones de cambio tienen la misma probabilidad:
- P(b|a) = 0.6 (probabilidad de que ‘a’ cambie a ‘b’)
- P(a|b) = 0.6 (probabilidad de que ‘b’ cambie a ‘a’)
Por lo tanto, las probabilidades de no cambio son:
- P(a|a) = 1 – P(b|a) = 1 – 0.6 = 0.4
- P(b|b) = 1 – P(a|b) = 1 – 0.6 = 0.4
La probabilidad de la secuencia ‘aaba’ utilizando un modelo de Markov es:
P(‘aaba’) = P(s1=a) * P(a|a) * P(b|a) * P(a|b)
P(‘aaba’) = 0.53 * 0.4 * 0.6 * 0.6 = 0.07632.
5. En la bacteria Haemophilus influenzae los nucleótidos ocurren con las siguientes frecuencias relativas: A (0.31), C (0.91), G (0.19), T (0.31). ¿Qué modelo probabilístico podríamos asumir? Indicar cómo se calcularía la probabilidad de la secuencia AGTATG según dicho modelo.
Podemos asumir un modelo multinomial no idénticamente distribuido, donde las probabilidades de los símbolos son fijas pero no necesariamente iguales. Es importante notar que la suma de las frecuencias dadas (0.31 + 0.91 + 0.19 + 0.31 = 1.72) no es igual a 1, lo cual es una inconsistencia para un conjunto de probabilidades. Sin embargo, si se utilizan los valores proporcionados directamente, el cálculo sería:
Para la secuencia AGTATG:
P(AGTATG) = P(A) * P(G) * P(T) * P(A) * P(T) * P(G)
P(AGTATG) = 0.31 * 0.19 * 0.31 * 0.31 * 0.31 * 0.19 = 3.33 x 10-4.
6. Describir los elementos de una cadena de Markov que modelice la distribución de dímeros en una secuencia de ADN. Indicar cuál sería el correspondiente alfabeto.
Para modelizar la distribución de dímeros (pares de nucleótidos) en una secuencia de ADN, se utiliza una cadena de Markov de primer orden donde los estados son los nucleótidos individuales y las transiciones representan la formación de dímeros.
- Alfabeto (Estados): A = {A, T, C, G}.
- Matriz de Transición (T): Una matriz 4×4 donde cada elemento T(X,Y) representa la probabilidad de que el nucleótido Y siga al nucleótido X (P(Y|X)). Por ejemplo:
T = [ [P(A|A), P(C|A), P(G|A), P(T|A)], [P(A|C), P(C|C), P(G|C), P(T|C)], [P(A|G), P(C|G), P(G|G), P(T|G)], [P(A|T), P(C|T), P(G|T), P(T|T)] ]
- Vector Inicial (Π): Un vector de probabilidades para el primer nucleótido de la secuencia: Π = [P(s1=A), P(s1=C), P(s1=G), P(s1=T)].
Representación Gráfica: Una cadena de Markov se puede representar gráficamente como un grafo dirigido donde cada nucleótido (A, C, G, T) es un nodo (estado) y las flechas entre los nodos representan las transiciones, con sus respectivas probabilidades. Por ejemplo, una flecha de A a C con una etiqueta P(C|A) indicaría la probabilidad de que C siga a A. Los bucles en un nodo (por ejemplo, de A a A) indicarían P(A|A).
7. ¿Cómo se estudia la variabilidad de la distribución de k-meros en una secuencia? Por ejemplo, para localizar las zonas ricas en A o T en una cadena de ADN.
El estudio de la variabilidad de la distribución de k-meros (secuencias de k nucleótidos) en una secuencia de ADN se realiza para identificar regiones con composiciones específicas. Para localizar zonas ricas en A o T (conocidas como regiones AT-ricas) en una cadena de ADN, se pueden seguir estos pasos:
- Cálculo de Frecuencias de k-meros: Se desliza una ventana de tamaño k a lo largo de la secuencia y se cuentan las ocurrencias de cada k-mero.
- Análisis de Composición Local: Para identificar regiones AT-ricas, se calcula el porcentaje de A y T dentro de ventanas deslizantes de un tamaño determinado (por ejemplo, 50 o 100 nucleótidos).
- Identificación de Patrones: Las zonas ricas en AT son conocidas por ser menos estables (requieren menos energía para separar las hebras) debido a que los enlaces A-T son dobles, mientras que los G-C son triples. Por lo tanto, estas regiones suelen tener una menor proporción de pares G-C.
- Comparación y Umbrales: Se comparan las frecuencias observadas con las esperadas (por ejemplo, bajo un modelo i.i.d. o de Markov) y se establecen umbrales para definir qué se considera una región «rica» en A o T. Se buscan puntos de cambio significativos en la composición a lo largo de la secuencia.
Anotación de Genes
1. ¿Qué dificultad tiene la localización de genes en el genoma de una célula eucariota? ¿Se tiene esa misma dificultad en las células procariotas?
La principal dificultad en la localización de genes en el genoma de una célula eucariota radica en la presencia de intrones (secuencias no codificantes) que interrumpen las regiones codificantes (exones). Esto significa que la información útil para la síntesis de proteínas no es continua, sino que está fragmentada. Además, los genomas eucariotas contienen una gran cantidad de ADN no codificante (a menudo denominado «ADN basura» en contextos informales), lo que complica aún más la identificación de los genes funcionales.
En las células procariotas, esta dificultad es significativamente menor. Sus genomas son generalmente más compactos, carecen de intrones y la secuencia de ADN con información útil es, en su mayoría, continua. Los genes suelen estar organizados de forma más lineal y densa, facilitando su localización.
2. ¿Qué es un Open Reading Frame (ORF)?
Un Open Reading Frame (ORF), o Marco de Lectura Abierto, es una secuencia de ADN (o ARN) comprendida entre un codón de inicio (generalmente ATG en ADN, que se transcribe a AUG en ARN) y un codón de terminación (codón de parada: TAA, TAG, TGA en ADN, o UAA, UAG, UGA en ARN), sin que haya codones de parada intermedios. En el contexto de la anotación de genes eucariotas, un ORF funcional también debe descartar las secuencias que corresponden a intrones. Los ORFs son fundamentales para la localización de genes, ya que representan las regiones potenciales que podrían codificar para una proteína o un péptido.
3. Describir un procedimiento que permita localizar todos los ORF existentes en una secuencia de ADN.
Para localizar todos los ORFs en una secuencia de ADN, se sigue un procedimiento sistemático:
- Obtener las Seis Marcos de Lectura: Dada una secuencia de ADN, se considera tanto la hebra directa como su hebra complementaria. Cada hebra tiene tres posibles marcos de lectura, dependiendo de dónde comience la lectura (posición +1, +2 o +3 respecto al inicio). Esto da un total de seis marcos de lectura posibles (+1, +2, +3, -1, -2, -3).
- Identificar Codones de Inicio y Parada: Dentro de cada uno de los seis marcos de lectura, se identifican todos los codones de inicio (ATG) y los codones de parada (TAA, TAG, TGA).
- Definir ORFs: Un ORF se define como la secuencia de codones que comienza con un codón de inicio y termina con el primer codón de parada encontrado en ese mismo marco de lectura, sin que haya otros codones de parada intermedios.
- Filtrado (Opcional pero Común): Se suelen descartar los ORFs que son demasiado cortos, ya que es más probable que hayan aparecido por azar.
4. ¿Qué utilidad tiene la localización de los ORF existentes en una secuencia de ADN? ¿Por qué se descartan los menores que un determinado tamaño y cómo puede determinarse ese umbral?
La localización de los ORFs es crucial en bioinformática y genómica por varias razones:
- Identificación de Regiones Codificantes: Permite identificar las regiones del ADN que tienen el potencial de codificar para proteínas o péptidos, siendo un paso fundamental en la anotación de genes.
- Predicción de Proteínas: Una vez localizado un ORF, su secuencia puede ser traducida a una secuencia de aminoácidos, lo que permite predecir la proteína que podría producirse.
- Estudio de la Organización Genómica: Ayuda a comprender la estructura y organización de los genomas.
Los ORFs menores que un determinado tamaño (umbral) se descartan porque se asume que los ORFs muy cortos tienen una alta probabilidad de aparecer por azar y, por lo tanto, es menos probable que representen genes funcionales. Este umbral se determina estadísticamente:
Considerando un alfabeto de 4 nucleótidos (A, C, T, G) que se agrupan en codones de 3 nucleótidos, hay 43 = 64 codones distintos. De estos, 3 son codones de terminación y 61 son codones no terminales.
La probabilidad de que un codón sea no terminal es P(no terminal) = 61/64.
La probabilidad de que una secuencia de K codones sea un ORF (es decir, K codones no terminales seguidos) es P(K) = (61/64)K, asumiendo que los codones aparecen de forma independiente e idénticamente distribuida.
Para determinar el umbral, se busca el valor de K para el cual la probabilidad de que un ORF de esa longitud o más se genere por azar sea muy baja (por ejemplo, menor al 1%). Si P(K) < 0.01, entonces K es un buen umbral. Se ha observado que a partir de K ≈ 100 codones no terminales, la probabilidad de que un ORF de esa longitud se genere por azar es menor al 1%, lo que proporciona una confianza superior al 99% de que un ORF de 100 o más codones no se ha generado aleatoriamente.
5. Si consideramos que la aparición de los distintos codones en una secuencia es equiprobable, ¿qué tamaño debe tener un ORF para que la confianza en que no se haya generado al azar sea mayor al 99%?
Como se ha explicado en el punto anterior, si la aparición de los distintos codones es equiprobable, la probabilidad de un codón no terminal es 61/64. Para una confianza superior al 99% (es decir, una probabilidad de azar inferior al 1% o 0.01), necesitamos resolver:
(61/64)K ≤ 0.01
Tomando logaritmos:
K * log(61/64) ≤ log(0.01)
K * (-0.0209) ≤ -2
K ≥ -2 / -0.0209
K ≥ 95.69
Por lo tanto, un ORF debe tener al menos K = 96 codones no terminales para que la confianza en que no se haya generado al azar sea mayor al 99%. Esto corresponde a una longitud de secuencia de 96 * 3 = 288 nucleótidos.
6. ¿Cómo puede estimarse K para confiar en que el C% de los ORF generados al azar tengan K codones o menos, si la generación de los codones se hace a partir de la frecuencia absoluta que tengan los mismos en una determinada secuencia de ADN utilizando la correspondiente distribución multinomial como modelo?
Cuando la aparición de los codones no es equiprobable, sino que se basa en sus frecuencias absolutas en una secuencia de ADN (modelo multinomial), la probabilidad de un codón no terminal (Pno_terminal) ya no es simplemente 61/64. En su lugar, se calcula como la suma de las frecuencias de todos los codones no terminales observados en la secuencia.
Sea Pno_terminal = Σ P(codóni) para todos los codonesi que no son de parada.
Para estimar K tal que la confianza en que un ORF no se haya generado al azar sea mayor al C% (es decir, la probabilidad de que se genere al azar sea menor a (100-C)%), se resuelve la siguiente inecuación:
(Pno_terminal)K ≤ (100-C)/100
Tomando logaritmos:
K * log(Pno_terminal) ≤ log((100-C)/100)
K ≥ log((100-C)/100) / log(Pno_terminal)
Es importante recordar que log(Pno_terminal) será negativo (ya que Pno_terminal < 1), por lo que al dividir, la desigualdad se invierte.
7. En la bacteria Haemophilus influenzae la probabilidad de que un codón sea de parada es: P(cod = TAA) = 0.003, P(cod = TAG) = 0.001, P(cod = TGA) = 0.002. ¿Cómo se calcularía el tamaño de ORF que debemos considerar para tener una confianza superior al 95% de que no es fruto del azar?
Primero, calculamos la probabilidad total de que un codón sea de parada:
P(parada) = P(TAA) + P(TAG) + P(TGA) = 0.003 + 0.001 + 0.002 = 0.006.
La probabilidad de que un codón no sea de parada es:
Pno_terminal = 1 – P(parada) = 1 – 0.006 = 0.994.
Para tener una confianza superior al 95% de que un ORF no es fruto del azar, la probabilidad de que se genere por azar debe ser inferior al 5% (0.05).
Entonces, resolvemos:
(Pno_terminal)K ≤ 0.05
(0.994)K ≤ 0.05
Tomando logaritmos:
K * log(0.994) ≤ log(0.05)
K * (-0.00261) ≤ -1.301
K ≥ -1.301 / -0.00261
K ≥ 498.46
Por lo tanto, el tamaño de ORF que debemos considerar es de al menos K = 499 codones no terminales para tener una confianza superior al 95% de que no es fruto del azar.
8. ¿Qué significa que dos organismos A y B tienen un gen X homólogo? ¿Cuál es la diferencia entre gen ortólogo y gen parólogo?
- Dos organismos A y B tienen un gen X homólogo si ambos genes provienen de un mismo gen ancestral común. La homología implica un origen evolutivo compartido, independientemente de si los genes mantienen la misma función o no.
- Los genes ortólogos son secuencias homólogas que se han separado debido a un evento de especiación. Son genes en diferentes especies que evolucionaron a partir de un gen ancestral común y que, por lo general, conservan la misma función en las especies divergentes.
- Los genes parólogos son secuencias homólogas que se han separado debido a un evento de duplicación génica dentro del mismo genoma. Estos genes pueden evolucionar para adquirir nuevas funciones o para especializarse en funciones ligeramente diferentes dentro del mismo organismo.
Alineación de Secuencias
1. ¿Qué utilidades tiene la alineación de secuencias?
La alineación de secuencias es una herramienta fundamental en bioinformática con múltiples utilidades:
- Medición de Similitud: Permite cuantificar el grado de similitud entre dos o más secuencias de ADN, ARN o proteínas.
- Predicción de Función: Si una secuencia desconocida se alinea bien con una secuencia de función conocida, se puede inferir la función de la secuencia desconocida (predicción funcional).
- Búsqueda en Bases de Datos: Facilita la localización de secuencias similares en grandes bases de datos (como GenBank o UniProt) a partir de una secuencia de consulta (ej. BLAST).
- Localización de Genes: Comparar genomas completos de diferentes organismos puede revelar la existencia de genes desconocidos o regiones conservadas.
- Ensamblaje de Secuencias: Esencial en proyectos de secuenciación genómica para unir fragmentos de ADN solapados y reconstruir una secuencia más larga.
- Estudios Filogenéticos: Las alineaciones de secuencias son la base para construir árboles filogenéticos y estudiar las relaciones evolutivas entre especies o genes.
- Identificación de Motivos y Dominios: Permite detectar patrones conservados (motivos) o regiones funcionales (dominios) dentro de las secuencias.
Es importante recordar que la similitud de secuencias no siempre garantiza homología, aunque una alta similitud es un fuerte indicio.
2. ¿Garantiza una alineación global con una alta valoración entre un gen conocido de un organismo A y una subcadena del genoma de otro organismo B que dicha subcadena sea un gen del organismo B?
No, una alineación global con una alta valoración entre un gen conocido de un organismo A y una subcadena del genoma de otro organismo B no garantiza que dicha subcadena sea un gen funcional en el organismo B. Las razones incluyen:
- Tamaño Reducido del Alfabeto: En el caso del ADN (alfabeto {A, T, C, G}), el alfabeto es muy pequeño. Esto aumenta la probabilidad de que existan alineaciones por azar con puntuaciones relativamente altas, especialmente en secuencias largas o repetitivas.
- Regiones No Codificantes: La subcadena en el organismo B podría ser una región no codificante (como un intrón, una región intergénica o un pseudogén) que, por casualidad o por un ancestro común distante, comparte similitud con el gen de A.
- Pseudogenes: Podría ser un pseudogén, una copia no funcional de un gen que ha perdido su capacidad de codificar proteínas debido a mutaciones.
- Diferencias en la Regulación: Aunque la secuencia codificante sea similar, las regiones reguladoras (promotores, enhancers) podrían ser diferentes, impidiendo la expresión del gen en el organismo B.
Para confirmar que una subcadena es un gen funcional, se requieren pruebas adicionales como la detección de ORFs largos, la presencia de señales de inicio y terminación de la transcripción/traducción, la evidencia de expresión de ARN o proteína, y la conservación de la estructura y función de la proteína.
5. Aplicar el algoritmo apropiado, detallando cada uno de los pasos, que permita calcular la mejor alineación local entre las siguientes secuencias: casdao y tdota. Utilizar la siguiente función de sustitución: σ(x,y)= [-1 si x o y _] [2 si dist(x,y)=3]. Se considera que dos letras están a distancia k si hay k−1 letras entre ellas en el alfabeto.
Este ejercicio requiere la aplicación manual del algoritmo de Smith-Waterman (alineación local) y una función de sustitución específica. Dado que la función de sustitución está incompleta (falta la puntuación para coincidencias exactas y no coincidencias cuando dist(x,y) ≠ 3, y el alfabeto con distancias no está definido), y la resolución implica una matriz de programación dinámica que no puede ser representada textualmente de forma clara, este paso se omite. La resolución detallada se realizaría en un formato visual (como una tabla).
6. Calcular la valoración de la siguiente alineación utilizando la función de sustitución del ejercicio anterior: t d _ o t a // s d a o _ _
Similar al ejercicio anterior, el cálculo de la valoración de esta alineación requiere la función de sustitución completa y la aplicación manual de las reglas de puntuación, lo cual no es factible en este formato. La resolución detallada se realizaría en un formato visual.
Algoritmos de Alineación de Secuencias
Alineamiento Local – Smith-Waterman
El algoritmo de Smith-Waterman es una modificación del algoritmo de Needleman-Wunsch, diseñado para encontrar la mejor alineación local entre dos secuencias. Se enfoca en identificar regiones de alta similitud dentro de secuencias más grandes, que pueden no ser similares en su totalidad. Sus características clave son:
- Inicialización: La primera fila y columna de la matriz de programación dinámica se inicializan con ceros, en lugar de penalizaciones de hueco incrementales.
- Puntuación Mínima: Ninguna celda de la matriz puede tener una puntuación negativa; si un cálculo resulta en un valor negativo, se reemplaza por cero. Esto permite que las alineaciones comiencen y terminen en cualquier punto de la matriz.
- Rastreo Reverso: El rastreo reverso (para reconstruir la alineación) comienza desde la celda con la puntuación más alta en toda la tabla (no necesariamente la última celda) y termina cuando se encuentra una celda con puntuación cero.
Estas modificaciones permiten que el algoritmo identifique el fragmento de alineación local con la mayor puntuación posible, incluso si las secuencias completas son muy diferentes.
Alineamiento Global – Needleman-Wunsch
El algoritmo de Needleman-Wunsch es un ejemplo clásico de programación dinámica (PD) que garantiza encontrar la alineación global óptima (de máxima puntuación) entre dos secuencias completas. La programación dinámica es una técnica de optimización que descompone un problema complejo en subproblemas más pequeños y superpuestos, resolviéndolos una vez y almacenando sus soluciones.
Un algoritmo de programación dinámica consta de tres fases principales:
- Fase de Inicialización:
- Se asignan valores a la primera fila y columna de la matriz. Estas puntuaciones suelen corresponder a penalizaciones de hueco incrementales (por ejemplo, -k * gap_penalty para la k-ésima posición).
- Las flechas apuntan al origen, asegurando que cualquier alineación pueda rastrearse hasta el inicio de las secuencias, lo cual es un requisito para una alineación global.
- Fase de Relleno de la Matriz:
- La matriz se rellena iterativamente, calculando la puntuación de cada celda V(i,j) basándose en los valores de las celdas vecinas (diagonal, superior e izquierda).
- Para cada celda V(i,j), se calculan tres posibles puntuaciones:
- Match/Mismatch: V(i-1, j-1) + σ(si-1, tj-1) (alinear si-1 con tj-1)
- Gap en secuencia 1: V(i-1, j) + σ(si-1, -) (alinear si-1 con un hueco)
- Gap en secuencia 2: V(i, j-1) + σ(-, tj-1) (alinear tj-1 con un hueco)
- Se asigna a la celda V(i,j) el valor máximo de estas tres opciones y se guarda una flecha que indica de dónde proviene ese máximo.
- Fase de Rastreo Reverso:
- Comienza desde la última celda de la matriz (V(L1, L2), donde L1 y L2 son las longitudes de las secuencias).
- Siguiendo las flechas almacenadas en cada celda, se reconstruye la alineación óptima hasta llegar a la celda inicial (0,0).
Alineación Global vs. Local
- Alineación Global: Busca la mejor alineación entre dos secuencias completas, de principio a fin. Es adecuada cuando se espera que las dos secuencias sean homólogas en toda su longitud.
- Alineación Local: Identifica las regiones de mayor similitud dentro de dos secuencias, que pueden ser mucho más largas y no relacionadas en otras partes. Es útil para encontrar dominios conservados o motivos en secuencias divergentes.
Para evaluar la significancia estadística de una alineación:
- Alineación Global: Se generan permutaciones aleatorias de una de las secuencias y se calcula la distribución de las valoraciones de las alineaciones globales con la otra secuencia. La valoración de la alineación original se compara con esta distribución para determinar su significancia.
- Alineación Local: Se generan permutaciones de una de las secuencias y se calculan las valoraciones de todas las posibles alineaciones locales. La valoración de la alineación original debe estar por encima de un umbral (por ejemplo, el 95% de las mejores valoraciones obtenidas con secuencias aleatorias) para ser considerada significativa.
Fragmento Emparejado (Maximal Segment Pair – MSP)
Un fragmento emparejado se refiere a subsecuencias del mismo tamaño que se alinean sin huecos. Es un concepto clave en la búsqueda de similitudes rápidas en bases de datos.
- Localmente Óptimo: Su valoración no puede mejorarse modificando ligeramente el tamaño o la posición de las subsecuencias.
- Máximo: Es el fragmento emparejado con la mayor valoración entre todos los posibles.
Los algoritmos de búsqueda rápida como BLAST se basan en la identificación eficiente de estos fragmentos emparejados.
BLAST (Basic Local Alignment Search Tool)
BLAST es una de las herramientas bioinformáticas más utilizadas para la búsqueda de similitudes de secuencias. Su objetivo es encontrar alineaciones locales significativas entre una secuencia de consulta y secuencias en una base de datos. Funciona de la siguiente manera:
- Identificación de Palabras Semilla: Descompone la secuencia de consulta en «palabras» cortas (k-meros).
- Búsqueda de Coincidencias: Busca coincidencias exactas o casi exactas de estas palabras semilla en la base de datos.
- Extensión de Alineaciones: Si se encuentra una palabra semilla con una puntuación superior a un umbral predefinido, BLAST intenta extender esta alineación en ambas direcciones para obtener el fragmento local más largo posible con una puntuación por encima de un nuevo umbral estadístico.
BLAST es heurístico, lo que significa que no garantiza encontrar la alineación local óptima en todos los casos, pero es extremadamente rápido y suficientemente preciso para la mayoría de las aplicaciones biológicas.
Preguntas Adicionales y Repaso
1. Indicar qué suposiciones de independencia se asumen en el modelo probabilístico de Cadenas de Markov para secuencias sobre un determinado alfabeto.
En un modelo probabilístico de Cadenas de Markov de primer orden para secuencias, la suposición fundamental de independencia es la propiedad de Markov: la probabilidad de que un símbolo aparezca en una posición dada de la secuencia depende únicamente del símbolo inmediatamente anterior, y es independiente de todos los símbolos que lo precedieron antes de ese. Formalmente, P(st | s1, s2, …, st-1) = P(st | st-1).
2. ¿Qué describe y cuáles son las componentes de dicho modelo?
El modelo de Cadena de Markov describe la probabilidad de una secuencia de símbolos, donde la aparición de cada símbolo depende del anterior. Sus componentes son:
- Estados: Los símbolos del alfabeto (ej., A, C, G, T para ADN).
- Matriz de Transición: Contiene las probabilidades condicionadas P(sj | si), es decir, la probabilidad de pasar del estado si al estado sj.
- Vector Inicial: Contiene las probabilidades de que cada estado sea el estado inicial de la secuencia P(s1 = si).
3. ¿Cómo y por qué se calcula la log-probabilidad de una secuencia dado un modelo multinomial genérico?
La log-probabilidad de una secuencia se calcula aplicando el logaritmo a la probabilidad de la secuencia. Para un modelo multinomial (donde P(S) = Π P(si)), la log-probabilidad es:
log P(S) = log (Π P(si)) = Σ log P(si)
Se calcula la log-probabilidad por varias razones:
- Evitar Underflow Numérico: Las probabilidades de secuencias largas pueden ser extremadamente pequeñas (cercanas a cero), lo que puede causar problemas de precisión en cálculos computacionales (underflow). El logaritmo transforma estos valores muy pequeños en números negativos más manejables.
- Facilitar Comparaciones: Los valores de log-probabilidad son más «atractivos» y fáciles de comparar que las probabilidades directas, especialmente cuando se trabaja con órdenes de magnitud muy diferentes.
- Transformación de Productos en Sumas: Convierte productos de probabilidades en sumas de log-probabilidades, lo que simplifica los cálculos y reduce la complejidad computacional.
Ejemplo: Modelo multinomial i.i.d., |A| = 20 (aminoácidos), |S| = 50 (longitud de secuencia).
P(S) = (1/20)50 ≈ 8.8 × 10-66
log10P(S) = log10((1/20)50) = 50 * log10(1/20) = 50 * (-log10(20)) ≈ 50 * (-1.301) ≈ -65.05
ln P(S) = ln((1/20)50) = 50 * ln(1/20) = 50 * (-ln(20)) ≈ 50 * (-2.996) ≈ -149.79
5. Enumerar las utilidades que tiene la alineación de secuencias.
Ver la respuesta detallada en la sección «Alineación de Secuencias», pregunta 1.
6. Si consideramos que la aparición de los distintos codones en una secuencia NO es equiprobable, ¿qué tamaño debe tener un ORF para que la confianza en que no se haya generado al azar sea mayor al 95%?
Ver la respuesta detallada en la sección «Anotación de Genes», pregunta 6. La metodología implica calcular la probabilidad de un codón no terminal (Pno_terminal) a partir de las frecuencias observadas y luego resolver (Pno_terminal)K ≤ 0.05.
7. Si un ORF tiene el doble del tamaño considerado en la pregunta anterior, ¿Está garantizado que codifique un gen?
No, que un ORF tenga el doble del tamaño considerado en la pregunta anterior (o cualquier tamaño grande) no garantiza que codifique un gen funcional. Un tamaño grande solo aumenta la confianza estadística de que el ORF no se generó por azar. Sin embargo, un ORF puede ser largo y aun así no ser un gen por varias razones:
- Pseudogenes: Podría ser un pseudogén que ha acumulado mutaciones que lo hacen no funcional (ej., un codón de parada prematuro o un cambio de marco de lectura).
- Regiones No Traducidas: Podría ser parte de una región no traducida (UTR) que por casualidad contiene un ORF largo.
- Errores de Anotación: La predicción de ORFs es un paso inicial; la confirmación de un gen requiere evidencia adicional como la expresión de ARN mensajero (ARNm), la conservación evolutiva, la presencia de señales reguladoras y la similitud con genes conocidos en otras especies.
8. ¿Garantiza una alineación global con una alta valoración entre la cadena de aminoácidos que codifica una proteína conocida A y una subcadena de otro organismo B que dicha subcadena produzca la misma proteína?
No, una alineación global con una alta valoración entre la cadena de aminoácidos de una proteína conocida A y una subcadena de otro organismo B no garantiza que dicha subcadena produzca la misma proteína. Aunque el alfabeto de aminoácidos es más grande (20) que el de nucleótidos (4), lo que reduce la probabilidad de alineaciones por azar, aún existen factores que impiden una garantía absoluta:
- Similitud vs. Identidad: Una alta valoración indica similitud, pero no necesariamente identidad perfecta. Pequeñas diferencias pueden alterar la función de la proteína.
- Modificaciones Post-Traduccionales: La función de una proteína a menudo depende de modificaciones post-traduccionales (ej., fosforilación, glicosilación) que no están codificadas directamente en la secuencia de aminoácidos.
- Estructura Tridimensional: La función de una proteína está intrínsecamente ligada a su estructura tridimensional. Aunque la secuencia sea similar, factores ambientales o la presencia de otras proteínas pueden influir en el plegamiento y, por ende, en la función.
- Contexto Celular: La misma proteína puede tener funciones ligeramente diferentes o ser regulada de manera distinta en diferentes organismos o tipos celulares.
- Pseudogenes Proteicos: Podría ser una secuencia que alguna vez codificó una proteína similar pero que ahora es un pseudogén no funcional.
Una alta similitud es un fuerte indicio de homología y posible conservación de función, pero la confirmación requiere experimentación biológica.