Computación Biomolecular: algunos apuntes.

Autores:
Rolando Hong*
Carlos Martínez Ortiz**
Miguel Sautié Castellanos***
Kiria Valdés Crespo****
José Luis Hernández Cáceres*****

Centro de Cibernética Aplicada a la Medicina (CECAM) www.cecam.sld.cu

Índice general


Resumen

Se aborda el problema del desarrollo de sistemas computacionales basados en la aplicación de principios y soportes procedentes de la biología.

En opinión de los autores, la investigación en la frontera de la biología y la física con las tecnologías de la información puede llevar al desarrollo de nuevos e importantes sistemas de información (algoritmos y software) y tecnologías de computación (hardware). La cuestión es qué y cómo podemos aprender (y entender) de los sistemas biológicos y físicos y cómo podemos adoptarlos y adaptarlos para desarrollar las tecnologías de la información del futuro. La computación biomolecular y la computación cuántica persiguen estos objetivos.

El hecho de que diferentes tipos de tareas no resueltas hasta el presente mediante las tecnologías tradicionales encuentre su soluciónen el marco de la computación biomolecular puede considerarse como lamejor evidencia de las amplias perspectivas de este enfoque.

Arriba

Introducción

El entendimiento de las bases moleculares de la biología molecular ha crecido enormemente en los últimos años. La célula puede también ser apreciada como un sistema computacional: su programa reside en la información genética contenida en el ADN (ácido desoxiribonucleico), y su estado en la distribución de los compuestos químicos y cargas eléctricas. El estado de la célula y el ambiente interactúan con una gran variedad de expresiones de control y sistemas de transporte para determinar los estados subsecuentes.

Adleman (Adleman, 1994), fue el primer científico del área de la computación que logró implementar una tecnología computacional basada en ideas biológicas. Adleman dio el mejor de los argumentos para sustentar sus argumentos: llevó a cabo el cálculo específico usando la tecnología que describió. En este aspecto, este trabajo es realmente único.

Existen algunas otras tecnologías computacionales basadas en ideas biológicas que son algo diferentes de las que describió Adleman; las diferencias en tales sistemas no solo se encuentran en los sistemas bioquímicos particulares involucrados en el cálculo, sino también en la naturaleza de los cálculos que cada sistema puede efectuar.

El sistema propuesto por Adleman descansa en un conocimiento riguroso de la química, pero no parece dar un propósito de cálculo general a la maquinaria computacional creada. Algunos intentos de los sucesores de Adleman para lograr esto no han sido del todo exitosos, pero de manera general muchos investigadores han aportado rigor matemático y generalidad al paradigma computacional planteado.
Arriba

Generalidades en el diseño de las tecnologías computacionales.

  • La representación del estado.
    El primer paso que se debe tener en cuenta a la hora de desarrollar una tecnología computacional es determinar como se debe representar ‘físicamente’ el estado en que se encuentra un determinado proceso de computo y esto puede hacerse de muchas maneras. Un método tradicionalmente usado por todos los sistemas de computo moderno son las diferencias de potencial (digamos, por ejemplo en un capacitor).
    Los polímeros son moléculas que consisten de unidades repetidas llamadas monómeros. Algunos polímeros (incluyendo varias familias importantes de biopolímeros) son lineales, y por tanto, son cadenas diseñadas a partir de un alfabeto de monómeros. Por ejemplo, las proteínas, son polímeros lineales compuestos de veinte aminoácidos diferentes; las proteínas son, por tanto, cadenas confeccionadas a partir de un alfabeto de veinte letras.
  • Transformación de un estado
    El segundo paso en el desarrollo de una tecnología computacional es mostrar como trasformar un estado; es decir, describir como la representación física de un estado computacional puede ser usada para producir la representación física de un estado sucesivo. En las computadoras mecánicas y electrónicas, la representación física de un estado es alterada para producir la representación física del estado sucesivo: las ruedas dentadas rotan hacia una nueva posición las cargas eléctricas son transportadas para crear diferentes diferencias de potencial.
    Para llevar a cabo este segundo paso en las computadoras basadas en polímeros, necesitamos contar con un conjunto suficientemente grande de transformaciones sobre ellos. Esto conlleva de manera natural a considerar a los polímeros bioquímicos y los procesos biológicos, pues las células han logrado evolucionar una enorme variedad de mecanismos químicos para manipular biopolímeros.
  • Transformaciones iteradas
    El paso final, es desarrollar un proceso para iterar las ya mencionadas transformaciones de estado. Este paso puede ser más difícil de lo que aparenta a primera vista. Consideremos, por ejemplo, una computadora electrónica. No es conceptualmente muy difícil construir un ‘circuito de transformación’ que, dada una representación física de un estado (en un ‘input’ de registros), use componentes booleanos estándar que den una determinada respuesta, también en forma de vector, en registros de salida (o lo que es lo mismo, un ‘output’ de registros), de tal manera que estos registros de salida representen el estado sucesivo del calculo que se está realizando. La parte difícil de este proceso es tener alguna forma de lograr que estos registros de salida vuelvan a colocarse en los registros de entrada, de tal forma que el proceso pueda repetirse una y otra vez. En la práctica, lograr esto conlleva muchas veces adicionar circuitería adicional para comunicar la salida con la entrada a expensas de complicar considerablemente la complejidad general en el diseño del procesador.

Complejidades algo similares surgen cuando se intenta diseñar computadoras basadas, por ejemplo, en la traducción del ARN (ácido ribonucleico).

Arriba

Propiedades computacionales estructurales del ADN:

