El reciente proyecto genoma humano plantea novedosos interrogantes que deben ser esclarecidos con la ayuda de técnicas avanzadas de computación. Uno de estos nuevos retos planteados es, sin duda, la necesidad de predecir qué regiones de la secuencia son las que realmente se expresan a proteína.
La predicción de exones es fundamental para poder predecir genes en secuencias de ADN. En la actualidad estas predicciones se hacen exclusivamente in silico con la ayuda de métodos estadísticos y computacionales.
El objetivo de nuestro trabajo es diseñar un programa (EXONID) en lenguaje Perl capaz de predecir los posibles exones de una secuencia genómica humana problema. EXONID genera un fichero en formato GFF con multitud de exones posibles predichos en base a la información obtenida de matrices de pesos y del sesgo codificante de los codones (cabe destacar que no todos estos exones formarán parte de genes). Con los resultados de nuestro programa, otros programas de predicción de genes serán capaces de ensamblar los exones predichos para predecir genes completos
Señales de splicing:
Hay dos tipos de señales de splicing: los donors y los acceptors. Los donors delimitan el extremo 5' de los intrónes y los acceptors el extremo 3' de los intrones. El extremo 5' de un intrón empieza con el dinucleótido GT y el extremo 3' con el dinucleótido AG. Las señales de splicing consisten en una serie de nucleótidos que contienen estos dinucleótidos y que la maquinaria de splicing identifica como punto de corte.
Imagen con las señales que delimitan los exones e intrones
Matrices de pesos:
Estas matrices se utilizan para identificar donde hay señales de splicing. Necesitamos dos matrices, una para las señales de acceptors y otro para las señales de donors. Estas matrices tiene 5 columnas:
la primera columna contiene la posición del nucleótido y las 4 columnas restantes corresponde a los cuatro nucleótidos (A, C, T y G).
Matriz de pesos para las señales de acceptors:
Matriz de pesos para las señales de donors:
Sesgo codificante:
Para la predicción de exones, consideramos que la frecuencia de aparición de cada codón en una regió no codificante (en los intrones) es uniforme, mientras que los exones muestran un sesgo en la utilizacion dichos codones, dependiendo del organismo. Este sesgo se determina mediante la ponderaci´n de los codones observados, de acuerdo con una tabla de utilización de codones en las regiones codificantes. Cuantos más codones observemos que, de acuerdo con la tabla, aparecen frecuentemente en regiones codificantes, podremos decir que más grande será su potencial codificante y, por tanto, ser´ más probable que ese fragmento de secuencia corresponga a un exón.
Este sesgo se calcula como la raz%oacute;n de verosimilitud (likelihood ratio) entre las proporciones esperada de los codones observados y la asunción de uniformidad de que la proporción esperada de un codón cualquiera es 1/64.
Ejemplo de una tabla con el sesgo codificante:
P0 A C G T
01 -0.459 0.241 -0.409 0.357
02 -0.495 0.252 -0.540 0.418
03 -0.511 0.192 -0.495 0.456
04 -0.614 0.280 -0.639 0.474
05 -0.775 0.305 -0.642 0.504
06 -0.955 0.304 -0.666 0.557
07 -1.061 0.258 -0.768 0.639
08 -1.176 0.300 -0.788 0.634
09 -1.302 0.238 -0.923 0.723
10 -1.227 0.388 -0.881 0.597
11 -1.049 0.341 -0.773 0.577
12 -1.007 0.460 -0.758 0.458
13 -1.163 0.525 -1.188 0.526
14 -1.311 0.582 -1.401 0.527
15 -1.093 0.414 -1.503 0.657
16 0.030 0.151 -0.117 -0.086
17 -1.860 1.093 -4.269 -0.165
18 0.00 -9999 -9999 -9999
19 -9999 -9999 0.00 -9999
20 -0.064 -0.513 0.732 -0.957
21 -0.075 -0.220 -0.087 0.302
XX 20
P0 A C G T
01 0.302 0.483 -0.305 -0.856
02 0.817 -0.667 -0.743 -0.474
03 -1.143 -0.782 1.123 -1.660
04 -9999 -9999 0.000 -9999
05 -9999 -9999 -9999 0.000
06 1.083 -2.097 0.135 -2.246
07 1.032 -1.093 -0.627 -1.111
08 -1.218 -1.479 1.257 -1.534
09 -0.411 -0.358 -0.136 0.492
XX 3
GGG 0.01708
GGA 0.01931
GGT 0.01366
GGC 0.02494
GAG 0.03882
GAA 0.02751
GAT 0.02145
GAC 0.02706
GTG 0.02860
GTA 0.00609
GTT 0.01030
SECUENCIA: >HUMHBB Exones iniciales(+) predecidos en la secuencia >HUMHBB exonid iniciales 187 240 8.76 + 0 exonid iniciales 187 262 11.41 + 0 exonid iniciales 187 278 12.86 + 0 exonid iniciales 251 278 3.25 + 0 exonid iniciales 251 496 11.59 + 0 exonid iniciales 251 631 28.93 + 0 exonid iniciales 482 631 21.42 + 0 exonid iniciales 1086 1112 1.46 + 0 exonid iniciales 1397 1575 0.08 + 0 exonid iniciales 1452 1575 13.61 + 0 Exones internos(+) predecidos en la secuencia >HUMHBB exonid internos 409 496 14.85 + 1 exonid internos 409 631 32.19 + 1 exonid internos 1482 1575 11.04 + 1 exonid internos 1482 1575 6.40 + 2 exonid internos 1482 1575 19.00 + 0
El programa parte de una secuencia de nucleótidos, en la que se quieren predecir posibles exones.
Para ello se requiere tratar la secuencia con los datos de entrada:
Para ejecutar el programa Exonid debéis bajaros las matrices de pesos para las señales de donors y para las señales de acceptors, además de la tabla con las probabilidades de los diferentes codones en secuencias codificantes.
Una vez os bajéis el programa exonid.pl podréis ejecutarlo desde el terminal. La manera de ejecutarlo es la siguiente:
Se deben introducir 8 argumentos:
Para utilizar el servidor se puede hacer de dos maneras:
Hay diferentes par&aocute;metros que podéis modificar en función de vuestros intereses:
Una vez introducidos todos los parámetros y la secuencia obtendréis los resultados clicando en Enviar.
La elaboración de este programa ha requerido mucho trabajo, muchas horas de sufrimiento pero también de satisfacción. Con este trabajo hemos aprendido a programar en el lenguaje Perl y a diseñar páginas web. Lo mas novedoso de este trabajo respecto a otros que hemos hecho durante la licenciatura de Biología es que en este caso hemos tenido que resolver un problema biológico como es la predicción de exones in sílico, es decir con la ayuda exclusivamente de los ordenadores.
Somos conscientes de que el programa de predicción de exones se podría haber diseñado de alguna forma más sencilla. Antes de empezar a programar nos planteamos el problema a resolver y estructuramos las diferentes partes que debería tener nuestro programa. Reconocemos que el planteamiento que hicimos al principio hubiera podido ser más sencillo, pero lo podemos decir ahora que ya hemos acabado el programa y que tenemos un conocimiento más sólido para programar.
Cuando empezamos a programar a penas teníamos el conocimiento suficiente como para desarrollar un programa de esta magnitud. Debemos agradecer en especial la ayuda y paciencia de Robert Castelo, porque es evidente que sin su colaboración el programa EXONID no estaría hoy en funcionamiento. Muchas gracias Robert!!!
alex.brenchat01@campus.upf.es
pedro.melgar01@campus.upf.es
Página web diseñada para el navegador konqueror.