El Escéptico Digital - Edición 2013 - Número 262
José Miguel Mulet
A pesar que puede sonar a ciencia ficción utilizar técnicas de biología molecular para solucionar problemas de matemáticas es algo que lleva años en marcha. El primero que sugirió la implementación de ordenadores moleculares fue Richard Feynman a finales de los 60, pero en aquel momento no había herramientas para llevarlos a cabo. Leonard Adleman en 1994 fue el primero en resolver un problema matemático utilizando ADN y enzimas y demostró que es una herramienta increíble para resolver problemas complejos de combinatoria. Conviene recordar que un fragmento de ADN es una secuencia de caracteres con un alfabeto de 4 letras, mientras que los ordenadores utilizan un código de solo dos letras. La ventaja del ADN es que nos permite generar todas las posibles combinaciones de forma muy sencilla. Un matemático podría argumentar, y con razón, que la matemática utilizada no es elegante, ya que no diseña algoritmos refinados que nos den la solución correcta con el mínimo potencial de cálculo, sino que la solución se obtiene a lo bruto. Lo que hacemos es generar todas las combinaciones posibles a un costo de tiempo y recursos asumibles y utilizando biología molecular aislamos la solución correcta sin necesidad de complejos cálculos u operaciones. Feo matemáticamente, pero tremendamente eficaz. Para entenderlo mejor vamos a fijarnos en como se utilizó la computación con ADN por primera vez.
Diseño de un problema y oligonucleotidos utilizados (Fu, Biotechnol. journal; 2007)
La reacción en cadena de la polimerasa (PCR) es una técnica omnipresente en cualquier laboratorio de biología y sirve tanto para pruebas forenses, para análisis de alimentos, como para ingeniería genética. Adleman utilizo la PCR para resolver un problema que se le resistía a los ordenadores de la época, el del camino hamiltoniano. El problema es tan fácil de describir como difícil de resolver: imaginémonos un número n de ciudades conectadas por carreteras de una sola dirección. ¿Podemos encontrar un camino empezando en una ciudad determinada y acabando en otra que visite todas las ciudades una vez y solo una vez? Los algoritmos existentes solo permitían resolverlo “a lo bruto”, es decir, probar todas las combinaciones una a una hasta dar con la correcta, lo que obligaba a utilizar una elevada potencia de cálculo. Utilizar ADN también es un algoritmo a lo bruto, pero nos permite encontrar la solución correcta de forma rápida. La estrategia a seguir es:
1.- Cada ciudad y carretera se representa por una secuencia de ADN de 20 letras (técnicamente, nucleótidos). Si el problema tiene 7 ciudades, la solución correcta será un fragmento de ADN de 7x20: 140 letras.
2.- ¿Como se definen las diferentes carreteras existentes? Imaginemos que la ciudad A y la B están unidas por una carretera. Las 10 primeras letras de un fragmento representaran a la ciudad A y las siguientes 10 a la ciudad B, de forma que si hay una carretera que une A y J la carretera se representará por un fragmento de ADN cuyas 10 primeras letras coincidirán con las de la carretera AB y las diez últimas serán propias de J. Esto tiene una particularidad. Obviamente las ciudades son cruces de carreteras, de forma que una persona llega a A por la carretera JA y luego va a B por la carretera AB. Esta es la gracia del sistema. Secuencias iguales (¡son cadenas dobles! lo más correcto sería decir complementarias) se enlazarán entre sí durante la reacción de PCR de forma aleatoria.
3.- Ya tenemos que cuando pongamos todos los fragmentos de ADN juntos se enlazaran de forma aleatoria, ahora nos toca separar la solución correcta de las demás. Chupado. La gracia del problema es definir la ciudad de salida y la de destino. La reacción del PCR necesita de dos secuencias de ADN que hagan de cebadores, es decir, que le digan a la enzima donde tiene que empezar y donde tiene que acabar de copiar. Por lo tanto esos cebadores representaran el principio y el final del problema. Amplificarán alatoriamente todas las soluciones… pero la buena será la que tenga 140 letras, algo que es muy fácil de ver por una técnica rutinaria como una separación de ADN por electroferesis en gel de agarosa. Luego secuenciando el fragmento de ADN ya tenemos el problema resuelto de una forma rápida y barata.
Ejemplo de encriptación utilizando ADN (Fu, biotechnol. Journal; 2007)
De la misma forma que un semiconductor sirve para decir si o no, actualmente se están desarrollando herramientas basadas en secuencias de ADN y de ARN catalíticas que sirven para diseñar puertas lógicas. El sistema se basa en que tenemos diferentes opciones para que una cadena de ADN tenga o no actividad enzimática (catalice una reacción química), lo que nos permite el diseño de circuitos. También podemos utilizar secuendias de ADN para encriptar mensajes o para almacenar información. ¿cómo? pues no es dificil. Podemos definir un codigo con combinaciones de las 4 bases de ADN y ese fragmento de ADN insertarlo en cualquier organismo, que será el que lleve la información. Para descifrarla necesitaremos saber que cebadores utilizar y el código para descifrarla. En general la tecnología de la computación con ADN es todavía es un bebé que está aprendiendo a hablar. Ya hay circuitos capaces de realizar operaciones de aritmética elementales y jugar al tres en raya, pero todavía falta para que la manzanita no este fuera decorando sino integrada en la circuitería del ordenador.
Ejemplo de puertas lógicas utilizando secuencias de ADN catalíticas. (Willner et al, Chem. Soc. Rev 2008)
PD: Y con esta entrada participo en la edicion 2.4 del carnaval de matemáticas, que en este mes de mayo se aloja en el blog seispalabras.