Típicamente los resultados matemáticos han sido usados para resolver problemas en otras disciplinas científicas, el trabajo de Adleman se centra en una línea que revierte, pues se usan técnicas desarrolladas en las ciencias biológicas en la resolución de un problema matemático (los caminos hamiltonianos…). Aunque esto no es realmente la primera vez que ocurre (las ideas biológicas han influenciado otras ramas del saber), algunos investigadores han propuesto a su vez el nombre de ‘matemáticas biológicas’ a la nueva ola de resultados obtenidos en los modelos computacionales surgidos después del trabajo de Adleman.

A pesar de la complejidad de la tecnología involucrada, la idea detrás de las ‘matemáticas biológicas’ es realmente la simple observación de que los dos siguientes procesos (uno biológico y uno matemático) son análogos:

  • La estructura compleja de un ser vivo es el resultado de aplicar operaciones simples (copia, ‘splicing’, etc.) a una información inicial codificada en una secuencia de ADN.
  • El resultado de aplicar una función computable a un argumento puede obtenerse aplicando una combinación de funciones básicas simples a .

Por supuesto que el solo hecho de notar esta similitud no es suficiente. Adleman, además de notar este hecho, Adleman noto que con el avance de la biotecnología se podía simular lo matemático con lo biológico. De manera más precisa, las cadenas de ADN pueden usarse para codificar información y las enzimas pueden ser empleadas para simular simples computaciones y cálculos.

El ADN es una molécula que se encuentra distribuido de manera muy amplia entre los seres vivos y es normalmente usado como medio de almacenamiento de la información genética. El ADN esta compuesto por unidades llamadas nucleótidos que se distinguen por un grupo químico especifico llamado base nitrogenada. Las cuatro bases son, adenina, guanina, timina y citosina, o abreviadamente A, G, T, C. Los nucleótidos se encuentran enlazados para formar cadenas de ADN. Las secuencias de ADN tienen una polaridad: una cadena de ADN es distinta de la cadena revertida. Existe además una complementariedad entre pares de nucleótidos: A es complementario con T y C es complementario con G. Las uniones entre sí (en forma lineal) u de manera complementaria pareada permite la famosa estructura helicoidal de Watson y Crick. El proceso mediante el cual dos cadenas de ADN complementarias y de polaridad invertida se unen para formar una doble hélice se denomina annealing.
El proceso inverso (la separación de la doble hélice para dar por resultado dos cadenas separadas) se denomina desnaturalización o melting.

El hecho de que una cadena de ADN se esté formada por una cadena de cuatro símbolos A, T, C, G, tiene como significado matemático que podemos contar con un alfabeto de 4 letras para codificar información, lo cual es más que suficiente, considerando que las computadoras electrónicas modernas necesitan solo dos dígitos (0 y 1) para realizar la misma tarea.

Las operaciones simples que pueden llevarse a cabo sobre las secuencias de ADN en las células pueden realizarse ‘de manera artificial’ por un número de enzimas que ejecutan tareas básicas; todas estas enzimas se encuentran disponibles de manera comercial. Una clase de enzimas llamadas endonucleasas de restricción, reconocen secuencias cortas especificas en una determinada cadena de ADN y entonces ‘cortan’ a la cadena en esa posición. Otra enzima, llamada ADN ligasa se encarga de hacer uniones entre los ‘extremos pegajosos’ de las cadenas de ADN. Existen otras enzimas que podrían ser potencialmente útiles, pero para los modelos computacionales planteados por Adleman (y algunos otros investigadores) estas son suficientes.

Arriba

El ADN: una estructura de datos única.

La cantidad de información almacenada por la biología molecular durante los últimos 40 años es sobrecogedora por su amplitud. De tal manera y para facilitar la comprensión de la importancia del ADN en los modelos computacionales planteados, no se tratarán en demasía los detalles biológicos y bioquímicos en aras de concentrarnos en la información que es relevante para la realización de cálculos con el ADN.

La densidad de datos en el ADN es impresionante. De la misma manera que una cadena binaria de datos está codificada con ceros y unos, una cadena de ADN está codificada mediante cuatro bases, representadas por las letras A, T, C y G. Las bases (también conocidas como nucleótidos) están espaciadas cada 0.35 nanómetros a lo largo de la molécula de ADN, dándole al ADN una gran densidad de datos de aproximadamente 18 Mbits por pulgada. En dos dimensiones si se asume que existe una base por nanómetro cuadrado, la densidad de datos es superior a un millón de Gbits por pulgada cuadrada. Compare esto con la densidad de datos de un disco duro convencional de elevada eficiencia, el cual tiene aproximadamente 7 Gbits por pulgada cuadrada (lo cual da un factor de unas 100 000 veces menor).

Otra propiedad importante del ADN es su naturaleza de doble cadena helicoidal y la propiedad de formar pares de bases complementarias entre nucleótidos de diferentes cadenas. Esta complementariedad hace que el ADN sea una estructura de datos única para realizar cálculos, pues esta propiedad se puede explotar de diferentes maneras. La corrección de errores es un ejemplo. Los errores en el ADN ocurren debido a muchos factores. Ocasionalmente, las enzimas que manipulan el ADN simplemente cometen los errores, haciendo cortes de la cadena en lugares donde no debían, o insertando una T por una G. El ADN puede también dañarse por energía térmica o por la luz ultravioleta proveniente del sol. Si ocurre un error en una de las cadenas de la doble hélice, las enzimas de reparación pueden restaurar la secuencia dañada usando la cadena complementaria como referencia. En algunos sistemas computacionales se utilizan mecanismos de recuperación de información análogos a los descritos, sin embargo, el desarrollo de la tecnología aun no ha permitido usar a las enzimas de reparación de una manera verdaderamente eficiente en el almacenamiento y preservación de la información. Pese a todo, las potencialidades permanecen tentadoras. Es necesario, sin embargo señalar que la eficiencia en los mecanismos de reparación naturales del ADN es inferior a los errores de lectura-escritura de los discos duros actuales.

