104
INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY CAMPUS ESTADO DE MÉXICO .... __ . 't'J31011812 ANÁLISIS SINTÁCTICO DE BIOSECUENCIAS •• Trabajo de investigación que, para obtener el grado de MAESTRO EN CIENCIAS COMPUTACIONALES presentó lng. Maricela Quintana López Siendo integrado el jurado por Dr. Antonio Quiroz: Presidente Dr. Osear Chavoya Aceves: Secretario Dr. Miguel Ángel Jiménez Montaño: Sinodal y asesor Julio de 1993.

Análisis sintáctico de biosecuencias

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Análisis sintáctico de biosecuencias

INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY

CAMPUS ESTADO DE MÉXICO

.... __ .

't'J31011812

ANÁLISIS SINTÁCTICO DE BIOSECUENCIAS

•• Trabajo de investigación que, para obtener el grado de

MAESTRO EN CIENCIAS COMPUTACIONALES

presentó lng. Maricela Quintana López

Siendo integrado el jurado por

Dr. Antonio Quiroz: Presidente

Dr. Osear Chavoya Aceves: Secretario

Dr. Miguel Ángel Jiménez Montaño: Sinodal y asesor

Julio de 1993.

Page 2: Análisis sintáctico de biosecuencias

CONTENIDO

Introducción 1

1. Lenguajes y Gramáticas 4

2. Complejidad 8 2. 1 Generalidades 8 2.2 Complejidad gramatical 10 2.3 Entropía empírica 13 2.4 Complejidad por segmentos 14

3. Análisis de secuencias binarias 17 3 .1 Introducción 1 7 3.2 Análisis de la complejidad gramatical 18 3.3 Análisis de la entropía empírica y la complejidad gramatical 28

4. Análisis de biosecuencias 31

5. Otros desan·ollos de software 38 5.1 Representación utilizando codones 38 5 .2 Representación utilizando el perfil de hidropatía 40

6. Conclusiones 44

Referencias 47

Bibliografia 49

Apéndice A Descripción de los sistemas 50

Apéndice B Secuencias analizadas 70

Apéndice C Resultados del análisis de secuencias bc:ta-gamma-épsilon 72

iv

Page 3: Análisis sintáctico de biosecuencias

INTRODUCCIÓN.

Como es bien sabido, la infmmación genética se encuentra codificada en los ácidos nucleicos que, durante el proceso evolutivo, sufren diversos cambios: mutaciones puntuales, cruzamiento desigual, inserciones y eliminaciones, cambios del marco de lectura, y la acción de otros tantos mecanismos de edición del lenguaje genético. Esta información se traduce a proteínas a través del código genético, cuya estructura es más complicada de lo que se supone normalmente[ 1]. La relación entre la secuencia p1imaria y la estructura tridimensional de la proteína ("la segunda parte del código genético") hasta la fecha no ha sido totalmente descifrada y es en este nivel, el de la molécula espacialmente plegada, donde actúa la selección natural, como apropiadamente lo ha enfatizado Zucker Kandl: sólo hay selección donde hay función biológica, que evidentemente está determinada por la estructura química de las moléculas. Sin embargo, no es el propósito de este trabajo estudiar la relación entre la estructura química y la función biológica, sino más bien la caracterización del conjunto de secuencias que son compatibles con una estructura tridimensional dada, problema al que se ha llamado el problema inverso del doblamiento proteínico[2], y que puede ser tan importante como el anterior, ya que finalmente la función biológica está codificada en la llnformación genética y de alguna manera se proyecta en el lenguaje genético, que constituye por tanto una de sus representaciones fonnales y aún más, la selección que actúa, es cierto, a un nivel más allto, finalmente se refleja en la información genética primaria.

La comprensión de la estructura de las macromoléculas biológicas, tales como las proteínas y los ácidos nucleicos, requiere de la consideración de secuencias simbólicas, la mayoría de longitud demasiado grande para que sea posible analizarlas m,~diante técnicas heurísticas comunes y corrientes en los seres humanos. Sin embargo, este importante aspecto de la Biología Molecular y la Ingeniería Genética puede plantearse razonablemente dentro del marco de la Teoría de Lenguajes Formales.

Aunque resulta evidente, dados los hechos experimentales, que los genes son moléculas informacionales, ya que codifican a las proteínas, que son los elementos estructurales y funcionales de la célula, la localización de dicha información en la secuencia genética ha resultado ser particularmente elusiva, por ejemplo, se sabe que existen proteínas lejanamente relacionadas que presentan estructuras tridimensionales semejantes y que tienen una identidad en secuencia cercana al lOo/o [3,4], por consiguiente, de la comparación directa de

Page 4: Análisis sintáctico de biosecuencias

las secuencias no podría inferirse que codifican funciones semejantes y, por lo tanto, que portan informaciones parecidas. También se presenta el caso contrario de secuencias cuyas distancias de Hamming son pequeñas y que sin embargo, codifican proteínas que realizan funciones muy diferentes[5].

La forma en que la secuencia genética porta información ( cualquiera que sea el significado de esto último), siguiendo a Harris en su discusión de los lenguajes naturales, puede descubrirse a partir de la relación, inve:rsa, entre información y redundancia o predictibilidad, es decir, estudiando el lenguaje con referencia al lenguaje mismo, utilizando un metalenguaje de propósito general, como el de la estadística matemática: explotando las "desviaciones de la aleatoriedad" que existen en el lenguaje objeto. Distinguir primero los elementos básicos y después determinar las estructuras (patrones repetitivos) que contiene. En los lenguajes naturales se emplea la redundancia con propósitos informacionales: los elementos dd lenguaje no ocurren en forma aleatoria unos con respecto a otros. En palabras de Harris: " ... Los componentes que entran en la estructura son los componentes que entran en el producto ... ". De otra manera: como la función biológica (significado) sólo se manifiesta al interactuar la proteína, que es un objeto tridimensional complejo, con otras moléculas, no ha sido posible hasta ahora explicarla a partir de la secuencia de aminoácidos, que constituyen la llamada estn1ctura primaria. Es necesario establecer primero las reglas que determinan la fonna en que las subsecuencias (palabras) condicionan el texto proteínico, dichas reglas constituyen la estructura sintáctica.

La realización del programa anterior, implica el estudio de las secuencias biológicas clasificándolas según su complejidad, para dar sentido cuantitativo al concepto poco claro de "desviaciones de la aleatoriedad", para lo cual se requiere tanto de una definición rigurosa de la complejidad[6], que conduzca al establecimiento de una medida cuantitativa de la misma, como del desarrollo de algoritmos para su determinación, que generalmente implican el "análisis" propiamente dicho de las cadenas. Puesto que se pretende utilizar un enfoque estadístico ( de estadística paramétrica, en un sentido muy amplio[ con regresión simbólica]) es necesario hacer modelos: una secuencia es más ó menos compleja dentro de un marco teórico, específicamente diseñado para el análisis de la complejidad[?], por lo cual es de esperarse que: existan diversas opciones. Algunas medidas de complejidad son: la complejidad de Kolmogorov( definida como la descripción más corta de una secuencia), la complejidad por

2

Page 5: Análisis sintáctico de biosecuencias

segmentos c(S), la entropía empírica de Shannon H(S) y la complejidad

gramatical KG(S) [8].

Dado que un conjunto de biosecuencias constituye un lenguaje formal, que puede ser generado por una gramática cuyas producciones describen los elementos estructurales del le:nguaje, la jerarquía de Chomsky produce una familia de modeios computacionales, para el análisis de la complejidad. La clase de gramáticas de estructura de frase de tipo O, constituye un conjunto muy amplio, ¿más de lo necesario? (actualmente se conocen sistemas computacionales [ computación en el continuo] que penmiten calcular cualquier función parcial, aunque no sea recursiva), para resolver el problema de la generación de se:cuencias individuales. De hecho, un lenguaje formal con un solo elemento, o con un número finito de ellos, es un lenguaje regular y se puede reconocer mediante un autómata finito determinista y generar mediante una gramática de estructura de frase de tipo 3. Sin embargo encontraremos conveniente utilizar, siguiendo a Ebeling y Jiménez Montaño gramáticas libres del contexto para definir la complejidad gramatical de una secuencia.

En el primer capítulo de este trabajo se hace una exposición sucinta de elementos de la teoría de lenguajes formales, que se extiende al capítulo segundo donde se estudia el concepto de complejidad gramatical. En el capítulo dos, también se exponen los conceptos de entropía empírica y complejidad por segmentos. En el capítulo tercero se aplican los conceptos anteriores, y un sistema computacional previamente diseñado para d análisis sintáctico de secuencias, al análisis de familias de secuencias binarias. En el capítulo cuatro se presenta un estudio de secuencias de globinas beta, gamma y épsilon y finalmente, en e:l quinto, se presentan otros desarrollos de software.

3

Page 6: Análisis sintáctico de biosecuencias

l. LENGUAJES Y GRAMÁTICAS

La teoría de lenguajes formales estudia los procedimientos de especificación, reconocimiento y manipulación de conjuntos de secuencias de símbolos (lenguajes), con un vocabulario básico. Formalmente: a partir de un conjunto finito de símbolos L, conocido como alfabeto o vocabulario, se define el conjunto de funciones L+ en la forma:

(1)

o equivalentemente: L+ es el conjunto de todas las sucesiones finitas con términos en L . Para referimos a los elementos de L +, usamos comúnmente el

conjunto ordenado de valores de la sucesión que le corresponde. Así, si f EL+

y f = g: [ 1, · · ·, n] ---:~ L, podemos especificar la identidad de f mediante la tupla

(g(I),···,g(n)) de longitud /(f) = n, llamado secuencia, cadena, palabra o string,

o eliminando algunos metasímbolos, así: g(I)··· g(n). Para fines del análisis es conveniente suponer la existencia de una tupla de longi1ud cero, conocido como secuencia nula, que denotaremos aquí mediante el metasímbolo t:. Resulta natural definir luego la cerradura·de Kleene de L:

(2)

Se puede conve11ir el conjunto L. en una estructura algebraica, conocida como semigrupo, introduciendo la operación de concatenación:

(e ···e ) o (e'··· e')= e ···e e'··· e' 11 n 11 m 11 n 11 m

que tendrá importancia en la exposición sucesiva.

(3)

Un lenguaje formal con el alfabeto L, o sobre L, es simplemente: un subconjunto, cualquier subconjunto, de L •.

4

Page 7: Análisis sintáctico de biosecuencias

La noción de lenguaje formal es de aplicación muy general, en tanto que, en las ciencias computacionales como en cualesquiera otras, surge con frecuencia la necesidad de estudiar la "estructura" de conjuntos de símbolos, ordenados en secuencias ya sea por sus posiciones relativas, o por el orden temporal de eventos relacionados con su aparición. En la medida en que el análisis tiene mucho que ver con el descubrimiento de categorías y representaciones esquemáticas de 1~stos objetos, se ve la necesidad de diseñar procedimientos de especificación de los elementos de un lenguaje formal, suficientemente generales para que tengan un valor práctico, para lo cual, rápidamente se agotan los recursos del lenguaje natural.

Hay dos métodos para especificar finitamente un lenguaje: generación y reconocimiento, basados en dos formalismos matemáticos, diferentes pero relacionados: la teoría de gramáticas de estructura de frase y la de autómatas finitos.

Una gramática ~:s una tupla b = (N,I,S,P) donde:

• N es un conjunto finito de símbolos no terminales,

• res el conjw1to de símbolos terminales (InN = 0),

• S EN, es un símbolo especial, llamado símbolo inicial y

