Professional Documents
Culture Documents
Matrícula: 1329-0018
Universidad de Morón
Año 2004
A mi madre y hermanos, por todo
el apoyo brindado durante estos años.
AGRADECIMIENTOS
1 Introducción..........................................................................................................................6
2 Conceptos fundamentales de biología molecular ..............................................................8
2.1 Estructura del ADN......................................................................................................................8
2.2 Estructura del ARN ......................................................................................................................9
2.3 Proteínas ....................................................................................................................................10
2.4 Síntesis protéica .........................................................................................................................10
2.5 Replicación del ADN..................................................................................................................11
2.6 Técnicas de manipulación del ADN ...........................................................................................11
2.6.1 Desnaturalización...............................................................................................................12
2.6.2 Renaturalización.................................................................................................................12
2.6.3 Electroféresis ......................................................................................................................12
2.6.4 Fragmentación....................................................................................................................12
2.6.5 Enlaces................................................................................................................................13
2.6.6 Reacción en cadena de polimerasa (RCP) .........................................................................13
2.6.7 Secuenciación .....................................................................................................................14
3 El estado del arte ................................................................................................................16
3.1 El Experimento de Adleman.......................................................................................................16
3.1.1 Conclusiones del experimento ............................................................................................19
3.2 La primer representación binaria ..............................................................................................20
3.3 El Modelo de Stickers ................................................................................................................20
3.3.1 Representación de la información ......................................................................................21
3.3.2 Operaciones con cadenas de bits .......................................................................................21
3.3.3 La máquina de Stickers.......................................................................................................23
3.4 Operaciones aritméticas con ADN ............................................................................................25
3.5 El autómata de ADN ..................................................................................................................28
3.6 ADN sobre superficies ...............................................................................................................31
4 Análisis del nuevo paradigma de procesamiento ............................................................34
4.1 La necesidad de un nuevo paradigma........................................................................................34
4.2 Computación tradicional vs. computación con ADN .................................................................35
4.3 Aplicaciones ...............................................................................................................................37
4.4 Universalidad del nuevo paradigma ..........................................................................................38
5 Modelo propuesto para el desarrollo basado en Computación con ADN .....................40
1. Análisis del problema ..............................................................................................................41
2. Diseño de secuencias ...............................................................................................................42
3. Selección de Operaciones ........................................................................................................43
4. Pruebas ....................................................................................................................................44
5. Implementación .......................................................................................................................45
6 Aplicación del modelo propuesto ......................................................................................47
6.1 Selección del problema ..............................................................................................................47
6.2 Solución actual...........................................................................................................................49
6.3 Solución aplicando el modelo propuesto ...................................................................................50
7 Conclusiones .......................................................................................................................56
7.1 Futuras líneas de investigación .................................................................................................56
Bibliografía .............................................................................................................................69
4
Introducción
1 Introducción
La tecnología de procesamiento actual se encuentra en una evolución constante. A pesar de
ello, son conocidas las limitaciones que la misma posee y que le impedirán satisfacer las
necesidades futuras de procesamiento. Por tal motivo, comienzan a buscarse nuevas
alternativas al procesamiento basado en semiconductores, y una de ellas es la Computación
con ADN.
La Computación con ADN se basa en la utilización de moléculas de ADN como la unidad
fundamental de procesamiento. Mediante estas moléculas se implementan diversas
codificaciones, entre ellas la codificación binaria. La manipulación de las mismas se alcanza
a través de la ejecución de procesos bioquímicos.
El procesamiento basado en ADN presenta ciertas ventajas respecto al procesamiento
actual, entre las que se destacan su procesamiento masivamente paralelo y su gran capacidad
de memoria. En esta tesis, se presenta el estado del arte de este nuevo paradigma de
procesamiento que tiene pocos años de vida y que aún es desconocido por muchos en el
ambiente informático.
Este trabajo se compone de siete capítulos o secciones, siendo la primera esta introducción.
A continuación se detalla el objetivo de cada uno de los capítulos restantes.
En el capítulo 2, se presentan aquellos conceptos de biología molecular que resultan de
fundamental importancia para la comprensión de la Computación con ADN. Se incluyen en
el mismo las técnicas de manipulación del ADN.
El capítulo 3 describe el estado del arte de la Computación con ADN, desde su inicio hasta
los últimos avances presentados. En este capítulo se comienzan a observar las posibilidades
que la misma ofrece.
En el capítulo 4, se realiza un análisis de la Computación con ADN como nuevo paradigma
de procesamiento. En este análisis, se demuestra la necesidad de investigar nuevos
paradigmas de procesamiento y se presenta una comparación del nuevo paradigma con el
paradigma actual, resaltando ventajas y desventajas de cada uno.
El capítulo 5 define el principal aporte de esta tesis, presentando el modelo teórico para el
desarrollo basado en Computación con ADN.
En el capítulo 6, se demuestra la aplicación del modelo presentado en el capítulo anterior,
resolviendo un caso práctico. Para ello, se realiza la selección de un problema que resalte las
ventajas del modelo.
Por último, en el capítulo 7 se presentan las conclusiones y las futuras líneas de
investigación que surgen de esta tesis.
6
Conceptos fundamentales
de
biología molecular
2 Conceptos fundamentales de biología molecular
En este capítulo se abordan temas de fundamental conocimiento para la posterior
comprensión de la computación basada en ADN.
Básicamente, el capítulo se inicia realizando una introducción a la biología molecular, para
luego presentar las diversas técnicas existentes para la manipulación de moléculas de ADN.
La estructura actualmente aceptada del ADN fue presentada por primera vez en 1953, por
los bioquímicos James Watson y Francis Crick [Wat], lo que les valió el Premio Nobel.
Dicho modelo, produjo un cambio en la dirección de las ciencias biológicas.
Según el mismo, la molécula de ADN está constituída por dos largas cadenas de ácidos
nucleicos, llamados nucleótidos, unidos entre sí formando una doble hélice.
Cada nucleótido se compone de tres unidades: un grupo fosfato, un azúcar de cinco
carbonos (llamada desoxirribosa), y una base nitrogenada. Esta base nitrogenada, puede ser
una purina de doble anillo (Adenina o Guanina), o una pirimidina de anillo simple (Timina o
Citosina). De este modo, existen cuatro tipos de nucleótidos dependiendo de la base
nitrogenada que lo componga.
El grupo fosfato se encuentra unido a la molécula de azúcar, la cual se une también a
alguna de las bases nitrogenadas.
Figura 2-1
El grupo fosfato de cada nucleótido se liga al grupo hidroxil del nucleótido adyacente. Este
grupo hidroxil se halla unido al tercer carbono del anillo formado por el azúcar desoxirribosa.
Por medio de este enlace covalente fuerte, también llamado fosfodiéster, se forma una
cadena polinucleótida.
Las bases nitrogenadas de una cadena son atraídas por las bases de otra cadena,
produciéndose un enlace no covalente débil. Dicho enlace, se realiza mediante puentes de
hidrógeno, conformándose así una doble hélice.
El apareamiento entre las bases tiene las siguientes características: la Adenina se une a la
Timina a través de dos puentes de hidrógeno, y la Guanina a la Citosina por medio de tres
8
puentes de hidrógeno. Esta disposición, por medio de la cual una purina se une con una
pirimidina, resulta en una molécula de diámetro uniforme.
Figura 2-2
La estructura en doble hélice del ADN, con el apareamiento limitado de bases (Adenina-
Timina, Guanina-Citosina), implica que el orden o secuencia de bases de una de las cadenas
delimita automáticamente el orden de la otra, por eso se dice que las cadenas son
complementarias. Una vez conocida la secuencia de las bases de una cadena, se deduce
inmediatamente la secuencia de bases de la complementaria.
Figura 2-3
El ARN tiene una organización química similar a la del ADN, basada en nucleótidos. Cada
nucleótido de ARN está compuesto también por tres unidades: un grupo fosfato, un azúcar de
cinco carbonos llamada ribosa y una base nitrogenada. La base nitrogenada puede ser una
purina (Adenina o Guanina), o una pirimidina (Uracilo o Citosina).
9
carbono del anillo tiene sólo un átomo de higrógeno (H). De aquí proviene el prefijo desoxi
(de la palabra desoxirribosa), que significa desprovisto de oxígeno.
En segundo lugar, el Uracilo se encuentra presente sólo en el ARN. Del mismo, la Timina
se encuentra únicamente en los nucleótidos de ADN.
Por otro lado, el ARN se halla formado por una única cadena polinucleótida.
2.3 Proteínas
La síntesis protéica es el proceso mediante el cual las células producen sus propias
proteínas. Dicho proceso comienza en el núcleo celular con la separación de la molécula de
ADN en sus dos hebras, por ruptura de los puentes de hidrógeno, quedando expuestas las
bases nitrogenadas. Los escasos ribonucleótidos libres en el núcleo, se acoplan sobre las
bases expuestas, apareándose según corresponda. De este modo, se forma una cadena de
ARN cuya secuencia de bases nitrogenadas es complementaria y opuesta a la del ADN sobre
la cual se formó. Este proceso recibe el nombre de transcripción.
La cadena de ARN formada, se desprende del ADN, sale del núcleo celular y se acopla a
los ribosomas, unas estructuras especializadas que actúan como centro de síntesis de
proteínas. Por este motivo, la cadena de ARN es llamada ARN mensajero (ARNm).
Mientras esto sucede, se produce el ingreso a la célula de distintos nutrientes, entre ellos
diferentes aminoácidos. A medida que los aminoácidos van ingresando, son seleccionados
por otro tipo de ARN llamado de transferencia (ARNt), encargado de transportarlos hasta el
ARNm. Las moléculas de ARNt están constituídas sólo por tres nucleótidos, por lo cual cada
una de ellas tiene afinidad por un aminoácido en especial.
Al llegar a los ribosomas, cada triplete o codón de ARNt busca en la cadena de ARNm el
lugar correspondiente, apareando allí sus bases. Una vez que esto ocurre, los aminoácidos se
separan del ARNt, uniéndose entre ellos y constituyendo una proteína. Este fenómeno recibe
el nombre de traducción.
Como puede verse, la estructura química de la proteína formada responde a la información
dada por el ADN del núcleo, actuando como patrón o molde para la selección y el
acomodamiento de los aminoácidos.
10
2.5 Replicación del ADN
La replicación del ADN consiste en la copia exacta de las moléculas de ADN. En casi todos
los organismos celulares, este proceso tiene lugar en el núcleo, justo antes de la división
celular.
En el cuerpo humano, cada célula contiene casi un metro de ADN, compuesto por tres mil
millones de bases, que se tienen que copiar cada vez que la célula se divide. De este modo,
cada célula hija tendrá una copia del ADN original. La célula logra esto en aproximadamente
media hora [Gen].
La replicación comienza con la separación de las dos cadenas de polinucleótidos, cada una
de las cuales actúa a continuación como plantilla para el montaje de una nueva cadena
complementaria. A medida que la cadena original se abre, cada uno de los nucleótidos de las
dos cadenas resultantes atrae otro nucleótido complementario previamente formado por la
célula. Los nucléotidos se van uniendo entre sí mediante enlaces de hidrógeno, para formar
las dos cadenas complementarias. A medida que los nucleótidos complementarios se van
encajando en su lugar, una enzima llamada ADN polimerasa los une, enlazando el grupo
fosfato de uno con la molécula de azúcar del siguiente, para así construir la hebra lateral de la
nueva molécula de ADN. Este proceso continúa hasta que se forma una nueva cadena de
polinucleótidos a lo largo de la antigua.
Figura 2-4
11
2.6.1 Desnaturalización
2.6.2 Renaturalización
2.6.3 Electroféresis
2.6.4 Fragmentación
Esta técnica consiste en reconocer una secuencia determinada de nucleótidos y extraerla del
resto de la cadena [Ent]. Esto se logra mediante la utilización de unas enzimas llamadas de
restricción, producidas por varias bacterias. Estas enzimas tienen la capacidad de cortar los
enlaces fosfatos de la molécula de ADN en secuencias específicas. La secuencia extraída
recibe el nombre de RLPM (Restriction Fragment Lenght Polymorphism) y su longitud se
encuentra generalmente en el orden de los cuatro a los ocho nucleótidos.
12
2.6.5 Enlaces
Un enlace consiste en la unión de dos cadenas de ADN. Esta unión se logra mediante una
clase de enzima llamada ADN ligasa [Sem1].
La ADN ligasa se encarga de catalizar la formación de un enlace fosfodiéster entre dos
nucleótidos.
Esta técnica utiliza una enzima denominada ADN polimerasa que copia cadenas de ADN
en un proceso que simula la forma en la que el ADN se replica de modo natural en la célula.
La RCP fue ideada y desarrollada por el bioquímico estadounidense Kary Mullis en 1983.
Aunque la utilidad de esta técnica no se reconoció inmediatamente, en 1991 su uso ya se
había generalizado, y en 1993 Mullis obtuvo el Premio Nobel de química por este trabajo.
La RCP opera en forma de ciclos. Cada ciclo duplica la cantidad de ADN, por lo que
permite obtener hasta mil millones de copias de un solo fragmento en unas pocas horas.
La RCP necesita para copiar ADN de una reserva de los cuatro nucleótidos de la molécula
de ADN, de una fibra corta de ADN copiado formada por varios nucleótidos que inician la
replicación y es llamada cebador oligonucleotídico, y de una enzima especializada llamada
polimerasa.
La reacción tiene lugar en tres fases. Durante la primera, llamada desnaturalización, la
plantilla o fragmento original de ADN se calienta hasta una temperatura de 90 a 95 °C
durante treinta segundos. Esto provoca la separación de las dos cadenas. En la segunda fase
llamada templado, la temperatura de la mezcla se rebaja hasta 55 °C durante veinte segundos
para que los cebadores oligonucleotídicos se enlacen con el ADN escindido. En la tercera
fase, o de polimerización, la temperatura de la mezcla se eleva hasta 75 °C para que la
polimerasa copie rápidamente la molécula de ADN.
Estas tres fases tienen lugar en la misma ampolla y constituyen un ciclo completo de RCP,
que se realiza en menos de dos minutos. Teóricamente, el ciclo de RCP se puede repetir sin
límite, pero la polimerasa, los nucleótidos y los cebadores suelen renovarse al cabo de unos
treinta ciclos. Estos treinta ciclos, que duran menos de tres horas, bastan para producir mil
millones de copias de ADN.
La polimerasa utilizada en los primeros experimentos de RCP resultaba fácilmente
destruida por el calor, lo que obligaba a añadir más enzimas en cada ciclo. Este problema se
solucionó mediante la utilización de una polimerasa termoestable llamada Taq, que al no ser
destruida por las altas temperaturas, basta con añadirla una vez al principio de la reacción.
Inicialmente se extraía Taq de una bacteria termófila que vive en los manantiales de agua
caliente del Parque Nacional Yellowstone. Actualmente, se fabrica polimerasa Taq con
bacterias modificadas genéticamente.
La RCP es hoy en día la técnica más rápida y económica para copiar ADN, y su proceso se
halla totalmente automatizado. La amplificación mediante RCP permite realizar diversos
análisis genéticos, y estudios de fragmentos aislados de ADN que de otra forma no hubiesen
sido posibles. Incluso, la mayoría de las técnicas utilizadas en el Proyecto Genoma Humano
aplican RCP [Gen].
13
2.6.7 Secuenciación
La secuenciación del ADN permite determinar el orden preciso de las bases nucleótidas de
un fragmento de ADN. La mayoría de los tipos de secuenciación de ADN se basan en una
técnica denominada terminación de cadena o didesoxi desarrollada por el biólogo molecular
británico Frederick Sanger en 1977.
Este proceso de secuenciación consiste en cuatro reacciones enzimáticas en cuatro tubos
diferentes y se basa en la utilización de didesoxinucleótidos. Los didesoxinucleótidos son
nucleótidos sin grupo hidroxil. Al carecer de grupo hidroxil, los didesoxinucleótidos no
pueden unirse con otros nucleótidos, por lo cual la aparición de uno de ellos implica el fin de
la cadena de ADN.
Cada mezcla de reacción se halla compuesta por una de las cadenas de las moléculas de
ADN a secuenciar, nucleótidos de las cuatro bases marcados radiactivamente, ADN
polimerasa, un cebador para comenzar la replicación y didesoxinucleótidos de una base para
cada una de las cuatro reacciones. En cada mezcla, cada uno de los didesoxinucleótidos
compite con su nucleótido homólogo por incorporarse a la cadena de ADN. Cuando un
didesoxinucleótido logra incorporarse, la polimerización finaliza.
Como resultado, se obtiene en cada tubo un conjunto de cadenas dobles cuyas longitudes
dependen del didesoxinucleótido incorporado. De este modo, conociendo la posición del
didesoxinucleótido, puede saberse que su nucleótido complementario, ocupa dicha posición
en la cadena original.
Para lograr esto último, se realiza electroféresis con gel. Para realizar este proceso, se
utiliza un gel con una división en cuatro carriles, uno por base. Cada una de las cuatros
mezclas obtenidas, se vuelca en el gel, sobre el carril que corresponda según el
didesoxinucleótido utilizado. Una vez terminada la electroféresis, el gel se pone en contacto
con una película radiográfica. La aparición de una banda en uno de los cuatro carriles dada
por los nucleótidos marcados radiactivamente, indica que un didesoxinucleótido se encuentra
en un posición determinada.
De este modo, obteniendo posición por posición, se completa toda la secuencia de
nucleótidos de la cadena original.
14
El estado
del arte
3 El estado del arte
Cuando en noviembre de 1994, el Profesor Leonard Adleman de la Universidad del Sur de
California, publicó su trabajo titulado “Molecular Computation Of Solutions To
Combinatorial Problems” quedaron sentadas las bases de un nuevo campo para las ciencias
computacionales, la Computación con ADN (DNA Computing). Dicho trabajo, demostraba la
posibilidad de resolver problemas NP completos, aplicando diversas técnicas de
manipulación de ADN.
Estudios posteriores presentaron la posibilidad de representar cadenas de bits con
moléculas de ADN y realizar operaciones con ellas. Asimismo, uno de los avances más
importantes fue la construcción de una máquina elemental de procesamiento, un autómata
finito basado en el procesamiento mediante ADN.
Este capítulo tiene como objetivo describir el desarrollo de la Computación con ADN y las
posibilidades que la misma ofrece.
Figura 3-1
16
Un algoritmo para resolver este problema, independientemente del tipo de computadora
utilizada sería:
Estos cinco pasos son los mismos que utilizó Adleman para encontrar una solución a través
de computación con ADN, y a continuación se detalla la ejecución de cada uno de ellos:
1. Este paso consistió en crear siete secuencias de 20 nucleótidos, cada una de las cuales
representaba una ciudad. A su vez, cada camino se representaba también mediante
secuencias de 20 nucleótidos.
La combinación de nucleótidos se determinó de manera que se pudiera representar la
unión entre las ciudades. Adleman formalizó la generación de estas secuencias de la
siguiente manera: si dos ciudades v1 y v2 se componen de dos subsecuencias de 10
nucleótidos x1y1 y x2y2 entonces, el camino entre ellas (e1, 2) es el complemento de y1
y x2 (y1x2). De este modo, el camino, se une a la segunda mitad de la ciudad origen y a
la primera de la ciudad destino, sirviendo de conector entre ambas ciudades.
Con el objetivo de generar caminos aleatorios, se mezclan las secuencias
correspondientes a las ciudades y las rutas, para que las mismas se renaturalicen
formando cadenas de ADN de doble hebra.
En adición a las secuencias mezcladas, se agregan otras dos secuencias, de modo, que
si vin (xinyin) representa la ciudad inicio y vout (xoutyout) la ciudad destino, estas
secuencias serían xin y yout. De esta forma, se complementa también a las dos
subsecuencias que no se hubiesen complementado por no existir un camino de llegada
a la ciudad inicio ni de salida de la ciudad destino.
Figura 3-2
17
3. En esta etapa, se produce la separación de todos los caminos que contengan siete
ciudades. Esto se lleva a cabo separando las cadenas por longitud e identificando
todas aquellas que posean 140 nucleótidos.
Este proceso se realiza mediante la técnica de electroféresis con gel. Las secuencias
extraídas del gel, son replicadas o amplificadas por RCP.
La secuencia de realizar electroféresis con gel, extraer y amplificar, se repite varias
veces con el fin de purificar la muestra.
4. Este paso consiste en separar todos aquellos caminos que pasen por todas las
ciudades. Para ello, se utiliza un conjunto de secuencias magnetizadas. Las cadenas
bicatenarias de ADN obtenidas del paso anterior se desnaturalizan para obtener una
solución de ADN de cadena simple y luego mezclarlas con la secuencia magnetizada
que corresponde al complemento de la ciudad inicio. Las secuencias que se unan se
extraen magnéticamente y representan a los caminos que incluyen a la ciudad inicio.
Este proceso se repite sobre el resultado obtenido de la extracción previa para cada
ciudad del grafo. Finalmente, se obtienen únicamente aquellos caminos que incluyen
a las siete ciudades.
Dadas cuatro ciudades, Roma, París, Londres y Madrid conectadas entre sí como se
muestra en el grafo, se desea encontrar el camino Hamiltoniano que conecta Roma con
Madrid.
Figura 3-3
Roma = CTATGCCGAAGTC
París = CAGCGTGCGAGGG
Londres = CCCGTACGTATTT
Madrid = AAAATCGAGCCTA
18
Por otro lado, se definen también los caminos entre las ciudades:
Si se mezclan todas las cadenas (ciudades y caminos), se obtienen como resultado dos
cadenas dobles de ADN, cada una de las cuales representa un camino para llegar de Roma a
Madrid. Estas cadenas serían:
(Roma) (París) (Londres) (Madrid)
CTATGCCGAAGTCCAGCGTGCGAGGGCCCGTACGTATTTAAAATCGAGCCTA
CAGGTC CCCGGG AAATTT
Como puede verse, la segunda cadena de ADN sería eliminada de las posibles soluciones
en el tercer paso, o sea, cuando se busquen aquellas cadenas que tengan cuatro ciudades (para
este caso, 52 nucleótidos, 13x4).
Al terminar con el experimento se obtendría como resultado, la primer cadena, aquella que
une las cuatro ciudades partiendo de Roma y llegando a Madrid.
19
3. Densidad de información: el almacenamiento de información en moléculas de ADN
permite una densidad de aproximadamente 1 bit por nm3. Comparando con la
densidad de almacenamiento de un video tape que es de aproximadamente 1bit por
1012 nm3, se deja a la vista la potencialidad del ADN en este aspecto.
Finalmente, resulta necesario aclarar que este experimento tomó aproximadamente siete
días de trabajo de laboratorio y que varios de los pasos requirieron la intervención humana.
Figura 3-4
Un grafo Gn se halla compuesto por los nodos S0, B1, B1, S1,...., Sn. El grafo se construye de
tal manera que todos los caminos comiencen por S0 y finalicen en Sn. En cada nodo Sk, el
camino debe tomar una de dos posibles bifurcaciones. Si selecciona un vértice Bk, se codifica
un 1. En caso de seleccionar un vértice Bk, se codifica un 0. De este modo, el camino
S0B1S1B2S3 representa al número binario 01.
El modelo de stickers fue desarrollado por Sam Roweis junto a la colaboración de Leonard
Adleman, entre otros. La publicación del mismo se realizó en mayo de 1996 [Row].
Las principales diferencias de este modelo con los modelos de computación con ADN hasta
ese momento desarrollados residen en la posibilidad de contar con memoria de acceso
aleatoria sin necesidad de extensión de cadenas, la no utilización de enzimas y la reusabilidad
de los materiales utilizados.
20
Básicamente, el modelo de stickers presenta una nueva forma de representar la información
mediante ADN y define una posible serie de operaciones básicas para esta representación.
El modelo de stickers emplea dos grupos básicos de cadenas simples de ADN. A las
cadenas del primer grupo se las llama “hebras de memoria”. Formalmente, estas cadenas se
encuentran compuestas por N bases, y son subdivididas en una serie de regiones K, cada una
de las cuales posee M bases de longitud. Cada región identifica exactamente a una posición
de un bit.
Por el otro lado, se encuentra el grupo con las “hebras stickers” o simplemente “stickers”.
Se diseña un número K de stickers diferentes, cada uno de los cuales tiene una longitud de M
bases y es complementario a una y sólo una de las K regiones de memoria.
Cuando un sticker se fusiona o naturaliza con su región complementaria, entonces el bit
correspondiente a esa región pasa a encontrarse en 1. Si ningún sticker se fusiona a una
región particular, el bit asociado a esa región posee el valor 0.
Figura 3-5
Cada hebra de memoria junto a sus stickers asociados, representa una cadena de bits. A
diferencia de otros modelos previamente presentados, la presencia o ausencia de una
subsecuencia particular en una cadena implica un bit en nivel alto o un bit en nivel bajo. En
este modelo, cada cadena de bits se representa por una única asociación de hebras de
memoria y de stickers, y por lo tanto, por una única molécula de ADN.
El modelo de stickers presenta una serie de posibles operaciones a realizar sobre las
cadenas de bits. Dichas operaciones son: combinación de dos conjuntos de cadenas formando
un nuevo conjunto, separación de un conjunto de cadenas en dos nuevos conjuntos, y set y
reset del enésimo bit de todas las cadenas de un conjunto. A continuación se detallan cada
una de las mismas.
21
Ø La operación más básica consiste en combinar dos conjuntos de cadenas de bits en
uno sólo. Este nuevo conjunto pasa a estar formado por la unión de todas las cadenas
de los dos conjuntos de entrada.
Figura 3-6
Figura 3-7
Figura 3-8
Ø El reset de un determinado bit de todas las cadenas del conjunto se realiza removiendo
el sticker correspondiente a ese bit de cada una de las cadenas.
22
Figura 3-9
Como parte de este modelo, se define también una máquina de stickers teórica que
posibilita su implementación. Básicamente, esta máquina se compone de un rack de tubos,
robots, bombas de fluídos, calentadores y refrigerantes, los cuales son controlados por una
computadora central.
Esta máquina almacena el ADN que representa la información en “tubos de datos”. Cada
uno de estos tubos es un cilindro cerrado con un conector en cada extremo que permite el
ingreso y egreso de fluídos. En uno de estos extremos se encuentra una membrana, la cual
permite el paso de fluídos pero no de hebras de memoria ni de stickers. Cuando un tubo de
datos no está siendo utilizado, el conector correspondiente al extremo donde se encuentra la
membrana permanece hacia abajo y con las cadenas de ADN sobre la membrana. Cada
cadena de bits se encuentra asociada a un determinado tubo de datos que contiene hebras de
memoria y stickers que representan esa cadena. Del mismo modo, cada bit se asocia a un tubo
de datos que contiene stickers correspondientes al bit en cuestión.
23
Por otro lado, en adición a los tubos de datos, se encuentran los “tubos operadores”. Estos
tubos tienen una construcción externa similar a los anteriores, pero difiere su contenido. El
“tubo blanco” es simplemente un tubo operador vacío con un conector en cada extremo. El
“tubo de stickers” es idéntico al anterior, excepto por un filtro permanente en su interior que
permite el paso de stickers pero no de hebras de memoria.
1. Bajo el control de la computadora central, un robot selecciona del rack dos tubos de
datos y un tubo operador.
2. Cada tubo de datos, se conecta por el extremo donde se encuentra la membrana a uno
de los extremos del tubo operador. Los extremos opuestos de los tubos de datos se
empalman a una bomba.
3. La bomba se pone en funcionamiento haciendo ciclar la solución a través de los tres
tubos. La dirección de flujo puede ser hacia el primer tubo, hacia el segundo, o una
combinación de ambos. La temperatura, dirección y duración del flujo son
controladas por la computadora central.
4. Una vez que cesa el flujo, uno o más tubos se desconectan y se colocan nuevamente
en el rack.
Figura 3-10
Al terminar la operación, se seleccionan del rack nuevos tubos comenzando una nueva
operación.
Para ejemplificar la operatoria de la máquina, se detalla a continuación la ejecución de las
operaciones de combinación y seteo de bits.
En la operación de combinación, se utilizan dos tubos de datos y un tubo operador blanco.
La bomba hace fluir la solución hacia el primer tubo de datos, con lo cual todas las cadenas
de ADN se combinan en dicho tubo.
En la operación de seteo de un determinado bit, se utilizan en principio dos tubos de datos
(uno con las cadenas a setear y otro con los stickers adecuados) y un tubo operadores de
stickers. Se hace fluir la solución en ambos sentidos, produciéndose la fusión de los stickers
con las cadenas. Luego la solución fluye hacia el tubo de datos de stickers, por lo cual, los
stickers no usados retornan a su tubo original y las cadenas quedan capturadas en el filtro del
tubo operador. Se desconecta el tubo de datos de stickers retornándolo al rack, y se lo
reemplaza por un tubo blanco. Se hace fluir la solución hacia el tubo de datos que
24
originalmente contenía las cadenas a setear, quedando todas las cadenas nuevamente en este
tubo.
En el Anexo I, se describe una aplicación de esta máquina de Stickers.
if (carry == 1)
output(1); /* Arrastra el último carry */
25
1. La adición se realiza desde el bit menos al más significativo. La suma para la posición
binaria menos significativa es más simple que para las demás posiciones debido a que
no existe carry correspondiente a la operación anterior.
Inicialmente, el bit menos significativo de la cadena respuesta, es el mismo que el bit
menos significativo del primer sumando (n1). Este bit se suma al bit menos
significativo del segundo sumando (n2), y se obtiene como resultado en la cadena
respuesta tanto la suma previamente realizada como una secuencia representando la
presencia o ausencia de carry.
Figura 3-11
26
Figura 3-12
Figura 3-13
En el segundo paso, n2 posee tres cadenas que la representan. Cada una de estas
cadenas equivale a cada caso del switch del algoritmo anterior, y por lo tanto, existe
una cadena para cada resultado posible del paso anterior (x2).
Como el resultado del paso anterior es 2, la cadena asociada a este caso se fusiona a la
cadena respuesta. Una nueva extensión ocurre sobre esta cadena, que pasa a incluir un
1 como segundo bit de salida, y un 1 de carry.
27
Figura 3-14
Una máquina de estados consiste en una cinta dividida en celdas, cada una de las cuales
contiene un símbolo correspondiente a un alfabeto determinado, y un dispositivo de
procesamiento que se rige por ciertas reglas de transición. El dispositivo se posiciona sobre
una de las celdas, y dependiendo del símbolo leído y de su estado interno, siguiendo una
determinada regla de transición, escribe un nuevo símbolo, cambia de estado y se mueve una
celda hacia la izquierda o hacia la derecha.
La máquina de Turing es la máquina de estados más general, con capacidad de escribir
sobre la cinta y de moverse en ambas direcciones.
Una clase de máquina de estados más restringida es el autómata finito. Un autómata finito
es una máquina de Turing unidireccional de sólo lectura. La entrada a esta máquina consiste
en una cadena finita de símbolos. Inicialmente, la máquina se encuentra en un estado interno
inicial y comienza a leer símbolos de izquierda a derecha, con posibles cambios de estado en
cada lectura. El software de esta máquina consiste en reglas de transición, cada una de las
cuales especifica el siguiente estado, de acuerdo al estado actual y el símbolo leído. El
procesamiento finaliza cuando se lee el último símbolo, obteniendo un estado final como
salida. Alternativamente, el procesamiento se suspende cuando para el estado actual y el
símbolo leído no puede aplicarse ninguna regla de transición. Se dice que el autómata acepta
28
una entrada si existe algún procesamiento del mismo que finalice en algunos de los estados
previamente definidos como estados finales.
Los autómatas finitos se representan mediante grafos, que muestran los estados de la
máquina, y las transiciones entre los mismos de acuerdo al símbolo de entrada.
Figura 3-15
El autómata finito de ADN se implementó mediante cadenas doble de ADN, tanto para el
software como para la entrada, y una enzima de restricción llamada FokI funcionando como
hardware. A continuación se describe cada uno de los componentes del autómata.
El estado actual y el símbolo de entrada se codifica por medio de cinco nucleótidos, donde
los cuatro nucleótidos de la izquierda representan el estado S1 y el símbolo leído, y
similarmente los cuatro nucleótidos de la derecha representan el estado S0 y la lectura
realizada.
Mediante secuencias especiales, se codifican los estados finales del autómata.
Figura 3-16
Figura 3-17
29
El software se compone de varias cadenas, cada una de las cuales especifica una regla de
transición, al detectar el estado actual y el símbolo de entrada y determinar el estado
siguiente.
Cada cadena está formada, de izquierda a derecha, por un sitio de identificación para la
enzima FokI (GGATG), nucleótidos espaciadores de longitud variable que determinan el sitio
de corte de FokI sobre la cadena de entrada definiendo el siguiente estado, y un detector del
par <estado actual, símbolo>.
Las cadenas sin espaciadores producen una transición del estado S1 a S0, las de un
espaciador mantienen el estado actual y las de dos espaciadores transfieren del estado S0 a
S1.
Figura 3-18
La entrada del autómata consiste en una doble cadena que comienza con la representación
del estado inicial y el primer símbolo. Cada símbolo se codifica, como se explicó
anteriormente, con cinco nucleótidos. Los símbolos se separan entre sí por medio de tres
nucleótidos espaciadores.
Figura 3-19
30
Figura 3-20
31
profesionales interdisciplinarios de la Universidad de Wisconsin llevaron a cabo un proyecto
de inmovilización de cadenas de ADN sobre superficies sólidas [Cor].
Una de las ventajas más importantes que ofrece la inmovilización de ADN sobre
superficies es un manejo más simple y automatizado de las cadenas, con un mayor control
sobre las operaciones químicas. En contrapartida a esta facilidad, se tiene una pérdida en la
densidad de las cadenas (de tres a dos dimensiones) y un desplazamiento más lento de las
enzimas sobre la superficie.
La inmovilización se logra a través de conexiones químicas entre las cadenas y la
superficie. Uno de los extremos de las cadenas se prepara especialmente para la conexión, al
igual que la superficie. Una buena conexión química asegura que las cadenas previamente
preparadas se inmovilicen sobre la superficie a una alta densidad, y que no lo hagan aquellas
cadenas sin preparación.
Como superficie de inmovilización se utilizó una placa de cristal cubierta por una capa de
oro delgada.
Las operaciones que se implementaron como parte del proyecto consistieron en el marcado
y selección de cadenas, la unión de nuevas cadenas a los extremos libres (no inmovilizados),
la eliminación de estas nuevas cadenas agregadas, y la destrucción selectiva de cadenas.
Este proyecto se considera de gran importancia por ser el primero en lograr la manipulación
de ADN inmovilizado en una superficie sólida. A partir de este proyecto, surgieron nuevos
proyectos en la Universidad de Wisconsin que intentan refinar el modelo inicialmente
propuesto y hacerlo lo más genérico posible.
32
Análisis
del nuevo
paradigma de
procesamiento
4 Análisis del nuevo paradigma de procesamiento
En este capítulo se presenta un análisis de la Computación con ADN como nuevo
paradigma de procesamiento.
Inicialmente, se demuestra la necesidad de investigar nuevos paradigmas de procesamiento
ante las limitaciones propias de la tecnología actual.
Posteriormente, se realiza una comparación de la computación con ADN y la computación
electrónica tradicional resaltando ventajas y desventajas de cada una.
Finalmente, se presenta el futuro campo de aplicación de la computación con ADN y se
analiza la universalidad de la misma.
Figura 4-1
Otro de los métodos a los que se recurre actualmente para aumentar la velocidad de
procesamiento se basa en incrementar la frecuencia de trabajo. El incremento de frecuencia
34
implica un incremento proporcional en el consumo de energía, y por lo tanto, en la disipación
de calor. Esta característica es otra de las limitaciones de la tecnología actual de
procesamiento.
ü Procesamiento paralelo
ü Consumo de energía
La computación con ADN presenta un muy bajo consumo de energía. Este consumo
se encuentra únicamente presente durante la ejecución de determinados procesos
químicos, como por ejemplo, la desnaturalización o la RCP. En modelos como el
autómata finito de ADN anteriormente descripto, se demostró no requerir de ninguna
fuente externa de energía. En estos casos, la energía potencial propia de las cadenas de
ADN simple se utiliza como única fuente energética [Sha2].
En el lado opuesto se encuentran las computadoras actuales con un consumo de
energía muy ineficiente. Una computadora de escritorio típica trabaja con una fuente
de energía de 250 Watt. En el caso de los mainframes, el consumo es incluso mayor
necesitando de energía adicional para mantener sistemas que impiden el
sobrecalentamiento del equipo.
Para tener una idea más clara de la eficiencia de cada una de estas máquinas respecto
al consumo de energía, vale recordar el análisis realizado por Adleman, quien expresó
la cantidad de operaciones por unidad de energía capaz de realizar cada máquina
[Adl1]. Según su informe, la supercomputadora más potente de la actualidad ejecuta
1x109 operaciones/Joule mientras que una máquina de ADN es capaz de ejecutar
35
2x1019 operaciones/Joule. Esto indica un consumo de energía 20 mil millones de
veces más eficiente de las computadoras de ADN.
ü Capacidad de memoria
La computación con ADN permite resolver problemas del tipo NP Completos (como
el problema de los caminos Hamiltonianos) en razón de semanas.
Las computadoras electrónicas son incapaces de resolver estos problemas, al menos
en un tiempo razonable.
ü Velocidad de lectura
ü Confiabilidad
36
4.3 Aplicaciones
Las perspectivas respecto las posibles aplicaciones de la computación con ADN son muy
amplias. Entre las mismas se destacan:
ü Criptografía
ü Memoria molecular
Dada la enorme capacidad de memoria que ofrece la computación con ADN, sería
interesante la construcción de una memoria molecular con recuperación masivamente
paralela de la información.
A partir del autómata de ADN, se encuentra una nueva aplicación que consiste en el
reconocimiento de lenguajes regulares. Específicamente, dichos lenguajes son usados
en la construcción de analizadores léxicos y sintácticos en los lenguajes de
programación contemporáneos.
ü Medicina
ü Otras aplicaciones
37
La inteligencia artificial, el diseño y fabricación asistidos por computadora, el diseño
electrónico automatizado y la robótica, se consideran también futuros campos de
aplicación de la computación con ADN [Ada].
38
Modelo propuesto
para el desarrollo
basado en
Computación con ADN
5 Modelo propuesto para el desarrollo basado en
Computación con ADN
La resolución de problemas mediante computación con ADN se encuentra hoy en día en un
estado inicial, no existiendo aún un modelo que permita al desarrollador independizarse de la
implementación del hardware o implementación biológica. Esto se debe a que no existe una
separación clara entre el software y el hardware. De este modo, el desarrollador se encuentra
obligado a poseer un conocimiento completo del hardware para poder llevar a cabo su
solución.
El objetivo de esta tesis es presentar un modelo que abstraiga al desarrollador de la
implementación del hardware, permitiéndole focalizar en el desarrollo del software.
Por otro lado, debe establecer una notación común a utilizar, estandarizando y formalizando
el proceso de desarrollo.
El primer paso en la definición de este modelo es enmarcarlo dentro de una serie de etapas
o actividades que posibiliten un desarrollo consistente y estructurado. De este modo, se
propone el siguiente modelo:
Figura 5-1
40
A continuación se detallan cada una de las fases o etapas que conforman el modelo
propuesto:
41
En el segundo caso, en el cual sólo un subconjunto de instancias participan del
vínculo, se debe especificar a cada una de ellas:
2. Diseño de secuencias
Figura 5-2
Cada secuencia definida bajo este formato debe representar de manera única a cada
instancia de entidad, con cada uno de sus vínculos anterior y posterior. Para ello, se
propone la siguiente técnica de codificación:
42
procesamiento masivamente paralelo de la computación con ADN. Por tal motivo, es
deseable contar en esta etapa con una herramienta de software que facilite esta tarea.
Básicamente, la funcionalidad de esta herramienta consiste en generar automáticamente
las diversas secuencias de ADN, a partir de las entidades, valores y vínculos definidos
por el desarrollador en la entrada.
Actualmente, no existe una herramienta con características similares a las planteadas,
pero su futuro desarrollo sería de gran utilidad para el diseño de secuencias.
3. Selección de Operaciones
Figura 5-3
Figura 5-4
Figura 5-5
43
ü Selección por longitud: esta operación consiste en la selección de secuencias que
posean una determinada longitud.
Figura 5-6
Figura 5-7
4. Pruebas
44
5. Implementación
45
Aplicación
del
modelo propuesto
6 Aplicación del modelo propuesto
Hasta el momento, el modelo que se propuso se definió de manera puramente teórica.
Resulta sumamente importante a esta altura demostrar la interesante aplicación del mismo
mediante la resolución de un caso práctico. En la búsqueda de dicho objetivo, se procede a
realizar una selección detallada y cuidadosa que permita escoger un problema que resalte las
ventajas que ofrece el modelo en cuestión.
47
Existe una clase de problemas de mayor complejidad a los NP, y se la conoce como NP-
Completa. Esta clase de problemas no pueden ser resueltos con algoritmos de tiempo
polinomial, y tienen la característica de que todo problema NP se puede reducir
polinomialmente a un problema de esta clase. Por lo tanto, es importante resolver problemas
NP-Completos, porque si alguien puede resolver un problema NP-Completo en tiempo
polinomial se podrán resolver todos los problemas NP en tiempo polinomial, así como
también todos los problemas NP-Completos.
Los problemas en los cuales no existe un algoritmo que pueda resolverlo en tiempo
polinomial son considerados problemas computacionalmente intratables. Por ejemplo, si un
algoritmo polinomial O(n²) siendo n el número de entradas del problema, requiere 1
microsegundo para resolver un problema de 10 entradas, requerirá 100 microsegundos para
resolver un problema de 100 entradas. En cambio, si un algoritmo exponencial O(2n) necesita
1 microsegundo para resolver un problema de tamaño 10, necesitará 3,9 x 1013 centurias para
resolver un problema de tamaño 100.
Figura 6-1
Sin duda, teniendo en cuenta la potencia de la computación con ADN para la resolución de
problemas NP-Completos y que en la actualidad estos problemas son considerados
intratables, resulta sumamente interesante que el modelo propuesto se aplique a un problema
de esta clase. De este modo, queda acotado el espacio de búsqueda y sólo resta definir cúal de
estos problemas se utilizará.
48
mediante el conector lógico OR), y una literal es una variable booleana negada o no negada
[Con]. A manera de ejemplo, se presenta la siguiente función lógica:
Las cláusulas pueden tener diferente número de literales. Los problemas con cláusulas de
tres literales se los denomina 3-SAT, siendo tres el valor más pequeño para el cual SAT es
NP-Completo. Para una fórmula con n variables, existen 2n posibles resultados. Este
incremento exponencial, demuestra la dificultad del problema a medida que crece el número
de variables.
En la actualidad, existen diversos algoritmos de solución de SAT. Cada uno de ellos ha sido
un intento de resolver SAT de la manera más eficiente posible. A pesar de esto, la resolución
de problemas SAT de alta complejidad, o sea de muchas variables, se ve limitada por las
capacidades de cómputo. Incluso, existen problemas incapaces de ser resueltos por la
computación actual en un tiempo razonable.
Uno de los algoritmos de solución de SAT más conocido es la búsqueda con backtracking
[Lar]. La estrategia de este algoritmo es construir una solución parcial, la cual se va
extendiendo hasta alcanzar una solución total. La extensión de una solución parcial a otra
nueva solución parcial, implica la inclusión de una nueva variable. Cuando una solución no
se puede extender porque la asignación de variables deja de satisfacer la fórmula, se procede
al backtracking, que consiste en regresar a la solución parcial anterior.
La búsqueda de la solución se realiza sobre un árbol de búsqueda. A cada nivel del árbol, se
asocia una variable, sin tener en cuenta a la raíz. Los sucesores de cada nodo, son todos los
posibles valores de la variable asociada a ese nivel.
Figura 6-2
49
subárbol se poda, y se realiza el backtracking, retornando al nodo anterior y continuando el
recorrido por la rama del nodo que no se visitó.
Las soluciones al problema se obtienen al llegar a los nodos hoja del árbol y verificar que
su valor junto al resto de los valores dejados atrás en el recorrido logran satisfacer la fórmula
en cuestión.
Como todo problema NP-Completo, SAT resulta de suma complejidad para la computación
actual.
Aprovechando las características propias de la computación con ADN para resolución de este
tipo de problemas, se presenta a continuación la primer aplicación del modelo propuesto en
esta tesis.
50
(x1 + ~x2 + ~x3) . (~x1 + ~x2 + x4) . (x2 + ~x3 + ~x4)
Como puede verse, está función corresponde a un problema 3-SAT de no muy alta
complejidad. La idea de trabajar con esta función es facilitar la comprensión del modelo
simplificando la resolución del problema.
Una vez comprendido el problema que se intenta resolver, forma parte de esta etapa la
identificación de entidades, instancias y vínculos.
Se consideran entidades de este problema a las variables booleanas que forman parte de
la función a resolver:
entidad <x1>
entidad <x2>
entidad <x3>
entidad <x4>
A su vez, cada uno de los posibles valores que pueden tomar estas entidades determinan
las distintas instancias del problema. Al ser variables booleanas, corresponden a cada
entidad dos posibles valores: 0 y 1. Formalmente, las instancias identificadas son:
Para concluir con esta etapa, sólo restan definir los vínculos entre las instancias. Los
vínculos pueden identificarse de acuerdo a la ubicación de las variables dentro de la
fórmula. Cada variable tiene como vínculo a sus variables adyacentes. De este modo,
puede decirse que existe un vínculo entre las entidades x1-x2, x2-x3, x3-x1, x2-x4, x4-x2 y
x3-x4.
Según se definió en el modelo, existen dos tipos posibles de vínculos: entre todas las
instancias de las entidades vinculadas o entre un subconjunto de ellas. En este
problema, se detectan únicamente vínculos del primer tipo. Esto puede notarse en el
hecho de que x1 se relaciona con x2 tanto con su valor 0 como con su valor 1, y del
mismo modo, x2 se relaciona con x1.
Formalmente, los vínculos se denotan de la siguiente manera:
51
vínculo <x2 : x3>
vínculo <x3 : x1>
vínculo <x2 : x4>
vínculo <x4 : x2>
vínculo <x3 : x4>
2. Diseño de secuencias
Como se explicó anteriormente, el diseño de secuencias es una tarea que puede volverse
muy ardua para determinados problemas si no se cuenta con la asistencia de un software
de generación automática. Sin contar con esta herramienta y a los efectos de
comprender mejor la aplicación del modelo, se diseñarán algunas de estas secuencias
siguiendo detalladamente las especificaciones del mismo.
Inicialmente, debe definirse una secuencia única para cada entidad. De este modo, se
definen las siguientes secuencias, teniendo siempre en cuenta que las mismas no sean
complementarias.
Los valores que pueden tomar las distintas entidades se codifican también a través de
secuencias únicas. Para este problema existen únicamente dos valores posibles para
todas las entidades: 0 y 1.
0 = ACT
1 = TGG
El modelo contempla también la definición de secuencias para cada uno de los vínculos
identificados en la etapa anterior. Estas secuencias no deben ser complementarias entre
sí.
Asimismo, se define una secuencia común para aquellas instancias que no posean
vínculos.
Una vez realizada la codificación anterior, deben diseñarse las secuencias que realmente
se utilizarán para la resolución del problema bajo el formato genérico descripto en el
modelo.
52
Figura 6-3
Sin vínculo 0
ACACATCGACTGCGC
X1 Vínculo con X2
Esta secuencia corresponde a la instancia con valor 0 de la entidad X1, la cual carece de
vínculo anterior pero posee un vínculo posterior con X2.
Vínculo con X1 1
CGCGTTAATGGATAT
X2 Vínculo con X3
Esta secuencia representa a la entidad X2 con valor 1, y con su vínculo anterior con X1 y
posterior con X3. Nótese que el vínculo anterior con X1 es un complemento de la
secuencia definida para el vínculo <x1 : x2>, según lo especificado por el modelo para
los vínculos anteriores.
3. Selección de operaciones
En esta etapa se determinan las operaciones a realizar sobre las secuencias definidas en
la fase anterior.
Como primer operación, debe ejecutarse una combinación de secuencias con el fin de
generar automáticamente todo el espacio de soluciones posibles.
Generadas todas las combinaciones de secuencias, deben seleccionarse sólo aquellas
que posean la longitud correspondiente a secuencias de nueve entidades, ya que la
fórmula se halla compuesta de nueve variables. Para realizar este filtro, se aplica una
selección por longitud.
Finalmente, deben seleccionarse aquellas secuencias cuyos valores de entidad
satisfagan la fórmula booleana en cuestión. Con este objetivo, se realiza una selección
por entidad para cada una de las literales de la primer cláusula, teniendo en cuenta que
sus valores hagan que toda la cláusula tome valor 1. Para ello, se extraen las entidades
no negadas en la cláusula con valor 1, y las negadas con valor 0. Una vez aplicadas las
selecciones correspondientes a cada una de las tres variables de la primer cláusula, se
aplica, sobre el subconjunto de secuencias obtenido, el mismo filtro para las variables
de la segunda cláusula. Luego, se utiliza la misma lógica para filtrar por las variables de
53
la tercer cláusula. Una vez aplicados estos sucesivos filtros de entidad, se obtienen
como resultado las secuencias correspondientes a todas las posibles soluciones de la
fórmula booleana.
Figura 6-4
4. Pruebas
5. Implementación
Como pudo verse a lo largo de la resolución de este problema, el modelo propuesto permite
al desarrollador abstraerse de la implementación biológica. Esto no ocurre en la etapa del
diseño de secuencias, pero hay que recordar que la misma está pensada para ser ejecutada con
la asistencia de una herramienta de software. De contar con dicha herramienta, la abstración
permanece intacta, al menos hasta las etapas de prueba e implementación donde ya resulta
necesario bajar al nivel biológico.
Por otra lado, el modelo facilita la resolución y formalización de problemas NP-Completos
a partir de un desarrollo consistente estructurado en etapas y apoyado por la notación común
propuesta.
En el Anexo III, se aplica el modelo propuesto a la resolución del problema de los caminos
Hamiltonianos.
54
Conclusiones
7 Conclusiones
Más allá de los pocos años de vida de la Computación con ADN, los avances logrados
dejan a la vista su enorme potencial. El procesamiento masivamente paralelo, el bajo
consumo de energía y la gran capacidad de memoria son las principales características que
presenta este nuevo paradigma de procesamiento.
Si se desea realizar un análisis respecto a la evolución que tendrá la Computación con
ADN, se puede trazar un paralelo con la evolución de la Computación electrónica. Esta
última nació en el año 1946 con la presentación del ENIAC (Electronic Numerical Integrator
And Computer), una computadora capaz de realizar cientos de multiplicaciones por minuto.
Su programa estaba físicamente determinado mediante el cableado del procesador, y
cualquier modificación se realizaba en forma manual. El ENIAC pesaba 30 toneladas y
contenía 18.000 válvulas de vacío. Los avances en electrónica fueron permitiendo la
evolución progresiva de las computadoras hasta llegar a las potentes computadoras de la
actualidad. Uno de los avances más importantes en este aspecto consistió en la creación del
transistor.
Si las Ciencias biológicas logran evolucionar como lo hizo la electrónica en la última mitad
del siglo anterior, sin duda, se puede avizorar un futuro promisorio para la Computación con
ADN. Se requiere, sobre todo, mejorar los métodos actuales de manipulación del ADN. En
otras palabras, los biólogos deben lograr manipular las moléculas de ADN como los
electrónicos lo hacen con los electrones.
Hoy en día, dado que la mayoría de los avances giran en torno a la resolución de problemas
de alta complejidad computacional, resulta fácil pensar que esta será la aplicación más
próxima de la Computación con ADN. De este modo, se podrán resolver problemas de
planeación, de diseño electrónico automatizado, de inteligencia artificial, etc., que
actualmente no pueden ser resueltos con los recursos de hardware existentes.
Dado el estado inicial en que se encuentra la Computación con ADN, resulta necesario
continuar trabajando en torno a diversas líneas de investigación que se encuentran aún sin
explorar. Por lo pronto, se deben buscar respuestas a los siguientes interrogantes que
determinarán, en mayor o menor medida, el futuro de este nuevo paradigma:
56
ü ¿Se lograrán automatizar los procesos manuales?
Respecto al modelo propuesto en esta tesis queda planteada, como se dijo anteriormente, la
necesidad de desarrollar una herramienta de software que sirva de asistente para el diseño de
secuencias. La funcionalidad básica de la misma consiste en generar las diversas secuencias
de ADN a partir de las entidades, valores y vínculos definidos por el desarrollador en la
entrada.
Surge también del modelo, la necesidad de contar con una herramienta que permita simular
un ambiente de procesamiento con ADN. Esta herramienta facilitaría las tareas que se
realizan durante la etapa de pruebas evitando que las mismas tengan que ejecutarse sobre un
ambiente biológico real, con todo lo que esto implica.
57
Anexo I
Figura I-1
58
1. Entrada: inicialización de las hebras de memoria representando las 256 claves.
2. Encriptación: obtención, sobre cada hebra de memoria, del mensaje cifrado bajo la
clave representada por la hebra en cuestión.
DES realiza cifrado de 16 ciclos. En cada ciclo, produce un resultado intermedio de 32 bits
(R1, ..., R16). R15 y R16 se almacenan desde la ubicación B57 a B120 (espacio adyacente a la
clave), mientras que R1, ..., R14 se almacenan desde la ubicación B121 a B568. R15 y R16 forman
el mensaje cifrado. Los 32 bits de la izquierda y los 32 bits de la derecha del mensaje original
se denotan como R-1 y R0 respectivamente. Los bits B569 a B578 se utilizan como espacio de
trabajo, y se escriben y borran a lo largo de la ejecución.
Básicamente, Ri se obtiene a partir de Ri-1 y Ri-2, por medio de la siguiente función:
1. Se aplica la función XOR con los 6 bits de Ri-1 y los 6 bits de Ki, obteniendo 6 bits
que se almacenan desde B569 a B574 del espacio de trabajo.
2. Una de las funciones S-box se aplica a los bits B569 a B574 y los 4 bits resultado se
almacenan en las ubicaciones B575 a B578 del espacio de trabajo.
3. Se aplica la función XOR con los 4 bits de B575 a B578 y los 4 bits de Ri-2, obteniendo
los 4 bits finales que se almacenan en los cuatro bloques apropiados entre los
destinados a resultados intermedios (B57 a B568).
4. Si los 4 bits obtenidos en el paso anterior no corresponden a los últimos 4 bits de R16,
el espacio de trabajo (B569 a B578) se limpia para su próximo uso.
Implementación
59
stickers, tubos de operadores y tubos blancos), bombas de fluídos, calentadores y
refrigerantes, y un microprocesador que actúa de controlador.
Esta máquina es capaz de realizar cualquiera de las siguientes operaciones propias del
modelo de Stickers en forma paralela: separación, combinación, set y reset.
2. Se añade un exceso de stickers (S1 a S56) al tubo A, complementándose con las hebras
de memoria.
La función XOR convierte dos bits de entrada en uno de salida (Bk = Bi ⊕ Bj) y se
implementa de la siguiente manera:
1. Se ejecutan dos separaciones paralelas obteniendo cuatro tubos de datos, uno por cada
valor posible de BiBj. La primer separación se realiza sobre Bi y la segunda sobre Bj.
Figura I-2
2. Se realiza un seteo paralelo de Bk por medio del sticker Sk en todos los tubos donde el
mismo es aplicable, o sea, cuando BiBj = 01 o 10.
60
Figura I-3
3. Se realiza la combinación paralela del contenido de los cuatro tubos de datos en un
único tubo.
Figura I-4
Por último, una vez que se han generado los todos los mensajes cifrados, debe buscarse la
cadena que contiene el mensaje cifrado dado. De este modo, se obtiene la clave buscada
alcanzando el objetivo inicial.
La búsqueda de la cadena que codifica el mensaje cifrado dado se lleva a cabo por medio
de 64 operaciones de separación. Una vez obtenida la misma, se realiza la lectura de la clave
que esta contiene.
61
Anexo II
Las pruebas se realizaron sobre tres autómatas finitos. Estos autómatas trabajan con un
alfabeto compuesto por los símbolos {a; b}, y el objetivo y funcionamiento de cada uno de
ellos es el siguiente:
Figura II-1
Figura II-2
Figura II-3
Figura II-4
Figura II-5
62
La siguiente imagen corresponde a la aplicación de electroféresis con gel sobre las ocho
entradas y sobre las salidas obtenidas luego de la ejecución de cada uno de los autómatas.
Figura II-6
63
Figura II-7
64
Anexo III
Dadas cuatro ciudades, Roma, París, Londres y Madrid conectadas entre sí como se
muestra en el grafo, se desea encontrar el camino más corto que pasando por todas las
ciudades conecte Roma con Madrid, sin pasar dos veces por la misma ciudad.
Figura III-1
A continuación se detalla la resolución de problema a través de cada una de las etapas del
modelo:
entidad <ciudad>
Como existen sólo cuatro ciudades, esta entidad puede tomar los siguientes cuatro
valores:
Los vínculos entre las ciudades están dados por los caminos que las unen. De acuerdo
al modelo, estos vínculos son entre un subconjunto de instancias de entidad y su
notación es la siguiente:
65
vínculo <ciudad, Roma : ciudad, París>
vínculo <ciudad, París : ciudad, Londres>
vínculo <ciudad, París : ciudad, Madrid>
vínculo <ciudad, Londres : ciudad, Madrid>
2. Diseño de secuencias
Una vez realizada esta codificación se procede a diseñar las secuencias completas a
utilizar en la resolución del problema. De acuerdo al formato definido en el modelo,
las secuencias finales son las siguientes:
ACACATCGACTGCGC
CGCGATCGTGGCTCG
GAGCATCGATAACAC
66
Vínculo con Roma París
CGCGATCGTGGATAT
TATAATCGCCTGAAG
CTTCATCGATAACAC
3. Selección de operaciones
Figura III-2
67
4. Pruebas
Como se explicó anteriormente, esta etapa debe realizarse con el apoyo de alguna
herramienta de software que permita simular un ambiente de procesamiento biológico.
5. Implementación
68
Bibliografía
[Ada] Joel C. Adams. “On the application of DNA Based Computation”. Faculty of
Engineering Science. University of Western Ontario, 1998.
[Adl2] Leonard Adleman. Paul Rothermund. Sam Roweis. Erik Winfree.“On applying
Molecular Computation to the Data Encryption Standard”. Laboratory for Molecular Science.
University of Southern California.
[Cor] Robert M. Corn. Anne E. Condon. Weiping Cai. Elton Graser. Zhendong Fei. Tony
Frutos. Zhen Guo. Max G. Lagally. Qinghua Liu. Lloyd M. Smith. Andrew Thiel. “The
power of Surface-Based DNA Computation”. University of Wisconsin. Agosto de 1996.
[Ent] Dra. Carmen Entrala. “Técnicas de Análisis del ADN en Genética Forense”.
Laboratorio de ADN forense, Depto. de Medicina Legal. Universidad de Granada, España,
2000.
[Gen] National Human Genome Research Institute. Educational Resources. Enero de 2002.
[Kar] Lila Kari. “DNA Computing: the arrival of biological mathematics”. Department of
Computer Science. University of Western Ontario, London. Noviembre de 2002.
[Lar] Javier Larrosa. Pedro Meseguer. “Razonamiento con restricciones”. Tutorial CAEPIA.
Barcelona, 2003.
[Lip] Richard J. Lipton. Dan Boneh. Christopher Dunworth. Jiri Sgall. “On the
Computational Power of DNA”. Department of Computer Science. Princeton University.
[Liu] Tie-Fei Liu. Wei Fu. “On DNA Computing models: a survey”. Department of
Computer Science. School of Computing. National University of Singapore. Noviembre de
2002.
69
[Mal] C. C. Maley. “DNA Computation: Theory, Practice, and Prospects”. Artificial
Intelligence Laboratory. Massachusetts Institute of Technology. Octubre de 1999.
[Ogi] Mitsunori Ogihara. Animesh Ray. “DNA Computing on a Chip”. Nature, vol 403.
[PeJ] M.J. Pérez Jiménez. “Computación Molecular basada en ADN”. Dpto. de Ciencias de
la Computación e Inteligencia Artificial. Universidad de Sevilla.
[Qui1] Z. Frank Qui. Mi Lu. “Take advantage of the computing power of DNA computers”.
Department of Electrical Engineering. Texas A&M University.
[Qui2] Z. Frank Qui. Mi Lu. “A new solution for Boolean Circuit with DNA Computer”.
Department of Electrical Engineering. Texas A&M University. Abril de 2000.
[Row] Sam Roweis. Erik Winfree. Richard Burgoyne. Nickolas Chelyapov. Myron
Goodman. Leonard Adleman. Paul Rothermund. “A Sticker Based Model for DNA
Computation”. Laboratory for Molecular Science. University of Southern California. Mayo
de 1996.
[San] Héctor Sanvicente Sánchez. Marco Antonio Cruz Chávez. “El problema de
satisfactibilidad y su aplicación a problemas de planificación y scheluding”. ITESM.
Morelos.
[Sha1] Ehud Shapiro. Yaakov Benenson. Tamar Paz-Elizur. Rivica Adar. Ehud Keinan. Zvi
Livneh. “Programmable and autonomous computing machine made of biomolecules”.
Department of Computer Science and Applied Mathematics. Department of Biological
Chemistry. Weizmann Institute of Science. Israel. Noviembre de 2001.
[Sha2] Ehud Shapiro. Yaakov Benenson. Tamar Paz-Elizur. Rivica Adar. Zvi Livneh. “DNA
molecule provides a computing machine with both data and fuel”. Department of Computer
Science and Applied Mathematics. Department of Biological Chemistry. Weizmann Institute
of Science. Israel. Noviembre de 2001.
70
[Wat] J.D. Watson. F.H.C. Crick. “Una estructura para el Ácido Desoxirribonucleico”.
Nature. Abril de 1953.
71