modelo computacional de la evolución de secuencias
TRANSCRIPT
INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY
UNIVERSIDAD VIRTUAL
MAESTRIA EN CIENCIAS DE LA COMPUTACIÓN
Especialidad en Inteligencia Artificial
UNIVERSIDAD VIRTUAL
MODELO COMPUTACIONAL DE LA EVOLUCIÓN DE SECUENCIAS BIOLÓGICAS BASADO EN
LA PROGRAMACIÓN CELULAR
TESIS QUE PRESENTA:
Francisco Javier Martínez Ruiz
BAJO LA ASESORÍA DE:
Dr. Edgar Emmanuel Vallejo Clemente
JURADO:
Presidente: Dr. Neil Hernández Gress Secretario: Dra. Maricela Quintana López Vocal: Dr. Edgar Emmanuel Vallejo Clemente
Mayo 2002
RESUMEN
La bioinfonnática es una ciencia interdisciplinaria que trata de solucionar
problemas de corte biológico empleando técnicas computacionales. El
desarrollo de métodos para inferir las relaciones evolutivas entre los distintos
organismos ha sido una parte importante de los estudios en biología evolutiva y
bioinfonnática.
Un proceso básico en la evolución de secuencias de ADN lo constituye la
sustitución de un nucleótido por otro a través del tiempo, también llamado
substitución. Para detectar estos cambios es necesario comparar dos o más
secuencias que provengan de un ancestro común.
En este trabajo proponemos un método computacional para inferir relaciones
evolutivas entre secuencias de ADN basado en la programación celular, la cual
combina dos técnicas: los algoritmos genéticos y los autómatas celulares.
Los algoritmos genéticos son métodos de búsqueda que han sido usados
exitosamente en un amplia variedad de aplicaciones, incluso la bioinfonnática.
Esto debido a su capacidad para analizar espacios de búsqueda que por sus
dimensiones resultan prohibitivos para métodos tradicionales. Los autómatas
celulares vienen a complementar la labor de los algoritmos genéticos
proporcionando un marco para modelar la dinámica evolutiva de las secuencias.
Las secuencias así modeladas nos pueden proporcionar no solo un estimado del
número de cambios ocurridos, sino además un mecanismo computacional para
inferir cambios nuevos o las estructuras que revelan las relaciones evolutivas
bajo este modelo enriquecen las distancias evolutivas entre organismos con el
costo computacional involucrado en la evolución de las secuencias.
Luego de probar nuestro modelo computacional, usando el costo computacional
que nos proporciona como unidad de medida para la construcción de árboles
5
filogenéticos. Los resultados fueron alentadores ya que, los árboles generados
presentaron una estructura coherente al ser cotejada contra árboles generados
con otra técnica.
6
ÍNDICE DE CONTENIDO
Página AGRADECl1\1ENTOS.................................................................. 4 RESUMEN ................................................................................ 5 ÍNDICE DE TABLAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... 9
ÍNDICE DE FIGURAS.................................................................. 10
Capítulo
1 INTRODUCCIÓN..................................................................... 15 1.1 Antecedentes ................................................................ . 1.2 Problema planteado ........................................................ . 1.3 Método propuesto ......................................................... . 1.4 Organización del documento ............................................. ..
2 PANORAMA GENERAL DE LA BIOLOGÍA MOLECULAR ............... . 2.1 Introducción ................................................................. . 2.2 El ADN ...................................................................... . 2.3 Genes y proteínas ........................................................... .
2.3.1 Genes ............................................................ .. 2.3.2 Proteínas ........................................................ ..
2.4 Genética .................................................................... .. 2.4.1 Métodos de alineación de secuencias ....................... .. 2.4.2 Tipos de alineación de Pares de secuencia .................. .
2.4.2.1 Matriz de puntos ..................................... . 2.4.2.2 Algoritmos basados en la programación
15 15 16 17 18 18 19 21 21 22 24 24 25 25
dinámica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.4.2.3 Métodos de K-tuplas.. .. . .. . .. . .. . .. . . . . .. . .. . .. . .. . . 27
2.4.3 Alineaciones múltiples.......................................... 27 2.5 Evolución..................................................................... 28
2.5.1 Arboles filogenéticos............. .... .. ... .... .. ... . .. . .. . .. .... 28 2.5.2 Generación de árboles, usando distancia entre parejas de secuencias................................................................ 30
2.5.2.1 UPGMA y Neighbor-Joining.................... ... 31 2.5.2.2 Parsimonia.............................................. 32 2.5.2.3 Métodos probabilísticos.............................. 33 2.5.2.4 Análisis de los métodos.............................. 33
3 ELEMENTOS DE LA PROGRAMACIÓN CELULAR......................... 35 3.1 Introducción ................................................................. . 3 .2 Autómatas celulares ........................................................ .
3.2.1 Definición formal. .............................................. . 3.2.2 No-reversibilidad ............................................... . 3.2.3 Tipos de autómatas celulares ................................. .. 3.2.4 Comportamiento de los autómatas celulares ............... ..
3.3 Algoritmos genéticos ...................................................... . 3.3.1 Un algoritmo genético simple .............................. ..
35 35 37 38 38 39 39 40
3.3.2 Ventajas........................................................... 44 3.4 La programación celular................................................... 45
7
4 PLANTEAMIENTO Y MODELO USADO ....................................... 46 4.1 Introducción.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 46 4.2 Planteamiento de la hipótesis de trabajo ................................. 46 4.3 El proceso de sustitución de nucleótidos ................................. 46
4.3.1 Revisión del modelo de un parámetro........................ 46 4.3.2 Comparación del modelo de un parámetro y el modelo con autómatas celulares ................................................ 49
4.4 Espacio de búsqueda ........................................................ 51 4.5 Justificación ................................................................... 51 4.6 Modelo propuesto............................................................ 52
4.6.1 Diseño del algoritmo genético ................................. 55 4.6.1.1 Representación binaria ............................... 55 4.6.1.2 Función de aptitud.................................... 55 4.6.1.3 Operadores genéticos................................. 56
4.7 Algoritmo general propuesto .............................................. 57 4.8 Ejemplo práctico............................................................ 58
5 EXPERIMENTOS Y RESULTADOS.............................................. 63 5.1 Introducción .................................................................. 63 5.2 Algoritmos utilizados ....................................................... 64 5.3 Selección de especímenes .................................................. 64 5.4 Experimento 1: Secuencias artificiales ................................... 65
5.4.1 Factor de mutación.............................................. 69 5.4.2 Elitismo ............................................................ 69
5.5 Análisis de resultados...................................................... 69 5.5.1 Colisión de reglas................................................ 69 5.5.2 Aptitud escalonada ............................................... 71
5.6 Cambio de estrategia ........................................................ 71 5.6.1 Parámetros usados en la alineación........................... 73
5.7 Experimentos 2: Utilizando mutaciones puntuales (o BNCs) ........ 74 5.7.1 Genomas completos ............................................. 75
5.8 Grupos de posiciones de mutación adyacentes .......................... 77 5.9 Arboles ....................................................................... 82
5.9.1 Más ejemplos de árboles ........................................ 84
6 CONCLUSIONES..................................................................... 85 7 TRABAJOS FUTUROS ............................................................... 87
ANEXO A ................................................................................. 89 ANEXO B ................................................................................. 91
B.1. Versión que trabaja con configuraciones completas ................... 91 B.2. Versión que trabaja con bases no-concordantes....................... 92 B.3. Versión que trabaja con bases no-concordantes adyacentes ......... 93
REFERENCIAS.......................................................................... 94
8
ÍNDICE DE TABLAS
3 .1 Cálculo de aptitud de una población de cromosomas............................... 41 3.2 Resultado de girar 4 veces la ruleta para seleccionar a los padres de la
siguiente generación..................................................................... 42 3.3 Resultados parciales después de aplicar el cruzamiento ............................ 43 3.4 Resultados completos donde se presenta la segunda generación y calculo de
su aptitud. A partir de aquí volverá a comenzar el ciclo de nuevo ................ 44
4.1 Dimensiones del espacio de búsqueda para el problema usando cuatro caracteres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.2 Conjunto de reglas de transición para el autómata celular......................... 54
5.1 Resultado de simulaciones con datos artificiales. Donde Pm es la Probabilidad de mutación y Pe es la probabilidad de Cruce....................... 65
5.2 Se muestran los valores de los parámetros estándar que utiliza el programa de alineación .................................................................................. 73
5.3 Resultados de experimentos con genomas completos .............................. 76 5 .4 Número de iteraciones observadas.. .. .. .. . .. .. .. .. . .. .. .. .. .. .. .. .. .. . .. .. .. . .. .. .. .. 77
9
ÍNDICE DE FIGURAS
Figuras Página
2.1 En esta gráfica se muestra una representación esquemática de la doble cadena de una secuencia de ADN................................... 20
2.2 Representación esquemática del proceso de replicación conservativo de las cadenas de ADN. (a). Al punto donde comienza la duplicación, se le llama: "origen de la replicación". (b ). Los nucleótidos libres se unen a las bases de las cadenas separadas....................................................................... 20
2.3 (a) En esta gráfica se muestra el proceso de transcripción.(b) Tras ser copiada la información de la cadena de ADN al mARN, Los ribosomas terminan el proceso traduciendo el código y construyendo las cadenas aminoácidos que formarán las proteínas. En la lamina se muestran 2 de ellos. La fenilalamina (Phe) y la valina (Val).................................................................... 23
2.4 (a). Alineación Global. (b). Alineación local. Cuando una base de una secuencia empata con la base de la otra secuencia, se dice que ha habido una concordancia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 25
2.5 En este ejemplo minimalista podemos ver que el segmento ATG, que esta sobre la diagonal, es común a las dos secuencias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.6
2.7
2.8
En este ejemplo, mostramos la ruta que eligió el algoritmo y el resultado de la alineación. Los valores que están en las casillas corresponden a los parámetros que manejamos para calcular el puntaje. Aquí, un par de bases que coinciden agrega al puntaje un valor de 5, por el contrario una no-concordancia resta -2. El puntaje total de esta alineación es igual a 16 .............................................................................. ..
. 1 d l' . ' '1 . 1 EJemp o e a meac1on mu tlp e ............................................ .
La gráfica presenta un árbol filogenético mostrando la relación evolutiva entre 4 especies: A,B,C y D. Al ancestro común a todos se le llama raíz. Los nodos terminales se conocen como unidades taxonómicas operacionales (en inglés, OTUs). Los nodos internos que se refieren a inferencias de supuestos antecesores, se les suele llamar unidades taxonómicas hipotéticas (en inglés, HTUs) ......... .
27
28
29
2.9 Árbol filogenético construido a partir de la alineación múltiple de las secuencias presentadas en la figura 2.6.......................... ....... 30
10
2.10 Vemos aquí un ejemplo de cómo funciona el algoritmo UPGMA. (a) Se presentan las secuencias como puntos. (b) Se asocian los puntos más cercanos generando un primer nivel. ( c) Se agrupan el primer cúmulo y la distancia restante para así, completar el árbol............................................................................. 31
2.11 La gráfica muestra un ejemplo de árbol generado con el algoritmo de Neighbour-joining.................... .... .. . . .. . . . . .. . .. . . . . .. . .. . .. . . . . . 32
2.12 En este ejemplo de la parsimonia, que estamos evaluando los cambios ocurridos a la base de la tercera posición de todas las cadenas. (a) Primero, se colocan como hojas del árbol las bases que se quieran comparar. (b) En este primer árbol, vemos que con un solo cambio se puede llegar de una secuencia a otra. ( c ). En este árbol requerimos 3 cambios para llegar de la secuencia 1 a la 4................................................................................. 32
3.1 Tabla de transiciones de un autómata celular unidmensional.......... 36 3.2 Configuración inicial del autómata celular del ejemplo................. 36
3 .3 Diagrama de tiempo que muestra tres lapsos de tiempo que muestran otras tantas configuraciones sucesivas......................... 36
3.4 En esta gráfica aparecen representados los conceptos de población, cromosoma, alelo, cruce y mutación........... . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.5 En la gráfica aparecen las casillas que le son asignadas a cada miembro de nuestra población.............................................. 42
3.6 Aquí se describe el procedimiento de cruzamiento para la primera generación...................................................................... 43
4.1 En la gráfica se muestra una secuencia de ADN y dos descendientes de la misma. (a). Aquí se observa como se suceden 2 sustituciones de la base original. (b ). En este caso, la sucesión de sustituciones regresa al mismo nucleótido por lo que no sabremos que ocurrió. (c) y ( d). Podemos observar que ambas secuencias cambiaron hacia la misma base, por lo tanto tampoco aparecerá en una simple inspección comparativa de las dos secuencias. (e). Las cadenas actuales nos muestran solamente dos puntos divergentes así la historia real de sustituciones no ha sido conservada.. . . . . . . . . . . . . . . . .. .. 4 7
4.2 En esta gráfica se muestra que la tasa de sustitución para cada nucleótido es . Dado que el modelo sólo tiene este parámetro de allí su nombre..................................................................... 48
4.3 Dos secuencias de ADN vistas como arreglos para los autómatas celulares........................................................................ 53
11
4.4 Diagrama de tiempo para nuestra secuencia-configuración sobre dos lapsos de tiempo............................................................. 54
4.5 En esta gráfica se muestra la tabla de mapeo(a). Una tabla de reglas (~) . y el proceso de conversión a la representación b1nana.. .. . . . . .. . . . . .. . .. . .. . . . . .. . . . . .. . .. . .. . . . . .. . .. . .. . . . . .. . . . . . . . .. . .. . ... 55
4.6 Representación esquemática de la mutación (a) y del cruzamiento (b ). en ( c) El cruce eligió una posición que dividió un caracter que fue definido por la función de mapeo.. .. . . . . .. . . . . .. . . . . .. . .. . . . . .. . . . . ... 56
4.7 Algoritmo general propuesto................................................ 58
4.8 Dos secuencias de ADN representadas como autómatas celulares de modo que, cada nucleótido representa una célula del autómata........................................................................ 59
4.9 (a) Una tabla de reglas de transición completa para un autómata celular de radio igual a 1, es decir, solo se toma el vecino izquierdo y el derecho. (b) orden en que se toman las reglas para formar el arreglo. ( c) El arreglo obtenido de la operación anterior en convertido a una representación binaria, al finalizar esta ya tenemos codificadas las tablas como cromosomas del algoritmo genético. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.1 O La primera generación de cromosomas estará constituida de tablas de transición generadas al azar. Nuestra población esta constituida de 3 elementos: (a), (b) y (c)..... .. . .. . .. . .. . .. . .. . . . . .. . .. . . . . . . . .. . .. . .. . . 60
4.11 (a) Se muestra la configuración inicial sin modificación. (b )Obtención de puntaje de similaridad basado en la distancia de Hamming. (c) Segunda configuración de la primera tabla de reglas. (d) las configuraciones obtenidas con el segundo conjunto de reglas de transición. (e) Las configuraciones generadas con el tercer conjunto de reglas de transición............................................ 61
4.12 Luego de la selección de los cromosomas con mejor aptitud, cruzarlos con alguna mutación puntual ocasional, obtenemos a la nueva población de cromosomas, es decir, de tablas de reglas de transición que se probarán con la configuración inicial. Se presentan aquí únicamente los valores que devuelve la tabla de transiciones: (a), (b) y (c).. .. . .. . . . . .. . .. . .. . .. . ... . . . .. . .. . .. . . . . .. . .. . . . . . . . . . . ............ 62
4.13 Aquí se muestran las configuraciones obtenidas de aplicar las reglas de transición de la nueva población a la configuración inicial......... 62
12
5.1 En la gráfica aparece el resultado de una ejecución típica que no 66 alcanzó el valor óptimo, definido aquí como: Esta simulación tiene los siguientes parámetros: Tamaño de secuencia = 1 O, radio = 1, iteraciones del autómata celular = 20, número de generaciones = 64 y tamaño del cromosoma = 128 ........ .
5.2. La gráfica nos muestra los valores del máximo, el promedio y peor 67 de la generación, el promedio de la corrida actual. Cabe destacar que la progresión de valores no presentan una evolución sino que simplemente brincan del mínimo al máximo, lo que indica que el individuo se localizó por azar (alcanzado aquí en la generación 47). Esta simulación tiene los siguientes parámetros: Tamaño de secuencia = 1 O. Radio = 1, Iteraciones del autómata = 20, Número de generaciones = 64, Población = 256 y Tamaño del cromosoma = 128 ......................................................................... · .. ..
5.3. Ahora, revisemos la siguiente simulación, la cual tiene los 68 parámetros: Tamaño de secuencia = 100, radio = 1. Iteraciones del autómata = 1 OO. Número de generaciones = 100, Población = 256 y Tamaño del cromosoma = 128 ............................................ .
5.4 Descripción de las colisiones................................................ 70
5.5 (a). Ejemplo de bases no-concordantes. (b). Un par de los autómatas celulares resultantes.......................................................... 72
5.6 En esta gráfica podemos ver el resultado de 55 simulaciones en segmentos de ADN real de tamaño 100 y radio igual a 1. En la gráfica se agruparon de izquierda a derecha los fragmentos con menor número de BNCs. Como podemos observar en esta etapa entre menor sea el número de BNCs el algoritmo genético es capaz de obtener un conjunto de reglas de transición capaz de resolverlo... 74
5.7 En esta gráfica podemos ver el resultado de 61 simulaciones en segmentos de ADN real de tamaño 1000 y radio igual a 1 ............ .
5.8 La simulación de un número de generaciones considerable venía acompañado de un costo computacional muy alto la ejecución de la
75
que se muestra en la gráfica discurrió en un plazo de 72 horas......... 76
5.9 En esta tabla podemos observar la evolución de nuestro algoritmo genético usando el arreglo de BNCs. Los parámetros de esta corrida son los siguientes: Tamaño de configuración 9,000 bp. Número de BNC 900. Número de generaciones =1000. Población= 512. Número de reglas = 64. Tamaño de cromosoma= 128 y Radio= 1........................ 79
13
5.10 Los parámetros de esta corrida son los siguientes: Tamaño de configuración 9,000 bp. Número de BNC 900. Número de generaciones = 512. Número de reglas = 1024. Tamaño de cromosoma = 2048 y Radio = 2.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.11 Los paramétros de esta corrida son los siguientes: Tamaño de configuración 9,000 bp. Número de BNC 900. Número de generaciones = 512. Número de reglas = 16384 Tamaño de cromosoma= 32768 y Radio = 3........................................... 81
5 .12 El árbol resultante de analizar un conjunto de 1 O secuencias de HIV. Con nuestro segundo algoritmo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.13 El árbol resultante de analizar un conjunto de 10 secuencias de HIV. Con el paquete informático. ClustalW......................... . . . . . . . . . . . . 83
5 .14 Otro grupo de secuencias analizadas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
14
CAPÍTULO 1
INTRODUCCIÓN
1.1 Antecedentes
Desde los orígenes de la vida en la tierra, ésta ha evolucionado en las más diversas formas y
es hasta tiempos recientes, que hemos empezado a comprender los procesos que
permitieron esta diversificación. Desde el inicio de la civilización humana han existido
intentos para clasificar a las distintas especies, primero basándose en estudios morfológicos
de los organismos.
A mediados del siglo pasado, se descubrió la estructura de las secuencias de ADN, y a
partir de allí, todas las inferencias sobre relaciones evolutivas entre los distintos
organismos se basaron en datos más exactos y diferenciables como lo es la información
genética codificada en el ADN. Sin embargo, la cantidad de información recabada aún para
los organismos más simples, rebasaba la capacidad de todos los métodos manuales. Por
tanto, los biólogos moleculares se apoyaron en la ciencia de la computación. De allí nace
una ciencia interdisciplinaria llamada bioinformática.
1.2 Problema planteado
Al usar secuencias de ADN, un proceso básico para determinar o medir la evolución de
estas secuencias, es la sustitución de un nucleótido por otro durante un lapso de tiempo.
Para detectar estos cambios necesitamos comparar dos o más secuencias que provengan de
un ancestro común y verificar alteraciones en posiciones similares.
Existe una gran cantidad de métodos para modelar este proceso, estos se dividen en dos
vertientes: los que se basan en el cálculo de distancias y los que se basan en la revisión de
caracteres. En la actualidad se usan versiones híbridas[5][6] que buscan combinar lo
mejores de los métodos disponibles.
15
Actualmente no existe un modelo computacional formal para modelar estos cambios. Los
métodos actuales pueden proporcionarlos un estimado probabilístico de la manera en que se
dieron los cambios o en la que se darán, es decir, cual es la probabilidad de que cierto
nucleótido sea sustituido por otro.
Cabe destacar que, todos los métodos tienen puntos débiles. Por ejemplo, algunos no
pueden lidiar con tasas de sustitución de nucleótidos variables, otros no pueden aplicarse a
cantidades relevantes de secuencias sin presentar un problema de explosión combinatoria,
etc., de modo que ninguno de ellos puede decirse el mejor para todas las situaciones.
1.3 Método propuesto
En este trabajo proponemos un método para inferir relaciones evolutivas entre secuencias
de ADN basado en la programación celular, la cual combina dos técnicas: los algoritmos
genéticos y los autómatas celulares.
Los algoritmos genéticos son métodos de búsqueda que han sido usados ampliamente en
muchos ámbitos, incluso la bioinformática. Esto debido a su capacidad de analizar espacios
de búsqueda que por sus dimensiones resultan prohibitivos para los métodos tradicionales.
Los autómatas celulares vienen a complementar la labor de los algoritmos genéticos
proporcionando un modelo computacional para modelar los cambios en las secuencias.
La idea general es modelar a las secuencias de ADN como autómatas celulares, de modo
que las mutaciones (sustitución de nucleótidos) son expresadas como consecuencia de la
aplicación de reglas locales a los nucleótidos. La idea posee inspiración biológica ya que
la manera en que se realizan procesos como la duplicación o la transcripción de secuencias
de ADN es por medio de componentes de la célula (ribosomas) que procesan
secuencialmente (a veces en forma paralela) las secuencias de ADN en los procesos corno
meiosis y expresión de genes.
Las secuencias así modeladas nos pueden proporcionar no solo, un estimado del número de
cambios ocurridos sino además un mecanismo computacional para derivar los cambios
anteriores o los nuevos en las secuencias.
16
Luego de probar nuestro modelo computacional, usando el costo computacional que nos
proporciona como unidad de medida, para la construcción de árboles filogenéticos, los
resultados fueron alentadores ya que, los árboles generados presentaron una estructura
coherente al ser cotejada contra árboles generados con la técnica conocida como alineación
múltiple en conjunto con el algoritmo para construir árboles filogenéticos, llamado
agrupación por vecindad ( en inglés, neighbor-joining) que proporciona el paquete
informático: CLUSTALW.
1.4 Organización del documento
Este documento esta organizado de la siguiente manera: En el segundo capitulo
presentamos una introducción a la biología molecular y a conceptos biológicos a los cuales
se hará referencia, durante todas las secciones. En el tercer capitulo hablamos de los
fundamentos de los algoritmos genéticos y de los autómatas celulares. En el cuarto daremos
una explicación tanto informal como formal del modelo propuesto, así como la justificación
de su uso. Y en el quinto daremos una explicación de los experimentos realizados.
17
CAPÍTUL02
PANORAMA GENERAL DE LA BIOLOGÍA MOLECULAR
2.1 Introducción
La biología molecular ha tenido un desarrollo sin paralelo. En las últimas décadas, el
cúmulo de información ha sido impresionante. Al principio, el papel que la ciencia de la
computación tenía era bastante pasivo, se contentaba con registrar y recuperar la
información obtenida. Esto, debido a que en un principio los científicos estaban más
interesados en la recopilación de la mayor cantidad posible de información, que en su
interpretación. Aún hoy, no termina esta etapa, pero se hace mayor énfasis en el análisis de
los datos biológicos.
Muchos de los problemas que trata la biología molecular, como la alineación de secuencias,
la elaboración de filogenias y la construcción de mapas genéticos; por su complejidad, no
pueden resolverse manualmente y debido a esto, los biólogos han recurrido a las
computadoras.
Además, modelados adecuadamente, esta clase de procesos pueden concebirse como
problemas de optimización y por tanto, se pueden aproximar por medio de los métodos
estándares de la computación. Para los científicos computacionales esta es una gran área de
oportunidad. No sólo porque se pueden estudiar situaciones que involucran capacidades de
cómputo enormes, sino que además les brinda la oportunidad de aportar modelos nuevos,
tanto de las estructuras como de los procesos involucrados en la biología molecular.
Esta asociación entre la biología molecular y la computación se conoce como
bioinformática[S]. Los retos que tiene esta ciencia comprenden el diseño de nuevos
modelos biológicos (como ya hemos mencionado anteriormente), el desarrollo de métodos
o técnicas que revelen nuevas relaciones entre genes, ADN y proteínas; y por supuesto, la
optimización de los procesos existentes.
18
Para la mayoría de los científicos computacionales, el primer problema con el que se
enfrentan es la falta de conocimiento, tanto de la terminología como de los rudimentos de la
biología molecular. Es la intención de este capitulo, dar al lector una base mínima en que
apoyarse y además, presentar conceptos que se tratarán en capítulos subsecuentes.
Invitamos, al lector que pretenda entender con mayor detalle a consultar las referencias
[1][2][3] que aparecen al final de este documento.
El resto del capítulo esta organizado de la siguiente manera. En la sección 2.2
describiremos la estructura del ADN. En la sección 2.3 presentamos nociones de los genes.
La sección 2.4 versa sobre la genética y la sección 2.5 es acerca de la evolución.
2.2 El ADN
Todas las formas de vida que conocemos en la tierra se construyen a partir de un mapa
maestro llamado genoma. Para poder comprender la información contenida en el genoma,
es necesario definir el lenguaje usado por la naturaleza para codificar la vida. Los bloques
básicos de este lenguaje son las moléculas del ADN.
Un genoma se compone de ácido desoxirribonucleico (ADN), presente en cada célula del
organismo y está constituido de dos cadenas de nucleótidos unidas en espiral. Cada
nucleótido es una molécula compuesta de un azúcar, un fosfato y un elemento nitrogenado,
llamado base. Hay cuatro bases en el ADN; concretamente: adenina (A), timina (T), citosina
(e) y guanina(G).
Las dos cadenas están entrelazadas en forma de una doble hélice, ligadas por sus bases
nitrogenadas, formando los llamados pares de bases (bp ). Las bases no se pueden unir de
manera arbitraria. Los únicos emparejamientos permitidos son adenina con timina A-T y
guanina con Citosina: G-C.
Estos emparejamientos A-T y G-C son la base del concepto de complementariedad, esto es
que para tener la forma de doble hélice las dos cadenas se acomodan antiparalelamente (ver
19
figura 2.1 ). Esta propiedad proporciona al ADN la habilidad de replicarse a sí mismo. Cada
vez que una célula se divide y su genoma completo es duplicado, la molécula de ADN se
desenrolla y las cadenas se separan. Entonces, los nucleótidos libres que se encuentran en la
célula se unen a las bases complementarias de alguna de las cadenas separadas De esta
manera, cada célula nueva recibe una cadena nueva y una vieja de ADN. A este modo de
replicación se le conoce como "replicación conservativa" (fig 2.2). Existen además, la
replicación semiconservativa y la dispersa [28][29].
Figura 2.1En esta gráfica se muestra una representación esquemática de la doble cadena de una secuencia de ADN.
1 1 1 _____ ,
Figura 2.2 Representación esquemática del proceso de replicación conservativo de las cadenas de ADN. (a). Al punto donde comienza la duplicación, se le llama: "origen de la replicación". (b). Los nucleótidos libres se unen a las bases de las cadenas separadas.
La complementariedad asegura, hasta cierto punto, que el genoma resultante sea una copia
exacta del genoma original. Sin embargo, es posible que se presenten errores. Por ejemplo,
que algunas bases presentes se pierdan o se cambien por otras. Estas alteraciones reciben el
nombre de mutaciones[28] y pueden afectar radicalmente al organismo resultante y a sus
descendientes. (Si los hay, ya que, las mutaciones en ocasiones suelen ser mortales, para el
BIBLIOTECA 20
organismo que las sufre). En algunos casos pueden ser inofensivas, o como algunas teorías
postulan, pueden dirigir la evolución de las especies[24].
Las células de la mayoría de los organismos superiores son diploides. Es decir, su ADN
está organizado en parejas de cromosomas. Los dos cromosomas que forman una pareja son
llamados homólogos. Los cromosomas vienen en pares debido a que una copia es heredada
por el padre y la otra por la madre. Por el contrario, las células de algunos organismos
simples, tales como algunas algas unicelulares tienen una sola copia; células de este tipo se
denominan haploides.
El genoma está organizado en una colección de cromosomas, cada uno de los cuales
contiene un número determinado de genes de los cuales, hablaremos a continuación.
2.3 Genes y proteínas.
2.3.1 Genes
Únicamente una pequeña fracción de las cadenas de ADN codifica información útil. Por
ejemplo, en los humanos sólo un 10% del total del ADN contiene información que se
expresa en características del organismo[28]. Estas regiones que tienen información
codificada están organizadas en genes.
Cada gen tiene una o más tareas especificas como por ejemplo, codificar una proteína. Las
secciones de la cadena de ADN que conforman los genes son llamadas exones. Asimismo,
existen regiones cuya función aún no ha sido determinada y que en apariencia no tienen
influencia conocida, se las conoce como intrones.
El gen es la unidad de la herencia. Actuando sólo o con otros genes, es responsable de una o
más características de organismos. Para ejemplificar de una manera más clara estos
conceptos, supongamos que se tiene una especie de mosca que tiene un gen Ga responsable
del color de los ojos y otro gen Gb que determina el tamaño del insecto. Las formas
alternativas que puede tomar un gen son llamadas alelos. Por ejemplo, pudiera ser Ga
21
e{blanco, rojo} y Gi,e{grande, enana}. Se llama fenotipo a cada una de las
posibles combinaciones resultantes de estas características. Cuando el contenido actual de
ADN determina un fenotipo especifico es llamado genotipo.
Las posiciones especificas donde aparecen los genes en los cromosomas son llamadas loci.
En los organismos diploides, por cada gen en un cromosoma hay un gen similar
correspondiente en el cromosoma homólogo. Esta redundancia actúa como un mecanismo
de defensa contra los defectos; ya que los organismos pueden sobrevivir aún cuando una
copia de un gen sea defectuosa. Un par de genes pueden consistir del mismo alelo en ambos
cromosomas, en cuyo caso decimos que el organismo es homozigoto o de diferentes alelos,
en este caso se denomina heterozigoto.
Por último, hablaremos de los genes recesivos y los genes dominantes. En un organismo
heterozigoto, puede darse el caso de que un alelo sea expresado, mientras que el otro se
encuentre desactivado. Al rasgo activo se le llama dominante y al último recesivo. Para que
un gen dominante sea expresado en un organismo diploide con cromosomas homólogos, se
requiere que las dos copias del alelo especifico sean iguales. Regresando a nuestro ejemplo
previo, si el genotipo de una mosca para el gen Gi, es (bl aneo, rojo). Los
descendientes pueden tener las siguientes las combinaciones de alelos:
(blanco, blanco), (blanco, rojo), (rojo, blanco), (rojo, rojo). Si el
descendiente tiene como carga genética (rojo, rojo), la mosca tendrá necesariamente,
ojos de color rojo.
2.3.2 Proteínas.
A pesar de la enorme variedad de formas de vida existentes, el mecanismo básico por el
cual son desarrollados morfológicamente en la naturaleza es el mismo para todos los
organismos. De hecho, toda la información que describe a un organismo está codificada en
su genoma a través de secuencias de ADN, conocidas en su conjunto como el código
genético. Este código es usado para describir cómo se construyen las proteínas, las cuales
proveen los componentes estructurales de las células y tejidos, así como las enzimas
necesarias para reacciones bioquímicas esenciales.
22
El código genético se confonna de tripletes de bases de ADN conocidos también como
codones. Y a que hay 4 bases, que se pueden combinar en tripletes, el número de
combinaciones resultante es 43 = 64. Debido a que existen muchos aminoácidos codificados
por más de un triplete (llamados sinónimos para ese aminoácido), mientras que unos pocos
son identificados por un único codón.
Para construir una proteína, el ADN de un gen es primero copiado a una molécula de ácido
ribonucleico llamada ARN mensajero (mARN)[l], el cual servirá como una plantilla para
la síntesis de la proteína. En este proceso conocido como "transcripción", solamente los
exones son copiados, con una particularidad: la base timina es sustituida por otra base,
llamada uracilo.
El proceso continua cuando el mARN sale del núcleo y allí los ribosomas [ 1] leen los
tripletes secuencialmente y los traduce a los aminoácidos correspondientes, los cuales unen
en una secuencia que dará como resultado a la proteína. A parte de identificar aminoácidos,
existen tripletes con la función de identificar el comienzo y el fin de cada región con
infonnación codificada. Por ejemplo, estos codones señalan el fin de sección: UGA, UAA,
UAG. Figura 2.3
A GATA G A T A6 C T T G A
e u u G A
(a)
u u u G u A
------goPhe-V<ll ______ y[O
G G A
(b)
Figura 2.3 (a) En esta gráfica se muestra el proceso de transcripción.(b) Tras ser copiada la infonnación de la cadena de ADN al mARN, Los ribosomas terminan el proceso traduciendo el código y construyendo las cadenas aminoácidos que fonnarán las proteínas. En la lamina se muestran 2 de ellos. La fenilalamina (Phe) y la valina (Val).
23
2.4 Genética.
En la segunda mitad del siglo XIX, el monje austríaco Gregor Mendel realizó las primeras
investigaciones sobre la herencia. Mendel cruzó diferentes plantas y observó los rasgos de
los descendientes, y conjeturó que los factores hereditarios (genes) debían existir dos por
rasgo. Y a en el siglo XX, el descubrimiento y análisis del ADN le dio la razón a Mendel.
El mecanismo que permite la propagación de la información genética de una generación a
otra es la reproducción. Existen dos tipos: sexual y asexual [1][2]. Sin embargo, en la base
de la reproducción y la herencia hay un proceso llamado meiosis.
En este proceso, una célula diploide se divide primero en dos células haploides, las cuales a
su vez vuelven a dividirse dando como resultado que las dos secuencias que conforman
cada cromosoma se separen. Tenemos entonces cuatro gametos que contendrán sólo un gen
de cada rasgo y los distintos gametos de un mismo padre podrán contener alelos diferentes.
Durante la primera división de las células en el proceso de la meiosis, los cromosomas
homólogos pueden romperse y los segmentos rotos de cada par pueden volver a unirse con
partes de otros cromosomas homólogos. Este proceso recibe el nombre de· cruce. En
consecuencia la combinación de genes que porta la descendencia es diferente a la paterna.
Este intercambio de material genético es un mecanismo importante, ya que produce nuevos
genotipos. Este proceso es uno de los pilares de la evolución. Cuando un gameto ( célula
sexual) del padre se mezcla con un gameto de la madre, la célula resultante es nuevamente
diploide y contiene un juego completo de parejas de cromosomas.
2.4.1 Métodos de alineación de secuencias.
Una de las herramientas más usadas dentro de los estudios evolutivos para determinar
relaciones entre pares de secuencias y grupos de ellas, así como para descubrir información
estructural o funcional de las mismas, está constituida por los métodos de alineación. En
particular, estos métodos son ampliamente usados para construir árboles filogenéticos.
24
Podemos definir a una alineación de secuencias como el procedimiento que rios permite
comparar dos o más secuencias en busca de patrones comunes en las mismas. Hay dos tipos
de alineaciones: global y local. En el primero se trata de encontrar el mayor número posible
de concordancias entre los elementos de las secuencias. En el segundo, sólo se busca
encontrar regiones especificas, donde se encuentre el mayor número de coincidencias. En
la figura siguiente (2.4) podemos ver ejemplos de los tipos de alineación.
(o)
AGATAGAATAC
1 1 1 1 1 ACCTAGGCGAG
(e)
-CATA---
1 1 1 - - - C A T T - - -
Figura 2.4 (a). Alineación Global. (b). Alineación local. Cuando una base de una secuencia empata con la base de la otra secuencia, se dice que ha habido una concordancia.
2.4.2 Tipos de alineación de Pares de secuencia.
La lista siguiente no busca ser exhaustiva. Nuestro interés es revisar algunos de los métodos
más utilizados: Análisis de matriz de puntos, Algoritmos basados en programación
dinámica y métodos de K-tuplas.
2.4.2.1 Matriz de puntos.
En el método de la matriz de puntos una secuencia SA es colocada en la parte superior de la
matriz, siguiendo la horizontal. La otra secuencia S8 se alinea con respecto a la vertical de
la matriz. Comenzando con el primer caracter de la secuencia B, se evalúa la secuencia A y
el cualquier lugar donde las bases concuerden, se coloca un punto.
Dentro del patrón de puntos dispersos, aparecerán como líneas sobre la diagonal los
segmentos similares en ambas secuencias. Figura 2.5.
25
A e A T G
AGATG
• • • • • •
Figura 2.5 En este ejemplo minimalista podemos ver que el segmento ATG, que esta sobre la diagonal, es común a las dos secuencias.
2.4.2.2 Algoritmos basados en la programación dinámica.
Los métodos basados en programación dinámica fueron introducidos pnmero en el
algoritmo de Needleman y Wunsch [6] para realizar alineaciones globales, y luego en las
locales por Smith y Waterman [6]. La manera en que trabajan es la siguiente: se comienza
en la sección final de ambas secuencias y se intenta empatar el mayor número posible de
pares de caracteres entre las secuencias, siguiendo un esquema de puntaje definido por el
número de concordancias (pares que coincidieron), no-concordancia y huecos. El
procedimiento genera entonces una matriz con las posibles alineaciones y se selecciona la
ruta entre las casillas de la matriz que devuelvan el mayor puntaje posible.
En el caso de proteínas se han desarrollado matrices con valores estándares basadas en el
estudio de algún número representativo de secuencias. Estos valores ayudan a definir el
puntaje. Ejemplo de esto son la matriz PAM250[5] y la PAM62[5].
Estos algoritmos se usan de manera generalizada, de hecho, el algoritmo que usamos en
este proyecto es uno de ellos, el algoritmo de alineación de pares de secuencias usado es: El
GAP ( en inglés, Global Alignment Program ). [31]. Una cuestión a considerar en estos
algoritmos es el número de pasos que requieren y que generan un esfuerzo computacional
considerable. Uno ejemplo de este algoritmo puede verse en la figura 2.6.
26
A G A T A A 5 ......... -2 ... '"-¡ 5 -2 5 e -2 -2 r -2 • -2 -2 T -2 -2 -2 '.._ 5 -2 T -2 -2 -2 1 5 " -2 A 5 -2 5 -2 " 5
A G A T A
1 1 1 A e T T A
Figura 2.6 En este ejemplo, mostramos la ruta que eligió el algoritmo y el resultado de la alineación. Los valores que están en las casillas corresponden a los parámetros que manejamos para calcular el pontaje. Aquí, un par de bases que coinciden agrega al pontaje un valor de 5, por el contrario una noconcordancia resta -2. El pontaje total de esta alineación es igual a 16.
2.4.2.3 Métodos de K-tuplas.
Si deseáramos hacer un estudio comparativo de un número considerable de secuencias,
todos los métodos se verían abatidos por el incremento exponencial del costo
computacional involucrado en la tarea. Estos métodos primordialmente, buscan K-tuplas
idénticas de tamaño reducido en las secuencias y después, usando programación dinámica
unen estas tuplas y generan la alineación. Además se incluye el uso de heurísticas, lo cual
acelera el proceso pero no garantiza alcanzar valores óptimos de alineación.
2.4.3 Alineaciones múltiples.
Básicamente, en un alineamiento múltiple, varias secuencias se acomodan una bajo la otra,
para construir una tabla de modo que es más fácil observar las regiones comunes que
aparecen más conservadas y las divergentes.
Supóngase que las secuencias 81= CTGC, 82= CATAT, 83= CTAT y 84= CTGC,
son usadas en una alineación múltiple. La información que nos proporciona la alineación
sugiere que: S 1 y 8 4 están relacionadas de manera cercana, ya que presentan un mayor
27
número de caracteres coincidentes que si se asocian a otra cadena. Lo mismo ocurre con las
secuencias 82 y 8 3 . Figura 2.7.
81:
82:
83:
84:
e e e e
-A --
T - G T A -T A -T - G
Figura 2.7 Ejemplo de alineación múltiple.
e -- T - T e -
Las alineaciones múltiples se suelen implementar con programación dinámica; siendo ésta
una generalización del caso de pares de secuencias.
2.5 Evolución.
La evolución es el proceso que resulta de aplicar la selección natural 1 a una población de
genes. En un punto medio, la selección inducirá una especialización de los miembros de
una población, de modo que estén completamente adaptados a su medio ambiente. La
especialización llevada al extremo por condiciones como el aislamiento, puede dar como
resultado la divergencia de la especie en dos o más, nuevas especies.
Dentro de la genética ( específicamente, la genética evolutiva). Se estudian los cambios que
han sufrido los genes a lo largo de grandes periodos de tiempo. La principal estructura de
información usada para representar relaciones evolutivas es el árbol filogenético.
2.5.1 Arboles filogenéticos.
Los árboles filogenéticos son diagramas que muestran las relaciones evolutivas entre
organismos (existentes o extintos). Estas relaciones han sido determinadas usando sus
características morfológicas y bioquímicas desde tiempos de Darwin[8]. Sin embargo, en la
1 Después de su viaje en el velero Beagle por los años 30 del siglo XIX, Charles Darwin trabajó en el problema de la evolución de las especies y llegó a la conclusión de que el motor de la misma es la selección natural. No pudo, sin embargo, explicar como se conservaban las características en la población ni cómo se heredaban las mejores a la descendencia.
28
actualidad los árboles filogenéticos son derivados comúnmente de secuencias de ADN y
proteínas [6][7]. Ver figura 2.8.
Así que, para estudiar los cambios ocurridos durante la divergencia desde un ancestro
común, se estudian las diferencias entre secuencias provocadas por tres posibles
operaciones genéticas:
a. Sustitución. En este proceso de alteración una base de una secuencia es
reemplazada por otra.
b. Inserción. En este proceso se agregan bases a la secuencia biológica en cualquier
posición de la secuencia.
c. Eliminación. En este proceso se eliminan bases a la secuencia biológica en
cualquier posición de la secuencia.
Por ejemplo, a partir de dos secuencias muy similares entre sí, salvo que al final de una de
ellas tiene una base que no aparece en la otra, podemos inferir que esta alteración es ya sea
una inserción de nuevas características, lo que la hace una secuencia más reciente, o una
eliminación de la misma base debido a cambios en el entorno que declinaron su utilidad.
@HTU A
eon,
B
Ralz e
D
Figura 2.8 La gráfica presenta un árbol filogenético mostrando la relación evolutiva entre 4 especies: A,B,C y D. Al ancestro común a todos se le llama raíz. Los nodos tenninales se conocen como unidades taxonómicas operacionales (en inglés, OTUs). Los nodos internos que se refieren a inferencias de supuestos antecesores, se les suele llamar unidades taxonómicas hipotéticas ( en inglés, HTUs).
29
Por lo general, los árboles se construyen analizando regiones especificas del ADN de las
secuencias bajo estudio, por ejemplo, un gen común. Para comparar las cadenas y entender
las mutaciones que pudieron haber ocurrido, se utiliza regularmente (pero no de manera
exclusiva) una alineación múltiple.
Un posible árbol resultante de la alineación presentada en la figura 2.6, sería el que aparece
en la figura siguiente:
' ' ' . '
' ' ' . . ' . . ' ' ' . . . .
' . . ,
S1
, ' .
'
. ' s.
.. . . , ' , ' . . I ' .
' ' '
I .
' '
. . ' . . . .
. . '
Figura 2.9 Árbol filogenético construido a partir de la alineación múltiple de las secuencias presentadas en la figura 2.6.
Además de la alineación múltiple, la bibliografia existente habla de varios métodos para
inferir árboles filogenéticos usando alineaciones de pares de secuencias. Antes de pasar a
estos métodos, conviene señalar que, aunque la alineación múltiple parece ser la opción
obvia para analizar grupos de secuencias, está no es aplicable a grandes cantidades de las
mismas, debido a que su complejidad computacional es muy grande ya que tiene un
crecimiento exponencial.
2.5.2 Generación de árboles, usando distancia entre parejas de secuencias.
Estos métodos se basan en el cálculo de distancias entre pares de secuencias de un
conjunto de datos dado. La distancia se puede definir de muchas maneras, por ejemplo, uno
puede definirla como el porcentaje en que difieren las bases de una secuencia a otra.
30
2.5.2.1 UPGMA Y Neighbor-Joining
Un par de técnicas desarrolladas basadas en esta idea son las técnicas de cúmulos ( en
inglés, c/usters) UPGMA y Neighbour-joining [6]. En la primera, se construye el árbol en
forma ascendente. Primero se asocian las dos secuencias más cercanas y continua así hasta
que se termina con los pares, luego se comienza asociar los cúmulos entre sí. Una ventaja
de este método es que nos permite crear árboles con raíz, de modo que podemos localizar
una secuencia ancestro de todas las demás. Adicionalmente, nos da la posibilidad de
visualizar un "reloj molecular", esto es, que las distancias nos pueden permitir inferir los
periodos en que se desarrollaron estas secuencias. (Figura 2.1 O).
En la segunda, se aprovecha una propiedad de los árboles que explicaremos a continuación.
En un árbol dado, la longitud de sus bordes se dice que es aditiva si la distancia entre
cualquier par de hojas es la suma de las longitudes de los bordes en la ruta que los conecta.
Usando esta técnica se pueden generar árboles que no tienen raíz. (Figura 2.11).
Cabe señalar que estos métodos pueden fácilmente generar árboles incorrectos, ya que
manejan varios supuestos, como que en promedio, los cambios que ocurren en las proteínas
tiene un crecimiento constante. Lo cual no es cierto o al menos, es dificil de comprobarlo .
• • 1 • 3
2
1
(a)
• 1 • 3
r+l 2
(b)
4
1
5
2
(e)
3
Figura 2.10 Vemos aquí un ejemplo de cómo funciona el algoritmo UPGMA. (a) Se presentan las secuencias como puntos. (b) Se asocian los puntos más cercanos generando un primer nivel. ( c) Se agrupan el primer cúmulo y la distancia restante para así, completar el árbol.
31
4
1
5 2
3
Figura 2.11 La gráfica muestra un ejemplo de árbol generado con el algoritmo de Neighbour-joining.
2.5.2.2 Parsimonia.
Esta familia de métodos es probablemente una de las más usadas para generar árboles
filogenéticos. La idea en que se basan, se refiere a encontrar el árbol que pueda "conectar" a
las secuencias con un mínimo de sustituciones. En este método, en lugar de construir un
sólo árbol, se construyen varios asignándoles un costo. El algoritmo tratará de minimizar
ese costo y nos dará como resultado el árbol buscado[6]. Figura 2.12.
--, J AG:A:TA 2 AT~:TA
1 1
3 G A :or: TA
4 G A~ :e A :_.!
(a) 1 3
2>--<4 (e)
A T
A~T
(b)
Figura 2.12 En este ejemplo de la parsimonia, que estamos evaluando los cambios ocurridos a la base de la tercera posición de todas las cadenas. (a) Primero, se colocan como hojas del árbol las bases que se quieran comparar. (b) En este primer árbol, vemos que con un solo cambio se puede llegar de una secuencia a otra. ( c ). En este árbol requerimos 3 cambios para llegar de la secuencia 1 a la 4.
32
2.5.2.3 Métodos probabilísticos.
En los últimos años se da dado gran impulso a los métodos probabilísticos para encontrar
filogenias, esto partiendo del supuesto de que los cambios no pueden ser puntuales, es
decir, que los cambios que han sufrido las secuencias a través del tiempo se deben medir de
acuerdo a un factor probabilístico. Por ejemplo: la probabilidad de que la pareja de bases
AC halla sido sustituida por AT.
Con respecto a los árboles filogenéticos, el método general habla de definir una
probabilidad para cada árbol de acuerdo a su semejanza entre sí. Algunos de los métodos
definidos para usar estas técnicas son las cadenas ocultas de Markov (HMM por sus siglas
en inglés)[6], redes neuronales[15] y redes de creencias[6].
Estos métodos están idealmente ajustados para dominios caracterizados por la presencia de
grandes cantidades de datos, patrones con ruido y la ausencia de teorías generales. La idea
fundamental detrás de estos enfoques es "aprender la teoría automáticamente a partir de los
datos"; a través de un proceso de inferencia, ajuste del modelo y aprendizaje a partir de
ejemplos. De modo que constituyen un enfoque complementario viable a los métodos
convencionales.
2.5.2.4 Análisis de los métodos
Los métodos antes mencionados tienen tanto ventajas como desventajas, las cuales
comentaremos a continuación. El método UPGMA como hemos mencionado antes, no
puede manejar tasas distintas de sustitución de nucleótidos y al realizar promedios para
asociar a los cúmulos irá perdiendo precisión. Al método Neighbor-Joining no le preocupan
las tasas de crecimiento distintas, pero depende para la construcción del árbol que se
cumpla la propiedad de adición [6]. La parsimonia no sirve más que para un grupo muy
reducido de secuencias ya que el método es muy costoso computacionalmente, ya que no
sólo genera un árbol sino un grupo de ellos que ira descartando progresivamente. Por último
los métodos probabilísticos aunque menos costosos que la parsimonia, suelen manejar
demasiados supuestos lo cual compromete su efectividad.
33
Nuestro método es un enfoque a medio camino de los métodos de distancia y la parsimonia,
pero con un costo computacional mucho menos elevado. Además, nos permite caracterizar
el proceso de sustitución de nucleótidos, es decir, devolverá el posible siguiente valor. Lo
cual justifica el desarrollo de este proyecto, porque propone una alternativa menos costosa y
que aporta nuevos datos.
34
CAPÍTUL03
ELEMENTOS DE LA PROGRAMACIÓN CELULAR
3.1 Introducción
En este capitulo, introduciremos los conceptos del modelo de autómata celular,
especialmente los autómatas celulares unidimensionales; luego hablaremos de los
algoritmos genéticos y por último de la programación celular. Al igual que en el capítulo
anterior, la intención de este es servir de introducción al lector respecto a estos modelos y/o
técnicas usados en este trabajo; sin la intención de ser exhaustiva pero sí, suficiente.
3.2 Autómatas celulares
Los autómatas celulares son modelos matemáticos de sistemas fisicos en los cuales espacio
y tiempo son discretos. Un autómata celular está constituido por un arreglo usualmente
infinito en su extensión con una variable discreta en cada casilla ( célula). El estado ( o
configuración) de un autómata celular lo especifican los valores de las variables en cada
célula. Un autómata celular "evoluciona" en pasos discretos de tiempo. El valor de una
célula depende de interacciones locales con las células vecinas en un paso previo de tiempo,
es decir, cambia de valor de acuerdo a los valores de las células más próximas. Los
autómatas celulares pueden ser de una o más dimensiones.
Los elementos que conforman a un autómata celular son:
a. Estado. Es el conjunto de valores que toman las células en un punto dado.
b. Vecindad o radio. Es el conjunto de celdas que interactúan entre sí.
c. Reglas. Es el conjunto de condiciones de definen como cambiará una celda de
acuerdo a sus vecinos.
d. Configuración. Es el conjunto de valores que en un intervalo de tiempo dado
presentan la colectividad de células (también llamadas, celdas).
35
Veamos ahora un ejemplo sencillo de un autómata celular unidimensional, definido de la
siguiente manera:
Posibles estados: {0,1}
Radio: 1
(Esto quiere decir que, se considerará una célula a la izquierda y una, a la derecha).
Reglas: lzq-Centro-Der
Salida 000 001 O 1
010 011 1 O
100 101 1 1
Figura 3.1 Tabla de transiciones de un autómata celular unidimensional.
110 111 o o
El número de reglas depende de la vecindad o radio que se utilice, en este caso radio = 1.
El número de reglas a usar es: 22r+i = 220
>+1 = 8 . Donde r = radio.
Utilizaremos como ejemplo un autómata celular de una dimensión[16]. Para mostrar su
evolución durante un tiempo finito, se utilizan los denominados diagramas de tiempo. Estos
diagramas van colocándose, una bajo la otra, copias del "arreglo" mostrando como se ven
afectadas sus células por la aplicación de las reglas definidas para controlarlo, en cada paso
de tiempo.
Definimos una configuración inicial del Autómata celular de la siguiente forma:
O 1111 O 1 1 o
Figura 3.2 Configuración inicial del autómata celular del ejemplo.
Ahora mostraremos sus cambios respecto al tiempo cada que se aplicaron las reglas que
definimos previamente.
1 o o o o 1 o o 1
o 1 o o 1 1 1 1 o 1 1 1 1 o o o o 1
... ... . .. ... . .. . .. ... ... . ..
Figura 3.3 Diagrama de tiempo que muestra tres lapsos de tiempo que muestran otras tantas configuraciones sucesivas.
36
Los autómatas celulares fueron introducidos originalmente por Von Newman y Ulam
(bajo el nombre de espacios celulares) como una posible idealización de los sistemas
biológicos (Von Newman 1963, 1966), con el propósito particular de modelar la auto
reproducción biológica[ 16].
3.2.1 Definición formal
Ahora, proporcionaremos una descripción formal de los autómatas celulares. Dado que
trabajaremos con autómatas unidimensionales, nos centraremos en estos.
Un autómata celular lineal puede definirse como una tupla, AC= (A,E,r,f)
Donde,
A
E= {0,1, ... ,k -1}
reN
f :E2r+1 ~E
Es un arreglo de m celdas de d dimensiones m ~ 1, d ~ 1
Es el conjunto de estados que puede tener una celda.
Es el radio de la vecindad.
Es la función de transición local.
Una configuración de un autómata celular es una función que especifica el estado de cada
celda x : Z ~ E y puede ser representada como una secuencia infinita
x = ( ... ,x;-n, ... ,x;, .. ,,x;+n' ... ). De modo que el espacio de configuraciones del autómata
celular es Ez. La vecindad de la celda i e Z es el vector (i - r, ... ,i, ... ,i + r). La función de
transición global del autómata celular, G : Ez ~ Ez, especifica el estado siguiente de cada
celda de acuerdo a la función local aplicada a los estados de las celdas en la vecindad
(Vi E Z): G;(x) = f(x;-r, .. ,,X¡, .. ,,X;+r).
Cada celda x e A cambia su estado en un periodo de tiempo discreto, agregado la variable
ta la función global tenemos:
a:= f(x;~;, ... ,x;-1, ... ,x;;;) donde te {l,2,3, ... ,N}
37
Una última consideración es que, si manejamos un arreglo de celda de tamaño finito, el
arreglo se puede ver como un arreglo toroidal. Tenemos entonces, que para calcular la
vecindad:
Si i = m -1 entonces, X;+i = x 0 ; Si i = O entonces, X;_1 = xm-i
Nota: Z = {0,1,2,3, .... }
3.2.2 No-reversibilidad
Los autómatas celulares despliegan una cantidad n de configuraciones donde n e Z. Usando
las reglas del mismo, podemos determinar unívocamente el siguiente paso de una celda en
particular. Sin embargo, lo mismo no se aplica a su historial, es decir, no podemos
determinar los pasos anteriores que determinaron el estado actual de la celda, a menos que
se trate de un caso trivial. A esta limitación se le conoce como no-reversibilidad.
3.2.3 Tipos de autómatas celulares
Nos hemos centrado en autómatas celulares de una dimensión, pero de hecho, los autómatas
celulares pueden ser de 2 o más dimensiones. El conocido juego de la vida de Conway esta
construido usando como base una matriz de n x n donde n E Z es un autómata celular de
dos dimensiones[ 16].
Otra clase de autómatas celulares que difieren de la definición clásica, la constituyen los
autómatas asíncronos. Estos comparten todas las características de los autómatas ya
descritos excepto que, el colectivo de celdas no cambia de valor en un mismo lapso de
tiempo.
Por último, mencionaremos a los autómatas celulares no-uniformes. Estos en lugar de
utilizar una regla universal (que aplique a todas las celdas), se define un conjunto de reglas
38
para cada una de las celdas. Esto incrementa el esfuerzo computacional considerablemente,
pero se ha probado que este tipo de autómatas celulares es capaz de computo universal [20].
3.2.4 Comportamiento de los autómatas celulares
Los autómatas celulares presentan un comportamiento bastante complejo y fuera de los
casos triviales es muy dificil determinar el comportamiento que presentarán. En algunos
casos simplemente se llega a un estado estable donde ya no ha cambio alguno en la
estructura del autómata. En otros casos se presenta un comportamiento cíclico, donde el
autómata celular transita por un conjunto de configuraciones, una y otra vez. Por último
hay algunos autómatas que presentan comportamientos totalmente caóticos o casi-caóticos.
No sabemos aún como producir estos comportamientos a voluntad de modo que, diseñar
que un autómata celular para que reproduzca un comportamiento es muy dificil.
3.3 Algoritmos genéticos
Durante los años cincuentas y sesentas del siglo pasado, investigadores del área de
computación, de manera independiente, se interesaron en los mecanismos que gobiernan la
evolución en los seres vivos. El interés fundamental fue construir modelos computacionales
que sirvieran para desarrollar nuevos métodos de optimización.
Aún y cuando varios científicos trabajaron en varias clases de algoritmos que incluían
técnicas evolutivas, fue John Holland quien definió un esquema que incluían los elementos
básicos de la selección natural y la genética. Sus descubrimientos fueron descritos en
1975[23]. Fue un alumno de Holland, David Goldberg, quien los aplicó exitosamente a un
problema del mundo real: la optimización de líneas de distribución de gas natural[19].
Hoy día, los algoritmos genéticos se utilizan en casi todos los ámbitos de resolución de
problemas. Desde aplicaciones en ingeniería[19], economía[19], sistemas sociales y en un
curioso giro, para estudiar e interpretar los datos provenientes de los estudios genéticos[30].
39
3.3.1 Un algoritmo genético simple
Aunque pueden vanar, todo algoritmo genético contempla -al menos- los siguientes
elementos:
1. Una población de cromosomas que generalmente se representan por medio de
un conjunto de cadenas de caracteres binarios de longitud fija.
2. La selección, escoge a los cromosomas más aptos para cruzarlos. Cada
cromosoma es evaluado por una función de aptitud que determina su desempeño
en la resolución de un problema.
3. La operación de cruzamiento es la combinación de una o más porciones de dos
cromosomas para producir nuevos descendientes.
4. Ocasionalmente, puede darse alguna mutación entre los descendientes. Esta
operación se refiere al cambio esporádico de uno o más alelos de los
cromosomas que intervinieron en el cruce.
En la figura siguiente aparecen de manera esquemática, algunos de los elementos de un
algoritmo genético. Figura 3.4.
Pobladón
1 1
1 1 1-----------------------1 1 I L....L....,..L-'-..L-.L.......1---'----'--' , ____ ----------- ------
Gen o alelo Cromosoma
Operación de cruce
Secuencia A :
1 1 1 1 1 1 ! 1 1 1
•••••••• Locl
Descendiente A'
111111 ••• Dc:scc11dlie11tc B'
11111 •••
Operación de 1nutadón
1 1 1 1 ,---, 1 1 1 1
1 :1 1: 1 1 1 1 1 1 1
'J-' M11tación p11nt11al
l l • 111
Figura 3.4 En esta gráfica aparecen representados los conceptos de población, cromosoma, alelo, cruce y mutación.
40
Ahora, revisemos el algoritmo genético simple, pero para hacerlo de manera más explícita
trabajaremos un problema específico que ayude a clarificar los conceptos. Supóngase que
deseamos optimizar la función Max(x) cuyo único propósito es encontrar el valor más
grande dex, codificado en base 2.
a. Iniciamos generando una población aleatoria de cuatro cromosomas de longitud 1 O. Y
calculamos su aptitud.
# Cromosomas Aptitud f (x) % del total 1 0010010110 150 25.81 2 0101010011 339 58.34 3 0000011001 25 4.30 4 0001000011 67 11.53
L= 581 100 X= 145.25
Tabla 3.1 Cálculo de aptitud de una población de cromosomas.
El proceso de selección escogerá a los individuos más aptos para reproducirlos. La manera
en que se elige a los cromosomas y qué tantas veces se reproducirá, depende del método de
selección usado. Aquí usaremos el popular método de la ruleta descrito por Goldberg [ 19].
En este método, se le asignan espacios de una ruleta a cada cromosoma (selección
proporcional a la aptitud) de acuerdo a su porcentaje de contribución respecto al total de la
función de aptitud. Luego, cada vez que necesitemos seleccionar un padre para
reproducción, simplemente se hace girar la ruleta. En este esquema, aún cuando algunos
miembros de la población cuentan con mayor número de casillas, es probable que debido al
factor aleatorio de la elección se elijan padres con menor aptitud, permitiendo una buena
diversidad genética. Para nuestro ejemplo, la ruleta de esta primera generación se puede ver
en la figura 3.5.
41
Figura 3.5 En la gráfica aparecen las casillas que le son asignadas a cada miembro de nuestra población.
Giramos la ruleta 4 veces y obtenemos la siguiente selección de progenitores:
# Cromosomas Aptitud f (x) Selección
1 0010010110 150 1 2 0101010011 339 2 3 0000011001 25 o 4 0010010010 146 1
Tabla 3.2 Resultado de girar 4 veces la ruleta para seleccionar a los padres de la siguiente generación.
Al igual que en otros métodos de búsqueda, una temprana selección de valores demasiado
altos, puede conducir a óptimos locales, por lo que es mejor usar métodos que nos permitan
dar oportunidad a otros miembros de la población, aparentemente menos aptos [19][30].
b. Para crear una nueva generación, se escogerá de manera consecutiva pares de
cromosomas hasta completar el total de la población. Para este ejemplo, simplificado en
extremo, no consideramos la posibilidad de poblaciones superpuestas, es decir, ningún
individuo de la generación previa sobrevivirá.
Por la operación de selección tenemos que la cadena 2 y la cadena 1 son las cadenas
previamente escogidas para cruzar. Entonces, el operador de cruzamiento seleccionará
un punto de cruce y combinará los cromosomas. La selección de este punto ( o puntos de
cruzamiento) es un proceso aleatorio, el cual nuevamente refuerza la diversidad de la
población. Supongamos, que se elige al azar como punto de cruce la posición 4 de
derecha a izquierda.
42
Punto de Cruzamiento = 4
1 001001b110 1
1 1
1 010101~011 1 1 1 1
Produce los descendientes siguientes: 1
# Cromosomas Aptitud f(x)
5 0010010011 147 6 0101010110 342
Seleccionaremos ahora la cadena 2 y la 4 y se cruzan.
Nuevo punto de Cruzamiento
1 0101p10011 1
1 1
1 0010p100101 1 1
Figura 3.6 Aquí se describe el procedimiento de cruzamiento para la primera generación.
La función de la mutación es producir nuevos puntos a evaluar en el espacio de
búsqueda. Supongamos que el alelo 1 O, de izquierda a derecha del cromosoma 2
cambia (muta) de 1 a O, el cromosoma entonces seria 0101010010.
Produce los descendientes siguientes:
# Cromosomas Aptitud f(x)
7 0101010010 338 8 0010010010 146
Tabla 3.3 Resultados parciales después de aplicar el cruzamiento.
43
Nuestra nueva población es la siguiente:
# Cromosomas Aptitud f (x)
5 0010010011 147 6 0101010110 342 7 0101010010 338 8 0010010011 146
Promedio= 243.25
Tabla 3.4 Resultados completos donde se presenta la segunda generación y calculo de su aptitud. A partir de aquí volverá a comenzar el ciclo de nuevo.
Observación: Como podemos ver se perdió el mejor individuo de la generación
previa, pero el promedio muestra que la población ha mejorado.
c. El proceso anterior de generación de nuevos descendientes continuará hasta que se
alcance el valor óptimo o al llegar a un número predeterminado de generaciones. A la
selección, cruce y mutación se les conoce como operadores genéticos.
Existe una amplia gama de variantes de estos operadores [19][22]. Los algoritmos genéticos
no garantizan alcanzar el valor óptimo y dado que muchos de los procesos incluyen
elementos aleatorios, es conveniente realizar varias simulaciones para evaluar el desempeño
del algoritmo genético.
3.3.2 Ventajas
Los algoritmos genéticos no exploran de manera aleatoria un espacio de búsqueda, lo que
hacen es explotar la información histórica para especular sobre nuevos puntos de búsqueda
que mejoren los resultados obtenidos hasta ese momento. Son especialmente útiles en
situaciones en las cuales, hay muchos puntos del espacio de búsqueda que nos pueden llevar
a óptimos locales. Además los algoritmos genéticos además, evalúan varios puntos al
mismo tiempo, mientras que otros métodos tradicionales tratan de maximizar un sólo
parámetro.
44
3.4 La programación celular
La programación celular es una técnica utilizada por Moshe Sipper [20], por Melanie
Mitchell [30] y por John Koza [30], como una respuesta a la observación de la manera en
que la naturaleza resuelve problemas usando sistemas que funcionan utilizando reglas
locales y paralelismo, de modo que son capaces de lograr comportamientos muy complejos.
Ejemplo de esto son los ensamblajes de células, las colonias de insectos, etc. Estos sistemas
muestran una asombrosa capacidad de resolver problemas en un ambiente dinámico.
El enfoque general de la programación celular es el siguiente: se basa en hacer evolucionar
un autómata celular mediante un algoritmo genético. Los cromosomas que conforman la
población del algoritmo genético son las reglas de transición que dirigen al autómata
celular. Posteriormente se producen un cierto número de configuraciones, generadas al
azar, que se probarán con cada uno de los conjuntos de reglas.
En pruebas realizadas por Melanie Mitchell usando la programación celular para resolver el
problema de densidad en un plano[30]. Los resultados fueron bastante alentadores [l 9][20].
En estos, los autómatas celulares "evolucionaron" a soluciones bastante peculiares. Claro
está, no se logró alcanzar el óptimo para la tarea.
45
CAPÍTUL04
PLANTEAMIENTO Y MODELO USADO
4.1 Introducción
En este capítulo, revisaremos pnmero un modelo clásico sobre la sustitución de
nucleótidos. Posteriormente, lo compararemos con el nuestro. Después, presentaremos el
modelo propuesto y su representación dentro del ámbito del algoritmo genético.
4.2 Planteamiento de la hipótesis de trabajo
En este trabajo, pretendemos determinar si es posible, a través del modelo computacional
de los autómatas celulares, simular el comportamiento observado en la evolución de las
secuencias de ADN. Esto es, caracterizar el proceso de sustitución de nucleótidos durante
un lapso de tiempo relevante, evolutivamente hablando.
Para esto, debemos conocer un poco más de uno de los procesos que involucran la
evolución de las secuencias, el proceso de sustitución de nucleótidos.
4.3 El proceso de sustitución de nucleótidos
En la evolución de secuencias de ADN, un proceso fundamental es la substitución de una
base por otra a lo largo del tiempo. En los estudios evolutivos, el número de substituciones
así como el ritmo de ocurrencia de las mismas, se utiliza para reconstruir la evolución de
los organismos [27].
Después de que 2 secuencias divergieron de un antecesor común, cada una de ellas
comienza a acumular sustituciones, de modo que el número de las mismas es una de las
medidas más usadas en evolución molecular. Si dos secuencias de longitud N difieren de
la otra en n puntos, entonces la proporción de diferencias es n / N , es referida como el grado
de divergencia o distancia de Hamming [25].
46
El problema fundamental se refiere a que, una inspección del estado actual de las
secuencias no nos aporta mucha información respecto al número real de sustituciones que
han tenido lugar. Un mismo sitio pudo ser actor de múltiples sustituciones. Por ejemplo, si
una posición de una cadena de ADN cambio de A a e y en la otra cadena en la misma
posición de A paso a T y luego a C. Nuestro análisis arrojará que ambas son idénticas, ya
que no tenemos forma de saber de las 3 sustituciones que tuvieron lugar. En la figura 4.1
mostramos un ejemplo más completo.
(d)
e A
i T /A e A T G A e e T A
A C A T G
~A C A T G A G A T A
! ! ! (e) T G A ! ! G T
(a) (b) (e)
Figura 4.1 En la gráfica se muestra una secuencia de ADN y dos descendientes de la misma. (a). Aquí se observa como se suceden 2 sustituciones de la base original. (b). En este caso, la sucesión de sustituciones regresa al mismo nucleótido por lo que no sabremos que ocurrió. (c) y (d). Podemos observar que ambas secuencias cambiaron hacia la misma base, por lo tanto tampoco aparecerá en una simple inspección comparativa de las dos secuencias. (e). Las cadenas actuales nos muestran solamente dos puntos divergentes así la historia real de sustituciones no ha sido conservada.
V arios modelos han sido propuestos para representar la dinámica de la substitución de
bases. Ejemplos de estos son, los modelos de Kimura [27] y el de Jukes y Cantor [27].
Ambos, desarrollados para determinar, la probabilidad de que una base sea sustituida por
otra en un tiempo t .
47
4.3.1 Revisión del modelo de un parámetro
El modelo de Jukes y Cantor, conocido como el modelo de un parámetro trabaja bajo el
supuesto de que los cambios de una base a otra ocurren como eventos puntuales y con una
misma probabilidad. Esto queda esquematizado como se muestra en la figura 4.2.
a
Figura 4.2 En esta gráfica se muestra que la tasa de sustitución para cada nucleótido es a . Dado que el modelo sólo tiene este parámetro de allí su nombre.
De modo que la probabilidad de que una base cambie a otra es: 3a. y la probabilidad de que
en un tiempo t un nucleótido X sea sustituido por un nucleótido Y esta dado por:
Si X=Y,
Si X :;t: Y,
1 1 -4al Pxr<1> =---e
4 4
(4.1)
(4.2)
Para el modelo de un parámetro de Jukes y Cantor. Dado que en la practica, no es posible
determinar el tiempo de divergencia, no se puede estimara . Pero es posible estimar K, que
es el número de sustituciones por posición desde el tiempo de divergencia de las dos
secuencias. Podemos calcular a K como
48
(4.3)
Donde, p es la proporción observada de nucleótidos diferentes entre las dos secuencias.
Por ejemplo, si la longitud de la secuencia es L = 300 y se observan 25 transiciones2 y 5
cambios transversales Tenemos que K ~ 0.1073
El calculo de K, es lo más cercano que los métodos actuales tienen para calcular el número
de sustituciones que han ocurrido desde el tiempo de divergencia de las secuencias. Pero no
me pueden decir que la progresión de nucleótidos que apareció, nuestro método sí. Esta es
una de las aportaciones más importantes de esta tesis.
4.3.2 Comparación del modelo de un parámetro y el modelo con autómatas celulares
Podemos ver una secuencia de ADN como una secuencia de caracteres. De manera formal,
definimos a la cadena usando teoría de conjuntos como:
X= { A, C, T, G}
Donde
m~l
m,iel
Tenemos entonces una cadena así:
(4.4)
2 Los nucleótidos pueden ser de dos tipos: purinas (A,G) y pirirnidinas (C,T). Si al cambiar de una base por otra, estas son del mismo tipo se le llama transición, si son de tipo diferente se dice que ocurrió un cambio transversal.
49
Usando el modelo de un parámetro tendríamos algo así para modelar la evolución de las
secuencias:
I p 1 3 -4at yj = X¡, XY(r) = 4 - 4 e
1 1 1 -4at yj *- X¡,Pxrc,¡ =---e
4 4
Quedado entonces la secuencia como:
(4.5)
(4.6)
Esta secuencia define el proceso de evolución de una secuencia a otra usando el método de
un parámetro. A continuación, veremos el modelo de evolución usando autómatas
celulares:
Aquí consideramos que los cambios no dependen de situaciones independientes sino de
interacciones con sus vecinos. Tenemos entonces que la secuencia de ADN modelada de la
(Vi e 'l): G¡(x) = f(x¡_,, ... ,X¡,· .. ,xi+,) Es la función global que define el estado de una
celda de acuerdo a interacciones locales con sus vecinos. Incluyendo el tiempo t , tenemos:
e:= f(x;~: .... ,x;-1, ... ,x;;:) donde te {l,2,3, ... ,N} (4.7)
La secuencia resultante de la aplicación de las reglas quedaría como:
c~.c;, ... ,c: (4.8)
50
4.4 Espacio de búsqueda
Analizaremos ahora el espacio de búsqueda en el cual trabajaremos:
Si tenemos un alfabeto de cuatro símbolos y consideramos un radio igual a uno, el número
de combinaciones posibles es igual a: 43 = 64. Los conjuntos de reglas que debemos
evaluar dado el mismo alfabeto, son:
El cuadro siguiente muestra el crecimiento del espacio de búsqueda con los diferentes
valores de radio.
Radio Dimensión del espacio de búsqueda
1 44¡ = 464 ~ 1040
2 445 = 41024 ~ 10600
3 4 47 = 416384 ~ 109850
... ...
Tabla 4.1 Dimensiones del espacio de búsqueda para el problema usando cuatro caracteres.
Como hemos visto el espacio de búsqueda es demasiado grande para los métodos de
búsqueda tradicionales. Por lo que, para resolver el problema de búsqueda hemos
considerado utilizar dos técnicas especiales: los algoritmos genéticos y los autómatas
celulares.
4.5 Justificación
Los algoritmos genéticos proveen una manera muy poderosa de implementar búsquedas, ya
que en lugar de evaluar un solo punto, los algoritmos genéticos realizan búsquedas en una
población de puntos.
En nuestro caso específico, la gran cantidad de posibles reglas de transición a evaluar hace
necesario usar una herramienta que pueda lidiar con el espacio de búsqueda y tratar de
encontrar el autómata celular deseado.
51
La literatura nos anticipa que la tarea de obtener reglas de transición que hagan converger
al autómata hacia una configuración dada, es extremadamente dificil [20]. Esta
complicación parte de una de las características de los autómatas celulares: en los casos no
triviales, el comportamiento que emerge de los autómatas celulares es imprevisible, o al
menos explicarlo a partir de interacciones locales es un proceso bastante complejo[16].
Estos se conocen como comportamientos emergentes[ 16]. La programación celular es una
herramienta especialmente desarrollada para tratar de generar automáticamente autómatas
celulares que realicen una tarea específica.
4.6 Modelo propuesto
Las moléculas de ADN, aún y cuando son estructuras tridimensionales, pueden transcribirse
en forma de secuencias de caracteres sin pérdida de información esencial. Esto es posible
gracias a que de manera experimental determinadas secuencias biológicas pueden ser
obtenidas con completa certeza.
En una secuencia dada, en una posición particular, podemos encontrar sin posibilidad de
mezcla alguna una base específica [ 4].
Para la informática, la naturaleza digital de las secuencias de información biológica hace
que parte de los problemas que presenta el ADN se puede caracterizar como los
relacionados con búsquedas, análisis y procesamiento de cadenas de caracteres. En efecto,
ya que los datos que conforman una secuencia de ADN se pueden representar como una
cadena de caracteres combinando las letras A, e, T y G [5].
Un segmento de una secuencia de ADN podría ser transcrito, como:
AGTGGAGTAACTCAACATCGGCGGGTGGAGGGTGGGGACG
En este trabajo se pretende construir un modelo sustentado en la programación celular a
través de manipulaciones al conjunto de reglas que gobiernan a un autómata celular, con el
52
propósito de que pueda simular los mecamsmos moleculares que penniten que las
secuencias de ADN evolucionen. Esto bajo el supuesto de que las secuencias biológicas que
divergen de una secuencia ancestral común llegaron al punto actual por medio de cambios
moleculares iterativos; los cuales ya hemos explicado con anterioridad (ver sección 2.5.1):
sustitución, inserción y eliminación.
El modelo propuesto comienza con la selección de dos secuencias de ADN:
Secuencia 1 Secuencia 2
A
A
e A
T T G
T T G
A A e e T ... G A A e e ...
Figura 4.3 Dos secuencias de ADN vistas como arreglos para los autómatas celulares.
Estas, las secuencias toman otro nombre, desde ahora serán denominadas: configuración
inicial y configuración final, para ser consistente con la tenninología de los autómatas
celulares. La selección de una configuración como inicial y de la otra como final depende
de cuál configuración se quiera demostrar que desciende de la otra.
En temía, al inicio, éstas son intercambiables, ya que debemos probar ambas posibilidades.
Después de evaluarlas será posible identificar su precedencia correctamente.
Una situación especial a considerar, sería el caso en que ya se tenga alguna infonnación que
predisponga nuestra elección. Por ejemplo, que las configuraciones sean el resultado de un
algoritmo alterno de construcción de árboles filogenéticos que se quiera evaluar.
Para trabajar, un autómata celular requiere de un conjunto de reglas. El algoritmo genético -
como hemos comentado anterionnente- está confonnado por un conjunto de cromosomas
que integran la población a evaluar. En nuestro modelo, los cromosomas serán las reglas de
transición del autómata celular, de modo que tendremos una tabla como la siguiente:
53
A e G T
AA G T A A
AC A T G e AG A e G A
AT G T A e CA G A e T
ce T G e A
... . .. . .. . . . . ..
Tabla 4.2 Conjunto de reglas de transición para el autómata celular.
Ya con una tabla de reglas de transición, podemos ejecutar N veces las reglas sobre la
configuración inicial, generando el siguiente diagrama espacio-tiempo:
~ AACTAAGGCCCACCTGGGGCCGTTAACCATAAG
t1 CCTGGGGCCGTTAACCATAAGAACTAAGGCCCA
t2 GGGCCGTTAAAACTAAGGCCCCCATAAGACCTG
Figura 4.4 Diagrama de tiempo para nuestra secuencia-configuración sobre dos lapsos de tiempo.
En cada ciclo, se comparará la proximidad de la configuración actual (la que ha pasado por
la aplicación de las reglas a partir de la configuración inicial) contra la final, para
determinar si antes del ciclo N + 1 converge a la final.
Es importante señalar que el problema básico de ir de una secuencia inicial a una final,
puede plantearse como una búsqueda. Esto constituye otro punto para apoyar la elección de
la herramienta de los algoritmos genéticos, ya que como hemos mencionado anteriormente,
son métodos eficientes para implementar búsquedas[ 16] [ 19].
Ahora bien, en caso de converger a la configuración deseada podemos utilizar este conjunto
de reglas que nos permitió llegar de una configuración a otra, para intentar acceder a otras
configuraciones emparentadas. De hecho esta es la característica más importante de nuestro
trabajo. Esta facultad no la tienen los otros métodos.
54
4.6.1 Diseño del algoritmo genético
Los algoritmos genéticos requieren que la función a optimizar se encuentre codificada en
una representación apropiada. Además, es muy importante que esta codificación transmita
datos relevantes al algoritmo genético de lo contrario, su desempeño no será el mejor. A
continuación describiremos la representación que usamos para codificar nuestro problema y
la definición de nuestra función de aptitud.
4.6.1.1 Representación binaria
Primero, debemos codificar a nuestra población de reglas para que se ajusten al formato que
de acuerdo con la literatura, funciona mejor con los algoritmos genéticos, esto es una
representación binaria[ 19]. Para conseguir esto, haremos un mapeo entre el alfabeto de los
nucleótidos y valores binarios. Ver figura 4.3a. Después, almacenamos de la tabla de reglas,
los estados nuevos, figura 4.3b y por último los convertimos a la representación binaria
4.3c.
Tabla de rei:lu
(a) '.\topeo de bases a valores binarios AAAAACAATAAG
(b) ::: :::1::: :::tt:: :::1::: ==~== :::;:;:;:: :: A o o e o l T l o l\"uevo estado
G 1 1 (e)
Figura 4.5 En esta gráfica se muestra la tabla de mapeo(a). Una tabla de reglas (b) y el proceso de conversión a la representación binaria.
4.6.1.2 Función de aptitud
En el centro del algoritmo genético se encuentra el proceso que calcula la aptitud de cada
uno de los miembros de la población. En este caso, el proceso se realiza de la siguiente
55
manera: A la configuración inicial le aplicamos un número predeterminado de iteraciones
sobre el conjunto de reglas, comparando después de cada cambio, que tan similar es a la
configuración final. La similitud nos la proporcionan tres opciones: la primera la distancia
de Hamming, la segunda el puntaje que devuelve el programa de alineación global y por
último, el número de pares de caracteres en la misma posición, que tras la alineación
quedan empatados a un caracter diferente. Esta última medida de la aptitud será evaluada a
fondo en el sección 5.8.
4.6.1.3 Operadores genéticos
Debemos implementar la selección, cruce y mutación, sobre la representación binaria. La
selección dependerá de una medida de similitud entre las secuencias ( comentada en la
sección anterior) de modo que se reproducirán aquellas que dirijan la evolución del
algoritmo genético hacia una configuración que sea similar a la configuración final.
La mutación que utilizamos es un evento aleatorio siempre es puntual, es decir, solo afecta
un bit de la representación binaria. Figura 4.6a. La operación de cruce que usaremos es
sencilla, ya que hay sólo, un punto de cruzamiento. El cruzamiento puede o no darse de
manera ya que esta definido también como un evento aleatorio y es también, a nivel bit.
Figura 4.6b.
[!] [TI (a)
~ 0 (b) (e)
J o J J J J I
O I J o o o J
Figura 4.6 Representación esquemática de la mutación (a) y del cruzamiento (b). en (c) El cruce eligió una posición que dividió un caracter que fue definido por la función de mapeo.
56
4. 7 Algoritmo general propuesto
Usando el modelo propuesto, hemos construido el siguiente algoritmo general que
utilizaremos para generar múltiples simulaciones, que nos permitan evaluar nuestra
hipótesis en la práctica.
En la figura siguiente 4. 7 mostramos de manera esquemática este algoritmo. El cual
explicaremos a continuación:
1. La primera parte es la inicialización 4. 7 a donde, definiremos el número de generaciones
a simular, el número de configuraciones que se evaluarán (al total de estas las hemos
llamado "iteraciones" de la configuración inicial sobre una tabla de reglas especificas).
También se define en esta sección que secuencia de ADN será la configuración inicial
(Ci) y cual la final (C/). Y la población inicial de tablas de reglas de transición.
2. Posteriormente, comenzamos el ciclo principal (figura 4.7b) donde se generarán nuevas
configuraciones a partir de cada uno de los elementos de la población. Cada nueva
configuración será comparada contra la configuración final (figura 4.7c), en caso de
converger se termina el ciclo, en caso contrario, se evaluará la similitud entre la
configuración inicial y la configuración final y se guarda como la medida de aptitud.
3. Luego se utilizará esta medida de aptitud para cruzar los elementos de la población y
generar una nueva población. La mutación se da como un evento probabilístico de
manera puntual en los miembros la nueva población durante el cruzamiento. (Ver figura
4.7d).
57
Inicio
(a) Inicialización
(b)
Fin
Iteraciones
Nueva configuración
(e) '".>--~ Salir ciclo
(d)
Nueva población
Figura 4.7. Algoritmo general propuesto.
4.8 Ejemplo práctico
Una vez presentado el modelo y el algoritmo general, los usaremos para desarrollar un
ejemplo muy simple que nos permita ilustrar todo el proceso:
1. Seleccionamos 2 secuencias de ADN que aparecen a continuación, llamaremos a la
primera secuencia: configuración inicial (figura 4.8a) y la segunda: configuración final
(figura 4.8b).
58
(a) !A !G !T !A!
(b) !T!T!A!G!
Figura 4.8. Dos secuencias de ADN representadas corno autómatas celulares de modo que, cada nucleótido representa una célula del autómata.
El tamaño de la población de nuestro algoritmo genético será de tres. Y el número de
configuraciones que se generarán a partir de la configuración inicial (las cuales
llamaremos iteraciones) será de dos. Además, utilizaremos un radio = 1 (lo que nos da
un total de 64 reglas). Nota: Los valores seleccionados fueron escogidos para
simplificar el ejemplo.
2. Definimos un conjunto inicial de tablas de reglas (población). Cada una de las tablas de
reglas tiene la estructura que se muestra en la figura fig. 4.9a. Para que el algoritmo
genético pueda utilizar las tablas de reglas, estas se deben ordenar como un arreglo o
vector.
De modo que la tabla completa se representa solo por sus reglas. En la figura 4.9b
mostramos la manera en que se van recogiendo las reglas. Por último, las reglas
ordenadas son mapeadas a la representación binaria, discutida previamente en la
sección 4.6.1.1. (figura 4.9c ).
59
(a)
A A
A A
e e e e
(b)
A e T G A e T G A A G C A. T A e A A. e e T e A A T C T GAT 'l' T A e 'r T T A. T T G G G GA e T G e G G e
A e T G A e T G A T G· e A G A G A. T G e e A T G G e e G· A 'r T G T A GG 'l' T A GC G A A e T G GA A C A
(e)
CAATACTGGACTGCACATG ••.
Figura 4.9. (a) Una tabla de reglas de transición completa para un autómata celular de radio igual a 1, es decir, solo se toma el vecino izquierdo y el derecho. (b) orden en que se toman las reglas para formar el arreglo. ( c) El arreglo obtenido de la operación anterior en convertido a una representación binaria, al finalizar esta ya tenemos codificadas las tablas como cromosomas del algoritmo genético.
Se generan tres tablas de reglas de manera aleatoria:
(o) (b) (e)
A G CA CAAC G A T G T G CA T G CA A G CA
T CA A T G A T C G A T CA T G CA T G T CA A
TAC T A T T G TA G C G TA G G TA G T A C T
G G A C CGGC A A CA A A C T A A C T G G A C
T G CA G A T G AGCA e A A e G A T G e A A e
CA T G C G A T T CA A T G A T C G A T T G A T
G TA G TA G C T A C T A T T G TA G C A T T G
A A C T A A CA G G A C e G Ge AACA e G G e
Figura 4.10. La primera generación de cromosomas estará constituida de tablas de transición generadas al azar. Nuestra población esta constituida de 3 elementos: (a), (b) y (c).
60
3. Por cada elemento de la población generaremos dos iteraciones, es decir, aplicaremos
dos veces las reglas de transición para obtener dos nuevas configuraciones.
(a)
(b)
7;!GiTi'l'iC! !T!T!A!G! 0100•1
(e)
(d)
r~-1 1;~=0
le)
Figura 4.11. (a) Se muestra la configuración inicial sin modificación. (b)Obtención de puntaje de similaridad basado en la distancia de Hamming. (c) Segunda configuración de la primera tabla de reglas. (d) las configuraciones obtenidas con el segundo conjunto de reglas de transición. (e) Las configuraciones generadas con el tercer conjunto de reglas de transición.
Revisemos el proceso más detalladamente, al inicio ( t0 ) tenemos a la configuración
original { AGTA}. En el siguiente paso ( t1) le aplicamos las reglas de la primera tabla de
la población y obtenemos {TTAG}. Antes de que prosigamos con la generación de una
segunda configuración, comparamos el grado de similaridad de la configuración actual
con la final. Usando por simplicidad, la distancia de Hamming[25].
El resultado obtenido es igual a l. (figura 4.11 b ). El óptimo que deseamos alcanzar es
igual a 4, que es el número de caracteres que contienen las cadenas. Como no se
alcanzo este valor, el puntaje obtenido solo se guarda y se genera una segunda
configuración para el lapso t2 (figura 4.1 lc) y esta recibe un puntaje igual a dos.
Consecuentemente, se aplica la segunda y tercera tablas de reglas generándose por cada
una 2 configuraciones a partir de la configuración inicial original con los resultados
mostrados en las figuras 4.11 d y 4.11 e
4. El proceso de selección de progenitores tomará en cuenta el desempeño obtenido por
las tablas de reglas y sobre la base de la aptitud obtenida los cruzará con alguna
61
mutación puntual involucrada en el proceso, una posible segunda generación se muestra
en la figura 4.12.
(a) (b) (e)
G T A G A T T G AACA A G CA A T T G AGCA CA T G T G A T 'l' A G C T CA A T G A T T CA A T G CA A A A C GATG T A C T A A A C TAC T AACT G G G e C G A T GGAC G G G e G G A C A G CA A A CA G TA G A 'l' T G AACA G TA G
TCAA 'l' A G C CA T G T G A T T A G C CA T G
T A C T GATG T G CA A A A C G A T G T G CA
GGAC C G A T A A C T G G G C CGAT A A C T
Figura 4.12. Luego de la selección de los cromosomas con mejor aptitud, cruzarlos con alguna mutación puntual ocasional, obtenemos a la nueva población de cromosomas, es decir, de tablas de reglas de transición que se probarán con la configuración inicial. Se presentan aquí únicamente los valores que devuelve la tabla de transiciones: (a), (b) y (c).
5. Las configuraciones que toma nuestra configuración inicial con esta nueva población de
tablas de reglas son las siguientes:
Fig. 4.13. Aquí se muestran las configuraciones obtenidas de aplicar las reglas de transición de la nueva población a la configuración inicial.
Como podemos ver en la figura 4.13c, el tercer elemento de la población después de
2 iteraciones de las reglas ha logrado llevamos de la configuración inicial a la final.
Este caso no es excepcional pero, obtener la solución no es asequible en todas las
ocasiones, dado que, los algoritmos genéticos no garantizan óptimos [19].
62
CAPÍTULOS
EXPERIMENTOS Y RESULTADOS
5.1 Introducción
En los experimentos realizados desarrollamos tres líneas de investigación. En la primera
utilizamos secuencias de ADN creadas artificialmente. Después revisamos genomas
completos y por último, evaluaremos mutaciones puntuales y grupos de mutaciones en
posiciones adyacentes. El propósito de estos experimentos es inferir relaciones
filogenéticas entre pares de secuencias de ADN y construir en última instancia árboles
filo genéticos.
Las medidas de similaridad que utilizaremos que para construir los árboles filogenéticos
fueron dos: primero, fue la distancia de Hamming y posteriormente el número de bases no
concordantes, esta medida será explicada a detalle en la sección 5.8.
En este capitulo incluiremos los experimentos que se realizaron en este trabajo, así como
los resultados obtenidos. Antes de entrar a detalle, describiremos los algoritmos utilizados.
Posteriormente, la selección de las muestras utilizadas, así como las razones de su
selección.
Usamos como elemento de control el paquete informático para construir filogenias
ClustalW [33]. Algunos experimentos involucraban varias horas de simulación, lo cual
limita un poco el tamaño de sus parámetros y la cantidad de ejecuciones que se pueden
realizar. Elegimos como algoritmo de alineación la proporcionada por el programa GAP
[31] y para el procesamiento de nuestra matriz de resultados y la subsecuente la generación
del árbol al programa NEIGHBOR del paquete informático PHYLIP [32].
63
5.2 Algoritmos utilizados
La metodología empleada se puede enumerar de la siguiente manera:
1. En una primera etapa, únicamente se estudió, la sección que incluía la programación
celular y que manejaba genomas completos.
2. La segunda versión, que trabajaba únicamente con un arreglo de bases no-concordantes.
3. La versión alterna actual, que procesa los mini-arreglos formados por conjuntos de
bases no-concordantes adyacentes.
Nota: Al lector interesado en los pseudo-códigos estos se encuentran en el anexo B. Donde
están descritos estas versiones del algoritmo general descrito previamente en el capitulo 4.
5.3 Selección de especímenes
Debido a que, como hemos mencionado anteriormente, algunos genomas pueden incluir
millones de caracteres[4], elegimos primero trabajar, con secuencias sintéticas de tamaño
1 O, 100 y 1000; las cuales no tenían ninguna relación con secuencias biológicas. Un
ejemplo de estas secuencias seria:
TAGTAACAGATATCCACTGA
La cual, debido a que presenta en su inicio 2 codones de alto (TGA y T AA) probablemente,
de encontrarse en una secuencia real, estaría inhabilitando a la misma.
Nota: Dentro del código genético existen tripletes que no codifican ningún aminoácido sino
que, sirven como elementos de separación entre la codificación de estos. A estos tripletes se
les llaman codones de alto[l].
La utilidad que estas secuencias artificiales nos prestaron fue la calibración de parámetros
del algoritmo genético, por ejemplo, el factor de mutación y el tamaño de la población;
además de la verificación del tiempo de ejecución.
64
Nuestra primera opción fue utilizar los organismos conocidos como arqueabacterias [29],
con genomas de aproximadamente 2 Millones de pares de bases, pero fueron desechadas
posteriormente, ya que en las bases de datos biológicas[8][9][10][11] no existen muchos
genomas secuenciados.
Finalmente, optamos por seleccionar como espécimen básico en nuestros experimentos a un
grupo de virus. Preferimos utilizar secuencias de retrovirus de inmunodeficiencia adquirida
tanto humana (HIV), como los presentes en otras especies. En promedio, las cadenas de
estos retrovirus contienen 10,000 caracteres, y su acelerada tasa de mutación nos auguraba
árboles filogenéticos bien demarcados.
5.4 Experimento 1: Secuencias artificiales
Las pnmeras secuencias seleccionadas para los experimentos fueron las secuencias
artificiales de tamaño 1 O, que fueron las primeras en probarse, de las más de 90 corridas un
10% convergieron en menos de 40 generaciones del algoritmo genético. La idea de que
estos resultados fueron repetibles en cadenas de longitudes mayores era prometedora.
Veamos una tabla con los resultados de varias simulaciones y por último, una simulación
típica. Cabe destacar que en estas corridas solo se evaluó la convergencia de una secuencia
a otra. La tabla siguiente nos muestra como porcentajes el número de ocasiones que se
alcanzó el óptimo, es decir que se logró converger de una configuración inicial en una
configuración final.
Número de Tamaño de Radio Número de Pm Pe % de veces simulaciones configuración generaciones que se llegó al
óptimo 30 10 1 100 0.01 0.6 25 30 10 2 100 0.01 0.6 20 30 10 3 100 0.01 0.6 20 30 100 1 100 0.01 0.6 5 30 100 2 100 0.01 0.6 5 30 100 3 100 0.01 0.6 7
Tabla 5.1 Resultado de simulaciones con datos artificiales. Donde Pm es la Probabilidad de mutación y Pe es la probabilidad de Cruce.
65
En las figuras 5.1 y 5.2 presentamos una corrida típica que no alcanza el óptimo y otra que
lo logra.
100
40
20
o 10
Evolución de las reelas de transici6n de un autÓlllata celular-
20 30
Generaciones
40 ~o
Mejor·-+Pr-0~1ech o -+-
Peor --e--
60
Figura 5.1. En la gráfica aparece el resultado de una ejecución típica que no alcanzó el valor óptimo, definido aquí corno: optimo = tamaño_ configuracion x puntaje _ concordancia Esta simulación tiene los siguientes parámetros: Tamaño de secuencia= 10, radio= 1, iteraciones del autómata celular= 20, número de generaciones= 64, Pm = 0.01, Pe= 0.6 y tamaño del cromosoma= 128.
La gráfica 5.1 nos muestra una corrida típica donde se trató de hacer converger a una
configuración inicial en una configuración final ( ambas de diez caracteres de longitud). La
simulación generó 64 generaciones. Esta gráfica, como en las siguientes, mostrará una
estructura utilizada en los algoritmos genéticos. Donde se listará la aptitud del mejor
individuo de la población en cada una de las generaciones (Esta serie esta etiquetada como
"Mejor"), además se muestra el individuo con peor desempeño de la población y el
promedio, estas series están etiquetadas como "peor" y "promedio", respectivamente.
66
Evoluc16n de las reglas de trans!c16n de un aut6111ata celular
40
20
r·1e.ior -+Proroecho --+
Ptor ··-·-.e-
º"--~~~-'---~~~--'-~~~-'--~~~-'-~~~--'~~~~L..---" o 10 20 30
Generaciones 40 50 60
Figura 5.2. La gráfica nos muestra los valores del máximo, el promedio y peor de la generación, el promedio de la corrida actual. Cabe destacar que la progresión de valores no presentan una evolución sino que simplemente brincan del mínimo al máximo, lo que indica que el individuo se localizó por azar (alcanzado aquí en la generación 47). Esta simulación tiene los siguientes parámetros: Tamaño de secuencia = 10. Radio = 1, Iteraciones del autómata = 20, Número de generaciones = 64, Población = 256, Pm = 0.01, Pe= 0.6 y Tamaño del cromosoma= 128.
La gráfica 5.2 nos muestra una corrida típica donde se consiguió de hacer converger a una
configuración inicial en una configuración final ( ambas de diez caracteres de longitud). La
simulación convergió en menos de 40 generaciones, por lo que no fue necesario seguir
generando más.
67
80
60
40
20
Evolución de la tabla de reglas del autómata celular.
Mejor---+---Pro~1e(li o -
Peo1· ~
++++++++++++++-++ 1 1 1 I 1 1 1 + 1 1 1 1 1 -+ 1 l 1 1 1 ++-.+-++++++++++++ i -t .. + ++++ +-+-++++++++-++++++ 1 1 + t- 1 1 1 1 1 ++++++++++++++
º'--~~~~---'~~~~~-'-~~~~~-'-~~~~~..1..-~~~~___::J o 20 40 60 80 100
Generaciones
Figura 5.3. Ahora, revisemos la siguiente simulación, la cual tiene los parámetros: Tamaño de secuencia = 100, radio = 1, iteraciones del autómata = 100, número de generaciones = 100, población = 256, Pm = 0.01, Pe= 0.6 y tamaño del cromosoma= 128.
Si un algoritmo genético esta evolucionando adecuadamente, la gráfica típica resultante es
una curva ascendente. Y a que con cada generación, se va maximizando la función de
aptitud de la población en general. En nuestras simulaciones, en cambio, los resultados
obtenidos nos muestran, un panorama bastante desalentador donde, a través, de la serie de
generaciones no solo, no se maximiza la función de aptitud general sino que, observamos la
perdida de los mejores individuos de generaciones previas (figura 5.3).
Este resultado nos indica que el espacio de búsqueda es tan grande que provoca que el
algoritmo genético degenere en una búsqueda aleatoria, es decir, la gráfica nos muestra
picos y valles sucesivos producto del factor de mutación y los nuevos individuos generados
por los cruzamientos. Antes de avanzar debemos señalar que la selección de las
probabilidades para la operación de cruce y para mutación no fueron elegidos al azar.
Corresponden a los valores más utilizados en la práctica [19][30]. Y por lo tanto los
utilizamos para el proyecto.
68
5.4.1 Factor de mutación
Para validar la relevancia del índice de mutación, probamos con distintos valores. Los
resultados muestran que un mayor índice de mutación parece alentar, al inicio a un
mayor desempeño pero a la larga vuelve aparecer el comportamiento que se ve en otros.
En nuestro estudio utilización porcentajes de 0.01 y de 0.05. Con resultados similares.
5.4.2 Elitismo
El elitismo consiste en conservar copias de los individuos más aptos en la siguiente
generación. La inclusión de esta estrategia se debió a nuestro interés en contrarrestar los
cambios globales que se presentan en los autómatas celulares. Esto es, cada vez que se
aplicaban las reglas a la totalidad del autómata celular, este no conservaba las regiones
que alcanzaron el estado deseado. Ya que en cada iteración de las reglas, la configuración
cambiaba completamente. El elitismo demostró que era capaz de retener las reglas más
eficientes y fue introducida al final de las pruebas con las secuencias artificiales.
5.5 Análisis de resultados
Los resultados obtenidos hasta este punto no son muy alentadores. Esto sin contar el
esfuerzo computacional involucrado, ya que como hemos mencionado antes, tanto los
algoritmos genéticos como los autómatas celulares requieren un cómputo intensivo.
Debido a esto, fue necesaria una revisión de las limitaciones del algoritmo, las cuales
describiremos a continuación.
5.5.1 Colisión de reglas
Hay dos razones que detectamos; primero, es una situación en el centro mismo de la
programación celular: la tabla de reglas. La cuestión es que un autómata celular no
puede definir comportamientos alternos para una regla dada, esto debido a que no se
69
penniten reglas no-detenninistas. Por ejemplo, digamos que una tabla de reglas tiene una
definidas las siguientes transiciones:
A
A e e
Y que las configuraciones contienen los caracteres siguientes:
Configuración inicial i A i A i e i ... i A i A i e i ... 1
Configuración final i - 1 C i - i ... i - 1 A i - i ... 1
Para que nuestro autómata celular pudiera encontrar una regla que resolviera esto tendría que ser del tipo:
Figura S.4 Descripción de las colisiones.
Lo cual no es posible bajo el esquema de autómata celular con transiciones detenninistas.
Esta condición que hemos denominado "colisión de reglas", se presenta en un 10% de
nuestros experimentos y su efecto se traduce en que el algoritmo genético, al no dar
preferencia a una regla sobre otra, trata de cumplir con ambos requerimientos.
Una posible solución fue aumentar el tamaño del radio. Esto es, a mayor número de
caracteres involucrados en la definición de una regla, menor posibilidad de colisión.
Pero aún así, esta condición, se sigue presentando y debido a que, durante los
experimentos la utilización de radio > 1, implicaba un incremento relevante en la carga
de trabajo al procesador, al final, dimos preferencia a la eficacia del proceso en general.
70
5.5.2 Aptitud escalonada
La segunda razón, tiene que ver con las características de algoritmo genético empleado,
las poblaciones utilizadas son de tamaño medio (de 256 a 512 individuos), consideradas
pequeñas en la práctica. Cuando se tienen poblaciones de tamaño mediano suele darse el
caso que se presente el problema de convergencia prematura, esto es, que algunos
individuos con una aptitud predominen y la selección no elija otros individuos más que
ellos, produciendo un pobre resultado, es decir un máximo local.
Para evitar eso, utilizamos el método de rueda de ruleta para seleccionar a los individuos
a cruzar. (Ver sección 3.2), pero se extendió con el método que plantea Goldberg, para
limitar su reproducción[ 19]: escalamiento de aptitud. Definido de la siguiente manera:
Sea f la función de aptitud normal y la aptitud escalonada f', la cual se construye
como:
f'=af +b
Donde los coeficientes a y b pueden definirse siguiendo múltiples esquemas. En este
caso se definió tratando de igualar f 'maximo =e. !promedio donde e es el número esperado
de veces que puede reproducirse los mejores individuos de la población. Siguiendo la
sugerencia de Goldberg[ 19] lo definimos como, C = 2 .
5.6 Cambio de estrategia
Los cambios que fueron introducidos a raíz de solucionar nuestros puntos débiles, no
bastan para resolver todos nuestros problemas. Aún queda un punto pendiente: el tamaño
actual de las configuraciones inicial y final que nos ha dado problemas desde la
utilización de las secuencias artificiales. Por lo cual proponemos definir un nuevo
enfoque, más cercano a los métodos que se ocupan actualmente para hacer estudios
filogenéticos. Específicamente, se utilizan secciones relevantes (y con funciones
71
homólogas) entre las secuencias. Por ejemplo, se hacen árboles utilizando un gen común
en todas las cadenas.
Aquí lo que utilizaremos son las bases que, tras una alineación global, quedan
emparejadas con una base distinta; éstas en la literatura, se llaman bases no-concordantes
BNC (en inglés, se utiliza el término mismatches). Esquematicamente lo podemos ver en
la figura 5.5a.
A estas parejas de bases distintas, las tratamos en conjunto como un autómata celular
asíncrono Figura 5.5b, de modo que las reglas no afectarán a todas las bases circundantes
a las BNC. La definición formal del algoritmo, usada en esta parte de nuestro proyecto, se
encuentra descrita en el anexo B.3, como el tercer algoritmo.
,--, .-------, 1 1 1 1
(a) Ci A c:c:T G - A:c TA: 1: : 1 1 1 ¡ 1
Cf - c:G:T G G A:T G G: 1 1 1 1
·--' ·-------·
Autómatas r~lularei hecho de 81\{:'!1
(b) !C!T!A!
!T!G!G! Figura 5.5 (a). Ejemplo de bases no-concordantes. (b). Un par de los autómatas celulares resultantes.
Una vez obtenido el arreglo de BNCs, se procede a evaluar cada unas de las entradas de
la configuración inicial para ver si convergen a la final. Posteriormente, se intercambian
los lugares y se verifica si las BNC de la configuración final pueden converger a las BNC
de la configuración inicial, con alguna de las reglas definidas.
La razón de esta acción: aprovechar de una de las características de los autómatas
celulares, la no-reversibilidad. (Ver sección 3.2.2). Esta propiedad nos indica que es
posible saber con total certeza el siguiente estado de una celda por inspección de su
vecindad y la tabla de transiciones, pero lo mismo no es válido para los pasos previos.
72
Bajo esta consideración, podemos suponer que es más fácil para nuestro autómata celular,
detectar secuencias más recientes a partir de una menos reciente, ya que estaría probando
configuraciones que están a n iteraciones de distancia.
Usando el concepto de los diagramas de tiempo significaría que buscamos una
configuración donde, tbuscado > tactual. En el caso opuesto donde, buscamos una secuencia
menos reciente, le estaríamos pidiendo al algoritmo genético que pruebe configuraciones
donde tbuscado < tactual. En la practica, buscar una configuración menos reciente parece
conllevar más esfuerzo computacional, las simulaciones realizadas, no proporcionaron
una confirmación completa, pero su comportamiento parecería encajar con este
comportamiento.
5.6.1 Parámetros usados en la alineación
Consideramos pertinente mencionar los parámetros que utiliza el algoritmo de alineación
usado (GAP). Los valores usados son una variación de los que maneja de manera
estándar, los cambios buscan permitir un ligero aumento del número de BNCs.
Parámetro Valores Valor usados estándar
Coincidencia 10 10 BNC -10 -15 Penalización por superar extensión mínima de 20 30 hueco Tamaño de hueco a partir 15 25 de la cual se penaliza Penalización por inicio de 3 3 hueco
Tabla 5.2 Se muestran los valores de los parámetros estándar que utiliza el programa de alineación.
73
5.7 Experimentos 2: Utilizando mutaciones puntuales (o BNCs)
En esta serie de experimentos, utilizamos fragmentos de secuencias reales de ADN. Para
que los fragmentos fueran afines en la medida de lo posible, el criterio de selección de los
mismos fue que presentarán una distribución similar en la cantidad de nucleótidos
contenidos.
A continuación, las figuras 5.6 y 5.7 muestran como se desenvolvieron las simulaciones
en los casos en que se usaron fragmentos de ADN real conteniendo 100 y 1000,
caracteres, respectivamente.
500 400
o 300 z C!l 200
100 o
1
1 1
1
i i i i i 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Experimentos
I • Total BNCs • Resueltas
1 1
1 i 1 i 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
No Resueltas 1
Figura 5.6 En esta gráfica podemos ver el resultado de 55 simulaciones en segmentos de ADN real de tamaño 100 y radio igual a 1. Como podemos observar en esta etapa entre menor sea el número de BNCs, el algoritmo genético es capaz de obtener un conjunto de reglas de transición capaz de resolverlo.
74
(/)
400
300 -,- - -
Prueba con segmentos tamaño = 1000
- f-- - f--
~ 200 ca
100
o ~ ~ u ~ u ~ u ~ u ~ u ~ u 1 1 1 1 1 1 1
~ m ~ m ~ m ~ m ~ m ~ m ~ ~ ~ N N M M ~ ~ ~ ~ ©
Experimentos
ID Total BNCs •Resueltas D No resueltas 1
Figura 5.7 En esta gráfica podemos ver el resultado de 61 simulaciones en segmentos de ADN real de tamaño 1000 y radio igual a 1.
En la gráfica 5.7 se agruparon en forma de barra superpuesta: el número de BNCs, los
BNCs que se pudieron resolver y Por último los BNCs que no pudieron ser resueltos.
Como en la gráfica previa, podemos observar en esta etapa entre menor sea el número de
BNCs el algoritmo genético es capaz de obtener un conjunto de reglas de transición capaz
de resolverlo.
5.7.1 Genomas completos
Los problemas presentes en el experimento previo con cadenas de longitud 1 OOy 1000, se
repite en los genomas completos. La cuestión más importante aquí es el tiempo que toma
en evaluarse cada nueva configuración, debido a lo establecido en el segundo algoritmo
(Ver anexo B.2). Para obtener la aptitud debemos alinear nuevamente las cadenas, la
nueva configuración resultante de aplicar las reglas a la configuración inicial y la
configuración final. Veamos la tabla de las simulaciones realizadas:
75
% veces -Tamaño de Factor de - X
R2 Generaciones óptimo X BNCs SI Configuración mutación BNCs alcanzado resueltas 15 ~ 10000 1 100 0.01 6.67 700 70 15 ~ 10000 2 100 0.01 6.67 700 72 15 ~ 10000 3 100 0.01 6.67 700 70
Tabla 5.3 Resultados de experimentos con genomas completos.
Posteriormente, se hizo un experimento sobre la cuestión: ¿Es demasiado pequeño el
número de generaciones utilizado? Para responder esta pregunta se hicieron simulaciones
como la que se muestra a continuación. En la gráfica siguiente se muestra la evolución
del autómata celular para 32,500 generaciones.
(O o ..., -., :, (O ., <. (O u z "' ., 1J
o <. ., E
1:, z
100
80
60
40
20
o 5000
E va 1 uac i ón de a I gor i t mo genét ico en recorridos I argos .
10000 15000 20000 25000
Gene rae iones
Mejor -Pro~1>?i:lio -
Peor -
30000
Figura 5.8 La simulación de un número de generaciones considerable venía acompañado de un costo computacional muy alto la ejecución de la que se muestra en la gráfica discurrió en un plazo de 72 horas, que es un plazo normal para este tipo de simulaciones ya que conllevan procesos de cómputo muy intenso.
1 Número de simulaciones. 2 Radio considerado.
76
5.8 Grupos de posiciones de mutación adyacentes
Los resultados preliminares muestran que los árboles resultantes de nuestro algoritmo se
acercan a los generados por otros métodos. Con esto, podemos asumir que el puntaje para
evaluar distancias evolutivas entre secuencias es, hasta cierto punto, válido. Debido a que
el método que usamos para comparar, al igual que todos los métodos para construir
filogenias, no puede asegurarnos haber alcanzado el valor óptimo.
Una característica importante a señalar es que en nuestros resultados usando el conjunto
de bases no-concordantes, es bastante variable ya que depende de las poblaciones
generadas aleatoriamente, así que una población con una aptitud promedio muy baja
puede generar puntajes muy bajos cercanos a cero o iguales para muchas secuencias. Lo
cual es desastroso para el método de neighbor-joining que requiere que se cumpla la
propiedad de adición [26]. Nos devuelve arboles con ramas de longitud =O, esto quiere
decir que el algoritmo no distingue diferencia alguna entre las secuencias.
En los árboles presentados, el algoritmo genético en general no logró resolver la
totalidad de los BNC, salvo en un par de ocasiones.
Otro punto interesante a destacar, respecto al tercer algoritmo (Ver anexo B.3), es que las
tablas de reglas resultantes tendían a minimizar el número de sustituciones de bases por
sitio. Esto es, después de n generaciones, la tabla de reglas presentaba un aspecto como
el siguiente:
Generación BNC Total de iteraciones resueltas del autómata celular
.. . ... ... 20 500 1600 21 501 1600 .. . ... ... 50 511 1580 51 511 1590 ... ... .. .
100 540 1300
Tabla 5.4 Número de iteraciones observados.
77
Nota: la manera en que se determina el promedio de iteraciones que efectúa el autómata
celular para tratar de resolver las BNC, se obtiene contabilizando el número de veces
que se aplicaron las reglas bajo prueba en ese momento pudiendo ser =::; 4 por BNC.
Nuestro modelo guiado por el algoritmo genético, tiende a buscar el conjunto de reglas
que en un menor número de pasos llegue de una secuencia a otra. La deducción natural
aquí es que lo óptimo sería obtener un conjunto de reglas que llegara de la configuración
inicial a la final en un solo paso. Una de las hipótesis era encontramos que el número de
iteraciones variaría de manera irregular.
Este resultado inesperado, nos recuerda a la manera en que otra familia de métodos para
construir filogenias trabaja, nos referimos al método de la parsimonia [6], que trabaja,
uniendo las ramas que involucran el menor número posible de sustituciones.
En las gráficas siguientes, presentamos los resultados obtenidos usando esta nueva
versión del algoritmo. Tres gráficas nos muestran, los resultados para radio = 1, 2 y 3.
(Figuras 5.9, 5.10 y 5.11, respectivamente).
78
Evolución de la tabla de reglas del autornata celular.
700 ,-----.-------,-------.-------,--------, Ne,ior -
Pror,edio -Peor --
600
500
400
300
200
100
o------~-----_._ _____ _._ _____ ........, ........ ____ _____. o 200 400 600 800 1000
Generaciones
Figura 5.9 En esta tabla podemos observar la evolución de nuestro algoritmo genético usando el arreglo de BNCs. Los parámetros de esta corrida son los siguientes: Tamaño de configuración ~ 9,000 bp. Número de BNC ~ 900. Número de generaciones =1000. Población= 512. Número de reglas= 64. Tamaño de cromosoma= 128 y Radio = l.
Esta gráfica si muestra un cierto grado de mejoría entre una generación y otra, aunque los valores promedio y peor de la población siguen siendo extremadamente variables en general se logra un mejor desempeño del algoritmo genético.
79
Evolución de la tabla de reglas del automata celular. (Radio=2)
700 .----.-------,---------,-----------~ tle,ior· -
Proroedio -Pec,r -
600
~, ~ __ _______ r-~
100
o ____ _.__ ___ __._ ___ ___._ ____ ..__ __ ~ o 200 400 600 800 1000
Generaciones
Figura 5.10 Los parámetros de esta corrida son los siguientes: Tamaño de configuración ~ 9,000 bp. Número de BNC ~ 900. Número de generaciones= 512. Número de reglas = 1024. Tamaño de cromosoma= 2048 y Radio= 2.
80
Evolución de la tabla de reglas del automata celular. <Radio=3)
700 r-------.------,------.-------r------
600
500
Me,ior -Promedio -
Peor -
400~
i ,oo ~,~~~~\f~~~r~~JrA~ ~,~~~~'f'Y1iJ~~11W~ 200
100
o ...__ ____ __. _____ __,_ _____ __.__ _____ .....__ ____ ___,
o 200 400 600 800 1000
Generaciones
Figura 5.11 Los parámetros de esta corrida son los siguientes: Tamaño de configuración ~ 9,000 bp. Número de BNC ~ 900. Número de generaciones= 512. Número de reglas= 16384 Tamaño de cromosoma= 32768 y Radio = 3.
Aún y cuando, esta última simulación tiene un radio mayor su progreso no es excepcional, de hecho el gasto computacional de calcular 16,384 reglas no parece estar justificado ya que no se resuelven con esta vecindad una mayor tasa de BNCs.
81
5.9 Arboles
Después de recopilar los puntajes de las alineaciones de pares de secuencias, ya estamos
en condiciones de construir un árbol filogenético. En este ejemplo se generó un árbol a
partir de 10 secuencias del retrovirus del HIV. Figura 5.12, y como medida de
comparación, incluimos un árbol construido usando el paquete informático para
construcción de filogenias llamado: ClustalW, que implementa su árbol usando una
alineación múltiple y una técnica que utiliza muestras sintéticas (llamada en inglés,
bootstrap). Ver figura 5.13.
HIV 9 2e+o4
HIV 10 HIV_7
\...--..,........~---HIV 8
HIV 2
HIV_3
HIV_5 HIV_4
Figura 5.12 El árbol resultante de analizar un conjunto de 10 secuencias de HIV. Con nuestro segundo
algoritmo.
82
IITV 10
IITV 7 IITV 8
IITV 6 _ ____, ~-IITV 1
IITV 3 IITV 2
IITV 5 IITV_4
0.05 1 1
Figura S.13 El árbol resultante de analizar un conjunto de 10 secuencias de HIV. Con el paquete infonnático. ClustalW.
Entre las diferencias que podemos observar a pnmera vista es que el algoritmo
desarrollado, genera ramas más grandes, esto significa que las distancias evolutivas entre
dos secuencias es mayor. Mayor definición en las ramas puede ayudar a las ramas
internas a ser más distinguibles. Debemos recordar que las simulaciones pueden devolver
árboles ligeramente distintos en cada simulación pudiendo estar entre estos extremo:
árboles muy definidos o como ya hemos mencionado con ramas de tamaño cero.
83
5.9.1 Más ejemplos de árboles.
Para un segundo grupo de secuencias se obtuvieron los siguientes árboles con nuestro
algoritmo figura 5.14a y ClustalW nos devolvió 5.14b. En este caso, los dos árboles son
distintos y el generado por el tercer algoritmo generó una rama con distancias muy cortas
cercanas a cero. Nos referimos al par de secuencias etiquetadas como hiv9 y el hiv8.
HiY14 Hivl7
Hivl3 Hivl5
Hivll
HidO
(a)
Figura 5.14 Otro grupo de secuencias analizadas.
84
~ i y
1 8
9 y
l (b)
i h
o 1
y
y 1 6
0.1 1--------i
CAPÍTUL06
CONCLUSIONES
Los resultados preliminares nos muestran que de manera bastante aceptable, nuestro
procedimiento puede usarse como una alternativa a los métodos actuales de construcción de
árboles filogenéticos, cuando las secuencias no presentan un número reducido de puntos de
control. Es decir, que el número de parejas de bases a empatar no sea menor a un 1 % de la
longitud total de las secuencias, ya que de darse este caso nuestro algoritmo devolverá
valores muy pequeños o iguales a cero.
Esto es inaceptable para el algoritmo de Neighbor-Joining, que como hemos visto
devolverá ramas con Longitud= Oyen general árboles con ramas muy cortas.
Con la intención de producir alineaciones que contenga un buen número de bases no
concordantes, se recomienda usar valores de penalización pequeños para el cálculo del
puntaje de bases no-concordantes.
Deben generarse por lo menos, tres corridas cada vez, ya que debido al carácter
probabilístico de los algoritmos genéticos y de todo el proceso en general. Es natural que
los resultados varíen de una simulación a otra. Aunque ese número se puede considerar
como una simple observación empírica.
Utilizamos un radio= 1 ya que, aunque detectamos el problema de las colisiones de
reglas, vimos muy poca justificación para incrementarlo debido al incremento exponencial
del esfuerzo de cómputo necesario, así como el espacio de búsqueda lo que de acuerdo a los
resultados presentados no mejoró significativamente.
85
, Otro aspecto observado, atribuible a las colisiones de reglas, es que aún y cuando
generamos corridas de más de 30,000 generaciones unitarias, es decir como prueba del
comportamiento del algoritmo genético (fuera del esquema de generación de árboles
filogenéticos) y pudimos percibir que el algoritmo genético ya no podía mejorar a medida
que se incrementan las generaciones.
Consideramos nuestros resultados como preliminares y no definitivos por un apartado que
se discutiremos más a detalle en la sección de trabajos futuros. El cometido de desarrollar
un nuevo modelo de las secuencias biológicas se cumplió, pero hace falta más trabajo del
lado biológico para demarcar su relevancia. Es decir, con apoyo en base a pruebas de
laboratorio, averiguar si es válido nuestra teoría de la relevancia de las bases vecinas en los
procesos de la evolución o es un proceso puntual, independiente de la misma secuencia.
Por último nos interesa recalcar la que consideramos, la contribución más importante del
trabajo: el modelo computacional al menos para la medida evolutiva de la substitución de
nucleótidos, nos abre la posibilidad de inferir el estado de una secuencia en un futuro, no
como un valor probabilístico sino proporcionándonos una muestra artificial de como se
verá la secuencia.
86
CAPÍTUL07
TRABAJOS FUTUROS
Creemos que este trabajo puede ser complementado en muchas maneras, aquí proponemos
algunas opciones interesantes que nos parece deben ser exploradas.
1. La inclusión en el modelo, no solamente de las sustituciones de bases, sino además de las
inserciones y supresiones de segmentos. Para esto se deben usar modelos más generales de
autómatas celulares. Esto implica seguir un modelo asíncrono y la inclusión de nuevos
estados que representen inserciones en la siguiente configuración (/) y supresión del
caracter actual (S). Este incremento de estados generaría aún para radio= 1 presentaría una
mayor complejidad computacional, 63 = 216 estados para el caso más simple.
2. La implementación de una versión paralela. En los últimos años, se han desarrollado
versiones paralelas de algoritmos genéticos para poder reducir el esfuerzo de cómputo
involucrado. La migración a este formato podría hacer que nuestro programa, pudiera
entregar los resultados en un tiempo más aceptable.
3. La creación de una interfaz de usuario. Dado que, en su versión actual es un programa de
línea de comando que recibe los parámetros en línea, tal vez sería conveniente desarrollar
una interfaz gráfica para poder manipular de manera más sencilla los valores de entrada,
con ventanas para visualizar las alineaciones y el árbol resultante. Los cuales se pudieran
guardar en archivos definidos por el usuario.
4. La creación de un algoritmo especifico para construir el árbol resultante. Dado que este
método nos permite distinguir entre la complejidad de ir de la secuencia (A) a la secuencia
(B) y la complejidad de ir de (B) a (A). Podemos construir un árbol con ramales más acordes
a la historia evolutiva.
5. Estudio comparativo entre los resultados arrojados por este modelo y los revisados o
analizados en estudios de laboratorio, ya que sería muy interesante contrastar los resultados
87
esperados devueltos por el modelo y los reales. Esto además, podría hacer más robusto el
modelo ya que los parámetros se calibrarían de una manera más realista.
6. En este proyecto sólo consideramos la secuencias de nucleótidos que conforman una
secuencia de ADN, sería interesante trabajar al nivel de las proteínas y analizar los
resultados con las mismas.
88
ANEXO A
EJEMPLO COMPLETO DE ALINEACIÓN
En esta sección presentaremos una corrida típica del programa de alineación global, del Dr.
Xiaoqiu Huang, llamado GAP. Para esta simulación usaremos los siguientes parámetros:
1. Penalización por base no concordante: -15
2. Tamaño de los huecos (en ingles, gaps) que se penalizará: 10
3. Tamaño de 2
4. Penalización de la extensión de los huecos 3
Gap-Open Penalty Gap-Extension Penalty
Las secuencias que vamos a alinear son las siguientes,
Secuencia A caaagaagacaagagatccttgatctgtggatctaccacacacaaggctacttccctgatt ggcagaattacacaccagggccagggatcagatatccactgacctttggatggtgcttcaa gctagtaccagttgagccagagaaggtagaagaggccaatgaaggagagaacaacagcttg ttacaccctatgagcct
Secuencia B gcagattgagccctgggaggttctctccagcactagcaggtagagcctgggtgttccctgc tagactctcaccagtgcttggccggcactgggcagacggctccacgcttgcttgcttaaag acctcttaataaagctgccaattagaagcaagttaagtgtgtgttcccatctctcctagtc gccgcctggtcattcgg
Ambos, son fragmentos de secuencias de ADN de HIV, seleccionadas al azar pero con una
distribución de nucleótidos similar, es decir, segmentos que contienen el mismo número de
A, e, T y G en ellos.
89
La salida del programa es presentada a continuación,
Val Acierto 10
Val Base no-concordantes -5
Secuencia Superior: secuencia A Longitud: 200
Secuencia inferior: Secuencia B Longitud: 200
Hueco Encontrado 5
Extensión hueco 3
Mejor alineación con costo constante para inserciones largas Puntaje de similaridad 731 Porcentaje de aciertos 51% Número de aciertos 128 Número de noconcordantes: 22
Longitud total de huecos: 100 Nota: Huecos en las secciones terminales, no penalizaran.
o
1 caaagaagacaag agatccttgatc tgtgga teta cea cae
------------1-1111---1 I I 1--11-111---111 -111-111-1 gcagat tgagccctg ggaggttctctccagcact
so 42 a ca ag ge tac ttccctgattggcagaattacacaccag
1-11---11-11-1 ---1111111 1----111 1--1 111111---35 agcaggtagagcctgggtgttccctgct agact ctcaccagtgc
100 80 ggccaggga t cagata tccactgacctttggatggtgcttca
--1111-11 1-1---1111 --11111-1--111--1 1--11111-1 79 ttggcc ggcactgggcagacggctccac g ctt gct tgctt a
150 122 agctagtaccagttgagccagagaaggtagaagaggccaat gaaggag
1---11-111 11---------11--11-111 111111--1111 1-120 a ag acctctt aa ta aagctgccaattagaagca
200 170 agaacaacagct tgttac a e ccta t ga gcct
11 -11 1-1-1111 l-1-1---1111-1-1 -llll----------1s3 agtt aagtg tgtgttcccatctctcctagtcgccgcctggtcattcgg
Donde,
I Significa una coincidencia. - significa un hueco
" " Significa un par de bases no-concordantes.
90
ANEXOB
En este apartado incluiremos el pseudocódigo de las tres versiones que construimos con base en el algoritmo general propuesto en la sección 4. 7.
l. Versión que trabaja con configuraciones completas
El pseudo código que se transcribe a continuación, describe la primera versión desarrollada
como una primera aproximación para evaluar si le era posible hacer converger
configuraciones completas.
Inicio:
Ciclo:
Definimos Ci y Cf como las secuencias de ADN convertidas a binario. Definimos aptitud= O como el valor devuelto por el algoritmo de Alineación Global GAP(). Definimos Pm como la probabilidad de mutación Definimos Pe como la probabilidad de cruzamiento Temporal= O
1. Generar población inicial P de r tablas cada una, con
42r+l reglas. 2. Mientras no se alcance el optimo y
contador< Número Generaciones Ejecutar m veces
Generar nueva configuración de Ci usando P, Temporal = gap ( Ci , Cf ) Si aptitud< Temporal
aptitud= Temporal Si Ci = Cf
Terminar ciclo local.
Seleccionar P, con Max(aptitud)
Cruzar P, seleccionadas con factor de cruzamientoPc
los descendientes puede mutar con factor Pm contador = contador + 1
91
2. Versión que trabaja con bases no-concordantes
El pseudo código que se transcribe a continuación, describe la segunda versión que
consideramos la más estable, porque el algoritmo genético como veremos después, resolvía
un mayor número de bases no-concordantes.
Inicio:
Definimos una matriz M de n X n donde n es el número de secuencias a procesar.
Definimos S como el conjunto de secuencias de ADN.
Definimos Pm como la probabilidad de mutación
Definimos Pe como la probabilidad de cruzamiento
Ciclo principal:
Para cada pareja de secuencias Sij
Terminación:
3. Realizar una alineación global y almacenar las posiciones de las
bases no-concordantes enBNC. 4 . contador = O
P 42r+l s. Generar población inicial de r tablas cada una, con reglas.
6. Mientras no se alcance el óptimo y contador< Número Generaciones
Para cada BNC; i
Ejecutar m interaciones de P,
Si BNC¡ alcanza el estado deseado
Bncresueltas = Bncresueltas + 1 Seleccionar P, con mayor aptitud Max(Bncresueltas)
Cruzar P, seleccionadas con probabilidad de cruzamiento Pe los descendientes puede mutar con una probabilidad Pm si Bncresueltas = Total BNC
Terminar ciclo local.
contador = contador + 1 7. Asignar puntajeü = Bncresueltas
B. Repetir paso 4 para Sji
9 . Bncresueltas = O 10. Asignar puntajeji = Bncresueltas
11. Si i = j entonces, M ü = M ji = O
De lo contrario Si puntajeji < puntajeü entonces,
M .. = M .. = puntay·e .. IJ JI JI
De lo contrario M .. = M .. = puntay·e .. IJ JI IJ
Ejecutar Algoritmo Neighbor-Joining conM .
92
3. Versión que trabaja con bases no-concordantes adyacentes
Esta es la versión alterna actual, la cual trabaja con BNC adyacentes. Veremos más adelante un ejemplo de los árboles generados por este
algoritmo.
Inicio:
Definimos una matriz M de n X n donde nea el número de secuencias
Definimos S como el conjunto de secuencias de ADN.
Definimos el tamaño mínimo de los mini-arreglos de BNC, a explorar. E ~3 Definimos Pm como la probabilidad de mutación
Definimos Pe como la probabilidad de cruzamiento Ciclo principal:
Para cada pareja de secuencias Sij l. Realizar una alineación global y almacenar las posiciones de las bases
no-concordantes en BNC . 2 . contador = O
P 42r+I 3. Generar población inicial de r tablas cada una, con reglas.
4 . Para cada BNCi i
si i = con sec utivo(i-1)
Entonces, BNCi Se anexa a un miniarreglo mBNC _ temp De lo contrario,
si mBNC _ temp anterior ~ E
Entonces, mBNC _ temp se anexa a mBNC se comienza un nuevo miniarreglo mBNC _ temp
s. Mientras no se alcance el optimo y contador< Número Generaciones
Para cada mBNCi i
Ejecutar m interaciones de Pr
Si mBNCi alcanza el estado deseado
Bncresueltas = Bncresueltas + 1 Seleccionar P, con mayor aptitud Max(Bncresueltas)
Cruzar Pr seleccionadas con probabilidad de cruzamiento Pe . Los
descendientes puede mutar con una probabilidad de Pm si Bncresueltas = Total BNC
Terminar ciclo local.
contador = contador + 1 6. Asignar puntajeif = Bncresueltas
7. Repetir paso 4 para Sji
a . Bncresueltas = O 9. Asignar puntajeji = Bncresueltas
Si i = j entonces, M ij = Mji = O
De lo contrario' Si puntaje ji < puntajeij entonces' M ij = M ji = punta je ji
De lo contrario M ij = M ji = puntajeij Terminación:
Ejecutar Algoritmo Neighbor-Joining conM .
93
REFERENCIAS
[1] GARDNER, E.J.;SIMMONS, M.J.; SNUSTAD, D.P., Principios de genética.Traducido por A.Santana Calderón. Editorial Limusa, 1998.
[2] BURNS, G.W. The science of genetics. Editorial Macmillan, 1989.
[3] ALEXANDER, P. et al. Biology: the living world.Annotated teacher's ed. Editorial Prentice Hall, 1989.
[4] LEWIN, B., Genes. 2a. ed. Editorial Reverté, S.A., 1993. Vol I.
[5] BALDI, P., BRUNAK, S., Bioinformatics: the machine learning approach. Editorial MIT Press, Cambridge MA, 1998.
[6] DURBIN, R. et al. Biological sequence analysis: probabalistic models of proteins and nuc/eic acids. Editorial Cambridge University Press, 1998.
[7] BAXEV ANIS, A.D., OUELLETTE, B.F.F., Bioinformatics. A Practica/ Guide to the Analysis of Genes and Proteins. 2a. ed. Editorial Wiley-Interscience 2001
[8] Center for lnformation Biology and DNA Data Bank of Japan. DDBJ Homepage. [ en línea]. 1111 Yata, Mishima, 411-8540, Japan. [Japón].Actualizado: 9 de agosto de 2001. <http://www.ddbj.nig.ac.jp/> [Consulta: 30 noviembre 2001].
[9] The European Molecular Biology Laboratory. EMBL - European Molecular Biology Laboratory. [ en línea]. Meyerhofstr. 1, 69117 Heidelberg, Germany. [Alemania]. < http://www.embl.org/> [Consulta: 30 noviembre 2001].
[10] National Center ofBiotechnology lnformation. GenBank Overview.[en línea]. 8600 Rockville Pike Bethesda, MD 20894. [Estados Unidos]. Actualizado: 31 octubre 2001. <http://www.ncbi.nlm.nih.gov/Genbank/Genbanküverview.html> [Consulta: 30 noviembre 2001].
[11] GDB(MR) Human Genome Database [base de datos en línea). Toronto (Ontario, Canada): The Hospital for Sick Children, Baltimore (Maryland, USA): Johns Hopkins University, 1990-. Actualizada diariamente. <http://www.gdb.org/> [Consulta: 30 noviembre 2001].
[12] Mouse Genome Database (MGD), Mouse Genome Informatics Web Site, The Jackson Laboratory, Bar Harbor, Maine. [Estados Unidos]. Actualizado: 27 noviembre 2001 <http://www.infonnatics.jax.org/>. [Consulta: 25 noviembre 2001].
[13] LEWIS, R., Part 4: Evolution of life. Editorial Wm. C. Brown Publishers, 1992.
94
[14] MORTHOLT, E., BRANDWEIN, P.F., A sourcebookfor the bio/ogical sciences. 3a Ed. Editorial Harcourt Brace Jovanovich, 1986.
[15] FAUSSETT, L. V., Fundamentals of neural networks: architectures, algorithms, and applications. Editorial Prentice-Hall, 1994.
[16] WOLFRAM, S., Cellular automata and complexity: collected papers. Editorial Addison-Wesley Pub. Co., 1994.
[17] TOFFOLI, T.; MARGOLUS, N., Cellular automata machines: a new enviroment for modeling. Editorial MIT Press, 1987.
[18] WEISBUCH, G., Complex systems dynamics: an introduction to automata networks. Vol. 11. Traducido por Ryckebusch, S., Addison-Wesley Pub. Co., 1991.
[19] GOLDBERG, D. E., Genetic a/gorithms in search, optimization, and machine /earning. Addison-WesleyPub. Co., 1989.
[20] SIPPER, M., Evolution of Para/le/ Cellular Machines. Editorial Springer-Verlag, 1997.
[21] HOPCROFT, J.E.; ULLMAN, J. D., Introduction to automata theory, /anguages, and computation. 2a. Edicion. Addison-Wesley, 2001.
[22] ZBIGNIEW, M., Genetic algorithms + data structures = evolution programs. 3a Edicion. Editorial Springer-Verlag, 1996.
[23] HOLLAND, J.H., Adaptation in Natural and Artificial Systems. Editorial University of Michigan Press, 1975.
[24] GRAUR, D.; Li W., Fundamentals of molecular evolution. 2a. Edición. Editorial Sinauer Associates. 1999.
[25] GUSFIELD, D., Algorithms on strings, trees and sequences: computer science and computational biology. Editorial Cambridge University Press. 1997.
[26] MOUNT, D., Bionformatics: sequence and genome analysis. Editorial Cold Spring Harbor Laboratory Press, New York. 2001.
[27] D.M. P AGE, R., C. HOLMES, E., Molecular Evolution. Editorial Blackwell Science. 1998.
[28] S. KLUG, W., R. CUMMINGS, M., Conceptos de Genética. Editorial Prentice Hall Iberia. 1999.
[29] J. RUSSELL, P., Fundamentals of genetics. Editorial Addison Wesley Longman. 2000.
95
(30] Mitchell, M., An introduction to genetic algorithms. Editorial "A Bradford Book" MIT Press. 1998.
(31] Xiaoqiu Huang 1992. A GLOBAL ALIGNMENT PROGRAM (GAP). Department of Computer Science. Michigan Technological University Houghton, Michigan.( cited 3 April 2002]. Available from World Wide Web: <ftp://cs.mtu.edu/pub/huang/> (32] NEIGHborr-joining, Phylip
(32] Felsenstein, J. 1993. PHYLIP (Phylogeny lnference Package) version 3.5c. Distributed by the author. Department of Genetics, University of Washington, Seattle. updated 10 August 2001 [cited 3 April 2002]. Program. NeighborJoining and UPGMA Methods. Accession no. 8317. Available from World Wide Web: <http://evolution.genetics.washington.edu/phylip/getme.html>
[33] Thompson, J.D., Higgins, D.G. and Gibson, T.J. 1997. Clustal W version 1.7. Multiple sequence alignment program. European Molecular Biology Laboratory. Heidelberg, Germany [ cited 3 April 2002]. available from World Wide Web: <ftp.ebi.ac.uk >]
96