Arriba

ADN vs. Silicio

El ADN, con su estructura de datos única y su habilidad para llevar a cabo muchas operaciones paralelas, permite que se mire a un problema computacional desde un punto de vista diferente. Las computadoras basadas en transistores típicamente manejan las operaciones de una manera secuencial. Por supuesto, también existen computadoras con muchos procesadores, e incluso los procesadores modernos incorporan algún procesamiento paralelo, pero en general, en la arquitectura básica de las computadoras (la arquitectura de von Neumann), las instrucciones se manejan de manera secuencial. Una máquina de von Neumann, que es lo que son todas las computadoras modernas, repite básicamente el mismo ciclo (‘fetch and execute’) muchas veces. Se direccionan instrucciones y datos apropiados provenientes de la memoria principal y luego ejecuta la instrucción, el truco es hacerlo muchas veces y muy rápido. Las computadoras de ADN, sin embargo, son máquinas estocásticas que no poseen la arquitectura de von Neumann y realizan los cálculos de manera diferente a las computadoras ordinarias con el propósito de resolver una clase diferente de problemas.

Normalmente, el incremento de la eficiencia en las computadoras convencionales significa ciclos de reloj más rápidos, donde el énfasis se encuentra en la velocidad del procesador y no en el tamaño de la memoria. Por ejemplo, que le dará a su equipo mayor eficiencia: ¿Duplicar la velocidad del reloj o duplicar la memoria RAM? En la arquitectura de von Neumann, duplicar la velocidad del reloj. Para las computadoras de ADN, la potencia viene de la capacidad de memoria y del procesamiento paralelo. Si ‘obligamos’ a una computadora de ADN a comportarse secuencialmente, esta máquina pierde todo su atractivo. Por ejemplo, observemos la velocidad de lectura y de escritura del ADN. En las bacterias, el ADN puede replicarse a una velocidad de 500 bases por segundo. Desde el punto de vista biológico esto es bastante rápido (10 veces más rápido que las células humanas) y si consideramos las bajas frecuencias de errores que cometen entonces podemos decir que es un logro impresionante. Pero esta velocidad es solo unos 1000 bits por segundo, lo cual es increíblemente lento en comparación con la velocidad con que los datos pueden salir de un disco duro. Miremos sin embargo lo que sucede si se permite que muchas copias de las enzimas de replicación trabajen en paralelo. Antes que todo, las enzimas de replicación pueden comenzar con la segunda cadena de ADN incluso antes de que se termine de replicar la primera. De tal manera que la velocidad de los datos salta a 2000 bits por segundo. Lo que sucede luego es que el número de cadenas de ADN se incrementa de manera exponencial (2n después de n iteraciones). Con cada cadena adicional la velocidad se incrementa en 1000 bits por segundo, de tal manera que después de 10 iteraciones el ADN se encuentra replicándose a una velocidad de alrededor de 1 Mbit por segundo; después de 30 iteraciones, el incremento es de 1000 Gbits por segundo. Esta velocidad es claramente superior a las velocidades de datos sostenidas de los mejores discos duros.

Arriba

Resolución del problema del camino hamiltoniano (Adleman)

Las posibilidades prácticas de codificar información en una secuencia de ADN y de llevar a cabo bio-operaciones simples fue eficientemente usada por Adleman para resolver un ejemplo del problema del camino Hamiltoniano con un grafo de 7 nodos.

Un grafo G con dos vértices designados Vin y Vout se dice que tiene un camino Hamiltoniano si y solo si existe una secuencia de ‘uniones’ entre los nodos e1, e2, e3, e4,... ez, (es decir, un camino) que comience en Vin y termine en Vout y que pase por cada vértice exactamente una sola vez.

El siguiente algoritmo (no determinístico) resuelve el problema:

1. Genere caminos aleatorios a través del grafo.
2. Mantenga durante el cálculo solamente los caminos que comiencen con Vin o terminen con Vout.
3. Si el grafo tiene n vértices, mantenga solo los caminos que pasan por exactamente n vértices.
4. Mantenga los caminos que pasan por todos los vértices del grafo y que pasan por cada uno de ellos solo una vez.
5. Si al final de la búsqueda queda algún camino, responda ‘SI’ de otra manera responda ‘NO’.

Para implementar el paso 1, cada vértice del grafo se codifico como una cadena de ADN aleatoria de una longitud de 20 nucleótidos. Entonces por cada unión entre vértices en el grafo, se crea una sea una secuencia de ADN cuya segunda mitad esta compuesta de la secuencia que codifica el vértice de origen y la primera mitad de la secuencia codifica para el vértice de destino. Usando los complementos de los vértices como molde las secuencias que corresponden a los vértices compatibles son ‘ligados’ y de esta forma se construyen moléculas de ADN que codifican caminos aleatorios a través del grafo.

Para implementar el paso 2, el producto del paso 1 se amplifica mediante la reacción en cadena de la polimerasa (PCR). A partir de este paso solo quedaran los vértices que comienzan con Vin y terminan en Vout.

Para implementar el paso 3, se usa una técnica llamada electroforesis en geles, que hace posible la separación de las cadenas de ADN de acuerdo a su tamaño. Las moléculas se colocan al inicio de un gel húmedo a través del cual se aplica un campo eléctrico. Las moléculas de mayor tamaño se desplazan de manera más lenta en el gel, después de determinado tiempo las moléculas quedan separadas en bandas de acuerdo a su tamaño.