• Pc(Nu"i,)" x(NuI)° es 1m conjunto finito.

Los elementos de P se conocen como reglas de producción y se especifican en

la forma a~/3 (aE(NuI)°,/3E(NuI)"). El conjunto P induce una relación

binaria en (N u I)° :

(µ => v) <::> ((:ir' E(Nu I)" )(:ir2 E(N U I)" )(:la~ /3 E P)(µ = r' Oªº y2) /\ V= r' 0/30 r2)

(4)

cuya cerradura transitiva permite definir un lenguaje formal mediante el axioma de especificación de la teoría de conjuntos:

5

Page 8: Análisis sintáctico de biosecuencias

i(b) = {a El:° IS~· a} (5)

Es decir, una palabra a E L. pertenece al lenguaje formal generado por la

gramática JJ = ( N, :t::, S, P) si y sólo si se existe una secuencia de relaciones:

S=a ~--·~a =a O n

(6)

conocida como d1~rivación de a a partir del símbolo inicial S .

Una gramática es una especificación finita de un lenguaje. El problema de determinar si una secuencia es ó no derivable a partir del símbolo inicial de una gramática, es decidible, por lo tanto, la noción de lenguaje generado por una gramática h está bien definida. Para especificar un lenguaje 1 es suficiente determinar una gramática que lo genere, que puede no existir en algunos casos, de hecho en la mayoría.

Se dice que una gramática JJ = ( N, L, S, P) es de tipo i si y sólo si satisface condición i:

O. Sin restricciones,

1 Las reglas de producción son de la forma azp~ ayj.1, a,Z,p,(y-:t:- e) E(Nu Lr.

Es decir, z se sustituye por r solamente si es precedida por a y le sucede p (gramáticas sensibles al contexto).

2. Cada producción en P es de la forma Z ~ y, donde Z EN,y E(NuL).

(gramáticas libres de contexto).

3 Las reglas de producción en P son de la forma: Z ~ aB v Z ~ a v Z ~ e

donde Z,B EN, a E L. (gramáticas regulares).

La descripción de las restricciones es tal que las gramáticas de tipo i son a su vez gramáticas de tipo J, siempre que J ~ i y por lo tanto, se tiene una jerarquía

6

Page 9: Análisis sintáctico de biosecuencias

de gramáticas que induce una jerarquía de lenguajes, conocida como jerarquía de Chomsky.

Los lenguajes de la jerarquía de Chomsky pueden definirse, alternativamente, mediante autómatas ( con el modelo de reconocimiento): máquinas de Turing (para lenguajes de tipo O), autómatas push down (lenguajes libres de contexto) y autómatas finitos (lenguajes regulares). Un autómata es un "dispositivo" que puede acceder a determinado número de estados internos, descritos mediante la enumeración exhaustiva o a través del contenido de una memoria infinita ( una pila para autómatas push down y una memoria de acceso secuencial para máquinas de Turing) que se administra en forma espe:eífica, dependiente del tipo de autómata.

Un conjunto dado de biosecuencias ( proteínas, genes de una misma familia: globinas, citocromos, inmunoglobulinas, etc.), constituye un lenguaje biológico, para cuyo análisis es posible utilizar una gramática como vehículo formal. El estudio de las regularidades en el conjunto de reglas de producción puede conducir a ampliar nuestros conocimientos sobre sus características estructurales y funcionales. En este trabajo se utiliza para este fin el método de generación, con gramáticas libres de contexto reducibles a gramáticas regulares o de tipo 3.

7

Page 10: Análisis sintáctico de biosecuencias

2. COMPLEJIDAD

2.1 Generalidades. Las consideraciones de complej:tdad juegan un papel significativo en casi todas las áreas de las ciencias computacionales, especialmente en las más fom1ales, como la teoría de lenguajes, inteligencia artificial y reconocimiento de patrones. En el ámbito del análisis de secuencias, la visión generalizada se centra en la idea, poco clara, de aleatoriedad, que se refiere, más que a la secuencia misma, a su descripción en un metalenguaje, en el que se expresan las propiedades que caracterizan su regularidad:

• Se dice que una secuencia finita es aleatoria si la descripción más corta ( en términos de un programa para generarla) no es más corta que la secuencia misma.

• Se dice que una secuencia infinita es aleatoria si existe una infinidad de sus segmentos iniciales que son aleatorios.

Así, los primeros trabajos en esta área relacionan la noción de complejidad de una secuencia, con el número de símbolos binarios nect:sarios para especificar un algoritmo generador de la misma. Puesto que una secuencia puede ser generada por diversos algoritmos, esta especificación no es completa; se puede obtener una definJición unívoca al considerar, con Kolmogorov [6], la longitud del programa generador (binario) más corto, dado un conjunto, arbitrario pero fijo, de microinstrucciones. Aunque con esta definición la magnitud absoluta de la medida de complejidad resulta dependiente de la computadora, las magnitudes relativas, sobre todo para secuencias grandes, son más o menos invariantes. La complejidad de Kolmogorov y Chaitin[6], por ejemplo, se define como el número mínimo de símbolos binarios necesarios para la especificación de una máquina de Turing que genera una secuencia particular. Sin embargo, la medida de complejidad que así se obtiene no es computable, es decir: no existe un algoritmo para su determinación y, en realidad, 11

••• no existe una medida de complejidad computable, universal y exhaustiva. Cada medida describe solo cie:rtos aspectos de la complejidad re.al de la secuencia ... 11

Ebeling, Feistel y Herzel[l O].

8

Page 11: Análisis sintáctico de biosecuencias

Según nuestro punto de vista, se puede hacer una virtud de la necesidad, al utilizar diferentes medidas de complejidad como procedimientos para determinación de: características numéricas, que puedan utilizarse para el análisis de conjuntos de secuencias, mediante las técnicas comunes y corrientes, de reconocimiento de patrones [ 11].

Se distinguen dos tipos generales de medidas gramaticales (computacionales) de la complejidad de secuencias, que corresponden a las dos medidas principales de complejidad computacional:

l. Medidas definicionales o estáticas. Se define la complejidad de una secuencia a partir del tamaño de la gramática requerida para generarla ( complejidad espacial).

2. Medidas dinámicas. Para la definición de la complejidad de una secuencia se utiliza el número de derivaciones necesarias para generarla a partir de una gramática, ( complejidad temporal).

Aunque el concepto de tamaño es muy estable y se aplica a cualquier esquema, al utilizar las medidas estáticas es necesario restringir las posibles gramáticas, ya sea a las regulares o a las libres de contexto, ya que como se apuntó anteriormente la medida de complejidad de Kolmogorov, que correspondería al uso de gramáticas generales de estructura de frase, no es computable. Por ejemplo, para Ebding et al[8] y Chavoya et al[9], que utilizan gramáticas libres de contexto: " ... la complejidad de una secuencia se define en términos de la complejidad espacial de un procedimiento de generación, de la secuencia y sólo de ella". Lo mismo se puede decir de las medidas dinámicas.

Existen ademas de las medidas de complejidad gramatical las medidas estadísticas que se utilizan para calcular la complejidad de una secuencia, por ejemplo: dentro de la teoría matemática de la información, que es una teoría estadística, la entropía empírica de Shannon y la compkjidad por segmentos de Lempel y Ziv [12].

9

Page 12: Análisis sintáctico de biosecuencias

2.2 Complejidad Gramatical. Ebeling y Jiménez Montaño [8] e independientemente Papentin [13], introdujeron una medida de la complejidad, inspirada en la definición de Kolmogorov. Se replantea el problema del cálculo de la complejidad de secuencias con gramáticas libres de contexto, y se define la complejidad a partir de:l número de símbolos necesarios para la especificación de éstas.

Considérese la familia de gramáticas libres de contexto

3( w) = { b = ( N, I., S, P) IS => • w} que generan la palabra w, llamadas "programas"

o "descripciones" de w.

A cada uno de los elementos de esta familia se asocia una medida de complejidad que se obtiene adicionando las complejidades de sus reglas de producción, que a su vez se definen de la siguiente manera:

m

K( z ---+ r) = ¿ [ Iog2 ( vi)] + I, i=l

(7)

donde los coeficientes vi se obtienen de la factorización de r como concatenación de: subsecuencias de símbolos idénticos (runs):

VI Vm r=c o- .. oc 11 1m

(8)

y [ x] es la función parte entera.

También puede utilizarse la función:

[x]:g = min{n EN In> Ordog(x) sn} (9)

Finalmente la estimación de la. complejidad de la secuencia original es:

KG ( w) = Min( KG / b ---+ w) (10)

10

Page 13: Análisis sintáctico de biosecuencias

Para caracterizar el grado de compresión de m1a secuencia, se introduce en analogía con la redundancia de Shannon, la redundancia gramatical:

KG(w) RG(w) = 1- ( ) Kmax W

(11)

donde K""' (w) = mm{!( w ), I( w l + 1

+ n'}, y A es la cardinalidad del alfabeto.

Evidentemente, una medida de complejidad gramatical es una herramienta para poner sobre una base teórica el concepto de comparación de secuencias para la definición de características similares, para estos fines, no tienen importancia los valores absolutos de la complejidad, sino sus magnitudes relativas. En este sentido la medida de Ebeling et al representa una estimación de la medida de

Kolmogorov. En ,efecto, [log2 ( v;)]+ 1 es el número mínimo de bits requeridos

para la representación del entero ";, sin embargo, no se considera la necesidad de usar símbolos delimitadores y el hecho de que al aumentar el número de símbolos en la gramática generadora, lo cual sucede como consecuencia de la necesidad de definir símbolos no terminales, se requieren más y más bits para representarlos. Por ejemplo, para la generación de la secuencia, 0101010101010101 se utiliza, para el cálculo de la complejidad, la gramática:

S~BBBB

B~AA

A~Ol

obteniéndose KG(o101010101010101) = 7. Utilizando la codificación binaria:

0~1

1 ~01

;~001

#~ 0001

END ~00001

11

Page 14: Análisis sintáctico de biosecuencias

Y la correspondencia:

o~o l~ 1

A~2

B~3

s~4 5; 3;4;4;3#3;2;2#2; l; O; l; IEND

que indica: hay cinco símbolos; tres no terminales; el símbolo 4 º se sustituye por cuatro símbolos 3º; el símbolo 3º se sustituye por dos símbolos 2º; el símbolo 2º se sustituye por un símbolo Oº; seguido de un símbolo 1 º, se codificaría en la forma:

5 3 4 4 3 # 3 2 2 01101 001 0101 001 0111 001 0111 001 0101 0001 0101 001 011 001 011 # 2 1 ; O ; 1 ; 1 END 0001 011 001 01 001 1 001 01 001 01 00001

que requiere ochenta y cuatro bits, más de cinco veces mayor que el número de símbolos en la st:cuencia original. Si se usa en cambio la gramática:

A~Ol

S~AAAAAAAA

(una expresión más cercana a la del lenguaje natural: "ocho pares 01 "), se obtiene la repres1;!ntación:

4·'"1·3·8·2#2· l ·O· l · lEND ,~' ' ' ' ' ' '

4 2 3 8 2 # 2 1; O; 1 0111 001 011 001 0101 001 01111 001 011 0001 011 001 01 001 1 001 01

1 END 001 01 00001, de 61 bits.

12

Page 15: Análisis sintáctico de biosecuencias

Por lo que indica este sencillo ejemplo, el método de Ebeling et al para la estimación de la complejidad de Kolmogorov, dentro de los límites de los lenguajes libres de contexto, admite aún refinamientos significativos. Después de todo la extracción de características en este algoritmo, toma en cuenta una función de mérito muy sencilla, que como vemos se puede mejorar bastante (pagando la cuota de complejidad temporal) lo cual hemos decidido dejar para un trabajo posterior.

2.3 Entropía Empírica. La entropía empírica de Shannon H(s) de una

secuencia s , con un alfabeto finito L = { c1, .. ·, cJ, se determina por las frecuencias de aparición m de los diferentes símbolos en s :

k

H(s) = -L m; ln(m,) i=I

(12)

Esta medida es ele uso muy frecuente, pero la diferenciación que produce es pobre, debido a que la mayoría de las secuencias contienen, aproximadamente, la misma información por símbolo, es decir, aunque puede utilizarse como función discriminante, no permite distinguir secuencias de la misma compos1c1on. Por ejemplo, las secuencias: 0000000011111111 y 0001O11001 O 111 O 1 se clasificarían en la misma catc:goría; sin embargo, es obvio que la descripción de la primera, con cualquier definición razonable del metalenguaje, es más corta que la de la segunda. Al considerar secuencias binarias aleatorias ( ceros y unos igualmente probables ), de longitud fija l, el número de ceros en una secuencia es una variable aleatoria binomialmente

distribuida, con valor esperado !__ y varianza !__, de manera que la fluctuación 2 4

relativa es } , que tiende a cero en límite de grandes longitudes. La ley de los

grandes números nos indica entonces que, en este límite, la mayoría de las secuencias tienen composición cercana a la composición media, de máxima entropía. Para superar esta deficiencia se puede utilizar la complejidad por

segmentos c(S), que relaciona la noción de complejidad con la repetición de patrones en la secuencia.

13

Page 16: Análisis sintáctico de biosecuencias

2.4 Complejidad por segmentos. La complejidad por segmentos asocia la complejidad de una secuencia con la formación paulatina de nuevos patrones a lo largo de la secuencia.

Para describir el mecanismo de cálculo de la complejidad, es necesario conocer la siguiente notación, algunas definiciones e interpretaciones:

• S(i ,J) es un substring de S que inicia en la posición ; y termina en la J.

• S = QR es la concatenación de Q y R.

• Q es llamado un prefijo d(: S y este una extensión de Q si existe un entero i , de manera que, Q = S(I,i).

• Un prefijo Q y su extensión S son propios si /(Q) < l(S). Cuando la longitud de una secuencia S no se especifica explícitamente, es conveniente identificar los prefijos de S por medio de un operador especial 1r de acuerdo

con S7t = S(l,l(S)-/(i)), i = 0,1, .... En particular S1rº == S y Sd = e si ; ~ /(S),

donde e es la palabra nula.

• El vocabulario de una secuencia S, denotado por v(S), es el conjunto formado por todos los substrings S(i,J) de S .

• Una palabra Q E v(S) es eigenpalabra de S, si Q no pertenece al vocabulario de ningún prefijo propio de S.

• El conjunto de eigenpalabras de S denotado por e(S) es su eigenvocabulario.

Una secuencia S extendida por la concatenación de runa de sus palabras W,

R = SW puede ser vista como obtenida de S a través d,;! un procedimiento de

copia por el que r.n+/(S) = w m es copiado de si+m-1' m = 1, 2, ... 'j - i + 1. De la misma manera, el procedimiento recursivo de copia puede ser aplicado para generar una extensión R = SQ de S, lo cual está garantizado para cualquier palabra en v(S) . El único requisito es que Q sea un elemento de v(SQ1r) = v(R1r). El que Q Ev(R1r) implica la existencia de un entero positivo p ~ /(S), tal que

q; = rp+;-i, i = 1,2, ... ,/(Q).

14

Page 17: Análisis sintáctico de biosecuencias

Una extensión R = SQ de S es reproducible de S, denotado por S ~ R, si Q E v(R;r). La posición p de S, tal que Q = R(p,l(Q) + p-1) es el apuntador para la reproducción S ~ R.

Una secuencia no nula se dice producible de su prefijo S(l,J), si S(l,J) ~ S;r y J ~ l(S). La producción de S a partir de S(l,J) se denota por S(l,J) => S, y S(l,J) es una base de S.

La diferencia entre la producción y la reproducción, es más clara en el contexto del proceso recursivo de copia que caracteriza al último. Además de la copia, la producción pemtite agregar w1 símbolo al final del proceso de copia. Entonces

si R=SQ y S~·R, existe p:~/(S) tal que q;=rp+;-i, i=l,2, ... ,/(Q)-l, pero el

último símbolo de Q no es necesario que sea igual a rp+l<Q)-i •

Una secuencia no nula S, puede ser vista como una producción de algún prefijo propio de S, lo que sugiere la interpretación de Q => S como un mecanismo para generar S a. partir de Q. De hecho, cualquier secuencia finita no nula S puede interpretarse como el producto final de un proceso iterativo de construcción del vocabulario, el cual, en su primer paso, realiza &= S(l,O) => S(l,l) = S1 y, habiendo producido S(l,h;) a partir de su base en el paso i , realiza S(l,h;) => S(l,h;+i), y así sucesivamente hasta después /(S) pasos, cuando se ha producido completamente a S. Este mecanismo de generación de S se denomina proceso de producción de S y el substring obtenido en el paso i : S(l,I~) es el iésimo estado del proceso.

Finalmente, la medida de complejidad por segmentos se: calcula de la siguiente manera:

Dado un proceso de producción (m pasos) de la secuencia S y sea S(l,11¡), i = 1,2, ... ,mi = 1,2, ... m los m estados del proceso(h¡ = 1 y hm = /(S)). El análisis de Sen

H(S) = S(I,h¡)S(h¡ + l,f;J .. S(h,,,_1 + 1,hm) (13)

es la historia de S y las m palabras H;(S) = S(hi-1 + l,h;), i = 1,2, ... ,m donde h0 = o, son los componentes de H ( S) .

15

Page 18: Análisis sintáctico de biosecuencias

Sea cH(S) el número de componentes de una historia H(S) de S, entonces se define la medida de complejidad c(S):

(14)

El mínimo se aplica sobre todas las historias de S, es decir, c(S) es el menor número de pasos en que se puede generar S conforme las reglas de un proceso de producción[l2].

En este trabajo se utiliza la medida gramatical de Ebeling y Jiménez Montaño, así como la entropía empírica de Shannon, para el análisis de secuencias binarias y de biosecuencias. Se hace ver que son medidas independientes de la complejidad y por lo tanto útiles para la separación de patrones simbólicos en categorías complementarias.

16

Page 19: Análisis sintáctico de biosecuencias

3. ANÁLISIS DE SECUENCIAS BINARIAS

3.1 Introducción. Las secuencias biológicas se describen en términos de bases (ADN o ARI\í) o aminoácidos con alfabetos de 4 y 20 símbolos respectivamente. Puesto que el número de secuencias distintas de longitud l

formadas mediante un alfabeto de b símbolos es b1, es dificil realizar un estudio

exhaustivo de las biosecuencias de longitud n cuando n es suficientemente grande para que tenga sentido el análisis de complejidad. Sin embargo, las secuencias biológicas se pueden codificar mediante alfabetos reducidos válidos[l4] que pueden ser binarios o terciarios.

Las bases del ADN(A, G, C y U) o ARN(A, G, C y T) se clasifican principalmente «;!n dos clases: purinas(R{A,G}) y pirimidinas(Y{U,C}), además, dentro de estos grupos se categorizan por el número de puentes de hidrógeno que requieren para formar la doble cadena del ADN como débiles(W) o fue1tes(S). Si se usa un bit para describir e:l tipo de una base(R, Y) y otro para los enlaces de hidrógeno(W,S) se obtiene la siguiente tabla:

Y(O) R(l)

W(O) U,T A

S(l) e G

Por lo tanto, las bases pueden codificarse empleando dos dígitos binarios U=OO, C=Ol, A=lO, G=ll(Robson y Greaney han propuesto una representación similar [15]). Dependiendo de los objetivos del análisis (si sólo se toma en cuenta una propiedad), es posible utilizar un bit, por ejemplo: 1 para las purinas, O para las pirimidinas o bien 1 para los enlaces fuertes y O para los débiles. Esta asignación aplicada a digramas (pares de bases sucesivas) ha sido utilizada por Cocho, Medrano y Miramontes[l6] para determinar la flexibilidad o rigidez, así como la suavidad o rugosidad de una secuencia.

Por otro lado, los aminoácidos se clasifican, por su hidrofobicidad (perfil de hidropatía), en: hidrófobos y no hidrófobos( estos últimos en neutrales e hidrófilos) lo cual requiere un bit para su representación ( ésta clasificación se utiliza en el programa sinpathy (SINtactic hidroP ATHY profile ), que se explicará más adelante). También se han usado alfabetos binarios para el estudio de protocolos psiquiátricos(Rapp et al. 1991 [ 17]) y de impulsos nerviosos(Rapp et al. 1993 [l 8]). De aquí la importancia que tiene para nosotros el concepto de complejidad gramatical en este contexto.

17

Page 20: Análisis sintáctico de biosecuencias

3.2 Análisis de la complejidad gramatical. Dada la naturaleza de las secuencias binarias, toda medida de la complejidad de las mismas debe ser invariante en el grupo generado por las operaciones de complemento e inversión que contiene cuatro elementos: la transformación identidad, el complemento, la inversión y conjugación inversa. Es fácil ver que la medida de Ebeling y Jiménez Montaño, que se basa en la consideración de la gramática libre de contexto de menor complejidad que genera a la secuencia, satisface esta condición, aunque la estimación que hace el algoriitmo grammar que utiliza una regla heurística para la definición de producciones una a una ( es un algoritmo de escalada de la colina), puede llegar a soluciones aproximadas que no son invariantes en este sentido.

Con la finalidad de hacer ver que la complejidad gramatical constituye una formalización razonable del concepto intuitivo de irregularidad o aleatoriedad, se ha hecho un análisis de la distribución y ordenación de secuencias de longitud fija (8, l 6, 32 y 100), según su complejidad gramatical, para lo cual utilizamos diversas adecuaciones del programa grammar.c de Chavoya et al (ver apéndice A).

Utilizando una muestra de 1024 cadenas de longitud 32 aleatoriamente generadas, con la opción de análisis de patrón corto de grammar.c, de las cuales seleccionamos al azar una de cada clase de complejidad ( a posteriori), se obtuvo la siguiente ordenación:

SECUENCIA 11101010101010101010101011001010 10101011011000101010110110100110 11001111001010101100110011001001 01001101101111001100110011100011 11001110110010110000010111011000 00110011111010101011011010000001 00010110100100111100101001100000 00011000101101100100101111111010 10100101100100011110101100011111

COMPLEJIDAD 14 15 16 17 18 19 20 21 22

Para el análisis dt: estas cadenas, se utilizaron desplazamientos aleatorios ( de igual longitud) generados por cada una de ellas, de manera que los l 's producen desplazamientos positivos y los O's negativos. Las figuras siguientes muestran el resultado para las clases de complejidad 14, 16, 18,, 20 y 22, en las que

18

Page 21: Análisis sintáctico de biosecuencias

podemos ver como el "grado de periodicidad" (en periodos pequeños) disminuye confonne aumenta su complejidad.

figura 1

figura 2

19

Page 22: Análisis sintáctico de biosecuencias

figura 3

figura 4

/

·,· . .· . ... ·... /---- . --------~------"·---------. .--'--------·

figura 5

}¡¡5/0 20

Page 23: Análisis sintáctico de biosecuencias

Por otro lado, al considerar el patrón largo bajo las mismas condiciones se obtuvieron los siguientes resultados:

SECUENCIA 10001011101110000110001011101110 11110001001000000011100000000011 11000000101000000011100111011100 10111010000010111011110100100101 11000011100000010100010101000100 00010001110111110010111011000001 10001010000010001111101010100001 11010001001111100001110011100110 10000001011001101110011101010101 01101011111110101011010111111101 01111001100100001010010110110000 00000010011001010110100100011100

COMPLEJIDAD 16 17 18 19 20 21 22 23 24 25 26 27

La representación gráfica de estas secuencias aparece ,en las figuras 6 a 1 O. Salvo por la secuencia de longitud 16, las figuras muestran, a primera vista, un aumento gradual en complejidad intuitiva, sin entender, naturalmente, en forma rigurosa al significado de este concepto. La secuencia de complejidad 16, representa (aproximadamente) una secuencia periódica de periodo 18, de manera que se distinguen en ella dos subsecuencias idénticas ( entre los símbolos 2 y 14 y 20 y 32) que corresponden a la subsecuencia 0001 O 111 O 111 O que está repetida. En la figura 7 se observan otros patrones repetidos de ascenso y descenso (más cortos) que corresponden a repeticiones en la secuencia, por ejemplo entre los símbolos 2 y 8 y 1] y 17 se encuentra la secuencia 1000000. En general, al aumentar la complejidad disminuye el tamaño de los bloques repetidos.

21

Page 24: Análisis sintáctico de biosecuencias

\ .. '';.. ·,;

l "•\ ... ,. · •• S!_,·

... /"-.. . ·· ..

"""'·· ....

, •.. ··· .. .,,,., -· ·-~-..

,i/· //

\.~

w. ..... . ,. __

-... Xi. _(+: '•,

':+·

·.,

'f

,. )+

¡'

....... .. \

\ ,; ·~

\ ,· ···l

.......... S¡ecuencia KG 'I 6

figura 6

f/. 7' ·· ..... _.,,. ·· .. . ,.

· .... ··.:.< ..

·« .. _.,..+,,

· .. -;,. , / ···· :.,;,,. .1-µ·

···· .. ~-/

figura 7

./··. ··lo<. ~-. ,,;,,1·

_.,..l' . ,,./

''Jl'Ji,"

figura 8

22

'f

';;

__ ,,... '+ . .···'(,

__ ,»: ., -~-·

·· .. ,~,--·

/ / , ...

•. ·' v'.

·-.. .,./ ·'

Page 25: Análisis sintáctico de biosecuencias

figura 9

figura 1 O

Para los histogramas de distribución se utilizaron todas las secuencias de longitud 8 y 16, en tanto que, en consideración a la disponibilidad de recursos de cómputo, para las cadenas de longitud 32 y 100 se usaron muestras aleatorias de 100000 y 50000, respectivamente (figuras 11 y 12).

23

Page 26: Análisis sintáctico de biosecuencias

SECUENCIAS BINARIAS LONGITUD 8 :roo

SECUENCIAS BINARIAS LONGITUD 16 30

150

< ü z ~100 ü w a: LL

50

25

-J: v15 :$ o ~10 :::;) ()

~ s

u. o 1 1 12

5 6 7 8 5 6 7 8 9 1 O 11 12 13 14 15 16

COMPLEJIDAD GRAMATICAL • PATRON CORTO I PATRON LARGO

figura 11

SECUENCIAS BINARIAS

TRIVIAL

LONGITUD 32

8000

1.

1819 21 25 32 19-34 66-94 COMPLEJIDAD GRAMATICAL

SEC GENERADAS10001lOALEATORIO SEC GENERADAS SOOOOALEATORIO

• PATHON CORTO I PATRON LARGO , TRIVIAL

figura 12

Las gráficas muestran una distribución unimodal y asimétrica, con frecuencias bajas (salvo en el caso de secuencias de longitud 8) en las clases de complejidad mínima y máxima, de acuerdo con que el concepto de complejidad tiene sentido en el límite de grandes longitudes, en el que la redundancia es mayor.

24

Page 27: Análisis sintáctico de biosecuencias

Los rangos de complejidad correspondientes a los diferentes métodos de análisis (patrón corto, largo y trivial) se separan también en el límite de grandes longitudes: cuando la longitud es 8 los tres métodos dan valores de la complejidad en d intervalo [4,8], para longitud 16 se comienzan a separar los rangos, definiéndose claramente cuando la longitud es 32 (sólo en los extremos se notan intersecciones). Cuando la longitud es 100 los rangos son disjuntos (patrón corto [19,34], patrón largo [48,65] y trivial [66,94]).

En los cuatro grupos, el patrón corto genera la gramática de menor complejidad, es decir, es el más eficiente en la eliminación de la redundancia. La distribución de las complejidades utilizando la gramática trivial puede ser útil para resolver problemas de clasificación de secuencias, dado que tiene la distribución más plana. Sin embargo, si el objetivo es caracterizar la secuencia según su contenlldo informacional, siguiendo las ideas de Kolmogorov con su 'Shortest Binary Program', Lempel y Ziv con la complejidad por segmentos y Ebeling y Jimém~z Montaño con la complejidad gramatical, según los cuales el mejor método es. el que comprime más a la secuencia, el procedimiento óptimo de estimación de la complejidad gramatical, es el de patrón corto. No hay que olvidar, sin embargo, que esta estimación de la complejidad gramatical no toma en cuenta el hecho de que al aumentar el número de categorías sintácticas se requiere un mayor número de bits para su representación (ver páginas 11-12).

Por otro lado, los resultados del análisis de ordenación según la complejidad, nos prueban que estas medidas formalizan de alguna manera el concepto intuitivo de irregularidad de una secuencia.

Dado que la distribución de las secuencias por su complejidad trivial es más ancha que las otras, se ocurre realizar el análisis de ordenación de las secuencias por ]a complejidad trivial, es decir, por el tmnaño de los runs:

SECUENCIA 10111111110010111000000000001000 11111101000110111111000111111101 11111100011111110001111101010110 11100011111000001110001100000110 00110001111001000000001110000111 10000000111011110001001101111010 00011010101001101110000000001100 01010111110000010000100011011001

25

CO~fPLEJIDAD 19 20 21 22 23 24 25 26

Page 28: Análisis sintáctico de biosecuencias

10100010011001110110100110111111 01000110000110111011010001001101 10100110111010101101000100010011 00001100101011010000110011001100 00100101100010101001011001010100 11011010110100100101100101100100

figura 13

figura 14

26

27 28 29 30 31 32

Page 29: Análisis sintáctico de biosecuencias

figura 15

figura 16

figura 17

27

Page 30: Análisis sintáctico de biosecuencias

Aunque la secuencia de figuras 13 a 17, produce una irresistible sensación de aumento gradual de la complejidad, la ventaja de la complejidad gramatical, sobre todo de la de patrón largo, es que durante su evaluación se impone a la secuencia una estructura sintáctica, con un lenguaje que parece estar más relacionado con la identificación de bloques funcionaks, que puede ser útil al analizar conjuntos de secuencias, para extraer un vocabulario común. Además, si se usa un código binario para el estudio de secuencias con un alfabeto de más de dos símbolos, la longitud media de los runs d,e secuencias aleatorias dependerá de la codificación. Por ejemplo, anteriormente utilizamos un código binario donde el símbolo 1 aparecía como delimitador: 1, 01, 001, ... ,0 ... 01; si existen n símbolos en el alfabeto original, para secuencias aleatoriamente generadas, los nms de O's tendrán longitud media

i=n-l

¿i (/)= i=O =_!_(n-1).

n 2 (15)

Se hizo un análisis comparativo entre la complejidad gramatical y la entropía empírica de Shannon ( que como hemos visto diferencía las secuencias por su composición lo que puede constituir una desventaja con respecto a la medida de complejidad gramatical[8] en el análisis de biosecuencias). Al estudiar la correlación se encontró, como era de esperarse, que estas dos medidas de complejidad son independientes (aunque como se sabe de la estadística estas pruebas no son conclusivas), por lo que en conjunto producen una clasificación más fina de las secuencias de manera que pueden usarse simultáneamente para la separación de categorías.

3.3 Análisis de la complejidad gramatical y la entropía emp1rica. Se generaron 550,000 secuencias binarias aleatorias de longitud 1024, calculando para cada una la entropía empírica y la complejidad gramatical. El coeficiente de correlación resultó de 0.03679432. Al repetir el experimento con 110,000 secuencias se obtuvo una c01Telación de 0.03701356.

Al estudiar la separación que produce la complejidad gramatical en las clases de entropía constante de secuencias de longitud 100 se encontraron los resultados que aparecen en las figuras 18, 19 y 20.

28

Page 31: Análisis sintáctico de biosecuencias

.-. ~ ~ ,e(

o z .... ::::,

M a: IL

figura 18

SECUENCIAS 81NARIAS DE LONGITUD 100

E.nt.r.opi.a .. 13.8A1.2.9.09 ............... aa . .UHOS .. . .. ~.O.U.NOS .. 51 :

2

COMPLEJIDAD GRAMATICAL

figura 19

29

Page 32: Análisis sintáctico de biosecuencias

SECUENCIAS 81 NARIAS DE LONGITUD 1 00

30,000 SECUENCIAS ALEATORIAS !SEC GEl'ERACAS 5000 ALEA10RIO

figura 20

Los resultados obtenidos con secuencias binarias aleatorias de longitud 100 son similares a los obtenidos con secuencias de composición media ( el equivalente a la aleatoriedad) como se esperaba (figura 20). Además, se vé que las secuencias de baja entropía son también secuencias de baja complejidad, que explica la correlación ( débil, pero positiva) que se encontró al analizar la independencia.

El análisis indica además el intervalo en el que se agrupan los valores de la complejidad según la composición de las secuencias, señala que dentro de un estado macroscópico ( determinado por la composición) existen microestados (valores particulares de la complejidad) que son más probables que otros.

Podemos estimar la complejidad gramatical de una secuencia, pero ¿Qué significa el valor obtenido?,, es necesario tener un marco de referencia que determine lo común o especial que es la secuencia dependiendo de su composición, por ejemplo, se estima la complejidad gramatical de una secuencia y el valor obtenido resulta ser 19, pero este número no aporta una información completa, no indica si esto es algo normal o si es una secuencia especial, sin embargo, si se calcula la entropía empírica de la secuencia y se generan aleatoriamente secuencias de la misma longitud y con la misma composición obtendremos el marco de referencia que nos indique que tan especial es la secuencia dependiendo de su complejidad gramatical.

30

Page 33: Análisis sintáctico de biosecuencias

4. ANÁLISIS SINTÁCTICO DE BIOSECUENCIAS

Aunque, de acuerdo con el estado del conocimiento, es indudable que los genes son moléculas informacionales, pues codifican a las proteínas, que son los elementos estructurales y funcionales de la materia viva; la identificación del esquema de almacenamiento y recuperación de dicha información ha resultado ser particularmente elusiva. Como la función biológi,;a (significado) sólo se manifiesta al interactuar la proteína, que es un objeto complejo tridimensional, con otras moléculas, no ha sido posible hasta ahora comprenderla en base a la secuencia de aminoácidos, que constituye su estructura primaria. El enfoque estructurado de la solución de este problema aconseja establecer en primer lugar las reglas que determinan la forma como las subsecuencias (palabras) definen el "texto proteínico'', es decir, extraer la estructura sintáctica. Esta estructura tendrá significado sólo si se eligen las categorías apropiadas para clasificar letras y palabras, en forma análoga a lo que sucede con los lenguajes computacionales. Para esto, resulta razonable suponer que al usar categorizaciones que reflejen las propiedades fisico-químicas de las bases (por ejemplo: purinas/pirimidinas, débiles/fuertes, ???) sea posible construir secuencias binarias que representen clases sintácticas de secuencias, que codifiquen la información de interés.

El propósito de: este trabajo es contribuir a la consecución de ese objetivo con el diseño y desarrollo de sistemas computacionales que pennitan automatizar el análisis de secuencias individuales y caracterizar conjuntos de secuencias pertenecientes a una misma familia. Se ha hecho además un estudio de las biosecuencias listadas en el apéndice B, similar al que se describió en el capítulo anterior con se.cuencias binarias, clasificándolas, conjuntamente, por su complejidad gramatical y entropía empírica. Se aplic;ó el programa grammar a un conjunto de biosecuencias, globinas (beta, gamma y épsilon), para calcular la complejidad gramatical y la entropía empírica ele cada una de ellas, por separado, obteniéndose los resultados que se muestran a continuación:

GLOBINAS BETA No. COMPLEJIDAD ENTROPÍA

GRAMATICAL EMPÍRICA 2 133 441.9389 5 127 441.9254 6 138 443.0884

31

Page 34: Análisis sintáctico de biosecuencias

8 132 441.1706 10 133 442.3959 11 132 443.1539 12 131 441.8270 13 133 442.8937 14 131 443.4145 15 138 443.7250 17 133 442.8927 18 131 443.0578 19 135 440.4936 21 131 437.7488 58 139 443.6477

GLOBINAS GAMMA No. COMPLEJIDAD ENTROPÍA

GRAMATICAL EMPÍRICA 3 133 443.9350

23 133 442.5139 24 133 439.7756 25 133 439.7756 27 135 443.6477 30 135 443.6477 34 127 443.1425 36 127 443.1425 40 130 441.6207 41 132 442.8089 44 128 442.6377 46 135 443.5755 47 128 442.6377 49 128 442.6377

GLOBINAS ÉPSILON No. COMPLEJIDAD ENTROPÍA

GRAMATICAL EMPÍIUCA 22 133 442.5702 28 126 443.2495 31 126 443.2495 32 132 439.3435 35 132 443.6284 37 133 443.1425 50 127 443.4049

32

Page 35: Análisis sintáctico de biosecuencias

e o

GLOBINAS BETA-GAMMA-~PSILON CLASIFICACION UTILIZANDO LA ENTROPÍA Y COMPLE,JIDAD

-.,. .. • GBETA + GGAMMA * GAMMA

M 135

,+ l'tr~7. • BETA p

L E J 1 D A D

130

125

\J~· +" )!(.,,;. ........ ' +

)( ..........

120------------------------------~· 437 ·438 439 440 441 442 443 444

ENTROPÍA EMPÍRICA DE SHANNON

figura 21

x GEPSILÓN + EPSILÓN

Asumiendo una distribución normal hipotética para cada clase de moléculas, los trazos sólidos representan el lugar geométrico de los puntos donde la

densidad de probabilidad se reduce a .!.. de su valor en el centro de la e

distribución y se incluyeron en la figura con el objeto de enfatizar la separación de las clases por la complejidad gramatical, mientras que la separación por la entropía empüica es, aparentemente, más pobre. Siguiendo a Jiménez Montaño(l 988) [9], calculamos la complejidad gramatical de cada conjunto de secuencias, concatenándolas, con un símbolo delimitador, para formar una secuencia única, de la cual se generó la gramática, se calculó la complejidad y la redundancia gramatical, "por secuencia". Se usaron quince secuencias beta, catorce gamma y siete épsilon, obteniéndose:

KG11 = 58.26;KGr = 42.00;KGc = 60.28

El orden de las complejidades de las secuencias beta y gamma coincide con el de la figura anterior. El resultado para las secuencias épsilon es inconclusivo, pues al reducir el número de secuencias la complejidad por secuencia aumenta.

33

Page 36: Análisis sintáctico de biosecuencias

Globinas beta NÚMERO DE COI\.1PLEJIDAD COI\.1PLEJIDAD POR SECUENCIAS TOTAL SECUENCIA

1 133 133 2 219 109.5 3 288 96 4 328 82 5 386 77.2 6 428 7 l.3333 7 472 67.4285 8 509 63.625 9 541 60.1111 10 571 57.1 11 620 56.3636 12 668 55.6666 13 729 56.0769 14 814 58.1428 15 874 58.2666

Globinas gamma NÚMERO DE CO:rv1PLEJIDAD COI\.1PLEJIDAD POR SECUENCIAS TOTAL SECUENCIA

1 133 133 2 138 69 3 227 75.6666 4 289 72.25 5 301 60.2 6 359 59.8333 7 399 57 8 407 50.875 9 452 50.2222 10 469 46.9 11 506 46 12 515 42.9166 13 529 40.6923 14 588 42

Globinas épsilon NÚMERO DE CO:rv1PLEJIDAD COMPLEJIDAD POR SECUENCIAS TOTAL SECUENCIA

133 133 2 219 109.5 3 293 97.6666 4 304 76 5 339 67.8 6 380 63.3333 7 422 60.2857

34

Page 37: Análisis sintáctico de biosecuencias

GLOBINAS BETA figura 22

GLOBINAS GAMMA figura 23

GLOBINAS ÉPSILON figura 24

35

..... , ................ _.,., ___ ........ -·-'\•

Page 38: Análisis sintáctico de biosecuencias

En todo caso, aún cuando se pueda asignar una característica numérica a cada familia de secuencias, la finalidad última del análisis es contribuir a la determinación de la sintaxis. La complejidad gramatical de una secuencia se calcula a partir de la gramática que la genera, por lo tanto, la información necesaria para producir la separación que observamos antes, de las secuencias por su complejidad, está contenida en la gramática~ naturalmente que también en la secuencia, pero el algoritmo grammar puede utilizarse para definir un lenguaje asociado al conjunto de secuencias, en ténninos del cual podemos describir cada una de ellas, y facilitar la obtención de características simbólicas. Ahora bien, la transformación que nos lleva de la gramática a su complejidad es singular, lo cual, como es bien conocido, disminuye la separabilidad de las clases. Esto sugiere utilizar el algoritmo grammar para el análisis de una secuencia construida mediante la concatenación de las secuencias de todos los grupos, utilizando delimitadores diferentes para no crear categorías artificiales. La primera regla de producción contendrá los delimitadores y entre ellos la descripción de cada una de las secuencias con las categorías sintácticas generadas para el conjunto. En la primera y más burda aproximación se puede construir un vector binario con las categorías que aparecen en estas descripciones, al cual son aplicables los métodos comunes y corrientes de reconocimiento de patrones, por ejemplo, el algoritmo ID3, de lo cual se puede obtener una taxonomía de las moléculas de cada clase. Los resultados se muestran en el apéndice C, donde se han listado solamente las categorías sintácticas de la primera producción. Como se puede ver, existen efectivamente categorías sintácticas asociadas a las clases individuales (globinas beta, gamma y épsilon). Algunas de las categorías aparecen con frecuencias unitarias, lo cual es aparentemente contradictorio, sin embargo: la frecuencia de apariciones de una categoría sintáctica, sobre todo en el límite de pequeñas longitudes, en el que se encuentran los miembros derechos de las primeras producciones que se generan, se puede reducir por sustituciones posteriores a la que les dió origen. Esto sucede con la sustitución 36, de globinas beta:

[S36] ~ [S4][S31]

[S58] ~ [S36][S48]

Por lo tanto la frecuencia de apariciones de [S36] está subestimada ( es por lo menos nueve, ya que [S58] aparece al menos seis v,~ces, siempre en globinas beta), lo cual es válido en general para todas las categorías sintácticas. Ahora bien, ya que:

36

Page 39: Análisis sintáctico de biosecuencias

S36 =>0

ctgagtg

ésta es una secuencia interesante (por su longitud) y por lo tanto, es claro que al considerar sólo las categorías sintácticas de la primera producción se pierde información. Esto se remedia fácilmente si al contar las apariciones se incrementan simultáneamente los contadores correspondientes a la categoría sintáctica que se analiza y a todas las que aparecen en la derivación que le corresponde hasta llegar a símbolos terminales. Por otro lado, el análisis de frecuencias de aparición no tiene mucho sentido en el límite de pequeñas longitudes, por ejemplo longitud dos, ya que el reducido número de posibilidades hace dificil (imposible cuando el número de clases es muy grande) que se produzca una diferenciación de los patrones que sea consistente con la taxonomía de la bioquímica. Esto sugiere que debería compararse el árbol de decisión que se obtiene después de aplicar un algoritmo como el ID3 al análisis de patrón corto con el resultante del patrón largo. Todas estas consideraciones se han tomado en cuenta al desarrollar el sistema SINT ANAL, codificado en lenguaje "C" (Ver apéndice A) para realizar automáticamente todos los pasos del análisis anterior. Toma como entrada un conjtmto de secuencias etiquetadas con la categoría a la que pertenecen y produce un conjunto de reglas (if then else) para la clasificación a partir de subsecuencias.

Los resultados obtenidos al aplicar el sistema sintanal al mismo conjunto de secuencias, se encuentran al final del apéndice C. Dichos resultados difieren, principalmente, c~n las categorías sintácticas exclusivas a las clases individuales. Esto era de esperarse, ya que al considerar las categorías que se derivan de la regla de producción que se está analizando, se obtiene una información más veraz que la previa. También se lista el conjunto de reglas de clasificación.

37

Page 40: Análisis sintáctico de biosecuencias

5. OTROS DESARROLLOS DE SOFTWARE.

La información en W1a secuencia genética no está propiamente contenida en la secuencia de las bases como normalmente se presume( esta explicación es solamente parcial), sino que está contenida también en las categorías a las que pertenecen las bases, y consecuentemente, los codones. Es por eso que categorizaciones apropiadas, por ejemplo, la división de codones entre aquellos que corresponden a aminoácidos hidrófobos y los que corresponden a los no hidrófobos, permiten detectar relaciones entre secuencias lejanamente relacionadas.

5.1 Representación utilizando codones. Para el análisis de biosecuencias, en su representación de codones, es necesario desarrollar un sistema que lleve a cabo el preprocesamiento de: los patrones, que consiste en encriptarlos por medio de W1a estructura de frase(terminales y al menos W1a categoría no terminal), que constituye W1a generalización mínima de la muestra, según W1 código que estudiamos a continuación.

Como se especificó, las bases se clasifican en purinas(R) y pirimidinas(Y), débiles(W) y fuertes(S), con la correspondencia:

y

R

w U,T A

s c G

Un codón es w1a terna de bases, que codifica a W1 aminoácido por una transformación singular; debido a que el número de aminoácidos diferentes es veinte y existen sesenta y cuatro codones, se tiene W1 alfabeto de veinte símbolos, más un símbolo te1minal:

Letra A (Ala)

T (Tyr) y

Aminoácido Alanine

Tyrosine Símbolo terminal

38

Codones Código GCA,GCG,GCC,GC GCN T

TAC,TAT TAY TAA,TAG,TGA

Page 41: Análisis sintáctico de biosecuencias

De acuerdo al orden de importancia que tiene cada base dentro de un codón[l 9], se clasifican los codones en los formados por purinas y pirimidinas (No importa si son débiles o fuertes) obteniéndose el árbol:

ESTRUCTURA SINTÁCTICA DEL CÓDIGO GENrTICO

.-­NYN

NNN

NRN

rríl 1·A}~ 1 **1·~* 11H1~ CUAG CUIJAAAGCC UUAAGG CUUUAAG CCCC UUUUUUUAAAAAAAA GGGGGGG NNNN NYRYAGNYRYRYRYR NYAG'r'RN 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 PSTA Lfl IIMVHOY1 NKED RC1WSRG

Se produce un árbol similar al clasificar según la intensidad de los enlaces.

La organización del código genético es el resultado de su evolución en cada organismo. Los cambios de un codón por otro son frecuentes, se considera ruido evolutivo cuando los codones difieren por un bit (Por ejemplo la sustitución U~· A, en una posición arbitraria, pero fija, cambia un bit (Y~ R)). Una selección de las categotías que mejor reflejen las sustituciones entre las bases( análogamente entre los codones ), nos proporciona una estructura de frase, que porta información y nos indica que cambios son permitidos.

El árbol anterior se utiliza para determinar el codón representativo de un grupo de codones( clase), que es la raíz del subárbol más pequeño que contenga a todos los codones de dicho grupo. Con los codones representativos se fonna una secuencia "consenso", esta manera de definir un consenso, difiere de otras existentes en la literatura, basadas en reglas mayoritarias~ por ejemplo, si consideramos un sitio o una columna en un alineamiento de secuencias de ADN, la secuencia consenso se construye a partir del codón más frecuente en ese sitio. En nuestro caso esto no siempre es así, puesto que de acuerdo con la definición dada, en la secuencia consenso puede aparecer una clase de codones.

El sistema codones, cuya descripción aparece en el apéndice A, se implementó para obtener la secuencia representativa, considerando el tipo de base o el tipo de enlace. El sistema requiere el nombre del archivo que contiene las direcciones (paths) de los archivos donde se encuentran las biosecuencias por analizar, que

39

Page 42: Análisis sintáctico de biosecuencias

deberán ser de la misma longitud e iniciar con la palabra ORIGIN, ademas de la propiedad que se utilizará en el análisis: purina-pirimidina o débiles-fuertes.

Las secuencias se recorren (simultáneamente) por codones consecutivos (correspondientes), produciendo, para cada uno de ellos, el codón representativo ( utilizando el árbol purina pirimidina yr o el de tipo de enlace ws).

La salida es un archivo que tiene el mismo nombre: que el de archivo de entrada, con extensión ".yr" ó ".ws", donde se almacena la secuencia representativa y la posición de los codones que llegaron a la raíz, lo que significa que al menos dos codones pertenecen a ramas distintas.

Una propiedad de la representación así obtenida es que, la taxonomía de los codones, induce una sintaxis en el conjunto de secuencias representativas, la cual se puede utilizar para generar las secuencias con 1;!structuras similares que no aparecen en la muestra original.

5.2 Representación utilizando el perfil de hidropatía. La representación de secuencias por alfabetos reducidos implica hacer sustituciones simbólicas

L ~ L', donde Card(L) > Card(L'), y por lo tanto rp es. singular. Esto plantea el problema de escoger la sustitución óptima, la que corresponde a la mínima pérdida de información, dado el número de símbolos del alfabeto reducido. Este problema se puede plantear a partir del principio de máxima diversidad, que se comprende fácilmente ( o debería comprenderse) al considerar aquellas codificaciones que aplican todos los símbolos del alfabeto original en un sólo símbolo del alfabeto reducido y que conducen, por lo tanto, a la pérdida de todo el contenido informacional. El principio de máxima diversidad puede implementarse, en la aproximación primera y más burda ( que no toma en cuenta la distribución de los pares, ternas, etc. de símbolos consecutivos en el alfabeto original), con la condición de máxima entropía de la distribución de los símbolos del alfabeto reducido según sus frecuencias de aparición en las secuencias recodificadas[l 5], que se puede utilizar para inferir la validez de alfabetos.

40

Page 43: Análisis sintáctico de biosecuencias

Se realizó un análisis con las secuencias de globinas beta para determinar que alfabetos son válidos para representar el perfil de hidropatía ( alfabetos que se emplean en el sistema SINPATHY).

El sistema SINPATHY (Sintactic Hidropathy Profile) tiene como objetivo presentar el perfil de hidropatía de una secuencia de amitnoácidos(proteína) y de otra secuencia derivada a partir de ella, se comparan las secuencias y se calcula el nivel de significado de la comparación .

El sistema recibe de entrada el nombre del archivo con la secuencia fuente a nivel de gene, el marco de lectura de la secuencia y el alfabeto de hidropatía. En la selección del alfabeto, el usuario tiene las siguientes opciones: Crearlo, utilizar uno creado anteriormente, o usar los que el sistema proporciona. El alfabeto binario utiliza los símbolos (O, 1) y el de tres letras (O, 1,2).

El proceso de análisis consiste en los siguiente:

• Se aplican transformaciones a la secuencia para obtener las secuencias: inversa, complemento, y complemento-inversa. Todas las secuencias se traducen a proteína y después al alfabeto seleccionado.

• Se muestra la secuencia original a nivel de gene, aminoácido e hidropatía, entonces se entra en un ciclo en el cual el usuario elige la secuencia a comparar con la fuente, el sistema muestra en pantalla la secuencia escogida en estos tres niveles, además muestra las dos secuencias alineadas, la primera es la original y la segunda la derivada. Una vez terminado el análisis, puede escoger otra secuencia para repetir el análisis.

• Si en las secuencias alineadas existe un asterisco significa que encontró un codón de terminación, por lo que el análisis no puede continuar, en caso contrario se calcula la distancia de Hamming entn: las secuencias (DH). Se generan pares de secuencias aleatorias con la misma composición que las anteriores y se calculan las distancias de Hamming entre ellas, de ésta muestra se obtiene la media(MD) y la desviación estándar(DD) de las distancias, mismas que son utilizadas en el cálculo del nivel de significado de la comparación. La significancia de la comparación Z esta dada por:

41

Page 44: Análisis sintáctico de biosecuencias

Z= DH-MD DD

(16)

Donde: DH, es la distancia de Hamming entre la secuencia original y la derivada. MD y DD son lla media y la desviación estándar de las distancias de la muestra generada.

La salida es un archivo que tiene el nombre del archivo fuente con extensión ".hdp" y contiene los datos generales: nombre del archivo fuente, marco de lectura y alfabeto utilizado. Después de estos, se describe para cada análisis realizado: la transformación aplicada, las secuencias aJ_ineadas y el significado de la comparación.

La descripción de este sistema aparece en el apéndice A.

El diseño racional de proteínas (y por consiguiente de fánnacos) sería grandemente facilitado por la habilidad de diseñar parejas de proteínas o péptidos ( segmentos de proteínas) que interactuan y predecir con precisión sus puntos de contacto(Blalock 1990 [20]). De acuerdo con este autor, la teoría del reconocimiento molecular surgió de la observación de que los codones que codifican los aminoácidos hidrófobos en la cadena que se traduce del ADN se complementan por codones que codifican aminoácidos hidrófilos en la cadena que no se traduce (Cadena en la cual A se sustituye por su complementario; T en el ADN y U en el ARN, lo mismo que C por G, y que en la mayoría de los organismos no es utilizada, sin embargo, parece haber desempeñado un papel importante en la evolución de las proteínas), y viceversa. De aquí se sigue que dos péptidos (segmentos cortos de aminoácidos) derivados de secuencias cortas complementarias de ADN ( o ARN), en el mismo marco de lectura, mostraran un intercambio completo de sus aminoácidos hidrófobos e hidrofilicos, cuando un extremo del primero se alínie con el extremo contrario del segundo. Este patrón de hidropatía invertido podría pennitir que los péptidos asuman conformaciones complementarias lo cual conduce a una interacción esp(;:cifica. En resumen según Blalock (1990) :

De acuerdo con la teoría de reconocimiento molecular, como los codones complementarios especifican aminoácidos hidropáticamente opuestos (Hidrófobos <==> Hidrófilos) y porque los péptidos con patrones de hidropatía

42

Page 45: Análisis sintáctico de biosecuencias

opuestos interactuan, entonces las secuencias de ácidos nucleicos complementarios codifican péptidos o proteínas que interactuan. Actualmente se cuestiona la generalidad de este resultado. Una n:spuesta se obtiene con ayuda del sistema SINP ATHY como se explica a continuación.

En lugar de utilizar un perfil continuo de hidropatía:. como es usual[21] un programa para su determinación( el cual se encuentra en la mayoría de los paquetes comerciales de análisis de secuencias), SINP ATHY utiliza un perfil binario discreto, como se explicó anteriormente, lo cual evita el "smoothing" asociado a una ventana de tamaño arbitrario.

Del alfabeto binario (hidrófobos - hidrófilos) deducido del siguiente árbol

ÁRBOL DE CATEGORIAS PARA AMINOÁCIDOS

o

1 o 1

PAGST QNEDHKR

NO HIDRÓFOBOS ---v-­NEUTRALES

1 1

1 BIN ARIO

21 l-LI :TRAS

íl C L IV M F '(W ~­

HIDRÓFOBOS

introducido por Jiménez Montaño[22] y el código genético, se obtiene que exactamente 32 codones son invariantes en cuanto a la hidrofobicidad de los aminoácidos que codifican, al sustituirse por sus palíndromes (Es decir al leerlos en sentido inverso). Por consiguiente no es cierto que todos los codones complementarios especifiquen aminoácidos hidrópaticmnente opuestos.

Por consiguiente, la afirmación de Blalock(l 990) citada anteriormente sólo es cierta si se trata de proteínas (ó péptidos) cuyos genes tienen codones que no son invariantes. Sin embargo pueden constituirse genes para los cuales la afirmación resulta totalmente falsa. Se utilizó SINPA THY para corroborar estos resultados.

43

Page 46: Análisis sintáctico de biosecuencias

6. CONCLUSIONES

Del análisis de la complejidad gramatical y la entropía emp1nca realizado utilizando secuencias binarias se desprenden los siguientes resultados:

La ordenación de las secuencias según su complejidad gramatical, nos prueban que la medida de complejidad gramatical constituye una formalización razonable del concepto intuitivo de irregularidad o aleatoriedad. El análisis por medio del patrón corto genera la gramática de menor complejidad, es decir, es el más eficiente en la eliminación de la redundancia, en cambio la gramática trivial puede ser útil para resolver problemas de clasificación de secuencias, dado que tiene la distribución más plana. La ventaja de la complejidad gramatical, sobre todo al generar la gramática mediante el patrón largo, es que durante su evaluación se impone a la secuencia una estructura sintáctica, con un lenguaje que parece estar más relacionado con la identificación de bloques funcionales, que puede ser útil al analizar conjuntos de secuencias, para extraer un vocabulario común.

Al generar secuencias aleatorias de longitud finita no se obtiene una mayoría de secuencias de alta complejidad, como usualmente se supone, sino de complejidad intermedia. Lo mismo sucede al establecer una composición constante, donde las secuencias de baja entropía son también secuencias de baja complejidad.

Realizar un análisis conjunto de complejidad y entropía nos indica el intervalo en el que se agrupan los valores de la complejidad según la composición de las secuencias, señala que dentro de un estado macroscópllco ( determinado por la composición) existen microestados (valores particulares de la complejidad) que son más probables que otros, lo cual nos proporciona información para determinar lo común o especial que es la secuencia.

Se ha contribuido a aclarar la relación entre la entropía empírica de Shannon, comúnmente identificada con el contenido infonnacional de una secuencia, siendo que es una cantidad que se refiere a la fuente que genera una clase de secuencias( de acuerdo con la composición) y la complejidad gramatical, propuesta originalmente para evaluar el grado de aleatoriedad de una secuencia dada. El uso combinado de estas medidas ha permitido entender que lejos de competir se complementan.

44

Page 47: Análisis sintáctico de biosecuencias

En el análisis realizado con las secuencias biológicas(similar al de las binarias) se obtuvo:

La separación de las clases de secuencias biológicas por la complejidad gramatical resultó mejor que la obtenida mediante la entropía empírica. La complejidad gramatical de una secuencia se calcula a partir de la gramática que la genera, por lo tanto, la información necesaria para producir la separación, de las secuencias por su complejidad, está contenida en la gramática; naturalmente que también en la secuencia, el algoritmo grammar puede utilizarse para definir un lenguaje asociado al conjunto de secuencias, en términos del cual podemos describir cada una de ellas, y facilitar la obtención de características simbólicas.

Se desarrollo el sistema SINT ANAL, que constituye una herramienta para la clasificación de secuencias, dicho sistema toma como entrada un conjunto de secuencias etiquetadas con la categoría a la que pertenecen y produce un conjunto de reglas (if then else) para la clasificación a partir de subsecuencias. La aplicación de este sistema a tres clases de globinas(beta, gamma y épsilon), muestra que existen efectivamente categorías sintácticas asociadas a las clases individuales, mismas que son utilizadas para construir la taxonomía que permite realizar una clasificación de ellas, es decir, que existen subcadenas que determinan la clase de cada secuencia, lo que indica que la información relevante se encuentra en aquellas subsecuencias( derivaciones de las categorías sintácticas) que tienen una longitud relativamente grande, frecuencias altas y que son utilizadas en la clasificación.

Se implementó el sistema CODONES, para realizar una representación, dicho sistema tiene dos opciones, que corresponden a obtener la secuencia representativa tomando en cuenta el tipo de base o el tipo de enlace. Una propiedad de la representación así obtenida es que, la taxonomía de los codones, induce una sintaxis en el conjunto de secuencias representativas, la cual se puede utilizar para generar las secuencias con estructuras similares( secuencias que cwnplen con las restricciones impuestas en la secuencia consenso) que no aparecen en la muestra 01iginal. Aún cuando una secuencia representativa puede tener elementos que podrian considerarse como una pérdida de información, no hay que olvidar que la secuencia obtenida mediante este sistema constituye la extrapolación más conservativa de la muestra.

45

Page 48: Análisis sintáctico de biosecuencias

Se implementó el sistema SINP ATHY, que tiene como finalidad establecer un perfil de hidropatía discreto, que evita el "smoothing" asociado a una ventana de tamaño arbitrario y un nivel de significación de comparación entre secuencias. Según Blalock, los codones complementarios especifican aminoácidos hidropáticamente opuestos y los péptidos con patrones de hidropatía opuestos interaccionan, entonces las secuencias de ácidos nucleicos complementarios codifican péptidos o proteínas que interactuan. Del alfabeto binario (hidrófobos - hidrófilos) introducido por Jiménez Montaño[22] y el código genético se obtiene que exactamente 32 codones son invariantes en cuanto a la hidrofobicidad de los aminoácidos que codifican, al sustituirse por sus palíndromes. Por consiguiente, la afirmación de Blalock(l 990) sólo es cierta si se trata de proteínas ( o péptidos) cuyos genes tienen codones que no son invariantes. Sin embargo pueden constituirse genes para los cuales la afirmación resulta totalmente falsa. El sistema sinpathy se utilizó para corroborar estos resultados.

46

Page 49: Análisis sintáctico de biosecuencias

REFERENCIAS

1. The genetic code as a six dimensional boolean hypercube.

2. M. A. Jiménez Montaño, F. Lara Ochoa; On the skew distribution of inmunoglobulins and inverted protein folding problem; Biosystems 24 261-26 (1991 ).

3. L. Lemesle V arloot et at Cellulase families revealed by hidrophobic cluster analysis; Gene 81 83-95.

4. Manser, Sunhca; Two interactive programs for the hydrophobic cluster analysis ofprotein secuences; CABIOS 9 37-44 (1993).

5. Z. S. Harris; Language and information; New York: Columbia O. Press, (1988)

6. A. N. Kolmogorov; Three approaches for dd1ning the concept of "information quantity". Problemy Predaci Informacii 1 3-11 (1965).

7. G. J. Chaitin; On the length of programs for computing finite binary sequences. J. Assoc. Comput. Mach. 13 547-569 (1966).

8. W. Ebeling, M. A. Jiménez; On Grammars, Complexity, and Information Measures of Biological Macromolecules. Math. Biosc. 52 53-71 (1980).

9. O. Chavoya, F. García, M. A. Jiménez; Programa para estimar la complejidad gramatical de una secuencia. Memorias de la IX retmión de Inteligencia Artificial 243-254 (1992).

10. W. Ebeling, R.Feistel, H. Herzel; Dynamics and Complexity of Biomolecules. Physica Scripta 35 765-768 (1987).

11. Keynosuke Fukunaga, Introduction to Statistical Pattern Recognition; 2nd. edition, Academic Press Inc.

12. J. Ziv, A Lempel; On the complexity of finite sequences. IEEE transactions on information theory 22-1 75-81 (1976).

47

Page 50: Análisis sintáctico de biosecuencias

13. F. Papentin; On order and Complexity. l. General Considerations. Journal of Theoretical Biology 87 421-456 (1980).

14. M. A. Jiménez Montaño, L. Zamora Cortina, J. Trejo López (1988); Un criterio de optimización en el reconocimiento sintáctico de patrones. Aportaciones matemáticas. Comunicaciones 5 31-52.

15. B.Robson, P.J. Greaney; Natural sequence code representations for compression and rapid searching of human genome style databases. CABIOS 8-3 283-289 (1992).

16. G. Cocho, L. Medrano, P. Miramontes, J.L. Rius; Selective Constrains over DNA Sequence. En "Biologically inspired Physics". Plenum Press. (1991).

17. P. E. Rapp, A. l. Mess, R. J. Langs, M. A. Jiménez, Thompson; Toward a Quantitative Characterization of Patient - Therapist Communication Math Biosc. 105 207-227(1991).

18. P. E. Rapp, G. Goldberg, A.M. Albano, M.B. Janicky, D. Murphy, E.Niemeyer, M.A. Jiménez; Using Coarse-grained measures to characterize electromyographic signals, aceptado para su publii:;ación en Intemational Journal ofbifurcation and chaos(Aparecerá en Junio de 1993).

19. M. A. Jiménez Montaño; On the syntactic structure and redundancy distribution of the Genetic Code. Aceptado para su publicación en Biosystem (1993).

20. J.E. Blalock; Complementary of peptides specified by 'sense' and 'antisense' strands of DNA. TIBTECH 8 140-144 (Junio 1990).

21. Kytej and Doolittle; R.F. 1982, J. Mol. Biol. 157 10:5-132

22. M. A. Jiménez; On the Syntactic Structure of Protein Sequences and the Concept of Grammar Complexity. BUll. Math. Biol. 46 641-659 (1984).

23. G. Held; Data Compression 2nd edition 1988. John Wiley&Sons

48

Page 51: Análisis sintáctico de biosecuencias

Bibliografía

G. J. Chaitin(l 975); Randomness and mathematical proof. American. 47-52

A. O. Schmitt, H. Herzel; Attemps tp characterize DNA sequences.

Scientific

H. Herzel; Complexity of symbol sequences. Syst. Anal. Simul. 5 435-444 (1988).

J. Ziv; Coding theorems for individual sequences. IEEE transactions on information theory 24-4 405-412 (1978).

J. Ziv, A Lempel; Compression of individual sequences via variable-rate coding. IEEE transactions on information theory 24-5 531-536 (1978).

Jhon E. Hopcroft, Jeffrey D. Ullman; Introduction to automata theory, languages, and computation Addison W esley Publishing Company.

Alfred V. Aho (Edited by),Currents in the theory of cornputing Prentice Hall (1973).

Arto Salomaa, Formal Languages Academic Press (1973).

Information theory coding theorems for discrete memoryless systems.

49

Page 52: Análisis sintáctico de biosecuencias

APÉNDICE A: DESCRIPCIÓN DE LOS SISTEMAS

GRAMMAR, CODONES, SINPATHY, Y SINTANAL

50

Page 53: Análisis sintáctico de biosecuencias

DESCRIPCIÓN DEL SISTEMA (GRAMMAR.C)

Los argumentos de entrada del sistema es el nombre del archivo que contiene la secuencia a analizar, y el tipo de análisis que se requiere: por patrón corto(S), medio(M) o largo(L).

Se obtiene la secuencia y se genera la gramática que la reproduce; a partir de la gramática se calculan la complejidad y la redundancia gramatical, de acuerdo a las fórmulas del capitulo 2. La gramática se genera dependiendo del patrón de análisis seleccionado:

PATRÓN CORTO: Se forman todas las subcadenas de longitud dos y se elige aquella que tenga la mayor frecuencia (por lo menos mayor que dos), ésta forma parte de la gramática como regla de producción y en la secuencia todas las apariciones del patrón se sustituyen por la categoría. Esto se repite hasta que no existan subcadenas de longitud 2, entonces se realiza el mismo procedimiento con las de longitud 3(la frecuencia debe ser por lo menos 2). Cuando se han terminado los patrones por sustituir el análisis finaliza incorporando la ultima producción de la gramática, cuyo lado derecho es la secuencia restante. Este procedimiento constituye una generalización del método de compactación de secuencias denominado Diatomic Encoding (Held 1988) usado frecuentemente en compresión de datos [23].

PATRÓN LARGO: El sistema analiza las subcadenas de longitud 2,3,4, .. hasta que el incremento en la longitud no disminuye la complejidad, en ese momento se sustituye el patrón por un símbolo no terminal; reinicia el análisis y continua de la misma manera hasta que no hay patrones por remplazar, entonces agrega la última categoría sintáctica.

PATRÓN MEDIO: La diferencia respecto al patrón anterior consiste en que el incremento en la longitud del patrón a analizar depende de que la complejidad obtenida sea menor que las calculadas anteriormente, es decir, que si un patrón de longitud mayor se repite, pero la complejidad resulta mayor que la anterior, entonces no incrementa más y sustituye el patrón anterior.

El heurístico utilizado para saber cuando debe sustituirse una patrón por una

categoría sintáctica es: n( C(q )-1)- C(q)

51

Page 54: Análisis sintáctico de biosecuencias

donde n es el número de apariciones del patrón coJTespondiente q , y C( q) el estimado de la complejidad de q. Si el heurístico es mayor que cero el patrón se reemplaza.

La salida es un archivo con extensión ".S", ".M" y ".L" correspondiente al patrón de análisis seleccionado, el cual contiene la secuencia, la gramática, la complejidad y la redundancia gramatical.

Se muestra el ciclo principal del sistema.

/* ANALIZE Hace el proceso de análisis de la secuencia */ void analize(char patron[I], int nsec) {

unsigned ij,length,xlength, *pattem, *bestpattern, *text; struct rule *pprod; struct texto *cadena; int heuristic,flag=O; grammar=NULL; diccio=NULL; bestnode=NULL; pattem=NULL; bestpattem=NULL; category=256; compl=O; printf(" Analizando "); while(I) {

heuristic=-1; if(flag) length=3; else length=2; while(I) {

printf(". "); if(pattem) free(pattem); pattern=(unsigned *)calloc(length+ l,sizeof(unsigned)); if(pattem==NULL) error(!); diccio=cleardi( diccio ); bestnode= NULL; cadena=textos; while(cadena) {

}

text=cadena->text; cadena=cadena->next; for(xlength=O; text[xlength]; xlength++); if(xlength>=length)

for(i=O; (i<xlength-length+ 1 ); i++) { for(i=O; j<length; j++)

pattemli)=text[i+j); store(pattern);

}

if(patron(O)=='L') { if( (bestnode==NULL) 11

(bestnode->heuristic<=O) ) break;

52

Page 55: Análisis sintáctico de biosecuencias

}

}

}

} if{patron[O]=='S') {

}

if( (bestnode=NULL) 11

(bestnode->heuristic<O) ) break;

heuristic=bestnode->heuristic; free(bestpattem); bestpattem=(unsigned *)calloc(length+ l ,sizeof(unsigned) ); if(bestpattern=NULL) error( 1 ); for(i=O; bestpattem[i]=bestnode->pattem[i]; ++i); if(patron[O]=='S') {

if(length==2 && heuristic>O) break; else flag= l ;

} length+=l;

if (heuristic>O) replace(bestpattem); else break;

free(bestpattem); if(pattem) free(pattem); diccio=cleardi( diccio ); cadena=textos; while(cadena) {

}

text =cadena->text; for(xlength=O; text[xlength]; xlength++); if( (xlength>l) 11

}

((xlength==l)&&(text[0]<256)) 11

((xlength==l)&&(text[0]>255)&&(nsec> 1))) ·[ pprod=(struct rule *) calloc(l ,sizeof(struct rule)); if(pprod== NULL) error( 1); pprod->pattem=(unsigned *) calloc(xlength+ 1,sizeof(unsigned)); if(pprod->pattem==NULL) error( l ); pprod->category=category; for(i=O; pprod->pattem[i]=text[i]; i++); pprod->next=grammar; grammar=pprod; compl +=calcomp( text );

cadena=cadena->next;

printf("\n Fin \n");

53

Page 56: Análisis sintáctico de biosecuencias

DESCRIPCIÓN DEL SISTEMA CODONES.C

El sistema codones requiere como entrada el nombre de el archivo que contiene las direcciones (paths) de los archivos donde se encuentran las biosecuencias por analizar, dichas secuencias deben ser de la misma longitud e iniciar con la palabra ORIGIN. También se debe especificar la propiedad que se utilizará para el análisis: purina-pirimidina o débiles-fuertes.

Las secuencias se analizan por codones, es decir, con los codones correspondientes( a la posición que se analiza) de cada secuencia, se recorre el árbol del código genético para obtener el codón representativo ( utilizando el árbol purina pirimidina (yr) ó el de tipo de enlace (ws)), dicho codón formará parte de la secuencia representativa en la posición analizada. Este procedimiento se repite hasta haber analizado todos los codones en las secuencias, en ese momento obtenemos la secuencia consenso( secuencia con los codones representativos).

La salida es un archivo que tiene el mismo nombre que el de archivo de entrada, con extensión ".yr" ó ".ws", donde se almacena la secuencia representativa y la posición de los codones que llegaron a la raíz, lo que significa que al menos dos codones pertenecen a ramas distintas.

Se muestran los principales procedimientos.

/* EXTRAE_CODONES: Extrae los codones de las secuencias*/ struct codon *extrae_codones(int pos, int nsecs, struct texto *textos) { struct codon *nodo, *lcodon, *tail; unsigned *text; int ij;

}

lcodon=tail=NULL; for(i=O; i<nsecs; i++) {

text=secuencia( i, textos); nodo=calloc(l,sizeof(struct codon)); if(nodo==NULL) error(}); for(i=O; j<=2; j++) nodo->info[j]=text[3 *pos+j]; nodo->info[j]=O;

}

nodo->sig=NULL; if(lcodon==NULL) lcodon=nodo; if(tail!=NULL) tail->sig=nodo; tail=nodo;

return(lcodon);

54

Page 57: Análisis sintáctico de biosecuencias

/* CODON_REPRESENTATIVO_YR :Recorre el arbol de purinas_pirimidinas genera el codon representativo*/

struct codon *codon_representativo_yr(struct codon *lista_codones) { struct codon *lista, *temp, *aux; char *patron; int existe, num_codon=O; int ij,pos;

patron=calloc( 4,sizeof( char) ); if(patron==NULL) error(l); pos=2; aux=lista=lista _ codones; while(lista) {

existe=O; for(i=O; i<=2; i++) patron[i]=lista->info[i]; patron[i]=O; if(patron[pos]=='N') {

pos=O; if(patron[pos ]=='N') pos= 1;

} switch(patron[pos]) {

}

case 'A': patron[pos]='R'; break; case 'G': patron[pos]='R'; break; case 'C': patron[pos]='Y'; break; case 'T': patron[pos]='Y'; break; case 'a': patron[pos]='R'; break; case 'g': patron[pos]='R'; break; case 'c': patron[pos]='Y'; break; case 't': patron[pos]='Y'; break; case 'Y': patron[pos]='N'; break; case 'R': patron[pos]='N'; break;

temp=Iista_codones; while((temp!=lista)&&(!existe)) {

i=O; while(i<=2) {

if(temp->info[i]==patron[i]) i++;

}

else break; } if(i==3) existe= 1; else temp=temp->sig;

if(!existe) { /* subir un nivel ese nodo */ lista->info[pos]=patron[pos]; aux=Iista; lista=lista->sig; num _ codon++;

} else { /* borrar ese nodo • I

temp=lista; aux->sig=lista->sig; lista=aux->sig;

55

Page 58: Análisis sintáctico de biosecuencias

}

} }/* while lista */ free(patron);

free(temp);

if( num _ codon> 1) lista_ codones=codon _ representativo _yr(lista _ codones); retum(lista _ codones);

/* CODON_REPRESENTATIVO_ WS :Recorre el arbol de debiles_fuertes genera el codon representativo*/ struct codon *codon_representativo_ws(struct codon *lista_codones) { struct codon *lista, *temp, *aux; char *patron; int existe, num _ codon=O; int ij,pos;

patron=calloc( 4,sizeof( char) ); if(patron==NULL) error(l); aux=lista=lista _ codones; pos=2; while(lista) {

existe=O; for(i=O; i<=2; i++) patron[i)=lista->info[i]; patron(O]='N'; patron[i]=O; if( (patron[pos ]='W')ll(patron(pos ]='S')) {

pos=l; if(patron[pos]='N') pos=2; if( (patron[pos ]=='W')l l(patron(pos ]=='S ')) patron [pos] ='N';

} switch(patron[pos]) {

}

case 'A': patron[pos]='W'; break; case 'G': patron[pos]='S'; break; case 'C': patron[pos]='S'; break; case 'T': patron[pos]='W'; break; case 'a': patron[pos]='W'; break; case 'g': patron[pos]='S'; break; case 'c': patron[pos]='S'; break; case 't': patron[pos]='W'; break;

temp=lista _ codones; while((temp!=lista)&&(!existe)) {

}

i=O; while(i<=2) {

if(temp->info[i]==patron[i]) i++; else break;

} if(i=3) existe=l; else temp=temp->sig;

if(!existe) { /* subir un nivel ese nodo */ for(i=O; i<3; i++) lista->info[i]=patron[i]; aux=lista; lista=lista->sig;

56

Page 59: Análisis sintáctico de biosecuencias

}

num_codon++; } else { /* borrar ese nodo * /

temp=lista; aux->sig=lista->sig; lista=aux->sig; free(temp);

} }/* while lista */ free(patron); if(num _ codon> l) lista_ codones=codon _representativo_ ws(lista _ codones); retum(lista _ codones );

/* SECUENCIA_REPRESENTATIVA: Con los codones representativos se genera la secuencia consenso y se lista los codones NNN*/

void secuencia_representativa(FILE *fps, int tipo, int ncods, int nsecs, struct texto *textos) { struct texto *aux; struct codon *lista, *hlp, *temp, *lista_codones, *codon_r; unsigned *buff; char patron1[3], patron2[3]; int pb=O,ij,k,num_codon;

buff=calloc(ncods*3+ 1,sizeof(unsigned)); if(buff=NULL) error(l); for(i=O; i<ncods; i++) {

lista_ codones=extrae _ codones(i,nsecs,textos); lista=lista _ codones; while(lista) {

}

for(k=O; k<3; k++) patronl[k]=lista->info[k]; patron 1 [k ]=O; temp=lista; hlp=lista->sig; while(hlp) {

for(k=O; k<3; k++) patron2[k]=hlp->info[k]; patron2[k]=O; if(strcmp(patronl,patron2)==0) {

} else {

} } lista=lista->sig;

temp->sig=hlp->sig; free(hlp); hlp=temp->sig;

temp=hlp; hlp=hlp->sig;

lista=lista _ codones; num _ codon=O; while(lista) {

num _ codon++; lista=lista->sig;

57

Page 60: Análisis sintáctico de biosecuencias

}

}

} if(num_codon==l) {

codon_r=calloc{l,sizeof(struct codon));

} else {

}

for(k=O; k<3; k++) codon_r->info[k]=lista_codones->info[k]; codon_r->sig=NULL;

if( tipo== 1) codon _ r=codon _ representativo _yr( 1 ista _ codones); else codon _ r=codon _representativo_ ws(lista _ codones);

/* inserta el codon en la secuencia */ if( strcmp( codon _ r->info, "NNN")==O) fprintf( fps, "o/od ", i); for(i=O; j<=2; j++)

bufflpb++]=codon_r->infoLi]; free(codon_r);

bufflpb]=O; aux=textos->next; aux=cleartexto(aux); textos->text=buff; textos->next=NULL;

58

Page 61: Análisis sintáctico de biosecuencias

DESCRIPCIÓN DEL SISTEMA SINPA THY

El sistema requiere la siguiente información de entrada: archivo de texto con la secuencia a nivel de gene, marco de lectura, alfabeto, y operación.

La secuencia se traduce al alfabeto de 20 letras y al binario o terciario según se halla escogido, se obtienen secuencias derivadas al aplicar las operaciones: inverso, conjugado, y conjugado inverso a la se1;uencia original. Estas secuencias también son traducidas, de ellas se elige la secuencia a comparar con la original. Las secuencias son alineadas y si la comparación es posible, se generan aleatoriamente secuencias con la misma composición y se calcula el nivel de significado.

La salida es un archivo con el mismo nombre y extensión HDP, que contiene los datos de entrada, las secuencias comparadas y el nivel de significancia.

Se muestran los principales procedimientos.

/* DER_SECS : Deriva la inversa, el complemento y conjugado inverso */ void der_secs(sec *fte, sec *inv, sec *coro, sec *coi, unsigned length) { long i=Oj=O; char c;

}

j=length-1; inv->texto=( char *)calloc(length+ l ,sizeof(char)); if(inv->texto==NULL) error(l); com->texto=(char *)calloc(length+ l,sizeof(char)); if( com->texto== NULL) error( l); coi->texto=( char *)calloc(length+ l ,sizeof( char) ); if(coi->texto==NULL) error(l); while(fte->texto[i]) {

}

switch (fte->texto[i]) {

}

case 'A': if(d==l) c='T'; else c='U'; break;

case 'T': c='A'; break; case 'U': c='A'; break; case 'C': c='G'; break; case 'G': c='C'; break;

inv->textoLi]=fte->texto[i]; com->texto[i++ ]=c; coi->textoü--]=c;

59

Page 62: Análisis sintáctico de biosecuencias

/* TRADUCE 23: traduce la secuencia al alfabeto binario o terciario*/ char *traduce_23(char *texto, unsigned length, char *alfa) { int i=O,k=O; char *trad;

}

trad==(char *)calloc(length/3+ l,sizeof(char)); if(trad==NULL) error(l); while(texto[i]) {

if((texto[i] !='Z')&&(texto[i] !='B')) trad[k++ ]=alfa[texto[ i]-65]; else trad[k++]='*'; i++;

} trad[k]=NULL; retum(trad);

/* TRADUCE 20: traduce la secuencia al alfabeto de 20 letras*/ char *traduce_20(char *texto, unsigned length) { int i=Oj,k=O; char codon[3], *trad;

}

trad=(char *) calloc(length/3+ l,sizeof(char)); if(trad==NULL) error(l); while(texto[i]) {

}

for(j=O; j<3; j++) codonLi]=texto[i++]; codonLi]=O; trad[k++]=equivale_20(codon);

trad[k ]= NULL; return(trad);

/* MED _ V AR: Calcula la media y varianza de una muestra aleatoria para el nivel de significancia */

est *med_var(unsigned length, unsigned ul, unsigned dl,unsigned u2, unsigned d2) { char *texto!, *texto2; int ij,num; est *valores; double media, des; unsigned *registro;

registro=( unsigned * )calloc( ncomp,sizeof( unsigned)); if( registro== NULL) error(l); texto 1 =( char *)calloc(length+ l ,sizeof( char) ); if(textol==NULL) error(l); texto2=(char *)calloc(length+ l,sizeof(char)); if( texto2 == NULL) error( 1); valores=(est *) calloc(l,sizeof(est)); if(valores==NULL) error(l); media=O.O; des=O.O; escribe(lO, 12, "Processing "); randomize(); for(j= 1; j<=ncornp; j++) {

if(frnod(j, 9)==0) printf(". "); gensec(length, u l ,d 1, texto 1); gensec(length,u2,d2,texto2);

60

Page 63: Análisis sintáctico de biosecuencias

}

registroLi-1 ]=sim_dist(texto l ,texto2); media+=registroLi-1];

} media=media/ncomp; for(i= l; j<=ncomp; j++) des+=pow(registroLJ-1 ]-media,2); des=sq rt( des/ncomp ); valores->media=media; valores->des=des; free( registro); free(textol); free(texto2); return(valores);

/* NIV _ SIG : Realiza la comparacion con otras parejas de secuencias * / void niv _ sig(sec *o, sec *d, FILE *fps) { unsigned sd, ni l=O, nl2=0, n21=0, n22=0; est *valores; unsigned i=O; double z=O.O;

}

marco(); escribe(69,25,"ITESM-CEM"); while(o->tradlO[i]) {

if(o->tradlO[i)=='l') nl l++; if(o->trad10[i]=='2') nl2++; if(d->tradlO[i]=='l') n21++; if(d->tradlO[i++)=='2') n22++;

valores=med_ var(i,nl l,nl2,n21,n22); sd=sim _ dist( o->trad 1 O,d->trad 1 O); z=(sd-valores->media)/valores->des; free(valores); fprintf(fps,"Distancia de Hamming: %u\n",sd); fprintf(fps,"Significance ofthe comparison: o/of\n",z); marco(); escribe(69,25,"ITESM-CEM"); escribe(20, 10, "Distancia de Hamming : "); printf( "%u", sd); escribe(20,l2,"Significance ofthe comparison: "); printf("%.4e" ,z); mensaje(l);

/* ANALISIS : Realiza el analisis comparativo*/ void analisis_cornp(sec *fte, sec *inv, sec *com, sec *coi, FILE *fps) { sec *derivada; int s,i=O; int flag 1 =O,flag2=0,flag3=0;

do { s=elige _ secuencia(); switch(s) {

case 1 : { if(!flag 1) {

derivada=inv;

61

Page 64: Análisis sintáctico de biosecuencias

} if(s<4) {

} } while(s!=4);

}

}

else {

} break;

fprintf(fps, "\nSecuenc€:: Transfomiation : 1 nverted\n");

s=5; mensaje(6);

case2:{ if(!flag2) {

derivada=com; fprintf(fps, "\nSecuence Transfomiation :

else {

} break;

}

s=5; mensaje(6);

Complemented\n");

} case3:{

}

if(!flag3) { derivada=coi;

} else {

} break;

fprintf(fps, "\nSecuence Transformation : Complemented and Invuted\n");

s=5; mensaje(6);

desp("Secuencia Derivada",derivada); despliega(fte->trad 10,fps, "Aligned Secuences: ",2,derivada->trad I O); i=O; while(derivada->tradlO[i])

if( derivada->trad 10 [ i++ )=='*') { if(s==l) flagl=l; if(s==2) flag2=1; if(s==3) flag3=1; mensaje(6); s=5; break;

} if(s<4) niv _sig(fte,derivada,fps); else s=l;

62

Page 65: Análisis sintáctico de biosecuencias

DESCRIPCIÓN DEL SISTEMA SINTANAL

Generación de la gramática. Se fonnan todas las subsecuencias de longitud dos y se realiza, para cada una de ellas, una búsqueda sobre toda la secuencia para determinar la más frecuente. Aquel patrón de longitud dos que obtiene la mayor frecuencia de aparición (siempre que ésta sea mayor que dos), se sustituye por un símbolo no tenninal en todas sus apariciones. La operación anterior se repite hasta que ya no existan subcadenas de longitud dos que se repitan más de dos veces, entonces las cadenas de longitud mayor o igual que tres que se repitan más de dos veces se sustituyen, después de cada búsqueda, la de mayor longitud por un símbolo tenninal.

Generación de categorías. La infonnación necesaria para producir la separación de las secuencias, por su complejidad, está contenida en la gramática; naturalmente que también en la secuencia, en ténninos del cual podemos describir cada una de ellas, y facilitar la obtención de características simbólicas.

Se genera un archivo para cada secuencia, que contiiene su descripción en términos de las categorías sintácticas que aparecen en la secuencia, también se genera un archivo por cada grupo (clase), que contiene las categorías que aparecen en ese grupo de secuencias.

A partir de los archivos por grupo, se generan las intersecciones entre grupos, para obtener las categorías sintácticas comunes, así como se generan los archivos de unicidad, es decir, los archivos contienen las reglas de producción que únicamente aparecen en las secuencias de esa clase.

En estos archivos se almacenan las categorías sintácticas, su frecuencia y la derivación de la categoría sintáctica (la subsecuencia correspondiente a la regla de producción).

Generando taxonomía Se considera cada categoría sintáctica como una característica de las secuencias, y se aplica el algoritmo ID3 para seleccionar aquellas que nos llevan a una clasificación eficiente de las secuencias, la salida es el archivo que contiene las reglas de decisión (if then), a utilizar para realizar la clasificación.

Se muestran los procedimientos principales.

63

Page 66: Análisis sintáctico de biosecuencias

/* FILESECS crea para cada secuencia un archivo que contiene la.;; categorias sintácticas que aparecen en la descripción de la secuencia, y crea un archivo por clase*/ void filesecs(int *class) { struct rule *production; struct orule *aux; struct clases *nodo=NULL; unsigned *linea,valor; unsigned pi, pp; int nurnarch= l; int nurnclass=O; FILE *fp=NULL, *fpc=NULL; char fnarne[32]; char fclass[32]; char fc[4]; int i,k,np;

np=category-256; linea=calloc(7 l ,sizeof( unsigned) ); if(linea==NULL) error(l); production=grarnrnar; pp=O; while(production->pattern[pp]) {

/* archivo de la secuencia * / itoa(nurnarch,fnarne, 1 O); if((fp=fopen(strcat(fnarne, 11 .sec11

), 11w11))==NULL) error(2);

/* archivo de la clase * I if((nurnarch== 1 )ll(nurnarch==class[nurnclass]+ 1 )) {

}

if(nurnarch!=l) {

}

ffiush(fpc); fclose(fpc); nodo->clase[np]=NULL; vector[ nurnclass-1 ]=nodo;

nodo=(struct clases*) calloc(l,sizeof(struct clases)); if(nodo=NULL) error(}); nodo->clase=( unsigned *) calloc( np+ 1, siz,eof( unsigned)); if( nodo->clase== NULL) error( l); nodo->sig=NULL; strcpy(fclass, 11C 11

);

itoa( ++nurnclass,fc, 10); strcat(fclass,fc ); if(( fpc=fopen(fclass, 11w11

) )== NULL) error(2);

nurnarch++; pl=O; while(((production->pattern[pp]>255) 11 ((production->pattern[pp]>96)

&& (production->pattern[pp]<I23)))&& (production->pattern[pp])) { if(pl<70) linea[pl++ ]=production->pattern[pp++]; else {

for(i=O; i<pl; i++) if(linea[i]>255) {

64

fprintf(fp, 11o/od\n'' ,linea[ i ]-256 ); fprintf(fpc, 11o/od\n 11 ,linea[i ]-256); nodo->clase[linea[i]-256]++; /* incremento de todas las que genera*/

Page 67: Análisis sintáctico de biosecuencias

}

} }

} pl=O;

aux=cuales(linea[i]); for(k=O; k<aux->ncate; k++) {

nodo->cla5e[ aux->producc[k )-256 )++; fprintf(fp,"o/od\n",aux->producc[k)-256);

}

linea[pl++ ]=production->pattem[pp++];

if(production->pattem[pp]) pp++; for(i=O; i<pl; i++)

if(linea[i]>255) {

}

} fclose(fp );

ffiush(fpc); fclose(fpc); nodo->clase[np]=NULL; vector[ numclass-1 ]=nodo; free(linea);

fprintf(fp, "o/od\n" ,linea[ i]-256 ); fprintf(fpc, "o/od\n" ,linea[i)-256); nodo->clase[linea[i)-256)++; /* incremento de todas las que g,enera * / aux=cuales(linea[i]); for(k=O; k<aux->ncate; k++) {

nodo->clase[aux->producc[k)-256)++; fprintf(fp, "o/od\n" ,aux->producc[k )-256 );

/* INfERSECCION genera todas las intersecciones*/ void interseccion(int te, int np) { unsigned ij,k,total,num, *inter, *temp; int *flags, nci, pbf; char fname[64], ff120]; FILE *fp;

flags=(int *) calloc(tc,sizeof(int)); if(flags==NULL) error(!); inter=(unsigned *) calloc(np,sizeof(unsigned)); if(inter==NULL) error(!); temp=(unsigned *) calloc(np,sizeof(unsigned)); if(temp==NULL) error(!); total=pow(2,tc)-l; for(i=L i<=total; i++) {

num=i; nci=O; pbf=O; for(i=O; j<tc; j++) flags[j]=O; for(i=O; j<tc; j++) {

flags[j]=num&l ?l :O; num=num> > 1; if(flags[j]==l) {

fname[pbf++)=(char)(i+49); nci++;

65

Page 68: Análisis sintáctico de biosecuencias

}

}

} } fname[pbf]=NULL; strcat(fname, 11 .int11

);

if((fp=fopen(fname, 11w11) )==NULL) error(2);

for(j=O; j<np; j++) tempfj]=interfj]=O; for(j=O; j<tc; j++) {

if(flagsLi]) {

} }

for(k=O; k<np; k++) if(vectorfj]->clase[k]) {

}

inter[k ]=inter[k ]+vectorLi]->clase[k]; temp[k]++;

for(k=O; k<np; k++) if(temp[k]==nci) {

} fclose(fp);

fprintf(fp, 11o/od\to/od\t11 ,k,inter[k ]); imprime_ derivacion(k,fp );

free(temp}; free(inter); free(flags); completo(l 3 );

/* UNICO categorias que estan unicamente en una clase*/ void unico(int te, int np) { unsigned ij,k, *inter; char fname[32], fn[20]; FILE *fp;

inter=(unsigned *) calloc(category-256,sizeof(unsigned)); if(inter==NULL) error(l); for(i=O; i<tc; i++) {

}

itoa(i+ l,fn, 10); strcpy(fname,f n); strcat( fname, 11

• uni 11);

if((fp=fopen(fname, 11w11) )==NULL) error(2);

for(j=O; j<np; j++) interfj] =vector[ i ]->clase fj];

for(k=O; k<tc; k++) { if(k!=i) {

for(j=O; j<np; j++) if((interfj] !=O)&&(vector[k]->clasefj] !=O)) interLi]=O;

} } for(j=O; j<np; j++)

if(interfj] !=O) {

} fclose(fp);

fpri ntf(fp, 11o/od\to/od\t II j, interfj]); imprime_ derivacion(j,fp );

free(intcr);

66

Page 69: Análisis sintáctico de biosecuencias

completo(14 ); }

/* ENTROPIA Calcula la entropía empírica de Shannon, H{t) = -t log2 t donde t=frecnength free frecuencia length=longitud total */

double entropia(int free, int length) { double t, log, resul;

if((frec==O)ll(frec==length)) resul=O.O; else {

}

t=( double )free/( double )length; log=log 1O(t)nog10(2); resul=-(t)*log;

retum( resul );

/* ENT FEATURE regresa la entropía que se obtiene al utilizar la característica*/ double ent_feature(int feature, struct sec *datos,int tdatos,int ne, struct entfea *nosi) { int iJ,win; double entropy;

}

for(j=O; j<2; j++) { nosiLi).cont=O; nosiLi).entropy=O.O; for(i=O; i<nc; i++)

nosiLi] .clases[i)=O; } for(i=O; i<tdatos; i++) {

if(datos[i].vectcar[feature]== 1) win= 1; else win=O;

}

nosi[win].cont++; nosi[win].clases[datos[i].clase-1 )++;

for(j=O; j<2; j++) { entropy=O.O; for(i=O; i<nc; i++)

}

entropy+=entropia( nosi Li]. clases[ i], nosi Li] . cont); nosi Li]. entropy=entropy;

entropy=O.O; for(j=O; j<2; j++)

entropy+=( ( double )nosi m. cont/( double) tdatos) * ( nosi m. entropy); retum( entropy);

/* FEATURE_ VECTOR Tomando en cuenta la característica seleccionada separa los datos*/ struct sec **feature _ vector(int feature, struct sec *datos, int tdatos) { struct sec *datsi, *datno, **resul; int si=O, no=O, i;

resul=(struct sec **)calloc(2,sizeof(struct sec *)); if(resul==NULL) error(l); for(i=O; i<tdatos; i++)

if(datos[i].vectcar[feature]) si++; else no++;

datsi=(struct sec *)calloc(si,sizeof(struct sec));

67

Page 70: Análisis sintáctico de biosecuencias

}

if(datsi==NULL) error(l); datno=(struct sec *)calloc(no,sizeof(struct sec)); if(datno==NULL) error(l); si=no=O; for(i=O; i<tdatos; i++) {

if(datos[i].vectcar[feature]) {

else {

} } resul[O]=datno; resul [ 1] =datsi; return(resul);

datsi [ si] .clase=datos[i] .clase; datsi [si++]. vectcar=datos[i]. vectcar;

datno[ no] .clase=datos[i] .clase; datno[no++].vectcar=datos[i].vectcar;

/* ANALIZA_NODO escoge la mejor caracteristica para construir los hijos de ese nodo */ void analiza_nodo(struct arb *nodo, int ne, int np,struct entfea *nosi, int *feat) { struct arb *aux; struct sec **datos; struct entfea *cnosi=NULL; int ij,best, *features; double EC=O.O, El, D=O.O, valor, EO, El;

EI=nodo->El; best=-1; valor=O.O; features=(int *)calloc(np, sizeof(int)); if(features==NULL) error(l); for(i=O; i<np; i++) features[i]=feat[i]; for(i=O; i<np; i++) {

}

if(features[i]==O) {

}

EC=en t _ feature( i, nodo->dat,nodo->tdatm., ne, nosi); D=EI-EC; if(D>valor) {

}

valor=D; best=i; if(cnosi!=NULL) {

free(cnosi[O].clases); free(cnosi[ 1 ].clases); free(cnosi);

} cnosi=realiza _ copia( nosi, ne);

/* caracteristica con mayor decremento es best, es parte del arbol*/ if(best ! =-1) {

features[best]= 1; nodo->category=best; for(i=O; j<2; j++) {

aux=make _ nodo( cnosi Li]. cont,cnosi Li]. entropy ); if( cnosi [j]. entropy==O)

for(i=O; i<nc; i++)

68

Page 71: Análisis sintáctico de biosecuencias

}

}

if(cnosiLi].clases[i] !=O) aux->clase=i+l; if(i==O) nodo->hizq=aux; else nodo->hder=aux;

free(cnosi[O].clases); free( cnosi [ 1]. clases); free(cnosi); datos=feature _ vector(best,nodo->dat, nodo->tdatoi;); free(nodo->dat); nodo->hizq->dat=datos[O); nodo->hder->dat=datos[ 1]; if((nodo->hizq)&&(nodo->hizq->EI!=O))

analiza_nodo(nodo->hizq,nc,np,nosi,features); if((nodo->hder)&&(nodo->hder->EI!=O))

analiza_nodo(nodo->hder,nc,np,nosi,features);

free(fcatures);

t• RECORRE realiza el recorrido del arbol, creando el archivo con las reglas de decisión*/ void recorre(struct arb *nodo, int *features, FILE *fd) { intj,ant=O;

if(nodo->category==-1) {

} else {

} }

fprintf(fd, "IF ["); for(i=l;j<=features[O];j++) {

if((i!=l)&&(ant!=l)) fprintf(fd, "&"); if(ant==l) ant=O;

}

if(featuresLi] !=-1)

else {

}

fprintf(fd, "(o/od)" ,featuresLi]);

fprintf(fd," ! "); ant=l;

fprintf(fd,"] -> Clase o/od\n",nodo->clase);

features[ ++features[0])=-1; features[++features[O)]=nodo->category; if(nodo->hizq) {

}

recorre( nodo-> hizq,f eatures,fd); features[features[O]J=O; features[features[0)-1 ]=O; features[0)-=2;

features[++features[O))=nodo->category; if(nodo->hder) {

recorre(nodo->hder,features,fd); features[features[OJJ=O; features[OJ--;

}

69

Page 72: Análisis sintáctico de biosecuencias

APÉNDICE B: SECUENCIAS ANALIZADAS

70

Page 73: Análisis sintáctico de biosecuencias

RELACIÓN DE SECUENCIAS ANALIZADAS Extraídas del banco de datos: Entrez Documental retrieval software

No. ORGANISMO GLOBINA GENBANK GEN:BANK ARCHIVO NAME ACCl[SSION

2 Galago beta GCRHBEGEB M7398 l GCRHEX2.C Crassicaudatus

5 Lemur macaco beta LEMHBB Ml5734 LEMEX2.C 6 Tarsius syrichta beta TARHBB J04429 TAREX2.C 8 Horno sapiens beta HUMHBB J00179 HUMEX2.C 10 Bos taurus beta BOVHBB X00376 BOVHEX2.C 11 Xenopus laevis beta XELHBBC J00978 XELHEX2.C 12 Lepus europaeus beta LEEBGLOB Y00347 LEEEX2.C 13 Capra hircus beta GOTHBBAA Ml5387 GOTBEX2.C 14 Xenopus tropicalis beta XELGLB Y00501 XELEX2.C 15 Rattus norvegicus beta RATHBBZ X06701 RATHEX2.C 17 Oryctolagus cuniculus beta RABBGLOB M18818 RABTEX2.C 18 Oryctolagus cuniculus beta RABHBBAA J00659 RABEX2.C 19 Capra hircus beta GOTHBBB Ml5389 GOTHEX2.C 21 Gallus gallus beta CHKGL02 V00409 CHK2EX2.C 58 Xenopus laevis beta XELHBBI X01084 XELB1EX2.C 3 Oryctolagus cuniculus gamma RABBGLOB Ml8818 RABGEX2.C 23 Cebus albifrons gamma2 CEBGLOBIN M81409 CBE3EX2.C 24 Bos taurus gamma BOVHBG X00354 BOVGEX2.C 25 Bos taurus gamma BOVFGG M63452 BOVFEX2.C 27 Galago crassicaudatus gamma GCRGGLOB M36305 GCRGEX2.C 30 Galago crassicaudatus gamma GCRHBEGEB M73981 GCR2EX2.C 34 Cheirogaleus medius gamma LEMHBGA Ml5758 LEMGEX2.C 36 Horno sapiens G-gamma HUMHBB JOOl 79 HUMGGEX2.C 40 Horno sapiens A-gamma HUMHBB J00179 HUMAGEX2.C 41 Capra hircus gamma GOTHBGA Ml5388 GOTGEX2.C 44 Ateles geoffroyi gamma MNKGGLINE X53420 MNKGEX2.C 46 Macaca mulatta 5'gamma MACHBGA2 M19434 MACG5EX2.C 47 Macaca mulatta 3'gamma MACHBGAl Ml9433 MACG3EX2.C 49 Lemur macaco gamma LEMHBG Ml5757 LEMHEX2.C 22 Cebus albifrons épsilon CEBGLOBIN M81409 CEBEEX2.C 28 Galago crassicaudatus épsilon GCREGLOB M36304 GCREEX2.C 31 Galago crassicaudatus épsilon GCRHBEGEB M73981 GCR1EX2.C 32 Cairina moschata épsilon CIIEGA2E2 Xl5740 CIIEX2.C 35 Lemur macaco épsilon LEMHBE Ml5735 LEMEEX2.C 37 Horno sapiens épsilon HUMHBB JOOl 79 HUMEEX2.C 50 Oryctolagus cuniculus épsilon RABBGLOB M188l8 RABEEX2.C

Nota: Se utiliza la subsecuencia de longitud 222 correspondiente al exon no. '.! de cada secuencia.

71

Page 74: Análisis sintáctico de biosecuencias

APENDICE C: RESULTADOS DEL ÁNALISIS DE SECUENCIAS

BETA-GAMMA-ÉPSILON

72

Page 75: Análisis sintáctico de biosecuencias

ANÁLISIS DE GLOBINAS BETA, GAMl\tl[A Y ÉPSILON

GRAMÁTICA PRODUCCIONES: 5306-> [S213] [S 114] [S229] [S 154] [S216][S26] [S 156) [S2 l 7] [S 109) [S2 l 8] [S 10) [S5] [S296] [S 13) [S24] [S2 l 9) [S4) [S 13][S 134][S 127][Sl 18]A

[S298] [S 122] [S l 3]t[S 16) [S22] [S254 ][S3 ][S 165] [S242] [S4] [S4 l] [S 14] [S5] [S26] [S57]t[S60] [S 13] [S2 l] [S 106][S206][S88][S 14 ][S83][S24][S4 ][S289][S 16][S3][S2 l ]a[S37][S60][S 10][S2 l 4 ][S98) [S 178) [Sl67][S215]B

[S87] [S293] [S230] [S227] [S 14] [S80] [S73] [S 191] [S36] [S228] [S 13] [S 181] [l 77][S 151 ][S79][S86][S36][S2][S214][S66][S 13][S244][S2 l 5]C

[S224] [S216] [S l] [S225) [S73] [S290] [S296] [S300][S3] [S20] [S 184] [S208]D

[S224] [S4] [S82] [S22] [S 1] [S225) [S 15] [S 124] [S290][S 13] [SO] [S20] [S l] [S99] [S300] [S256] [S 134] [S 127] [S76]E

[S68][S5] [S99][S241] [S65][SO][Sl 12][S 11) [S37][S302][S24][S227][S 172] [S55) [S206] [S3] [S 106] [SO] [S228] [S 15] [S5] [S29] [S88] [S29] [S243] [S9] [S 1] 1 S58) [S 173 ]F

[S23 l][S229][S255][S227][S238)[S72][S239][S 1 ][Sl6][S 13][S86)[S 136) [S214][S173]G

[S30 l][S 17 l][S230][Sl69] [S64][S70][S 156][S36][S228][S73]t[S l 9]t[S 15 l][S79] [S88]a[S58][S6 l][S303] [S 33] [S 14] [S20) [S32) [S 1] [S3 ]H

[S23 l ][S240] [S 10][SO][S216][S 1 ][S 11 ][S238][S72][S292]1

[S23 l ][S240)[Sl )[SO][Sl52)[S 103)[S l l][S238)[S l 77][S292]J

[S87) [S24 l] [S59) [S 179] [S62] [S 18) [S3] [S 1 O] [S 109) [S64] [S85] [S 108] [S267]a[S22]t[S70] [S242]gg[S73] [S 10 l] [S 11] [S 10][S24] [S 16) [S 1 ]a[S 15] [S5] [S 12] [S 1 O] [S 107] [S3] [S5] [S243] [S88)t[S 136) [S3] [S229] [S 141 ]K

[S301] [S293] [S302) [S60) [S 152] [S 103] [S225] [S63] [S57][S 149] [S23) [SO] [S4] [S226)[S 111 ][S3 l ][S l 24 ]g[S55][S88]t[S34 ][S243][S l 50][S280][S303][S39] [S2][S 10][S82][S43]L

[S68] [S84][SO][S82][S67][S44][Sl 79][Sl l][Sl8][S20][Sl l 7][Sl42][S75][S9] [S24] [S5] [S4] [S4 l] [S304] [S 180) [S42] [S 13] [SO] [S 186) [S82] [S30] [S4] [S60]t [S 13] [S24] [S 177] [S4 l] [S9] [S9] [S82] [S2] [S96] [S 11] [S 17] [S32] [S 140) [S37]a [S4] [S 103] [S 13] [S 182) [S 13) [S4] [SS] [S 1 O] [S3] [S9] [S 13] [S244] [S 138) [S l 7]M

[S68][S265][S 11 ][S67][S 121] [S l 79][S62][S20][S20][S82)[S5] [S 142][S3] [S3] [S9] [S24] [S99) [S60) [S3 7] [S304] [S24] [S63] [S 18) [S80) [S57) [S 185) [S 1 O] [S72] [S253][S20][S37] [S5] [Sl53][S l][S l l][S 165)[Sl ]t[S34)a[Sl83][S245][S2][S9][S 16][S 10) [S l 79][S6] [S2] [S 1 7) [S2] [S9] [SO] [S4] [S8] [S 11] [S6] [S 1] [SO] [S33] [Sl67][S 138][Sl 7]N [S246] [S5] [S62] [S 11] [S67] [S25] [S28] [S 11] [S62]t[S2] [S 18) [S6]t[S22] [S70)

73

Page 76: Análisis sintáctico de biosecuencias

[S88]a[S 153] [S 154] [S60]t[S6] [S9] [S 1] [S24] [S8] [S4] [S5] [S4] [S3] [S55] [SO] [S 10] [S23] [S5] [S93]t[S75] [S5] [S2] [S8] [S4 l ][S 17] [S 1 ][S55]a[S93 ]t[S 1 O] [S l 13][S l l][Sl09][S l 76][S20][S4][S 103][S l 77][S7][Sl ][S3][S20][S2][S2.:i 1] [S 107][SO] [S33][S4 l][SO][S32][S 17]0

[S282]P

[S282]Q

[S29 l] [S20] [S253] [S230] [S297] [SO] [S 13 J [S23] [SOJ[S 116] [S28] [S 160] [S28 7JR

[S281JS

[S28l]T

[S224 ][S9][S82][S7 l][Sl56][S 18][S2][S 107][Sl 11 ][S3 l][S25 l ][Sl4][S l][S252]U

[S285]V

[S285JW

[S 126] [S204 J [S 1 O] [S 114 J [S 108] [S288] [S258] [S l 75J[S69] [S305J[S244 J [S 13 8Jt[S28JX

[S 115] [S7] [S60] [S65] [S204] [S26] [S75] [S240] [S 174 ][S288] [S 124] [S 158] [S 120J[S 162J[S263J[S 159J[S l 9J[Sl3J[S259Jt[S28JY

[S286JZ

[S286] 1

[S29 l J [S28] [S253] [S 140] [S266] [S297] [S 13] [S73] [SO] [S 116] [S 189] [S287]2

[S90Jt[S 13Jt[S75] [S 14] [S59] [S2] [S 148] [S 13] [S 11 J[S2] [S269] [S295] [S 164 J [S73] [S 186] [S30] [S 15] [S4 J [S209] [S37] [S80] [S 1 O] [SO] [S5] [S96] [S88] [S268 I [S264 J [S 18] [S 13] [S305] [S33] [S 167][S40] [S 149]3

[S294] [S204] [S 185] [S75] [S 140] [S299] [S 191 J [S284][S7] [S 1] [S6] [S84] [S86] [S86] [S205] [S3 J [S 107] [S4 J [S 141 ]4

[S298] [S46] [S3] [S6] [S 16] [S 106]g[S70] [S37] [S 165] [S242][S60] [S8 l ]t[S5] [S26] [S 11 O]t[S 167]c[S57] [S43] [S 1 O] [S 148] [S 1 ][S6] [S83 ][S70] [S60] [S289] [S 14] [S 180] [S72] [S30] [S4 J [S48J[S205] [S28] [S4J[S 17] [S5] [S70] [S60] [S2 l 515

[S283]6

[S283]7

[S294 J [S 163] [S 168] [S 166] [S299] [S 10 l J [S284 J [S 167][S4 7] [S 150] [S26 l ]8

[S277] [S56] [S77] [S 107] [S20] [S2] [S 148] [S 105] [S 1 O] [S82] [ S5] [S 168] [S 108] [S4 l ]a[S34 J [S279][S 10 l J [S272J[S8] [S276] [S280] [S 19] [S208]9

[S27 l][S77J[S25][S28J[S 148J[S204J[S 1 J[Sl 14 J[S295J[S l l 9J[S260J[S211]

74

Page 77: Análisis sintáctico de biosecuencias

[S209][S4 l][S l 7][S212][S6][S23]g[Sl29][S 150][S280][S 127][S52][S 149)

S305->[S2 l ][S263)[S 190) S304->[S3 ][S34 ][S 10) S303->[S84] [S 1] [S 13) S302->[S9)[S3][S 12) S30 l->[S68]t[S 166) S300->[SO][S 124 ][S2 l 9] S299->[S266][S41][S29][S279] S298->[S246][S l l][S 166][S 145) S297->[S 100) [S 188] [S 13] [S55) S296->[S 1] [S 15] [S 103] [S99) S295->[S 14] [S6] [S35) [S81] [S201] S294->[S277] [S265][S207] [S 11] [S202] S293->[S74] [S 15) [S3] [S83] [S85) S292->[S239] [S69)[S86) [S 187) [S 173) S291->[S90][S84][S30][S l 35]a[Sl 17] S290->[S10 l][S217][S53][S218][S226]g S289->[S245][S 199][S 107][S 107]t[S 144 ][S 1] S288->[S75][S l ][S7 l )[S89)[S63][Sl 91 ][SI 16) S287->[S254] [S 15) [S 105) [S50) [S 1) [S92] [S 165] [S200) S286->[S 195](S l l 9][S264) (S l 39][S l 97][S 199][S l 98][S200] S285->[S 195][S188][S260][Sl 97][Sl25](Sl 98][S 187][S26 l] S284->[S97] [S209) [S267] [S268]a[S55] [S78][S3] [S 17) S283->[S271] [S207) [S 148) [S205) [S7] [S269) [S 143) [S 119][557] [5206) [5272) [S28] [5276) [S66] [S208) S282->[S213] [S 155) [S60] [S 180) [S82] [S201] [Sl 56) [534 ][S53] [S 157) [SO] [S251] [S6] [S 13) [S252) S28 l->[S 126][S93][S92][S 185)[S37)[S35][S255][S 100)[S60](S23](S63](S l 86](S 18](S256] [S l 8](S95]

[S258](S50]t[S 124 ](S202](S2 l ]t[S58](S 190](S259][S43] S280->[S93][S 10] S279->[S278][S 119) S278->g[S26] S277->[Sl4 7][S 13] S276->[S275] [S 150] S275->[S274][Sl46] S274->[S273][S212) S273->[S37] [S 149] S272->[S21 l][Sl28) S27 I->[S270][S5 l] S270->[S 147][S30] S269->[S9 l][SI68] S268->[S IO)[SlO) S267->[S75]t S266->c[S35] S265->[S84] [S82] S264->[S l ][S l] S263->[S262] [S48] S262->[S I 2][S3 l] S26 l->[S98](S 118] S260->[S l ][S 137] S259->[S39] [S 138) S258->[S257][S96] S257->[S I89][S 120] S256->[S4] [S2] S255->[S6][S4]

75

Page 78: Análisis sintáctico de biosecuencias

S254->[S70][S3] S253->[S I 2]t S252->[S 184][SI23] S25 l->[S250][SI46J S250->[S249] [S7] S249->[S248][S 183] S248->[S24 7][S53] S247->[S 181 )(Sl82] S246->[S4][S4] S245->[S l 5][S2] S244->[Sl 78][S 12] S243->[S78] [S79] S242->c[S21] S241->[S7][Sl4] S240->[S 14 ][S 19] S239->[S 15 l][Sl 75] S238->(S237][Sl 74] S237->[S236][Sl 13) S236->[S235][S 153] S235->[S234][S 16] S234->[S233][S4] S233->[S232][S34] S232->[Sl 72][Sl37] S23 l->[S87] [S 171] S230->[Sl40][Sl57] S229->[S9] [S4] S228->[S 111 ][S2] S227->[Sl69][S7 l] S226->[S70]g S225->[S l 76][S23] S224-> [S223] [S 154] S223->[S222] [S 155] S222-> [S22 l ][S64] S22 l->[S220][S6] S220->[Sl32][Sl03] S2 l 9->[S7][S79] S218->[Sl I I][S72] S217->[S3][S2] S216->[Sl 52][S 10] S215->[S40][S43] S2 l 4->[S l 9][S84] S213->[Sl32][S 112] S212->[S l 20][S78] S21 l->[S210][S3] S21 O->[S4 ][S7] S209->[Sl28][S24] S208->[S 13 ][S 118] S207 ->[SI 45] [S2] S206->[S 144][S3 l] S205->[SO][S2] S204->[S203] [S5] S203->[S93][S62] S202->[S 18][S 18] S20 l->[S22][Sl42]

76

Page 79: Análisis sintáctico de biosecuencias

S200->[S58)[S 14 l] S l 99->[S70] [S34] Sl98->[Sl62]g S 197->[Sl 96][S 160] S l 96->[Sl l6][S24] S 195->[S l 94][S 143] Sl 94->[S l 93][S37] Sl93->[Sl92][S26] S l 92->[Sl26)[S 163] S l 9 l->[S2 l )[S 139] S l 90->[Sl59][Sl27] S 189->[S28)[S 158] Sl88->[S l64][S63] Sl87->[S136][S38] S l 86->[S57] [S45] S 185->[S lO][S 11] S 184->[S134][Sl 9) S 183->[S l 5][SO] S l 82->[S28][S l] Sl81->[Sl 13][S12] Sl80->[S24][S9] Sl79->[S8]t S l 78->[S5][S7] S 177->[S lO]t S l 76->[S24][S3] S l 75->[S88][S23] Sl74->t[S4] S l 73->[S66][S 123] S 172->[S l04)[S3] S 171->[Sl 70)[S85] S l 70->[Sl 35][Sl 12) S 169->[S 102]a Sl68->[S10][S85) S 167->c[S60] Sl66->[S l 3][S99] S 165->[S9]g S 164->[S2 l ][S28] Sl63->[Sl5][Sl 17) S 162->[S 16 l][S2 l) S l 6 l->[S96][S79] Sl60->[S4 l ][S80) S 159->[S 15][S43] S l 58->[S75] [S80) Sl57->[Sl6][S4] S 156->[S 104][S101] S 155->[S 114 ][S35) S l 54->[S4 ][S24] S l 53->[S20][SO] S 152->[S l02J[S24] S 151->[S l 25][S78] S l 50->[S86] [S58] S 149->[S 1 ][S 10] Sl48->[Sl09][S6] Sl47->[S3][Sl4]

77

Page 80: Análisis sintáctico de biosecuencias

S 146->[S50][S 129) S 145->[S77)[S44] S 144->[S l 7][S 10) Sl43->[S 108][S 100) S 142->[S 10][S7] S l 4 l->[S98][S76] S 140->[S 14 ][S3] Sl39->[S106)[S54] S 138->[S 10][S32] Sl37->[S55][S54] S l 36->[S36J[S 1 O] S 135->[S74 J[S 13] S 134->[S 133J[S28] Sl33->[S58J[S 105] Sl32->[S 131 ][S 122] Sl3 l->[S 130][S 121] S l 30->[S87][S77] S 129->[SO][S4 7] Sl28->[S92][S2] Sl27->[S l 9][SO] Sl26->[Sl 15][S74] S 125->(S 1 ][S29] S124->[S7]g Sl23->[Sl3][S76] S l 22->[S46][SO] Sl2 l->[S53][S20] Sl20->[SlO)[S55) Sl 19->[Sl 10][S63) SI 18->[S52][Sl7] SI 17->[S20][S91] S 116->[S97][S95] S l l 5->[S90] [S56] SI 14->[S53][S30] SI 13->[S8]g SI 12->[S72][S83] Sl l l->[Sl6]t S l 10->[S2 l ][S8] S109->[Sl l]t Sl08->[S35][S35) S107->a[Sl] Sl06->[Sl3]g S 105->[SO][S 11] S 104->[S89][S73] Sl03->[S2][Sl] S102->[S4][Sl8] S 1 O l->[S57] [S54] S100->[S81 ][S71] S99->t[S3] S98->[S66][SOJ S97->[S4][S62] S96->[S24 ][S 11 J S95->[S94 ][S2] S94->[S 14 ][S22] S93->[Sl5][Sl]

78

Page 81: Análisis sintáctico de biosecuencias

S92->[S 16] [S5] S9 l->[S6][S5] S90->[S3][S29] S89->[Sl4][S23] S88->[S3][Sl] S87->[S68][S56] S86->[S3] [S28] S85->[S7][S3 7] S84->t[SO] S83->[Sl6J[S64] S82->[Sl8]t S81->[S4l][Sl] S80->(S l O] [S2] S79->(S50] [S69] S78->a[S26] S77->[S7][S67] S76->[S52J[S43] S75->[S3][Sll] S74->[S25][S65] S73->[S 15] [S8] S72->[S2]t S7 l->[S22][S26] S70->a[S7] S69->[Sl][S47] S68->[S4][S34] S67->c[S29] S66->[S6 l ][S 19] S65->[S59][S46] S64->[S22]g S63->t[S27] S62->a[S6] S6 l->[S l 5](S 17] S60->c[Sl3] S59->[S5] [S44] S58->[S36] [S48] S57->[S2 l ][S5] S56->t[S5 l] S55->[S 1 ][S5] S54->[S45] [SO] S53->a[S3] S52->[S39][S40] S5 l->[S30][S3] S50->[S49]g S49->[S3][S27] S48-> [S2 ][S38] S47->[Sl6][SO] S46->[S42][S6] S45->[Sl 7J[S23] S44->[S25]g S43->[S20]g S42->[S8][S 18] S41->[S9]t S40->[S2][S32] S39->[S33][S 12]

79

Page 82: Análisis sintáctico de biosecuencias

S38->[S l 9)[S4] S37->[S4]t S36->[S4 ][S3 l] S35->[Sl4][S4] S34->[S4]g S33->[S5][S 11) S32->[S lO][S6] S3 l->[S2] [SO) S30->[SO]t S29->[S l 2]g S28->a[S2] S27->[Sl][S8) S26->[S 1 ][S7] S25->[S7] [S9] S24->a[SO] S23->a[S8] S22->[S5]g S21->c[S9] S20->[Sl]g Sl9->[S4][Sl] Sl8->tt Sl7->[Sl][S2] Sl6->c[S6] Sl5->[SO]a Sl4->c[S3] S13->cg Sl2->c[S4] Sl 1->at SlO->aa S9->c[Sl] S8->[S2]g S7->ac S6->[S3]t S5->[SO]g S4->c[SO] S3->ct S2->ag Sl->ca SO->tg

complex.ity = 1480 redundance = 0.805058 elapsed time = 309 seconds

80

Page 83: Análisis sintáctico de biosecuencias

Derivaciones correspondientes a las categorías sintácticas

SO->tg Sl->ca S2->ag S3->ct S4->ctg S5->tgg S6->ctt S7->ac S8->agg S9->cca SIO->aa SI 1->at Sl2->cctg Sl3->cg Sl4->cct Sl5->tga Sl6->cctt Sl7->caag Sl8->tt Sl9->ctgca S20->cag S21->ccca S22->tggg S23->aagg S24->atg S25->accca S26->caac S27->caagg S28->aag S29->cctgg S30->tgt S31->agtg S32->aactt S33->tggat S34->ctgg S35->cctctg S36->ctgagtg S37->ctgt 538->ctgcactg S3 9->tggatcctg S40->agaactt S41->ccat S42->aggtt S43->cagg S44->acccag S4 5->caagaagg S46->aggttctt S4 7 ->cctttg S48->agctgcactg S49->ctcaagg S50->ctcaaggg

81

Page 84: Análisis sintáctico de biosecuencias

S51->tgtct S52->tggatcctgagaactt 553->act S54->caagaaggtg S55->catgg S56->ttgtct S57->cccatgg S58->ctgagtgagctgcactg S59->tggacccag S60->ccg S6 l ->tgacaag S62->actt S63->tcaagg 564->tgggg S65->tggacccagaggttctt S66->tgacaagctgca S67->ccctgg S68->ctgctgg S69->cacctttg S70->aac S 71->tgggcaac S72->agt S73->tgaagg S 7 4->acccatggacccagaggttctt S75->ctat S 7 6->tggatcctgagaacttcagg S 77->acccctgg S78->acaac S 79->ctcaagggcacctttg S80->aaag 581->ccatca S82->ttt 583->cctttgggg S84->ttg S85->acctgt 586->ctaag S87->ctgctggttgtct S88->ctca S89->cctaagg S90->ctcctgg S 91->ctttgg S92->cctttgg S93->tgaca S94->ccttggg S 9 5->ccttgggag S96->atgat S97->ctgacu S98->tgacaagctgcatg S99->tct S l 00->ccatcatgggcaac S l O 1->cccatggcaagaaggtg S 102->ctgtt S103->agca S 104->cctaaggtgaagg

82

Page 85: Análisis sintáctico de biosecuencias

Sl05->tgat Sl06->cgg Sl07->aca S 108->cctctgcctctg Sl09->att S 110->cccaagg S 111->ccttt S 112->agtcctttgggg Sl 13->aggg S 114->acttgt S 115->ctcctggttgtct S 116->ctgacttccttgggag S 117->cagctttgg S 118->tggatcctgagaattcaag S 119->cccaaggtcaagg S 120->aacatgg S 121->actcag S 122->aggttctttg S 123->cgtggatcctgagaacttcagg Sl24->acg Sl25->cacctgg S 126->ctcctggttgtcta1;ccatggacccagaggttctt Sl27->ctgcatg Sl28->cctttggag S 12 9->tgcctug S 13 0->ctgctggttgtctacccctgg S 13 1->ctgctggttgtctacccctggactcag S 13 2->ctgctggttgtctacccctggactcagaggttctttg S 133->ctgagtgagctgcactgtgat S 134->ctgagtgagctgc:actgtgataag S 13 5->acccatggacccagaggttcttcg S 136->ctgagtgaa S 13 7 ->catggcaagaaggtg S 138->aaaactt S 13 9->cggcaagaaggt.g S 140->cctct S 141->tgacaagctgcatgtggatcctgagaacttcagg Sl42->aaac S 14 3->cctctgcctctgccatcatgggcaac S 144->caagaa S 14 5->acccctggacccag S 146->ctcaagggtgcctttg S 14 7 ->ctcct S 148->attctt Sl49->caaa S 150->ctaagctgagtgagctgcactg S 151->cacctggacaac S 152->ctgttatg Sl53->cagtg S 154->ctgatg S 15 5->acttgtcctctg S 156->cctaaggtgaaggcccatggcaagaaggtg S 15 7 ->ccttctg S 158->ctataaag

83

Page 86: Análisis sintáctico de biosecuencias

S 15 9->tgacagg S 160->ccataaag S 161 ->atgatctcaagggcacctttg S 162->atgatctcaagggcacctttgccca S 163->tgacagctttgg S 164->cccaaag Sl65->ccag S 166->cgtct Sl67->cccg S 168->aaacctgt S 169->ctgtta S 170->acccatggacccagaggttcttcgagtcctttgggg S 171->acccatggacccagaggttcttcgagtcctuggggacctgt S 172->cctaaggtgaaggct S 173->tgacaagctgcacgtggatcctgagaacttcagg S174->tctg S 17 5->ctcaaagg S 176->atgct Sl77->aat S 178->tggac Sl79->aggt S 180->atgcca S 181->agggcctg S182->aagca S 183->tgatg S 184->ctgagtgagctgcactgtgataagctgca Sl85->aaat S 186->cccatggcaagaagg S 187->ctgagtgaactgcactg Sl88->cccaaagtcaagg S 189->aagctataaag S 190->tgacaggctgcatg S 191->cccacggcaagaaggtg S 192->ctcctggttgtctacccatggacccagaggttctttgacagctttgg S 193->ctcctggttgtctacccatggacccagaggttctttgacagctttggcaac S 194->ctcctggttgtctacccatggacccagaggttctttgacagctttggcaacctgt S 195->ctcctggttgtctacccatggacccagaggttctttgacagctttggcaacctgtcctctgcctctgccatcatgggcaac S 196->ctgacttccttgggagatg S 197->ctgacttccttgggagatgccataaag S 198->atgatctcaagggcacctttgcccag S 199->aacctgg S200->ctgagtgagctgcactgtgacaagctgcatgtggatcctgagaacttcagg S201->tgggaaac S202->tttt S203->tgacaactt S204->tgacaactttgg S205->tgag S206->caagaaagtg S207->acccctggacccagag S208->cgtggatcctgagaacttcaag S209->cctttggagatg S2 l 0->ctgac S211->ctgacct S2 l 2->aacatggacaac

84

Page 87: Análisis sintáctico de biosecuencias

S2 l 3->ctgctggttgtctacccctggactcagaggttctttgagtcctttgggg S2 l 4->ctgcattg S215->agaacttcagg S216->ctgttatgaa S217->ctag S2 l 8->cctttagt S219->acctcaagggcacctttg S220->ctgctggttgtctacccctggactcagaggttctttgagca S221->ctgctggttgtctacccctggactcagaggttctttgagcactt S222->ctgctggttgtctacccctggactcagaggttctttgagcactttgggg S223->ctgctggttgtctacccctggactcagaggttctttgagcactttggggacttgtcctctg S224->ctgctggttgtctacccctggactcagaggttctttgagcacutggggacttgtcctctgctgatg S225->atgctaagg S226->aacg S22 7->ctgttatgggcaac: S228->cctttag S229->ccactg S230->cctctccttctg S231->ctgctggttgtctacccatggacccagaggttcttcgagtcctttggggacctgt S232->cctaaggtgaaggctcatggcaagaaggtg S23 3->cctaaggtgaaggctcatggcaagaaggtgctgg S234->cctaaggtgaaggctcatggcaagaaggtgctggctg S2 3 5->cctaaggtgaaggctcatggcaagaaggtgctggctgcctt S236->cctaaggtgaaggctcatggcaagaaggtgctggctgccttcagtg S237->cctaaggtgaaggctcatggcaagaaggtgctggctgccttcagtgaggg S238->cctaaggtgaaggctcatggcaagaaggtgctggctgccttcagtgagggtctg S239->cacctggacaacctcaaagg S240->cctctgca S24 l ->accct S242->cccca S24 3->acaacctcaagggcacctttg S244->tggaccctg S245->tgaag S246->ctgctg S24 7->agggcctgaagca S248->agggcctgaagcaact S249->agggcctgaagcaacttgatg S250->agggcctgaagcaacttgatgac S251->agggcctgaagcaacttgatgacctcaagggtgcctttg S252->ctgagtgagctgcactgtgataagctgcac!,rtggatcctgagaacttcagg S253->cctgt S254->aacct S255->cttctg S256->ctgag S257->aagctataaagaacatgg S258->aagctataaagaacatggatgat S259->tggatcctgaaaa,;;tt S260->cacatggcaagaaggtg S261->tgacaagctgcatgtggatcctgagaacttcaag S262->cctgagtg S263->cctgagtgagctgcactg S264->caca S265->ttgttt S266->ccctctg

85

Page 88: Análisis sintáctico de biosecuencias

S267->ctatt S268->aaaa S269->ctttggaaacctgt S270->ctccttgt S27 l->ctccttgttgtct S2 72->ctgacctcctttggag S273->ctgtcaaa S2 7 4->ctgtcaaaaacatggacaac S27 5->ctgtcaaaaacatggacaacctcaagggtgc:ctttg S2 7 6->ctgtcaaaaacatggacaacctcaagggtgc:ctttgctaagctgagtgagctgcactg S277->ctcctcg S278->gcaac S279->gcaaccccaaggt,::aagg S280->tgacaaa S281->ctcctggttgtctacccatggacccagaggttctttgacacctttggaaatctgtcctctgcttctgccatcatgggca

acccgaaggtcaaggcccatggcaagaaggttctgagttccttgggagaagctataaagaacatggatgatct caagggtacgttttcccatctgagtgagctgcactgtgacaggctgcatgtggatcctgaaaacttcagg

S282->ctgctggttgtctac:ccctggactcagaggttctttgagtcctttggggacttgtcctctgccgatgcca ttttgggaaaccctaaggtgaaggcccatggcaagaaggtgctggactccttctgtgagggcctgaagc aacttgatgacctcaagggtgcctttgcttcgctgagtgagctgcactgtgataagctgcacgtggatcct gagaacttcagg

S283->ctccttgttgtctacccctggacccagagattctttgagacctttggaaacctgtcctctgcctctgccatcatgggcaa ccccaaggtcaaggcccatggcaagaaagtgctgacctcctttggagaagctgtcaaaaac,1tggacaacctc aagggtgcctttgctaagctgagtgagctgcactgtgacaagctgcacgtggatcctgagaacttcaag

S284->ctgacttcctttggagatgctattaaaaacatggacaacctcaag S285->ctcctggttgtctacccatggacccagaggttctttgacagctttggcaacctgtcctctgcctctg,::catcatgggca

accccaaagtcaaggcacatggcaagaaggtgctgacttccttgggagatgccataaagcacctggatgat ctcaagggcacctttgcccagctgagtgaactgcactgtgacaagctgcatgtggatcctgagaacttcaag

S286->ctcctggttgtctacccatggacccagaggttctttgacagctttggcaacctgtcctctgcctctg::catcatgggca accccaaggtcaaggcacacggcaagaaggtgctgacttccttgggagatgccataaagaacctggat gatctcaagggcacctttgcccagctgagtgagctgcactgtgacaagctgcatgtggatcctgagaacttcagg

S287->aaccttgatgatctcaagggcacctttggccagctgagtgagctgcactgtgacaagctgcatgi:ggat cctgagaacttcagg

S288->ctatcatgggcaac:cctaaggtcaaggcccacggcaagaaggtgctgacttccttgggag S289->tgaagaacctggacaacatcaagaaca S290->cccatggcaagaaggtgctagactcctttagtaacgg S291->ctcctggttgtgtac:ccatggacccagaggttcttcgacagctttgg S292->cacctggacaacctcaaaggcacctttgctaagctgagtgaactgcactgtgacaagctgcacgtgg

atcctgagaacttcagg S2 93->acccatggacccagaggttctttgactcctttggggacctgt S2 94->ctcctcgttgtttac,::cctggacccagagattttt S2 9 5->cctcttcctctgccatcatgggaaac S2 96->catgaagcatct S2 97->ccatcatgggcaaccccaaagtcaaggcgcatgg S298->ctgctgatcgtctacccctggacccag S2 99->ccctctgccatcctgggcaaccccaaggtcaagg S300->tgacgacctcaagggcacctttg S301->ctgctggtcgtct S302->ccactcctg S303->ttgcacg S304->ctctggaa S30 5->cccacctgagtga gctgcactgtgacaggctgcatg S306->ctgctggttgtctacccctggactcagaggttctttgagtcctttggggacttgtccactgctgatgctg

86

Page 89: Análisis sintáctico de biosecuencias

ttatgaacaaccc:taaggtgaaggcccatggcaagaaggtgctagattcctttagtaatggcatgaagc atctcgatgacctcaagggcacctttgctgc:gctgagtgagctgcactgtgataagctgcatgtggatcc tgagaacttcaagA

ctgctgatcgtct1cccctggacccagaggttctttgcgtcctttgggaacctctcc agccccactgccatccttggcaaccccatggtccgcgcccacggcaagaaagtgctcacctcctttgg ggatgctgtgaagaacctggacaacatcaagaacaccttctcccaactgtccgaactgcattgtgacaa gctgcatgtgga,ccccgagaacttcaggB

ctgctggttgtctacccatggacccagaggttctttgactcctttggggacctgtcctctccttctgctgttat gggcaaccctaaagtgaaggcccacggcaagaaggtgctgagtgcctttagcgagggcctgaatcac ctggacaacctcaagggcacctttgctaagctgagtgagctgcattgtgacaagctgcacgtggaccct gagaacttcaggC

ctgctggttgtctacccctggactcagaggt tctttgagcactttggggacttgtcctctgctgatgctgttatgaacaatgctaaggtgaaggcccatgg caagaaggtgct.agactcctttagtaacggcatgaagcatcttgacgacctcaagggcacctttgctcag ctgagtgagctgcactgtgataagctgcacgtggatcctgagaacttcaagD

ctgctggttgtctacccc tggactcagaggttctttgagcactttggggacttgtcctctgctgatgctgttttgggcaatgctaagg tgaacgcccatggcaagaaggtgctagactcctttagtaacggcgtgcagcatcttgacgac,;tcaagg gcacctttgctgagctgagtgagctgcactgtgataagctgcatgtggatcctgagaacttcaggE

ctgctggtggtctacccttggacccagag!,rttctttgagtcctttggggatctgtccactcctgatgctgtta tgggcaaccctaaggtgaaggctcatggcaagaaagtgctcggtgcctttagtgatggcctggctcacc tggacaacctcaagggcacctttgccacactgagtgagctgcactgtgacaagctgcacgtggatcctg agaacttcaggF

ctgctggttgtctacccatggacccagag&rttcttcgagtcctttggggacctgtccactgc ttctgctgttatgggcaaccctaaggtgaaggctcatggcaagaaggtgctggctgccttca~;tgagggt ctgagtcacctggacaacctcaaaggcaccttcgctaagctgagtgaactgcattgtgacaagctgcac gtggatcctgagaacttcaggG

ctgctggtcgtctacccatggacccagaggttcttcgagtcctttgggg acctgtcctctccttctgctgttatggggaaccctaaggtgaaggcccatggcaagaaggtgc:tgagtgc ctttagtgaaggtctgcatcacctggacaacctcaagggcacctttgctcaactgagtgagctgcactgt gacaagttgcac:gtggatcctcagaacttc:actH

ctgctggttgtctacccatggacccagag!,'1.tcttc gagtcctttggggacctgtcctctgcaaatgctgttatgaacaatcctaaggtgaaggctcatggcaaga aggtgctggctgccttcagtgagggtctgagtcacctggacaacctcaaaggcacctttgctaagctga gtgaactgcactgtgacaagctgcacgtggatcctgagaacttcaggl

ctgctggttgtctacccatggac ccagaggttcttcgagtcctttggggacctgtcctctgcacatgctgttatgagcaatcctaaggtgaag gctcatggcaagaaggtgctggctgccttcagtgagggtctgaatcacctggacaacctcaaaggcac ctttgctaagctgagtgaactgcactgtgacaagctgcacgtggatcctgagaacttcaggJ

ctgctggttgtctacccttggacccagaggtacttttctaaatttggggacctgtcctctgcctctgctattat gggtaacccccaggtgaaggcccatggcaagaaggtgataaatgccttcaatgatggcctgaaacact tggacaacctcaagggcacctttgctcatctgagtgaactccactgtgacaagctgcatgtggatcctga gaacttcaggK

87

Page 90: Análisis sintáctico de biosecuencias

ctgctggtcgtctacccatggacccagaggttctttgactcctttggggacctgtccactcctgc,:gctgtt atgagcaatgctaaggtcaaggcccatggcaaaaaggtgctgaacgcctttagtgacggcatggctcat ctggacaacctcaagggcacctttgctaagctgagtgagctgcactgtgacaaattgcacgtggatcct gagaatttcaggL

ctgctggttgtgtttccctggacccagaggtatttcagcagctttggaaaccta tccaatgtggctgccatctctggaaatgccaaggttcgtgcccatggcaagaaggttttgtctgccgtcg atgaatccatccaccatttagatgatatcaagaacttcctctctgtactgagcacgaagcacgctgagga actccacgtggaccctgaaaacttcaagM

ctgctggttgtttatccctggactcagaggtacttcagcagtttggaaacctctccaatgtctccgctgtctctggaa atgtcaaggttaaagcccatggaaataaagtcctgtcagctgttggcagtgcaatccagcatctggatgatgtgaagagc caccttaaaggtcttagcaagagccatgctgaggatcttcatgtggatcccgaaaacttcaagN

ctgctgtggacttatccctggacccaaa gatactttagttcttttgggaacctcaacagtgctgatgccgtcttccacaatgaggctgtggctgctca tggtgaaaaggtggtgacatctattggagaggccatcaagcacatggatgacataaagggatattatgct cagctgagcaaataccactcagagaccctacatgtggatccattgaacttcaagO

ctgctggttgtctacccctggactcagaggttctttgagtcctttggggacttgtcctctgccgatgccattttgggaaacccta aggtgaaggcccatggcaagaaggtgctggactccttctgtgagggcctgaagcaacttgatgacctc aagggtgcctttgcttcgctgagtgagctgcactgtgataagctgcacgtggatcctgagaacttcaggP

ctgctggttgtctacccctggactcagaggttctttgagtcctttggggacttgtcctctgccgatgccatt ttgggaaaccctaaggtgaaggcccatggcaagaaggtgctggactccttctgtgagggcctgaagca acttgatgacctcaagggtgcctttgcttcgctgagtgagctgcactgtgataagctgcacgtggatcctg agaacttcaggQ

ctcctggttgtgtacccatggacccagaggttcttcgacagctttggcagcctgtcctc tccttctgccatcatgggcaaccccaaagtcaaggcgcatggtgcgaaggtgctgacttccttgggaga agccataaagaaccttgatgatctcaagggcacctttggccagctgagtgagctgcactgtga,:aagct gcatgtggatcctgagaacttcaggR

ctcctggttgtctacccatggacccagaggttctttgacacctttg gaaatctgtcctctgcttctgccatcatgggcaacccgaaggtcaaggcccatggcaagaaggttctga gttccttgggagaagctataaagaacatggatgatctcaagggtacgttttcccatctgagtgagctgcac tgtgacaggctgcatgtggatcctgaaaacttcaggS

ctcctggttgtctacccatggacccagaggttc tttgacacctttggaaatctgtcctctgcttctgccatcatgggcaacccgaaggtcaaggcccatggca agaaggttctgag~tccttgggagaagctataaagaacatggatgatctcaagggtacgttttcccatct gagtgagctgcactgtgacaggctgcatgtggatcctgaaaacttcaggT

ctgctggttgtctacccctg gactcagaggttctttgagcactttggggacttgtcctctgctgatgccattttgggcaaccctaaggtg aaggcccatggcaagaaggtgttagacacctttagtgagggcctgaagcaacttgatgacctcaaggg tgcctttgcctcactgagtgagctgcactgtgataagctgcacgtggatcctgagaacttcagglJ

ctcctggttgtctacccatggacccagaggttctttgacagctttggcaacctgtcctctgcctctgccatc atgggcaaccccaaagtcaaggcacatggcaagaaggtgctgacttccttgggagatgccataaagc acctggatgatctcaagggcacctttgcccagctgagtgaactgcactgtgacaagctgcatgtggatc ctgagaacttcaag V

88

Page 91: Análisis sintáctico de biosecuencias

catgggcaaccccaaagtcaaggcacatggcaagaaggtgctgacttccttgggagatgccat aaagcacctggatgatctcaagggcacctttgcccagctgagtgaactgcactgtgacaagctgcatgt ggatcctgagaacttcaag W

ctcctggttgtctacccatggacccagaggttctttgacaactttggaaac ttgtcctctgcctctgctatcatgggcaaccctaaggtcaaggcccacggcaagaaggtgctgacttcct tgggagaagctataaagaacatggatgatctcaaaggcacctttgcccacctgagtgagctgcactgtg acaggctgcatgtggaccctgaaaactttaagX

ctcctggttgtct21cccgtggacccagaggttctttga caactttggcaac:ctatcctctgcatctgctatcatgggcaaccctaaggtcaaggcccacggc:aagaa ggtgctgacttccttgggagacgctataaagaacatggatgatctcaagggcacctttgcccacctgagt gagctgcactgtgacaggctgcacgtggatcctgaaaactttaagY

ctcctggttgtctacccatggaccc agaggttctttgacagctttggcaacctgtcctctgcctctgccatcatgggcaaccccaaggtcaaggc acacggcaagaaggtgctgacttccttgggagatgccataaagaacctggatgatctcaagggcacctt tgcccagctgagtgagctgcactgtgacaagctgcatgtggatcctgagaacttcaggZ

ctcctggttgtc tacccatggacccagaggttctttgacagctttggcaacctgtcctctgcctctgccatcatgggcaacc ccaaggtcaaggcacacggcaagaaggtgctgacttccttgggagatgccataaagaacct¡rnatgat ctcaagggcacctttgcccagctgagtgagctgcactgtgacaagctgcatgtggatcctgagaacttc aggl

ctcctggttgtgtacccatggacccagaggttcttcgacagctttggaagcctgtcctctccctctgcc atcatgggcaaccccaaagtcaaggcgcatggcgtgaaggtgctgacttccttgggagaagctataaa gaaccttgatgatctcaagggcacctttggccagctgagtgagctgcactgtgacaagctgcatgtggat cctgagaacttcagg2

ctcctggtcgtctatccttggacccagagattcttcgatagctttggaaacctgtc ctcttcctctgccatcatgggaaaccccaaagtgaaggcccatggcaagaaggtgttgactgcctttgg agatgctgtaaagaatgtggatgatctcaaaaacacattcgcccacctgagtgagctgcactgtgacag gctgcatgtggatcccgagaacttcaaa3

ctcctcgttgttta1xcctggacccagagattttttgacaact ttggaaatctatcctctccctctgccatcctgggcaaccccaaggtcaaggcccacggcaagaaggtg ctgacttcctttggagatgctattaaaaacatggacaacctcaagaccacttttgctaagctaagtgagct acactgtgacaagctgcatgtggatcctgagaacttcagg4

ctgctgatcgtctacccctggacccagagg ttcttctcttccttcgggaacctgtccagccccaccgccatcattggcaaccccaaggtcccgcc:ccatg gcaggaaattcttcacttcctttggggaacccgtgaagaacctggacaacatcaagaacacctatgcca agttgtctgagctgcactgtgagaagctgcaagtggaacccgagaacttcagg5

ctccttgttgtctacccctggacccagagattctttgagacctttggaaacctgtcctctgcctctgccatcatgggcaaccccaag gtcaaggcccatggcaagaaagtgctgacctcctttggagaagctgtcaaaaacatggacaacctcaa gggtgcctttgct1agctgagtgagctgcactgtgacaagctgcacgtggatcctgagaacttcaag6

ctccttgttgtctacccctggacccagagattctttgagacctttggaaacctgtcctctgcctctgccatca tgggcaaccccaaggtcaaggcccatggcaagaaagtgctgacctcctttggagaagctgtcaaaaac atggacaacctcaagggtgcctttgctaagctgagtgagctgcactgtgacaagctgcacgtggatcct gagaacttcaag7

89

Page 92: Análisis sintáctico de biosecuencias

ctcctcgttgtttaicccctggacccagagattttttgacagctttggaaacctgtcgtctc cctctgccatcctgggcaaccccaaggtcaaggcccatggcaagaaggtgctgacttcctttggagatg ctattaaaaacatggacaacctcaagcccgcctttgctaagctgagtgagctgcactgtgacaagctgc atgtggatcctgagaacttcaag8

ctcctcgttgtctacccctggacacagagattctttgataattttgga aacctgtcctctgcctctgccatactgggcaaccccaaggtcaaggcccatggcaagaaggtgctgac tcctttggagaggctgtcaaaaacatggacaacctcaagggtgcctttgctaagctgagtgagctgcact gtgacaaactgcacgtggatcctgagaacttcaag9

ctccttgttgtctacccctggacccaaagattctttgacaactttggcaacttgtcctcttcctctgccatcat gggaaaccccaaggtcaaggcacatggcaag aaggtgctgacc:tcctttggagatgccatcaagaacatggacaaccttaagggtgcctttgctaagctga gtgagctgcactgtgacaaactgcatgtggatcctgagaacttcaaa

90

Page 93: Análisis sintáctico de biosecuencias

Categorías que aparecen únicamente en un determinado grupo (Categoría, Frecuencia, Derivación).

Grupo Beta (15 Secuencias A .. O)

12 1 Sl2->cctg 21 2 S21->ccca 22 4 S22->tggg 24 9 S24-->atg 29 2 S29->cctgg 32 3 S32->aactt 36 3 S36->ctgagtg 39 1 S39->tggatcctg 42 S42->aggtt 44 S44->acccag 55 4 S55->catgg 58 2 S58->ctgagtgagctgcactg 61 1 S6 l ->tgacaag 62 4 S62->actt 63 2 S63->tcaagg 64 2 S64->tgggg 66 1 S66->tgacaagctgca 67 3 S67->ccctgg 68 3 S68->ctgctgg 76 S 7 6->tggatcctgagaacttcagg 79 2 S 79->ctcaagggcacctttg 85 S8:5->acctgt 87 2 S87->ctgctggttgtct 93 2 S93->tgaca 98 1 S98->tgacaagctgcatg 99 3 S99->tct 103 4 Sl03->agca 109 3 S109->att 112 1 S 112->agtcctttgggg 113 1 Sl 13->aggg 117 1 S 117->cagctugg 118 1 S 118->tggatcctgagaattcaag 121 1 S 121->actcag 122 S 122->aggttcutg 134 2 S 134->ctgagtgagctgcactgtgataag 136 2 S 136->ctgagtgaa 142 2 Sl42->aaac 151 2 S 151->cacctggacaac 152 2 S 152->ctgttatg 153 2 Sl53->cagtg 154 2 S 154->ctgatg 169 S 169->ctgtta 171 S 171->acccatggacccagaggttcttcgagtcctttggggacctgt 172 S 172->cctaaggtgaaggct 173 2 S 173->tgacaagctgcacgtggatcctgagaacttcagg

91

Page 94: Análisis sintáctico de biosecuencias

176 1 S 176->atgct 177 4 8177->aat 178 1 S 178->tggac 179 4 8179->aggt 181 1 S 181->agggcctg 182 S 182->aagca 183 8183->tgatg 184 1 S 184->ctgagtgagctgcactgtgataagctgca 206 2 8206->caagaaagtg 213 1 S213->ctgctggttgtctacccctggactcagaggttctttgagtcctttgggg 214 3 S2 l 4->ctgcattg 216 3 8216->ctgttatgaa 217 8217->ctag 218 8218->cctttagt 219 1 S219->acctcaagggcacctttg 225 3 8225->atgctaagg 226 1 8226->aacg 227 3 S22 7->ctgttatgggcaac 228 3 8228->cctttag 229 3 8229->ccactg 231 3 S231->ctgctggttgtctacccatggacccagaggttcttcgagtcctttggggacctgt 238 3 S238->cctaaggtgaaggctcatggcaagaaggtgctggctgccttcagtgagggtctg 239 1 S2 3 9->cacctggacaacctcaaagg 241 3 8241->accct 243 3 S243->acaacctcaagggcacctttg 245 8245->tgaag 246 1 8246->ctgctg 254 1 8254->aacct 255 1 S2 5 5->cttctg 256 1 8256->ctgag 265 1 8265->ttgttt 267 1 8267->ctatt 290 2 S290->cccatggcaagaaggtgctagactcctttagtaacgg 292 2 S292->cacctggacaacctcaaaggcacctttgctaagctgagtgaactgca,;tgtga

caagctgcacgtggatcctgagaacttcagg 293 2 S293->acccatggacccagaggttctttgactcctttggggacctgt 296 2 S2 96->catgaagcatct 300 2 S300->tgacgacctcaagggcacctttg 301 2 S301->ctgctggtcgtct 302 2 S302->ccactcctg 303 2 8303->ttgcacg 304 2 8304->ctctggaa

Grupo Gamma (14 secuencias P .. 3)

40 S40··>agaactt 69 S69 .. >cacctttg 71 S 71 .. >tgggcaac 90 1 S90 .. >ctcctgg 115 1 S 115->ctcctggttgtct 116 2 SI 16->ctgacttccttgggag 120 1 S 120->aacatgg

92

Page 95: Análisis sintáctico de biosecuencias

126 S 126->ctcctggttgtctacccatggacccagaggttctt 158 S 158->ctataaag 159 S 15 9->tgacagg 160 S 160->ccataaag 162 S 162->atgatctcaagggcacctttgccca 164 S 164->cccaaag 174 Sl74->tctg 175 1 Sl 75->ctcaaagg 186 S 186->cccatggcaagaagg 189 S 189->aagctataaag 251 S251->agggcctgaagcaacttgatgacctcaagggtgcctttg 252 S252->ctgagtgagctgcactgtgataagctgcacgtggatcctgagaacttc:agg 258 S258->aagctataaagaacatggatgat 259 S259->tggatcctgaaaactt 263 S263->cctgagtgagctgcactg 264 S264->caca 266 S266->ccctctg 268 S268->aaaa 269 S269->ctttggaaacctgt 281 2 S28 l->ctcctggttgtctacccatggacccagaggttctttgacacctttggaaatctgtc

ctctgcttctgccatcatgggcaacccgaaggtcaaggcccatggcaagaaggttctgagtt ccttgggagaagctataaagaacatggatgatctcaagggtacgttttcccatctgagtgagct gcactgtgacaggctgcatgtggatcctgaaaacttcagg

282 2 S282->ctgctggttgtctacccctggactcagaggttctttgagtcctttggggacttgtcc tctgccgatgccattttgggaaaccctaaggtgaaggcccatggcaagaaggtgctggactc cttctgtgagggcctgaagcaacttgatgacctcaagggtgcctttgcttcgctgagtgag ctgcactgtgataagctgcacgtggatcctgagaacttcagg

285 2 S285->ctcctggttgtctacccatggacccagaggttctttgacagctttggcaacctgtcc tctgcctctgccatcatgggcaaccccaaagtcaaggcacatggcaagaaggtgctgac ttccttgggagatgccataaagcacctggatgatctcaagggcacctttgcccagctgagtga actgcactgtgacaagctgcatgtggatcctgagaacttcaag

286 2 S286->ctcctggttgtctacccatggacccagaggttctttgacagctttggcaa.cctgtcct ctgcctctgccatcatgggcaaccccaaggtcaaggcacacggcaagaaggtg,;tgactt ccttgggagatgccataaagaacctggatgatctcaagggcacctttgcccagctgagtgagc tgcactgtgacaagctgcatgtggatcctgagaacttcagg

287 2 S287->aaccttgatgatctcaagggcacctttggccagctgagtgagctgcactgtgac aagctgcatgtggatcctgagaacttcagg

288 2 S288->ctatcatgggcaaccctaaggtcaaggcccacggcaagaaggtgctgacttcctt gggag

291 2 S291->ctcctggttgtgtacccatggacccagaggttcttcgacagctttgg 297 2 S2 97->ccatcatgggcaaccccaaagtcaaggcgcatgg 305 2 S305->cccacctgagtgagctgcactgtgacaggctgcatg

Grupo Épsilon 1(7 Secuencias 4 ... )

46 47 48 52 56 77

1 1 2

S46->aggttctt S4 7->cctttg S48->agctgcactg S5 2->tggatcctgagaactt S56->ttgtct S 77->acccctgg

93

Page 96: Análisis sintáctico de biosecuencias

81 S8 l ->ccatca 105 Sl05->tgat 110 S 110->cccaagg 119 S 119->cccaaggtcaagg 129 S 12 9->tgcctttg 163 S 163->tgacagctttgg 166 S 166->cgtct 168 2 S 16 8->aaacctgt 205 2 S205->tgag 211 S2 l l ->ctgacct 212 S212->aacatggacaac 260 S260->cacatggcaagaaggtg 261 S261->tgacaagctgcatgtggatcctgagaacttcaag 271 S27 l->ctccttgttgtct 272 S272->ctgacctcctttggag 276 S276->ctgtcaaaaacatggacaacctcaagggtgcctttgctaagctgagtgagctgca

ctg 277 S277->ctcctcg 279 1 S279->gcaaccccaaggtcaagg 283 2 S283->ctccttgttgtctacccctggacccagagattctttgagacctttggaaacctgtcc

tctgcctctgccatcatgggcaaccccaaggtcaaggcccatggcaagaaagtg ctgacctcctttggagaagctgtcaaaaacatggacaacctcaagggtgcctttgctaagctg agtgagctgcactgtgacaagctgcacgtggatcctgagaacttcaag

284 2 S284->ctgacttcctttggagatgctattaaaaacatggacaacctcaag 294 2 S294->ctcctcgttgtttacccctggacccagagattttt 299 2 S299->ccctctgccatcctgggcaaccccaaggtcaagg

94

Page 97: Análisis sintáctico de biosecuencias

INTERSECCIONES

Grupo Beta-Gamma.

o 17 0->tg 1 16 1->ca 2 12 S2->ag 4 14 S4->ctg 5 14 S5->tgg 7 2 S7->ac 9 10 S9->cca 10 14 SlO-->aa 11 13 Sll··>at 13 19 13->cg 14 6 Sl4->cct 15 4 Sl5->tga 18 6 Sl8->tt 19 2 Sl9->ctgca 20 10 S20->cag 23 3 S23->aagg 26 3 S26->caac 28 5 28->aag 30 2 S30->tgt 31 2 S3 l->agtg 33 4 S33->tggat 37 6 S37->ctgt 59 2 S59->tggacccag 60 7 S60->ccg 65 2 S65->tggacccagaggttctt 73 6 S73->tgaagg 75 4 S75->ctat 80 3 S80->aaag 82 7 S82->ttt 88 7 S88->ctca 96 2 S96->atgat 107 3 5107-·>aca 108 2 S 108-·>cctctgcctctg 111 2 S 111-->ccttt 114 2 S 114->acttgt 124 3 Sl24->acg 138 3 S 13 8->aaaactt 140 3 S 140->cctct 149 3 5149->caaa 156 3 S 156->cctaaggtgaaggcccatggcaagaaggtg 167 3 Sl67->cccg 186 2 S 186->cccatggcaagaagg 224 3 S224->ctgctggttgtctacccctggactcagaggttctttgagcactttggggacttgtcctctgctgatg 230 3 S230->cctctccttctg 240 3 5240->cctctgca 244 3 5244->tggaccctg 253 3 S253->cctgt

95

Page 98: Análisis sintáctico de biosecuencias

Grupo Beta-Épsilon.

18 Sl->ca 2 10 S2->ag 3 15 S3->ct 4 16 S4->ctg 5 16 S5->tgg 6 8 S6->ctt 7 2 S7->ac 8 5 S8->agg 10 14 SlO->aa 14 5 Sl4-->cct 16 6 Sl6->cctt 17 9 Sl7->caag 19 2 Sl9->ctgca 20 10 S20->cag 23 3 S23->aagg 25 2 S25->accca 26 3 S26->caac 28 3 S28->aag 30 2 S30->tgt 34 3 S34->ctgg 37 6 S37->ctgt 41 7 S41->ccat 43 2 S43->cagg 57 4 S57->cccatgg 60 9 S60->ccg 70 6 S70->aac 72 4 S72->agt 75 3 S75->ctat 82 7 S82->ttt 83 2 S83->cctttgggg 84 2 S84->ttg 86 4 S86->ctaag 101 3 S 1 O 1->cccatggcaagaaggtg 106 3 S106->cgg 107 4 S107->aca 108 2 S l 08->cctctgcctctg 114 2 S 114->acttgt 127 3 S 12 7 ->ctgcatg 140 2 S 140->cctct 141 2 S 141->tgacaagctgcatgtggatcctgagaacttcagg 149 3 Sl49->caaa 150 3 S 150->ctaagctgagtgagctgcactg 165 3 Sl65->ccag 167 4 Sl67->cccg 180 2 S 180->atgcca 185 2 Sl85->aaat 191 2 S 191->cccacggcaagaaggtg 208 2 S208->cgtggatcctgagaacttcaag 215 3 S2 l 5->agaacttcagg 242 3 S242->cccca

96

Page 99: Análisis sintáctico de biosecuencias

280 3 S280->tgacaaa 289 2 S289->tgaagaacctggacaacatcaagaaca 298 2 S2 98->ctgctgatcgtctacccctggacccag

Grupo Gamma-Épsilon.

1 4 Sl->ca 2 4 S2->ag 4 4 S4->ctg 5 4 S5->tgg 7 2 S7->ac 10 4 SlO->aa 14 3 Sl4->cct 19 2 Sl9->ctgca 20 2 S20->cag 23 2 S23->aagg 26 2 S26->caac 28 6 S28->aag 30 2 S30->tgt 37 2 S37->ctgt 60 4 S60->ccg 75 3 S75->ctat 82 2 S82->ttt 107 3 Sl07->aca 108 2 S 108->cctctgcctctg 114 2 S 114->acttgt 140 2 S 140->cctct 148 4 S 148->attctt 149 4 Sl49->caaa 167 3 Sl67->cccg 204 4 S204->tgacaactttgg 209 2 S209->cctttggagatg 295 2 S2 9 5->cctcttcctctgccatcatgggaaac

Grupo Beta-Gamma-Épsilon

1 19 Sl->ca 2 13 S2->ag 4 17 S4->ctg 5 17 S5->tgg 7 3 S7->ac 10 16 SlO->aa 14 7 Sl4->cct 19 3 Sl9->ctgca 20 11 S20->cag 23 4 S23->aagg 26 4 S26->caac 28 7 S28->aag 30 3 S30->tgt 37 7 S37->ctgt 60 10 S60->cc:g

97

Page 100: Análisis sintáctico de biosecuencias

75 5 S75->ctat 82 8 S82->ttt 107 5 Sl07->aca 108 3 S l 08->cctctgcctctg 114 3 S 114->acttgt 140 3 S 140->cctct 149 5 Sl49->caaa 167 5 S167->cccg

98

Page 101: Análisis sintáctico de biosecuencias

Resultados obtenidos utilizando el sistema SINT ANAL

Categorías que aparecen únicamente en un determinado grupo (Categoría, Frecuencia, Derivación).

Grupo Beta (15 Secuencias A .. O)

102 9 ctgtl 151 5 cacctggacaac 152 5 ctgttatg 153 5 cagtg 169 4 ctgtta 170 4 acccatggacccagaggttcttcgagtcctttgggg 171 4 acccatggacccagaggttcttcgagtcctttggggacctgt 172 4 cctaaggtgaaggct 173 4 tgacaagctgcacgtggatcctgagaacttcagg 176 4 atgct 177 4 aat 179 4 aggt 214 3 ctgcattg 216 3 ctgttatgaa 217 3 ctag 218 3 cctttagt 219 3 acctcaagggcacctttg 225 3 atgctaagg 226 3 aacg 227 3 ctgttatgggcaac 228 3 cctttag 229 3 ccactg 231 3 ctgctggttgtctacccatggacccagaggttcttcgagtcctttggggacctgt 232 3 cctaaggtgaaggctcatggcaagaaggtg 233 3 cctaaggtgaaggctcatggcaagaaggtgctgg 234 3 cctaaggtgaaggctcatggcaagaaggtgctggctg 235 3 cctaaggtgaaggctcatggcaagaaggtgctggctgcctt 236 3 cctaaggtgaaggctcatggcaagaaggtgctggctgccttcagtg 237 3 cctaaggtgaaggctcatggcaagaaggtgctggctgccttcagtgaggg 238 3 cctaaggtgaaggctcatggcaagaaggtgctggctgccttcagtgagggtctg 239 3 cacctggacaacctcaaagg 241 3 accct 243 3 acaacctcaagggcacctttg 290 2 cccatggcaagaaggtgctagactcctttagtaacgg 292 2 cacctggacaacctcaaaggcacctttgctaagctgagtgaactgcactgtgacaagctgcacgtggatcctgagaacttcagg 293 2 acccatggacccagaggttctttgactcctttggggacctgt 296 2 catgaagcatct 300 2 tgacgacctcaagggcacctttg 301 2 ctgctggtcgtct 302 2 ccactcctg 303 2 ttgcacg 304 2 ctctggaa

99

Page 102: Análisis sintáctico de biosecuencias

Grupo Gamma (14 Secuencias P .. 3)

90 11 94 10 95 10 115 8 116 8 126 7 158 5 159 5 160 5 161 5 162 5 164 5 188 4 189 4 190 4 192 4 193 4 194 4 195 4

196 4 197 4 198 4 200 4 247 3 248 3 249 3 250 3 251 3 252 3 257 3 258 3 259 3 262 3 263 3 264 3 281 2

282 2

285 2

ctcctgg ccttggg ccttgggag ctcctggttgtct ctgacttccttgggag ctcctggttgtctacccatggacccagaggttctt ctata.aag tgacagg ccataaag atgatctcaagggcacctttg atgatctcaagggcacctttgccca cccaaag cccaaagtcaagg aagctataaag tgacaggctgcatg ctcctggttgtctacccatggacccagaggttctttgacagctttgg ctcctggttgtctacccatggacccagaggttctttgacagctttggcaac ctcctggttgtctacccatggacccagaggttctttgacagctttggcaacctgt ctcctggttgtctacccatggacccagaggttctttgacagctttggcaacctgtcctc:tg cctctgccatcatgggcaac ctgacttccttgggagatg ctgacttccttgggagatgccataaag atgatctcaagggcacctttgcccag ctgagtgagctgcactgtgacaagctgcatgtggatcctgagaacttcagg agggcctgaagca agggcctgaagcaact agggcctgaagcaacttgatg agggcc:tgaagcaacttgatgac agggcctgaagcaacttgatgacctcaagggtgcctttg ctgagtgagctgcactgtgataagctgcacgtggatcctgagaacttcagg aagcta1aaagaacatgg aagctataaagaacatggatgat tggatcctgaaaactt cctgagtg cctgagtgagctgcactg caca ctcctggttgtctacccatggacccagaggttctttgacacctttggaaatctgtcctctg cttctgccatcatgggcaacccgaaggtcaaggcccatggcaagaaggttctgagtt,:::c ttgggagaagctataaagaacatggatgatctcaagggtacgttttcccatctgagtg;1gc tgcactgtgacaggctgcatgtggatcctgaaaacttcagg ctgctggttgtctacccctggactcagaggttctttgagtcctttggggacttgtcctctg ccgatgccattttgggaaaccctaaggtgaaggcccatggcaagaaggtgctggactc cttctgtgagggcctgaagcaacttgatgacctcaagggtgcctttgcttcgctgagt gagctgcactgtgataagctgcacgtggatcctgagaacttcagg ctcctggttgtctacccatggacccagaggttctttgacagctttggcaacctgtcctctgcct ctgccatcatgggcaaccccaaagtcaaggcacatggcaagaaggtgctgacttccti:gg gagatgc,:::ataaagcacctggatgatctcaagggcacctttgcccagctgagtgaactgc actgtgacaagctgcatgtggatcctgagaacttcaag

100

Page 103: Análisis sintáctico de biosecuencias

286 2 ctcctggttgtctacccatggacccagaggttctttgacagctttggcaacctgtc,;tctgcc tctgccatcatgggcaaccccaaggtcaaggcacacggcaagaaggtgclgacttccttg ggagatgccataaagaacctggatgatctcaagggcacctttgcccgctgagt~:agctgca ctgtgacaagctgcatgtggatcctgagaacttcagg

287 2 aaccttgatgatctcaagggcacctttggccagctgagtgagctgcactgtgacaagctg catglggatcctgagaacttcagg

288 2 ctatcatgggcaaccctaaggtcaaggcccacggcaagaaggtgctgacttccttgggag 291 2 ctcctggttgtgtacccatggacccagaggttcttcgacagctttgg 297 2 ccatcatgggcaaccccaaagtcaaggcgcatgg 305 2 cccacctgagtgagctgcactgtgacaggctgcatg

Grupo Épsilon (7 Secuencias 4 .. )

147 205 207 210 211 212 270 271 272 273 274 275 276 277 278 279 283

284 294 299

6 4 4 4 4 4 3 3 3 3 3 3 3 3 3 3 2

2 2 2

ctcct tgag acccctggacccagag ctgac ctgacc:t aacatggacaac ctccttgt ctccttgttgtct ctgacctcctttggag ctgtcaaa ctgtcaaaaacatggacaac ctgtcaaaaacatggacaacctcaagggtgcctttg ctgtcaaaaacatggacaacctcaagggtgcctttgctaagctgagtgagctgcactg ctcctcg gcaac gcaaccccaaggtcaagg ctccttgttgtctacccctggacccagagattctttgagacctttggaaacctgtcctctgcctc tgccatcatgggcaaccccaaggtcaaggcccatggcaagaaagtgctgacctcctttgga gaagctgtcaaaaacatggacaacctcaagggtgcctttgctaagctgagtgagclgcactg tgacaagctgcacgtggatcctgagaacttcaag ctgacttc,;tttggagatgctattaaaaacatggacaacctcaag ctcctcgttgtttacccctggacccagagattttt ccctctgccatcctgggcaaccccaaggtcaagg

101

Page 104: Análisis sintáctico de biosecuencias

REGLAS DE DECISIÓN

IF [!(90)&!(1 l 0)&!(129)] -> Clase 1 IF [!(90)&!(110)&(129)] -> Clase 2 IF [!(90)&(1 l O)] -> Clase 3 IF [(90)] -> Clase 2

102