"Vivir en el mundo sin conocer las leyes de la naturaleza es como ignorar la lengua
del país en el que uno ha nacido"


Hazrat Inayat Khan (místico musulmán sufí)
(ir a la pagina general)

Código para leer y escribir con ADN

El primer artículo del primer número de la revista International Invention Journal of Biochemistry and Bioinformatics es un artículo del que soy el autor en el que propongo un método para la codificación de los futuros bio-ordenadores en los que toda la información estará guardada en moléculas de ADN.
Los ordenadores están basados, para su funcionamiento y almacenaje de la información, en el sistema binario, es decir, convirtiendo todo lo que introducimos en ceros y unos. La cantidad de información de los elementos de un sistema es, según Shannon, -log2p. Por tanto, el sistema binario tiene 1 bit de información en cada elemento de este código. Como el teclado de un ordenador tiene 256 símbolos, para obtener el código de 256 cosas hacen falta 8 dígitos binarios, ya que para obtener un código para esos elementos hay que multiplicar 2x2 ocho veces. La letra G, por ejemplo, tiene como código: 01000111. A este grupo de 8 bits se le denomina Byte (leído bait) y es lo que usamos cuando decimos que un documento ocupa  80 KB, que quiere decir que tenemos en él 80.000 Bytes que es la suma de cada letra, símbolo, número, espacio y demás cosas que hayamos introducido para escribir nuestro documento, como son el tipo y tamaño de letra, los espacios entre líneas, etc.
El ADN está formado por cuatro letras, ATCG, y la frecuencia de cada letra puede ser 1/4 por lo que la información de cada letra será, usando la anterior fórmula, de 2 bits. Es decir que la misma cantidad de información que hay en un Byte formado por 8 bits se puede conseguir con un Byte formado por 4 letras del ADN. Como ahora el sistema estaría formado por 4 elementos, en lugar de binario se denomina tetranario. Por este motivo denomino a los bits como tets y a los Bytes como tytes (leído taits).
Para obtener el código que le correspondería a cada uno de los 256 símbolos de un ordenador lo único que hay que hacer es convertir el número binario del Byte que corresponde a cada símbolo del teclado, escrito con 8 bits, en su equivalente de 4 tets en el sistema tetranario. De acuerdo con esta conversión, el binario que corresponde a la letra G se convierte en el tetranario 1013.
Pincha la tabla para verla
A continuación sólo queda asignarle una letra a cada elemento del código tetranario. Si hacemos 0 = A salen seis posibilidades: ATGC, ATCG, AGTC, AGCT, ACTG, ACGT. Lo mismo con las tres restantes letras, por lo que salen 24 formas diferentes de asignarlas. Analicé estas 24 posibilidades por el número de símbolos que seguidos en una escritura darían lugar a repeticiones de una misma letra del código. La repetición de letras en una molécula de ADN tiene tendencia a causar errores en la escritura o lectura del ADN porque a las ADN polimerasas, que son las enzimas encargadas para ello, les pasa lo mismo que a los humanos, cuando leemos número largo se nos hace muy difícil leer una secuencia con una cifra repetida muchas veces. Así, el número siguiente 560132340620800000000002365269 lo leemos muy fácilmente hasta que llegamos a la ristra de ceros donde se nos hace difícil determinar cuántos hay y casi seguro que tenemos que pasar el dedo de uno en uno para contarlos sin equivocarnos. Deslizamientos en las repeticiones, lo que en inglés se llama "slippage", es lo que le ocurre también a las enzimas que leen y escriben las secuencias del ADN, causando errores o mutaciones. La mejor manera de evitar que ocurra esto es no repitiendo muchas veces seguidas ninguna letra. Esto se puede conseguir asignando A al 0, T al 1, C al 2 y G al 3.
Este sistema de codificación de los bio-ordenadores tiene las siguientes propiedades:
1. Es uniforme, ya que todos los símbolos están codificados por 4 letras. Esto es una novedad ya que los códigos propuestos hasta ahora, hechos por informáticos, están formados con un número variable de letras para conseguir minimizar el tamaño de los documentos. Para un biólogo parece más lógico, ya que la evolución lo ha hecho de la misma forma, hacer un código con un número constante de letras. Llevado a la práctica, el sistema que propongo produce documentos con un menor número de letras que las otras propuestas.
Esta uniformidad permite, además, generar programas informáticos mucho más simples para traducir una secuencia codificada en tetranario a sus correspondientes significados, como letras, números, espacios, colores, etc.
2. Es consistente, ya que tiene una relación biunívoca entre símbolo y tyte o tetraplete, lo que no ocurre con algunos de los previamente propuestos.
3. Es homogéneo dado que todas las letras empiezan por T, las mayúsculas por TA o TT y las minúsculas por TG o TC, todos los números por AG y el espacio por AC. Esta propiedad permitirá de forma muy fácil el reconocimiento de errores en la escritura/lectura.
4. Es intuitivo ya que la propiedad anterior le hace que sea muy fácil determinar la fase de lectura, es decir en qué letra debe comenzar la lectura de 4 en 4 letras, lo que beneficiará la escritura de los programas que traduzcan el código de ADN al código del idioma empleado.
5. Disminuye la posibilidad de errores respecto de cualquiera de los códigos propuestos ya que
- utiliza un número menor de letras para cada símbolo.
- en todo documento de texto, la primera letra de cada código viene predeterminada por lo indicado en el punto 3
- está optimizado para que no se den repeticiones de una letra.
Esta codificación se aplica de la misma forma a cualquier otra función de un ordenador. Por ejemplo, las imágenes grabadas en formatos como BMP, PNG o JPEG, que soportan colores de 24 bits por píxel. El color de un píxel viene determinado por tres colores: rojo, verde y azul (RGB en inglés) y cada color está codificado por dos dígitos hexadecimales u ocho bits. Con el código propuesto, cada píxel estará determinado por 12 tets, 4 tets por cada color RGB, que producen los mismos 16,7 millones de colores que la codificación binaria (puedes convertir los códigos entre cualquiera de los sistemas binario, tetranario, decimal o hexadecimal bajándote esta página excel).
Además de los beneficios que se obtienen de sus propiedades, este código permitirá almacenar una memoria de 7,3x1018 Bytes o 7,3 Exabytes en sólo 1 mg de ADN de cadena doble (que es más estable que en cadena sencilla). Una comparación más cercana a nuestros usos diarios sería el cálculo de la memoria de un CD de 550 MB. Esta memoria está grabada en 5 Km de pista de un CD normal. En esa misma longitud cabrían 3,6x106 MB, es decir que la información de un CD de ADN equivaldría a la de 6.545 CD! Un incremento de capacidad interesante, no?

pincha aqui para bajar el pdf
http://blogdelaboratorio.com/cambiando-el-codigo-de-la-vida-y-los-soportes-digitales-en-trendingciencia
http://blogdelaboratorio.com/cronica-de-un-primer-dna-challenge
[Para ver las entradas sobre este tema en este blog: pincha a la derecha en Archivos: biocomputadora]

4 comentarios:

  1. muy buen articulo, muy interesante, lastima que el esta caido el link de la tabla de convercion de códigos, me hubiera encantado descargar la tabla, aun asi exelente articulo

    ResponderEliminar
    Respuestas
    1. El link para bajar el documento para pasar unos códigos a otros ha sido corregido.

      Eliminar
  2. Hola.Quiciera saber el nombre del articulo para poder descargarlo en pdf. Gracias

    ResponderEliminar
    Respuestas
    1. En mi página de ResearchGate tienes todos mis artículos que puedes bajártelos:
      https://www.researchgate.net/profile/Alfonso_Jimenez-Sanchez/contributions

      Eliminar