El paso 4 se realiza aplicando iterativamente un proceso llamado purificación por afinidad. Este proceso permite que solamente las secuencias que contienen una determinada secuencia correspondiente al vértice v sea filtrada y separada del resto de las moléculas. Previamente es necesario sintetizar cadenas complementarias a v y enlazarlas a la matriz de filtrado del proceso de purificación; solo aquellas cadenas que contienen la secuencia v quedaran adheridas a las cadenas complementarias sintetizadas, el resto de las cadenas no será retenida en la matriz una vez que el flujo de cadenas heterogéneas pasa a través de la matriz de purificación. Este proceso se repite con cada resultado de la purificación para cada uno de los n vértices de nuestro problema inicial.

Para implementar el paso 5 es necesario averiguar la existencia de una molécula que represente el camino Hamiltoniano. Esto se hace amplificando los resultados del paso 4 mediante el PCR y determinando las secuencias de ADN de las secuencias amplificadas para ver si alguna representa la solución buscada.

Arriba

Ácido nucleico computacional: Un modelo de molécula computacional.

Un modelo alternativo al de Adleman fue el propuesto por un equipo de la universidad de Chicago (Kurtz et al, 1998) es el llamado Ácido nucleico computacional (CNA). En su aproximación este modelo plantea que el CNA sea una generalización de ADN, ARN y de las proteínas, aunque, desde el punto de vista matemático, es solo una cadena de símbolos sobre un alfabeto finito. Una molécula de CNA puede replicarse al igual que el ADN. Una molécula de CNA puede también ser interpretada, como una molécula de ARNm, para sintetizar una nueva molécula, en este caso se trataría de sintetizar una nueva molécula de CNA y no de proteína como ocurre en los sistemas bioquímicos naturales. Esta molécula sintetizada de CNA puede, a su vez, ser interpretada para sintetizar una tercera molécula de CNA y así sucesivamente.

A pesar de que este modelo parece demasiado fantasioso, la molécula de ARN parece un buen candidato para implementar (o hacer el papel de) una molécula de CNA. Aunque usualmente pensamos en el ADN como una doble hélice y el ARN como una molécula lineal, el ARN también puede formar dobles hélices en concordancia con las reglas de complementariedad de Watson y Crick, de tal manera que el ARN puede replicarse mediante un proceso esencialmente idéntico al proceso de replicación del ADN. En las células modernas, el ARN no es interpretado por ribozomas para sintetizar ARN, pero muchos biólogos creen que las primeras formas de vida estaban basadas puramente el ARN. En este hipotético ‘mundo de ARN’, las enzimas estaban construidas a partir de los nucleótidos de ARN más que de aminoácidos formando estructuras análogas a los ribozomas. Algunas investigaciones recientes han mostrado además que el ARN forma enzimas inesperadamente eficientes (ribozimas).

Arriba

Sobre operaciones lógicas y aritméticas con el ADN

Es innegable la ventaja del paralelismo masivo de la computación biomolecular sobre los circuitos electrónicos tradicionales. Sin embargo, para que la computación con ADN sea aplicable en un amplio rango de problemas, es necesario que este nuevo modelo de cálculo pueda soportar operaciones computacionales simples (Gifford, 1994; Pool, 1995; Rubin, 1996). Los operadores booleanos tales como AND, OR y NOT, y las operaciones aritméticas tales como la adición y la sustracción son las operaciones fundamentales de una computadora electrónica. En contraste con los problemas de búsqueda que pueden ser resueltos generando todas las posibles combinaciones y luego extrayendo la respuesta correcta, para estas operaciones sencillas es necesario que cada entrada (input) tenga una sola salida o resultado (output). A pesar de que es poco probable que las tecnologías de computación biomolecular puedan superar a las técnicas electrónicas de realizar estos cálculos simples ciertamente (como afirmara Adleman (1994)) estos nuevos modelos computacionales pueden contribuir con nuestro entendimiento de la naturaleza de la computación en sí misma. Se ha realizado algún trabajo simulando circuitos booleanos y llevando a cabo adiciones y multiplicación de matrices con ADN. Ogihara y Ray (1997), por ejemplo han mostrado la manera de simular circuitos booleanos con ADN. Oliver (1996), ha mostrado como pueden usarse los métodos de cálculo con el ADN para calcular el producto de matrices booleanas o de matrices que contienen números reales positivos. Guarnieri et al (1996) han propuesto una forma muy ingeniosa de adicionar dos números binarios.

Arriba

Sobre la universalidad de las computadoras de ADN.

La computación molecular universal es un tema popular de físicos (Matzke, 1994) y biólogos (Hammeroff, 1987) y un sueño de los científicos computacionales (Langton, 1987; Drexler, 1986). Las computadoras moleculares (de llevarse a cabo de manera eficiente su construcción), no solo serán mucho más pequeñas que las computadoras tradicionales (almacenaran en el espacio en que hoy se almacena un bit unos 1012 bits), sino que también serán más eficientes y rápidas (lograran unas 1020 operaciones por segundo en comparación con las 1012 operaciones por segundo de las supercomputadoras actuales y las 106 operaciones por segundo de las computadoras personales). En un artículo realmente brillante, Adleman sorprendió a la comunidad científica al mostrar la posibilidad real de hacer cálculos con moléculas. Mediante manipulaciones de ADN logró resolver un problema computacionalmente difícil: encontrar el circuito Hamiltoniano en un grafo. Luego de esta demostración espectacular, se han hecho muchas especulaciones acerca de si es posible que las computadoras moleculares sean capaces de realizar todas las tareas que las computadoras tradicionales hacen.

Varias investigaciones parecen indicar que la computación molecular es de hecho universal y puede efectuar todo tipo de cálculo. Hace ya bastante tiempo, Turing (1936) analizando la naturaleza del calculo computacional (cuando aun no existían computadoras), descubrió un modelo teórico de computadoras ‘la maquina de Turing’ y propuso una tesis de una magnitud impresionante: ‘todo lo que puede ser calculado, puede calcularse en una máquina de Turing’. Esta tesis es hoy ampliamente aceptada por varias razones:
  1. Todo programa sobre toda computadora existente implementa, de hecho, una máquina de Turing y toda máquina de Turing puede ser simulada por un programa sobre cualquier computadora existente.
  2. Se han descubierto muchos otros modelos computacionales (funciones recursivas parciales, gramáticas de Chomsky, sistemas de Post, Calculo lambda de Church, etc.), pero todos ellos han mostrado ser equivalentes a la máquina de Turing en su poder computacional (este enunciado se llama ‘tesis de Church’).
Además de los modelos computacionales antes mencionados hace poco menos de una década se estableció otro modelo computacional teórico, las ‘multigramáticas de patrones’, que mostraron también ser equivalentes a la maquina de Turing. Se ha logrado demostrar que el modelo de computación basado en procesos biológicos es equivalente a las multigramáticas de patrones y por tanto a las maquinas de Turing, logrando establecer de esta manera la universalidad del modelo de computación biológica.
Arriba

¿Puede el ADN calcular cualquier cosa?

La ventaja potencial de los cálculos con ADN sobre el cálculo convencional realizado en computadoras electrónicas está muy claro para el caso del problema de los caminos Hamiltonianos y la ruptura de las claves de DES. Por otro lado, estos son solo problemas particulares resueltos por medio de la biología molecular. Son experimentos aislados para derivar una solución combinatoria a un tipo particular de problema. Esto nos lleva inmediatamente a dos preguntas fundamentales (propuestas ya por Adleman en su artículo):

1. ¿Qué tipo de problemas pueden ser resueltos por la computación biomolecular?
2. ¿Será posible, al menos en principio, diseñar una computadora programable de ADN?
De manera algo más precisa, las preguntas anteriores pueden ser reformuladas de la siguiente manera:
1. ¿Es el modelo de cálculos con el ADN computacionalmente completo en el sentido de que la acción de cualquier función computable (o equivalentemente, el cálculo sobre cualquier máquina de Turing) puede llevarse a cabo mediante manipulaciones del ADN?
2. ¿Existe un sistema universal de ADN, o sea, un sistema que, dada la codificación de una función computable como dato de entrada, pueda simular la acción de dicha función para cualquier argumento? (Aquí, la noción de función corresponde a la noción de un programa en el cual un argumento sea la entrada al programa y el valor sea la salida del programa. La existencia de un sistema universal de ADN es equivalente, por tanto, a plantear la existencia de una computadora de ADN capaz de ejecutar programas).

Las opiniones difieren en cuanto a determinar si las respuestas a estas preguntas tienen alguna relevancia práctica. Podría discutirse, por ejemplo, que desde el punto de vista practico podría no ser importante simular una máquina de Turing mediante un equipo de computación de ADN. De hecho, es probable que no sea bueno tratar de hacer concordar el modelo de computación biomolecular con los modelos computacionales clásicos, quizás sea mejor replantearse nuevamente el problema de los paradigmas de cálculos computacionales bajo un nuevo modelo. Por otra parte, encontrar si una clase de algoritmos de ADN es computacionalmente completa tiene muchas implicaciones prácticas. Si la respuesta a esta última cuestión fuera desconocida, los esfuerzos por resolver un problema particular podrían resultar inútiles en algún momento, pues una persona (quizás influida por razonamientos Gödelianos) podría de momento anunciar que tal problema no tiene solución posible mediante manipulaciones genéticas. El mismo razonamiento es válido para la prueba teórica de la existencia de una computadora de ADN. Mientras no se haya encontrado una prueba teórica de que tal computadora existe, existe gran peligro de que los esfuerzos prácticos en fabricar tal equipo sean vanos.

Existen otras operaciones y manipulaciones genéticas que pueden ser usadas para ‘armar’ modelos computacionales de cálculo. Con todas estas operaciones pueden escribirse ‘programas’ que reciben, por ejemplo, un tubo de ensayo que contiene cadenas de ADN como datos de entrada y tienen al final de los cálculos una respuesta de tipo ‘SI’ o ‘NO’, o de lo contrario, pueden producir un conjunto de tubos de ensayo donde queda codificada la respuesta.

Existen ventajas y desventajas de cada uno de los modelos (combinaciones de operaciones). Los modelos que usan operaciones similares a las usadas por Adleman tienen la ventaja que poder ser implementadas de manera exitosa en el laboratorio. El obstáculo que por el momento impide la implementación de un proceso de automatización a gran escala es que la mayor parte de las bio-operaciones dependen en buena medida de la manipulación manual de los tubos de ensayo.

En contraste con esto, existe también un modelo introducido por Tom Head (1987) que pretende ser un modelo ‘de un solo compartimento’, con un solo tubo de ensayo en el que se realicen todas las operaciones mediante vías enzimáticas, a esta nueva familia de sistemas introducidas por Head se le conoce de manera general como sistemas de splicing. El modelo de Head tiene, además, la ventaja de ser un modelo matemático, donde todos los hallazgos están basados en rigurosas pruebas matemáticas. Su desventaja es que el estado actual de la biología molecular no permite aun implementaciones prácticas de este sistema. De manera general, la existencia de diferentes modelos con características muchas veces complementarias muestra la versatilidad de los cálculos con ADN e incremente la probabilidad de que algún día se fabriquen equipos funcionales basados en esta tecnología.

Arriba

Sobre las tareas y problemas que debe enfrentar la computación biomolecular.

La computación biomolecular es un terreno nuevo, con metodologías aun bastante inexploradas. Es un terreno por naturaleza interdisciplinario, teniendo muchas interfaces entre la biología y las ciencias de la computación.

Objetivos y principales aplicaciones de la computación biomolecular.

  • Búsqueda de problemas NP-completos. Los problemas NP-completos son una clase de problemas computacionales que requieren una gran búsqueda combinatoria para alcanzar la solución, pero que requieren un trabajo relativamente modesto para verificar si la solución dada es correcta. Los problemas de búsqueda en la solución de problemas NP-completos se resuelven en la computación biomolecular mediante el ensamblaje de un gran número de soluciones potenciales, donde cada solución potencial se encuentra codificada en una molécula de ADN; luego se llevan a cabo operaciones de la tecnología de ADN recombinante para separar las soluciones correctas del problema. (Ejemplo: Adleman y su solución del ‘traveling salesman problem’).
  • Incrementar la capacidad de memoria. La computación biomolecular tiene el potencial de poder implementar enormes cantidades de memoria. Un pequeño volumen puede contener un gran número de moléculas. Una solución acuosa de ADN (con algunas sales y otros compuestos) puede contener aproximadamente de 107 a 108 tera-bytes, y pueden realizarse búsquedas paralelas masivas sobre este volumen de información.
  • Procesamiento paralelo. Como ya hemos visto, la computación biomolecular también tiene el potencial de implementar aplicaciones masivamente paralelas. En este caso puede pensarse en cálculos en los que cada estado del procesador este representado por una hebra de ADN. Desde este punto de vista, puede pensarse en almacenar en un litro de solución de ADN unos 1018 procesadores.
  • Nano-fabricación y autoensamblaje de ADN. Las técnicas de la computación biomolecular combinadas con las técnicas de nano-fabricación de ADN pueden permitir el autoensamblaje de ADN en enrejados bi y tridimensionales; estas estructuras espaciales pueden usarse para codificar cálculos en formas mucho más complejas.
Arriba

Sobre la complejidad de los problemas que debe resolver la computación biomolecular.

Un hecho importante acerca del resultado de Adleman es que no solo da una solución a un problema matemático dado, sino que además, el problema que resuelve es computacionalmente difícil de resolver.

Los problemas pueden ser ordenados de acuerdo al tiempo que le toma al mejor algoritmo resolverlos cuando se ejecutan sobre una sola computadora. Los algoritmos cuyo tiempo de corrida están ‘limitados’ o regidos por una función polinómica dada en términos del tamaño de los datos de entrada que describen el problema están en la clase P ‘de tiempo polinómico’. Respectivamente si la función es exponencial los problemas caen en la clase EXP ‘de tiempo exponencial’. Un problema se dice que intratable si es computacionalmente tan difícil que ningún algoritmo de tiempo polinómico puede resolverlo.

Una clase especial de problemas, aparentemente intratables, que incluyen a P e incluidos en EXP es la clase NP ‘no-determinísticos de tiempo polinómico’. La siguiente relación entre clases de problemas se cumple:

NP contiene los problemas para los cuales no se conoce un algoritmo que los pueda resolver en un tiempo polinómico, pero que pueden ser resueltos en tiempo polinómico usando una computadora no-determinística (esto es, una computadora que tenga la habilidad de llevar a cabo un número ‘ilimitado’ de búsquedas paralelas de manera independiente). El problema de los caminos Hamiltonianos es un tipo especial de problema NP conocido como ‘NP-completo’. Un problema NP-completo tiene la propiedad de que todo problema en NP puede ser reducido a él en tiempo polinómico. Por tanto, en determinado sentido, los problemas NP-completos son los problemas más difíciles en NP.

La pregunta de si los problemas NP-completos son intratables (o matemáticamente formulado ¿Es P igual a NP?) se considera como uno de los problemas más importantes en las matemáticas y las ciencias computacionales modernas.

Debido a que se sabe que el problema de los caminos hamiltonianos es un problema NP-completo, parece muy probable que no exista un algoritmo eficiente (esto es, en tiempo polinómico) para resolverlo con una computadora electrónica.

Arriba

Sobre los errores

Adleman, sin embargo, señala que a medida que el tamaño del problema computacional combinatorio (como el tratado por él en su articulo) crece debe prestarse especial atención, pues aumenta la probabilidad de formación de ‘pseudocaminos’, es decir, falsos positivos. Precisamente en el paso de purificación por afinidad deben reducirse enormemente la cantidad de falsos positivos que se pudieran presentar. Este paso, sin embargo, es el paso más lento, y debe ser eliminado o modificado para hacer que el método tenga alguna implementación practica eficiente.

Para hacer de los cálculos basados en ADN una técnica confiable, el primer paso es asegurarse de que no ocurran errores. Si ocurren muchas hibridaciones incorrectas, entonces los falsos positivos (cadenas de ADN que parecen ser soluciones validas pero no lo son) y los falsos negativos pueden surgir durante el cálculo. La probabilidad de que ocurra una hibridación imperfecta depende de las condiciones de reacción, tales como las concentraciones de sodio, pH, temperatura, por ciento relativo de (A+T)’s y (C+G)’s y longitud del ADN. De estos factores, la temperatura es él más importante.

Arriba

Una muestra de poder: el ataque a DES.

Una aplicación interesante que se desarrollo en computaciones moleculares con problemas complejos fue el planteamiento de un ‘programa molecular’ especialmente diseñado para quebrar el Estándar de Encriptación de Datos (DES) del gobierno de los Estados Unidos (Boneh et al, 1995). DES encripta un mensaje de 64 bits y usa una llave de 56 bits. Hacer quebrar DES significa que dado un par texto-normal, texto-cifrado, se pueda encontrar una llave que realice el ‘mapeo’ entre los dos textos presentados al algoritmo. Un ataque convencional a DES normalmente necesita llevar a cabo una búsqueda exhaustiva sobre las 256 posibles llaves de DES, lo cual, a una velocidad de 100 000 operaciones por segundo tomaría unos 10 000 años. En contraste, se ha estimado que DES puede ser quebrado usando computaciones moleculares en 4 meses de trabajo de laboratorio. Luego del éxito de Adleman en la implementación practica de la solución al problema de los caminos Hamiltonianos y con este calculo acerca de las potencialidades de la tecnología de computación biomolecular muchos otros investigadores han migrado a este nuevo campo de trabajo no solo por el interés intelectual que representa, sino también gracias a una buena cantidad de dinero que se ha dedicado a la investigación en el área. En particular la ‘National Science Foundation’ de los estados Unidos y la ‘Defense Advanced Research Project Agency’ del Pentágono tienen un gran interés en invertir en estos temas. La mayor parte de las motivaciones de los militares surge a partir del incremento de la calidad de las técnicas de encriptación que otros países usan para codificar sus datos. Como resultado, Washington necesitará computadoras cada vez más poderosas para romper los códigos de otros países.

El problema mencionado anteriormente muestra claramente que la computación molecular tiene el potencial de superar la eficiencia de las computadoras existentes hoy día. Una de las razones es que las operaciones que se usan actualmente en biología molecular pueden ser organizadas para realizar búsquedas paralelas masivas.

Arriba

Catenanos: un avance tecnológico hacia la construcción eficiente de computadoras moleculares.

Recientemente un grupo de investigación de la Universidad de California Los Angeles (UCLA) reportaron en la revista Science que habían construido un interruptor molecular (‘switch’) que podía ser apagado y encendido miles de veces (tomado de News in Science, 2000). Este mismo grupo ya había reportado la construcción de otro interruptor molecular que solo podía ser apagado o encendido una sola vez.

Este avance tecnológico nos acerca la posibilidad de construir computadoras moleculares muy eficientes basadas en el uso de compuertas lógicas. El interruptor molecular permitiría la realización de operaciones binarias usado de manera tan extensiva en las computadoras digitales comunes. Existe, por supuesto un gran interés en esta área debido a que las computadoras moleculares podrían potencialmente ser mucho más baratas que las actuales, sin contar con las facilidades de miniaturizacion que podrían aportar.

La investigación del equipo de la UCLA se basa en la síntesis de unas moléculas llamadas ‘catenanes’ (¿catenanos?), que están compuestas por dos anillos de átomos interconectados. El interruptor funcional se establece bajo la posibilidad que tienen estos dos anillos de pasarse un electrón de uno a otro anillo. Estas moléculas tienen la habilidad de reconocerse una a otra y alinearse de una manera eficiente. Previamente se usaron moléculas de roxetanos, pero estas moléculas debían estar en solución y su disposición espacial era, por tanto, mucho más desorganizada.

El desarrollo de una memoria RAM (Random Access Memory) molecular siempre ha sido una de las principales barreras de la computacion molecular, pero esta investigación también trae esta posible aplicación a un paso más cercano de la realidad.

La combinación de esta tecnología de miniaturización con las tecnologías digitales ya ampliamente usadas y el uso conjunto de otros modelos computacionales (computador cuántico, computador de ADN) promete un futuro muy interesante para las tecnologías computacionales.

Arriba

Computadoras de ADN autopropulsadas

Un equipo de investigaciones liderado por el estudiante doctoral Yaakov Benenson del Instituto Weizmann de Ciencias ha descubierto que una sola molécula de ADN puede brindar toda la energía necesaria para realizar un calculo computacional (Tomado de News in Science, 2003). Este es realmente el primer bosquejo de una especie de computadora muy pequeña. El reporte de esta investigación se realizo en la revista Proceedings of The National Academy of Science.

La máquina es tan pequeña que una pequeña gota podría contener hasta 3 trillones de estas computadoras de ADN, y pueden efectuar unos 66 billones de operaciones por segundo. Este mismo laboratorio del Instituto Weizmann hizo ya un aporte significativo en el 2001 cuando su líder, el profesor Enud Shapiro patento un diseño de computadoras de ADN que fue noticia ese año en los titulares de varias revistas especializadas y prensa de divulgación científica. El hallazgo de Shapiro fue en verdad la primera computadora autónoma programable en la cual todo (input, output, software, hardware) estaba hecho de ADN. Esta computadora podía llevar a cabo un billón de operaciones por segundo con una eficacia del 99.8%.

El nuevo diseño de Benenson, incorpora un proceso bioquímico que genera suficiente cantidad de energía (calor) como para hacer que el equipo sea autónomo, esto significa que, en principio, las computadoras de ADN pueden funcionar sin una fuente externa de energía.

Las computadoras electrónicas convencionales procesan información (en forma de pulsos eléctricos) a través de circuitos pagados a chips de silicio, pero la tecnología ya se esta acercando a los limites teóricos de miniaturización. Los tecnólogos esperan que en algún momento entre el 2010 y el 2015, la larga marcha de la ley de Moore (que plantea que el poder computacional se duplique cada 18 meses aproximadamente) se detenga bruscamente.

Los cómputos bioquímicos ofrecen la promesa de un mayor poder de procesamiento de información y capacidad de almacenamiento en un menor espacio, adaptando usados en la naturaleza por las ‘máquinas biomoleculares’ que se encuentran en las células vivas. Se ha estimado que un gramo de ADN seco contiene tanta información como un trillón de discos compactos.

Las computadoras de ADN representan la información como patrones de moléculas ordenadas a lo lardo de una cadena de ADN, y usan enzimas para llevar a cabo reacciones químicas que cambian de manera predecible estos patrones o los copian. Se han propuesto muchos diseños, pero todos recaen en el uso de la molécula de ATP como fuente de energía.

La nueva computadora usa enzimas naturales como hardware. Cada paso computacional requiere dos moléculas complementarias de ADN, una que actúa como ‘input’ y otra que actúa como software. Estas moléculas se unen espontáneamente y entonces la molécula que funciona como software le indica a una enzima que corte un determinado segmento de la molécula que actúa como dato de entrada o input. La ruptura del enlace en la cadena de ADN libera la energía necesaria que se encuentra almacenada precisamente en el enlace que se acaba de romper.

El naciente campo de la computación con ADN esta basado en la comprensión cada vez mayor de la maquinaria molecular de la vida, y ofrece una visión nueva y refrescante de cómo los sistemas vivos han evolucionado para crear un equipo muy eficiente de procesamiento de información –la célula-.

A pesar de que el potencial de las computadoras de ADN ha sido cuestionado por algunos científicos, Shapiro ha dicho que él cree que eventualmente será posible colocar las computadoras de ADN dentro del cuerpo humano para identificar e incluso corregir fallos en el funcionamiento liberando las drogas apropiadas.

Arriba

Comentarios finales

Las computadoras actuales de silicio están comenzando a mostrar sus limitaciones: se están alcanzando los límites impuestos por las leyes de la física en cuanto a la miniaturización de los componentes necesaria para
aumentar la velocidad de proceso y la capacidad de almacenamiento en las memorias de silicio está siendo sobrepasada con creces por otras tecnologías (memorias holográficas, ADN). La barrera de los pentaflops (1015 operaciones por segundo) necesaria para complejos problemas de simulación y optimización y para muchos problemas de la IA no se alcanzará con computadoras paralelas de silicio clásicas.

La computación biomolecular (con ADN, ARN, proteínas, o con membranas) o la computación cuántica quizás no sustituyan a los semiconductores de silicio en los PC's que tenemos sobre nuestras mesas pero probablemente entren en juego como potentes tecnologías de la futura super-computación paralela avanzada. Estos nuevos modelos no convencionales no son simples mejoras sobre modelos anteriores de cómputo sino que aprovechan el paralelismo inherente de los procesos biológicos (ensamblaje o hibridación del ADN) y de los procesos físicos (superposición de estados cuánticos).

La frontera entre los problemas `tratables' y los `intratables' o no resolubles de forma eficiente ha permanecido prácticamente inalterada durante los últimos 40 años. La computación cuántica ha desplazado esta frontera y ha mostrado su hegemonía (al menos teórica) frente a los modelos de cómputo clásicos (máquinas de Turing, RAM, circuitos) al comprobarse que pueden resolver en tiempo polinómico problemas que cualquier modelo clásico resolvería en tiempo exponencial; por ejemplo, el problema de la factorización de números, de gran importancia en la criptografía actual.

Creemos que la investigación en la frontera de la biología y la física con las tecnologías de la información puede llevar al desarrollo de nuevos e importantes sistemas de información (algoritmos y software) y tecnologías de computación (hardware). La cuestión es qué y cómo podemos aprender (y entender) de los sistemas biológicos y físicos y cómo podemos adoptarlos y adaptarlos para desarrollar las tecnologías de la información del futuro. La computación biomolecular y la computación cuántica persiguen estos objetivos.

El avance tecnológico actual está permitiendo manipular de forma cada vez más precisa la materia a nivel molecular e incluso atómico. Estos avances tecnológicos pueden hacer realidad estos dos nuevos modelos de computación. En el siglo XX se han intentado simular procesos computacionales presentes en la Naturaleza. En el siglo XXI, los esfuerzos se encaminarán a utilizar la propia Naturaleza para realiza cómputos. Estos estudios nos permitirán también descifrar las leyes del procesamiento de la información en la Naturaleza. Una teoría única de la información que incluya la física, la computación y la biología.

Arriba

Bibliografia

Adleman L. Molecular computation of solutions to combinatorial problems. Science, 266: 1021-1024, 1994.
Kurtz S.A., Mahaney S.R., Royer J.S., Simon J. Biological Computing. In Complexity Theory Retrospective II. Edited by L.A. Hemaspaandra, A.L. Selman. Springer Verlag, 1998.
Drexler K.E. Engines of creation: the coming era of nanotechnology. Anchor Press, 1986.
Hammerroff S.R. Ultimate computing: Biomolecular consciousness and nanotechnology. N. Holland, 1987.
Matzke D. Proc. Workshop on Physics and computation. PhysCom’94. IEEEComp.Sci.Press 1994 ISBN 0-8186 6715-X.
Turing A.M. On computable numbers, with an application to the Entschcidungsproblem. Proceedings of the London Mathematical Society, 42: 230-265, 1936.
Boneh D., Dunworth C., and Lipton R. Breaking DES using a molecular computer. In Proceedings of DIMACS workshop on DNA computing, 1995. published by the AMS.
Head T. Formal language Theory and DNA: an analysis of the generative capacity of recombinant behaviours. Bulletin of Mathematical Biology, 49: 737-759, 1987.
Gifford D.K. On the path to computation with DNA. Science, 266: 993-994, November 1994.
Pool R., A boom in plans for DNA computing. Science, 268:498-499, April 1995.
Rubin H., Looking for the DNA killing app. Natural Structural Biology, 3(8):656-658, August 1996.
Ogihara M., Ray A., Simulating boolean circuits on a DNA computer. In 1rst Annual Conference on Computational Molecular Biology, pages 326-331, 1997.
Oliver J.S., Computation with DNA-matrix multiplication. In 2nd Annual Meeting on DNA based computers, June 1996.
Guarnieri F., Fliss M., Bancroft C., Making DNA add. Science, 273 (5272): 220-223, July 1996.
News in Science. August 28, 2000. http://www.abc.net.au/science/news/stories/s168118.htm
News in Science. February 25, 2003. (Bob Beale)
http://www.abc.net.au/science/news/stories/s792007.htm

Arriba

WWW:CECAM.SLD.CU