Você está na página 1de 26

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F.

Attux DCA/FEEC/Unicamp

Computao de DNA*
ndice
1. 2. Introduo ............................................................................................................................2 1.1. Computao de DNA x Computadores Tradicionais..................................................3 Conceitos Bsicos de Biologia Molecular ...........................................................................4 2.1. A Molcula de DNA ...................................................................................................4 2.2. Manipulando o DNA...................................................................................................9 Modelos Baseados em Filtragem .......................................................................................15 3.1. O Experimento de Adleman......................................................................................15 3.2. A Soluo de Lipton para o Problema SAT..............................................................24 3.3. Linguagem de Programao de Tubos de Ensaio .....................................................31 Um Breve Resumo dos Modelos Formais .........................................................................40 Computadores Universais de DNA....................................................................................42 Escopo da Computao de DNA .......................................................................................47 Discusso ...........................................................................................................................49

3.

4. 5. 6. 7.

* Material baseado nas notas de aula do Prof. Leandro Nunes de Castro (UniSantos/SP). Reproduo de contedo autorizada pelo autor.

Tpico 9 Computao de DNA

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

1. Introduo
A computao de DNA uma das sub-reas de uma linha de pesquisa mais ampla denominada de computao molecular. Em linhas gerais, a computao molecular emprega (bio)molculas e operaes para a manipulao destas (bio)molculas para resolver problemas e realizar computao. Questes importantes a serem verificadas: o Qualquer algoritmo pode ser simulado via computao de DNA? o Quais as dificuldades em se projetar um computador de DNA? Diversos modelos de computao de DNA vm sendo propostos para responder estas e outras questes. Estes modelos podem ser divididos em dois grandes grupos: o Modelos baseados em filtragem o Modelos formais
Tpico 9 Computao de DNA

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

De maneira simplificada, a computao de DNA emprega molculas de DNA como estrutura de dados e manipula estas molculas de forma a realizar computao.

1.1. Computao de DNA x Computadores Tradicionais


A computao de DNA utiliza DNA como estrutura de dados. Alfabeto quaternrio {A,C,T,G} em vez de binrio {0,1}. Computadores de DNA operam de forma massivamente paralela. A computao de DNA opera em nvel molecular, um limite que talvez nunca seja atingido pela indstria de semicondutores. Os computadores de DNA demandam muito pouca energia e so altamente econmicos na armazenagem de informao. Os computadores de DNA so eficientes na resoluo de problemas NP-completos.

Tpico 9 Computao de DNA

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

2. Conceitos Bsicos de Biologia Molecular


2.1. A Molcula de DNA
Toda a informao gentica em organismos celulares est armezanada no DNA, que consiste em cadeias de polmeros, usualmente conhecidas como cadeias de DNA.
Dupla hlice de DNA gene

gene

gene

Figura 1: A molcula de DNA encontra-se no ncleo das clulas.


Tpico 9 Computao de DNA

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

As cadeias de DNA so formadas por quatro unidades de cidos nuclicos, chamados de deoxyribonucleotdeos ou simplesmente nucleotdeos. Existem quatro nucleotdeos no DNA, e cada nucleotdeo composto por trs partes: uma molcula base, um acar e um grupo fosfato. As quatro bases so: adenina (A), citosina (C), guanina (G) e timina (T). Como os nucleotdeos diferem apenas pelas bases, eles so geralmente denominados bases. Nmeros de 1 a 5 so usados para denotar os cinco tomos de carbono do acar do nucleotdeo. O grupo de fosfato se liga ao tomo de carbono 5, e a base se liga ao tomo de carbono 1. Cada cadeia possui, por conveno qumica, um terminal 5 e um terminal 3. Portanto, cada cadeia possui uma orientao.

Tpico 9 Computao de DNA

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp
O 5 C 4 Fosfato 3 P 2 1 Base 4 C 3 C O 5 CH 2 O 2 C 1 C O HN C N C CH 3

CH

H OH Fosfato H Acar

Base

Figura 2: Estrutura qumica do nucleotdeo e uma de suas representaes.

Os nucleotdeos podem se ligar de duas formas distintas: o O grupo de fosfato 5 de um nucleotdeo se junta ao grupo de hydroxil 3 de outro nucleotdeo formando uma ligao covalente; o A base de um nucleotdeo interage com a base de outro para formar uma ponte de hidrognio, que uma ligao mais fraca que uma ligao covalente.
Tpico 9 Computao de DNA

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

Uma caracterstica importante da ligao de nucleotdeos (ligao covalente) que qualquer nucleotdeo pode se ligar para formar uma seqncia. Por outro lado, as ligaes entre as bases s ocorrem pela atrao entre pares especficos de bases: o A se liga com T o C se liga com G Estas ligaes espelham a complementaridade de Watson-Crick.

A C

Figura 3: Molcula de DNA ilustrando a complementaridade de Watson-Crick.


Tpico 9 Computao de DNA

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

Algumas representaes alternativas:

5 C G

5 T C G A T T G A A C C 3 3 A G C T A A C T T G G 5
5 T C G A T T G A 3 3 A A C T T G G 5

(Sticky ends)

A 3

T 5

Tpico 9 Computao de DNA

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

2.2. Manipulando o DNA


Todas as tcnicas de computao de DNA envolvem a aplicao de um conjunto especfico de operaes biolgicas a um conjunto de molculas. o Desnaturao: separa cadeias de DNA (separa as bases) o Annealing: junta cadeias de DNA (une pelas bases) o Extenso de polimerase: completa cadeias incompletas o Degradao por nuclease: encurta cadeias de DNA o Endonucleases: cortam molculas de DNA (separa pelas ligaes covalentes) o Ligao: une molculas de DNA (une pelas ligaes covalentes) o Modificao de nucleotdeos: insere ou deleta pequenas seqncias o Amplificao (PCR): multiplica molculas de DNA o Eletroforese de gel: mede o comprimento de molculas de DNA o Filtragem: separa ou extrai molculas especficas o Sntese: cria molculas de DNA o Seqenciamento: l a seqncia de uma molcula de DNA
Tpico 9 Computao de DNA

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

Annealing 5 C G 3 5 C G 3

A 3

T 5 Denaturing (melting) 3

T 5

5 T C G A T T G A A 3 3 A A C T T C 5 (Annealing)

(single strand) (single strand)

5 T C G A T T G A A 3 3 A A C T T C 5

Figura 4: Desnaturao e annealing.


Tpico 9 Computao de DNA

10

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

5 T C G A T T 3 3 A G C T A A C T T 5 5 T C G A T T G 3 3 A G C T A A C T T 5 5 T C G A T T G A 3 3 A G C T A A C T T 5 5 T C G A T T G A A 3 3 A G C T A A C T T 5

(primer) (template)

5 T C G A T T G A A 3 3 A G C T A A C T T 5 5 T C G A T T G A 3 3 G C T A A C T T 5 5 T C G A T T G 3 3 C T A A C T T 5 5 T C G A T T 3 3 T A A C T T 5

(a)

(b)

Figura 5: (a) Extenso de polimerase. (b) Degradao por nuclease.

5 T G A A T T C C G 3 3 A C T T A A G G C 5 5 T G 3 5 A A T T C C G 3 3 A C T T A A 5 3 G G C 5

5 T G C C C G G G A 3 3 A C G G G C C C T 5 5 T G C C C 3 5 G G G A 3 3 A C G G G 5 3 C C C T 5

Figura 6: Corte por endonuclease.


Tpico 9 Computao de DNA

11

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

OH P 5 T C G A T T G A A 3 3 A G C T A A C T T 5 P OH OH P 5 T C G A T T G A A 3 3 A G C T A A C T T 5 P OH 5 T C G A T T G A A 3 3 A G C T A A C T T 5

Figura 7: Ligao.

Tpico 9 Computao de DNA

12

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

a
Template

c
Denaturation

a a

b c a

Primers

c
Denaturation

a a
Polymerase extension

c c

c c a a

Figura 8: PCR (Polymerase Chain Reaction).


Tpico 9 Computao de DNA

13

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

Figura 9: Fotografia de uma eletroforese de gel de uma molcula de protena.

Tpico 9 Computao de DNA

14

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

3. Modelos Baseados em Filtragem


Em todos os modelos baseados em filtragem, um grande conjunto de strings gerado e diversos processos de filtragem so aplicados de forma a filtrar strings que no podem ser soluo do problema.

3.1. O Experimento de Adleman


O primeiro experimento bem-sucedido na utilizao de molculas de DNA e tcnicas de manipulao de DNA na soluo de problemas foi apresentado por Adleman em 1994. Neste trabalho, Adleman resolveu uma pequena instncia de um problema de caminho Hamiltoniano (HPP). o Um grafo direcionado G com os ns de entrada e sada definidos, vin e vout, possui um caminho Hamiltoniano se e somente se existe uma seqncia de ramos direcionados e1, e2,,ez (caminho) que inicia em vin e termina em vout.
Tpico 9 Computao de DNA

15

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

6 2 3

0 5 1

Figura 10: Grafo usado no experimento de Adleman.

O HPP pode ser resolvido de forma exaustiva, e, embora haja algoritmos capazes de resolver instncias especficas de forma eficiente, todos os algoritmos de soluo possuem complexidade exponencial no pior caso. o Portanto, na prtica o HPP um problema intratvel usando as tcnicas tradicionais de computao.

Tpico 9 Computao de DNA

16

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

o Com a proposta de Adleman usando computao de DNA, o nmero de operaes em laboratrio a serem empregadas na soluo do HPP linear em funo do tamanho do grafo (nmero de vrtices), embora o problema continue sendo NP-completo. Algoritmo para resolver o problema: Passo 1: gere caminhos aleatrios pelo grafo. Passo 2: mantenha apenas aqueles que iniciam em vin e terminam em vout. Passo 3: se o grafo possui n vrtices, mantenha somente aqueles caminhos de comprimento n. Passo 4: mantenha apenas aqueles que passam por cada n uma nica vez. Passo 5: se um caminho permanecer, aceite; caso contrrio rejeite. Antes de aplicar o algoritmo determinstico acima para resolver este problema, necessrio codificar os possveis caminhos utilizando molculas de DNA.

Tpico 9 Computao de DNA

17

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

Adleman codificou cada n do grafo utilizando uma seqncia de nucleotdeos (single strand) de comprimento 20. A codificao foi escolhida aleatoriamente e o comprimento de 20 bases foi adotado para garantir uma codificao diferente para cada n. Uma grande quantidade de nucleotdeos foi gerada via PCR e colocada em um tubo de ensaio. Os ramos foram codificados da seguinte forma:

Tpico 9 Computao de DNA

18

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

v1 = 5 T G A A T T C C G A | C G T C C A G T G A 3 v2 = 5 A T G A A C T A T G | G C A C G C T A T C 3 v3 = 5 C A T A G T C C G A | T T A G C A G T A G 3

e12 = 3 G C A G G T C A C T | T A C T T G A T A C 5 e21 = 3 C G T G C G A T A G | A C T T A A G G C T 5 e13 = 3 G C A G G T C A C T | G T A T C A G G C T 5

(a)
v1 v2
TGAATTCCGACGTCCAGTGA ATGAACTATGGCACGCTATC GCAGGTCACT TAC TTGATAC

e12

(b)
Figura 11: Mtodo de codificao usado por Adleman para resolver o problema do caminho Hamiltoniano.

Tpico 9 Computao de DNA

19

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

Mtodo de Soluo Passo 1: gere caminhos aleatrios pelo grafo. Para ligar os vrtices de modo a formar caminhos, oligonucleotdeos i complementares aqueles representando os ns (Oi) so gerados. Para unir as single strands e gerar os caminhos aleatrios pelo grafo foi feito o annealing e foi utilizada uma reao de ligao. Passo 2: mantenha apenas aqueles caminhos que iniciam em vin e terminam em vout. Em seguida, uma PCR empregando 0 e 6 como primers utilizada para amplificar o resultado do passo anterior. Dessa forma, apenas as molculas que iniciam no n 0 e terminam no n 6 foram amplificadas. Um processo de filtragem separa estas molculas das demais.

Tpico 9 Computao de DNA

20

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

Passo 3: se o grafo possui n vrtices, mantenha somente aqueles caminhos de comprimento n. A eletroforese de gel utilizada para separar as molculas (double stranded) de acordo com seus comprimentos. Apenas as cadeias com comprimento 140 pares base (7 vrtices) foram mantidas. Ao final deste passo existem diversas molculas que iniciam no n 0, terminam no n 6 e passam por 7 ns. Passo 4: mantenha apenas aqueles que passam por cada n uma nica vez. Com um passo para cada vrtice, foi possvel verificar se as molculas restantes possuam estes vrtices. (filtragem) Passo 5: se um caminho permanecer, aceite; caso contrrio rejeite.

Tpico 9 Computao de DNA

21

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

Discusso Adleman demorou 7 dias para completar seu experimento. o Entretanto, a quantidade de nucleotdeos necessria para resolver o problema cresce linearmente com o nmero de ns do problema. Portanto, um problema NP-completo, que requer mais tempo de processamento quanto maior o tamanho do problema, pode ser resolvido em tempo linear devido ao paralelismo da computao de DNA. Uma das dificuldades do procedimento adotado por Adleman est relacionada quantidade de single strands que devem ser geradas para codificar os diversos caminhos possveis no grafo. Como o HPP um problema NP-completo e ele foi resolvido por uma tcnica de computao de DNA, em teoria possvel utilizar esta mesma estratgia para resolver qualquer problema da classe NP.

Tpico 9 Computao de DNA

22

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

Entretanto, isso no significa que qualquer instncia de um problema NP possa ser resolvida de forma factvel por computao de DNA. Adleman resolveu o problema HPP usando a fora bruta: ele projetou um sistema capaz de gerar e avaliar todas as possveis solues para uma dada instncia do HPP. A caracterstica marcante do experimento de Adleman foi o paralelismo massivo das molculas de DNA. Em 1994, quando Adleman executou seu experimento, um computador do tipo desktop comum era capaz de executar 106 operaes por segundo e o supercomputador mais rpido conhecido podia executar aproximadamente 1012 operaes por segundo. o O computador de DNA de Adleman era capaz de executar 1014 operaes por segundo, assumindo que cada ligao corresponde a uma operao. Escalonando o passo de ligao, talvez seja possvel elevar este nmero para 1020.
Tpico 9 Computao de DNA

23

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

o Alm disso, a quantidade de energia consumida era muito baixa, da ordem de 2 1019 operaes por joule, um valor prximo do limite proposto pela segunda lei da termodinmica (34 1019). o Os supercomputadores modernos operam na casa de 109 operaes por joule. o Por ltimo, em um computador de DNA, um bit de informao pode ser armazenado em um nanmetro cbico de DNA, o que aproximadamente 1012 vezes mais eficiente que os dispositivos de armazenagem conhecidos na poca. o Em resumo, um computador de DNA podia ser, em 1994, 1.200.000 vezes mais rpido do que o supercomputador mais rpido conhecido, alm de permitir um armazenamento de informao 1012 vezes mais eficiente e consumir 1010 vezes menos energia que os computadores existentes.

3.2. A Soluo de Lipton para o Problema SAT


Lipton mostrou como empregar procedimentos de DNA para resolver o problema denominado satisfiability problem for propositional formulas (SAT).
Tpico 9 Computao de DNA

24

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

SAT um problema de busca NP-completo que pode ser definido como a seguir. Dado um conjunto finito de variveis lgicas E = {e1, e2,, en}, defina um literal como sendo uma varivel, ei, ou seu complemento i. Se ei verdadeira, ento i falsa, e vice-versa. Seja uma clusula Cj um conjunto de literais {e1j, e2j,, elj}. Uma instncia I do problema SAT consiste em um conjunto de clusulas, mais especificamente, uma frmula Booleana da forma C1 C2 Cm, onde cada clusula uma proposio que pode ser construda a partir de variveis proposicionais ei, i = 1,, e conectivos lgicos AND (), OR (), e NOT (). O problema SAT corresponde, portanto, a especificar um valor Booleano para cada varivel ei E, i = 1,,n, tal que toda a frmula seja verdadeira. Um aspecto chave explorado por Lipton foi o fato de podermos representar o problema SAT como um problema de busca em grafos.

Tpico 9 Computao de DNA

25

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

e10 v0 e11 v1

e20 v2 e21

e30 . . . e31

en10 vn1 en11

en0 vn en1

Figura 12: Representao em grafo do problema SAT.

De acordo com a figura acima, um caminho genrico pode ser representado por uma seqncia v0e1i1v1e2i2 vn1eninvn, onde a varivel ej pode assumir o valor verdade ij, j = 1,n. Neste grafo, todos os caminhos que iniciam em v0 e terminam em vn correspondem a uma string binria. o Por exemplo, o caminho v0e11v1e20v2e30vn1en1vn codifica a string binria 1001.
Tpico 9 Computao de DNA

26

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

Assim como Adleman, Lipton props um mtodo composto por duas fases principais: o Gerar todas as solues possveis (caminhos no grafo) o Filtrar aquela(s) que satisfaz(em) o problema Lipton props codificar os grafos em um tubo de ensaio como feito por Adleman, e utilizou o mesmo esquema de codificao. Por outro lado, a forma de soluo proposta por Lipton foi diferente em essncia. Ele props trabalhar com operaes em tubos de ensaio. Para exemplificar, foi verificada a seguinte expresso: F = (e1 e2) (1 2).
e1 0 v0 e1 1
Tpico 9 Computao de DNA

e 20 v1 e2 1 v2

27

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

Lipton construiu uma srie de tubos de ensaio, onde o primeiro tubo, t0, supostamente contm todas as possveis solues do problema. Ele props, dentre outras, uma operao de extrao E(t,i,a) que extrai todas as seqncias no tubo t cujo i-simo bit a, a {0,1}. Em seguida, ele props o seguinte algoritmo para resolver o problema: Passo 1: Seja t1 o tubo correspondente a E(t0,1,1). O tubo contendo o restante t1, e t2 E(t1,2,1). Junte o contedo de t1 e t2 produzindo o tubo t3. Passo 2: Seja t4 o tubo correspondente a E(t3,1,0). O tubo com o contedo restante t4, e t5 E(t4,2,0). Junte o contedo de t4 e t5 produzindo o tubo t6. Passo 3: Verifique se h alguma molcula de DNA no ltimo tubo. Se houver, aceite; caso contrrio, rejeite.

Tpico 9 Computao de DNA

28

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

Tubo de ensaio

t0 t1 t1 t2 t3 t4 t4 t5
Caso Genrico

Strings presentes 00, 01, 10, 11 10, 11 00, 01 01 01, 10, 11 01 10, 11 10

Qualquer problema SAT com n variveis e m clusulas pode ser resolvido com, no mximo, O(m) operaes de extrao e uma operao de deteco. Sejam C1, C2,, Cm as m clusulas de uma frmula proposicional. Construa m tubos, t0, t1,, tm, de forma que tk seja o conjunto de nmeros com nbits tal que C1(e) = C2(e) = = Ck(e) = 1, onde Ci(e) corresponde ao valor verdade da clusula Ci sobre o conjunto de variveis e.
Tpico 9 Computao de DNA

29

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

Para t0 use todas as combinaes possveis de clusulas. Dado tk, construa tk+1 da seguinte forma. Assuma que Ck+1 est na forma disjuntiva: o1 ... ol, onde oi um literal e i o complemento de um literal. Para cada literal opere da seguinte forma: o Se oi = ej, ento gere E(tk,j,1). o Seno, se oi = j, gere E(tk,j,0). Cada operao de extrao efetuada e o restante colocado em um outro tubo. Junte todos os tubos e faa uma deteco. Se sobrar algo, ento a frmula satisfeita. Discusso Em essncia, nenhum mtodo melhor do que a busca exaustiva na soluo do SAT.

Tpico 9 Computao de DNA

30

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

Neste sentido, o mtodo utilizado pela computao de DNA no melhor do que os de busca exaustiva, porm ele faz uso do paralelismo massivo das molculas de DNA e suas tcnicas de manipulao. Um dos principais resultados da soluo proposta por Lipton foi a verificao de que seu procedimento permite resolver qualquer problema SAT de n variveis e m clusulas com, no mximo, m passos de extrao e uma deteco.

3.3. Linguagem de Programao de Tubos de Ensaio


Os aspectos prticos das propostas de Lipton e Adleman dependem das tecnologias de manipulao de DNA disponveis. At mesmo os algoritmos utilizados para resolver os problemas poderiam ser mudados. O que importante, neste caso, provar que a computao factvel.

Tpico 9 Computao de DNA

31

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

Meios puramente bioqumicos foram empregados para resolver problemas NPcompletos em um tempo linear em relao quantidade de operaes de laboratrio. Estas operaes, em uma formulao abstrata, so uma grande contribuio derivada da filosofia da proposta de Adleman: delas resulta uma espcie de linguagem de programao de tubos de ensaio baseada em molculas de DNA colocadas em tubos de ensaio e em mecanismos para manipulao destas molculas.

O Modelo Irrestrito Um tubo de ensaio um conjunto de molculas de DNA, ou seja, um multiconjunto de strings finitas construdas a partir de um alfabeto {A,C,G,T}. Dado um tubo, possvel realizar quatro operaes bsicas:

Tpico 9 Computao de DNA

32

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

1. Separate (extract) dado um tubo t e uma palavra w (cadeia de smbolos w pertencentes ao alfabeto {A,C,G,T}), produza dois tubos +(t,w) e (t,w), onde +(t,w) consiste de todas as cadeias de DNA em t que contm w como subseqncia, e (t,w) consiste de todas as cadeias de DNA em t que no contm w como sub-seqncia. 2. Merge: dado um conjunto de tubos t1, t2, , tm, produza um tubo com o contedo de todos os outros tubos: (N1,N2,,Nm) = N1 N2 Nm. 3. Detect: dado um tubo t, aceite se t contm pelo menos uma molcula de DNA, e rejeite caso contrrio. 4. Amplify: dado um tubo t, produza duas cpias t1 e t2: t = t1 = t2. Estas quatro operaes podem ser empregadas para escrever programas que recebem como entrada um tubo e produzem como sada uma resposta aceite (YES), rejeite (NO) ou um conjunto de tubos.

Tpico 9 Computao de DNA

33

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

Alm destas operaes, o experimento de Adleman utiliza a complementaridade de Watson-Crick e as seguintes modificaes da operao separate: 1. Length-separate: dado um tubo t e um inteiro n, produza o tubo (t, n) que consiste de todas as cadeias em t de comprimento menor ou igual a n. 2. Position-separate: dado um tubo t e uma palavra w, produza um tubo B(t,w) que possui todas as cadeias em t que iniciam com a palavra w; ou produza o tubo E(t,w) que contm todas as cadeias em t e que terminam com a palavra w. Exemplos de aplicao:

Tpico 9 Computao de DNA

34

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

procedure [out] = extract(t,A,T,G) t (t,T) t (t,G) t (t,A) out detect(t) end procedure

o O que o programa acima faz?

Tpico 9 Computao de DNA

35

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

procedure [out] = HPP(t,vin,vout) t B(t,vin) t E(t,vout) t (t, 140) for i=1 to 5 do t +(t,si) end for out detect(t) end procedure

Na proposta de Lipton para o problema SAT, uma operao extract E(t,i,a) que extrai todas as seqncias de um tubo t cujo i-simo bit igual a a, foi definida: E(t,i,a) = +(t,eia), E(t,i,a) = (t,eia), onde E(t,i,a) extrai todas as seqncias no tubo t cujo i-simo bit complementar a a.

Tpico 9 Computao de DNA

36

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

procedure [out] = SAT(t) t1 +(t,e11) t1 (t,e11) t2 +(t1,e21) t3 merge(t1,t2) t4 +(t3,e10) t4 (t3,e10) t5 +(t4,e20) t6 merge(t4,t5) out detect(t6) end procedure

Tpico 9 Computao de DNA

37

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

A Linguagem Pascal-DNA Com o objetivo de fornecer um modelo em alto nvel para a computao molecular, foi introduzida uma outra linguagem de programao combinando elementos de Pascal com operadores de manipulao de DNA. Nesta linguagem, denominada de DNA Pascal, tubos de ensaio com molculas de DNA foram mapeados em variveis contendo palavras do alfabeto {0,1}. o Initialization: preenche um conjunto de variveis t com {0,1}n, t := In(n). o Empty word: t :={}. o Union: unio de dois conjuntos de variveis t1 e t2, t := t1 t2. o Extraction: filtra todas as palavras de um conjunto de variveis t1 que possuem um padro especial. Os autores propuseram dois tipos de procedimentos de extrao: 1) uma extrao de bits, e 2) uma extrao de sub-palavras.

Tpico 9 Computao de DNA

38

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

o Bit extraction: procura um bit especial b em uma posio particular k, t := Bx(t1,b,k). o Sub word extraction: a extrao procura uma palavra sub-palavra especial w em qualquer lugar da palavra, t := Sx(t1,w). o Concatenation: a concatenao de dois conjuntos de variveis t1 e t2 t := t1.t2. o Right cut: t := t1/, onde t1/ = {z/ | z t1} e za/ = z a {0,1} e / = . o Left cut: t := /t1, onde /t1 = {/z | z t1} e /za = z a {0,1} e / = . o Right append: t := t1.a, onde t1.a = {z.a | z t1}. o Left append: t := a.t1, onde a.t1 = {a.z | z t1}. Alguns testes condicionais tambm foram propostos: o Subset test: t1 t2. o Detect test: t = 0. o Membership test: x t.
Tpico 9 Computao de DNA

39

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

4. Um Breve Resumo dos Modelos Formais


Virtualmente cada pesquisador em computao de DNA possui sua prpria forma de utilizar DNA para computar. Isso indica que esta linha de pesquisa ainda est explorando as diversas possibilidades de implementao de um computador de DNA. Entretanto, diversos modelos formais, alguns introduzidos antes do experimento de Adleman, tm sido propostos com o objetivo de fornecer um estudo terico sobre a computao de DNA. Dentre eles possvel citar os: o sticker systems: Roweis et al. (1996) introduziram um modelo de computao de DNA chamado de sticker model. Assim como os modelos de filtragem, este modelo emprega cadeias de DNA como o substrato fsico para armazenar e processar informao. O modelo de stickers possui uma memria de acesso aleatrio que no requer a extenso de cadeias de DNA, no utiliza enzimas, e (em teoria) utiliza material reaproveitvel.
Tpico 9 Computao de DNA

40

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

o splicing systems ou sistemas H: De forma simples, cortar (splice) duas strings corresponde a part-las em pontos especficos e concatenar os fragmentos obtidos de uma forma similar a feita com cromossomos durante um crossover. Este modelo baseado em linguagens formais e a operao de splicing. o insertion/deletion systems: As operaes de insero e deleo so fundamentais em linguagens formais. Dado um par de palavras (x,y), denominado contexto, um operador de insero permite inserir uma palavra v entre x e y. o modelo PAM (parallel associative memory model): Este modelo basicamente descreve um operador de ligao paralela e associativa. Ele tambm utiliza operadores comuns em computao de DNA como unio, extrao e deleo.

Tpico 9 Computao de DNA

41

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

5. Computadores Universais de DNA


A verificao da capacidade de computao universal de um computador de DNA tem sido feita de vrias formas utilizando diferentes computadores universais, como mquinas de Turing, autmatos celulares, circuitos Booleanos e gramticas de Chomsky. Como uma mquina de Turing universal pode, em tese, computar qualquer funo computvel, projetar uma mquina de Turing universal utilizando DNA constitui um passo importante na direo de provar a universalidade da computao de DNA. Neste caso, preciso especificar um computador molecular capaz de manter um estado e uma memria, e de executar uma quantidade indefinida de transies de estados.

Tpico 9 Computao de DNA

42

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

D. Beaver projetou uma mquina de Turing consistindo de uma nica molcula de DNA, na qual os mecanismos qumicos para a transio de estados permitem uma computao paralela, sincronizada e heterognea. A cada passo do modelo proposto, uma molcula de DNA codifica uma configurao da mquina de Turing: o contedo da fita, seu estado atual e a posio do cabeote. Cada transio de estado requer um esforo O(1) em termos de passos de laboratrio a serem executados. Como uma nica cadeia de DNA utilizada para codificar a configurao de uma mquina de Turing, Beaver primeiramente mostrou como implementar uma substituio dependente de contexto em uma molcula de DNA. o Isso foi feito porque simular uma computao (passo) de uma MT corresponde a substituir uma parte da configurao de uma MT.

Tpico 9 Computao de DNA

43

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

A idia substituir a poro de DNA que ir sofrer a transio de estado. (ver figura) Configurao: C = (x1xk1qxkxk+1xm) Codificao: Ce = e(x1,1)e(xk1,k1)e(q,k)e(xk,k)e(xm,m), onde e(xk,k) indica que o smbolo xk est na k-sima posio da fita e e(q,k) indica o estado atual da mquina. Note que neste esquema o contedo da mquina de Turing, juntamente com o estado q atual da mquina so codificados um a um e concatenados para formar uma cadeia de DNA que codifica a configurao da mquina. Para que ocorra uma transio, a molcula isolada em um tubo de ensaio de acordo com o estado q, posio do cabeote k, smbolo xk sendo lido atualmente e os smbolos xk1 a esquerda e xk+1 a direita do cabeote. Os valores de q e xk determinam a transio de estados a ser realizada: o (q,xk) = (q,xk,L)
Tpico 9 Computao de DNA

movimento para a esquerda 44

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

o (q,xk) = (q,xk,R)

movimento para a direita

Beaver (1995) tambm estendeu este mtodo para simular mquinas de Turing no-determinsticas.

...

x k2 xk1 xk xk+1 q

...

C = (xk1qxkx k+1); e(xk1,k1)e(q,k)e(xk,k)

...

xk2 x k1 xk x k+1 q

...

C = (xk2qxk1xk); e(q,k1)e(x k1,k1)e(xk,k)


Figura 13: Codificao de uma configurao da mquina de Turing.
Tpico 9 Computao de DNA

45

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

U L A U E R R
Mix Anneal

R R

U L L L
Polymerase extension Destruction of the original strand

Polymerase extension Ligation

R
Denaturing Mix with L Anneal

U L L A E R R

L L

A O E

R R

Figura 14: Substituio molecular de uma seqncia de DNA empregada como transio de estados de uma mquina de Turing de DNA. Exemplo: substituir U por O.
Tpico 9 Computao de DNA

46

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

6. Escopo da Computao de DNA


A computao de DNA foi inicialmente proposta para resolver problemas, e demonstrou ser bem-sucedida na soluo de problemas NP-completos. Como qualquer instncia de um problema NP-completo pode ser expressa em termos de um outro problema NP-completo, as solues baseadas em computao de DNA apresentadas fornecem implicitamente um poder computacional suficiente para resolver qualquer problema na classe NP. Exemplos de outros problemas que podem ser resolvidos por DNA: o Graph coloring o Shortest common superstring o Integer factorization o Protein conformation o Maximum clique o Etc.
Tpico 9 Computao de DNA

47

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

Tambm so encontrados trabalhos na literatura aplicando a idia gerao de memrias associativas, soluo de problemas criptogrficos, ao desenvolvimento de algoritmos (baseados em DNA) para adio de nmeros e multiplicao de matrizes, ao projeto de mquinas paralelas etc. O paralelismo massivo e a miniaturizao do DNA sugerem uma vasta gama de problemas que so candidatos em potencial a serem resolvidos pela computao de DNA. Alm destas aplicaes computacionais da computao de DNA, ela tambm pode ser aplicada no domnio da biologia. Exemplos: o Processamento de DNA: sequenciamento e fingerprinting o Decodificao de material gentico o Criao e busca em bases de dados de DNA o Deteco de mutaes Possveis resultados desta pesquisa em problemas da biologia:
Tpico 9 Computao de DNA

48

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

o Erradicao de doenas o Identificao de criminosos o Desenvolvimento de biochips implantveis

7. Discusso
O experimento de Adleman foi rapidamente seguido por uma grande quantidade de generalizaes e extenses para a soluo de outros problemas NP-completos. Entretanto, interessante notar que boa parte dos autores no implementaram a computao de DNA em laboratrio como feito por Adleman. Na verdade, boa parte das propostas de solues baseadas em DNA so de cunho terico, uma atividade denominada de menmology (mental molecular biology) por Rozenberg. As questes em aberto sobre a computao de DNA no mais dizem respeito ao seu poder de processamento.

Tpico 9 Computao de DNA

49

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

o Em vez disso, a principal questo que permanece diz respeito ao projeto e construo de um computador de DNA. o Neste sentido so dois os problemas centrais: correo de erros e realizao e automao das tnicas de manipulao de DNA. Um dos grandes problemas da computao de DNA que erros so muito comuns em reaes e processos biolgicos. As operaes de extrao, annealing, merge e muitas outras so imprecisas. Tem sido grande o esforo no sentido de aproveitar conceitos de matemtica e biologia molecular para projetar computadores de DNA. No estado atual, a computao molecular possui diversos desafios: o O material utilizado (DNA, RNA ou protenas) no reutilizvel o Os componentes moleculares so especializados o Correo de erros

Tpico 9 Computao de DNA

50

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

o Para que um computador de DNA seja eficiente, o algoritmo a ser utilizado deve ser o mais paralelizvel possvel o A interface de entrada/sada um tanto complicada o O tempo experimental ainda grande, mas isso pode ser remediado com um aprofundamento dos conhecimentos e tecnologias em biologia molecular e engenharia gentica Entretanto, algumas caractersticas da computao de DNA servem para contrabalanar as dificuldades de projeto de um computador de DNA: o Alta velocidade de processamento paralelo quando automatizado (permite o uso da fora bruta) o economicamente barato sob o ponto de vista de consumo de energia, armazenagem e processamento de informao Bibliografia
ADLEMAN, L. M. (1994), Molecular Computation of Solutions to Combinatorial Problems, Science, 226, November, pp. 1021-1024.
Tpico 9 Computao de DNA

51

IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp

AMOS, M. (2003), Theoretical and Experimental DNA Computation, Springer-Verlag. BEAVER, D. (1995), Molecular Computing, Technical Report TR 95-001, Penn. State University, Pennsylvania, USA, January. CALUDE, C. S. & PUN, G. (2001), Computing with Cells and Atoms, Taylor & Francis. GRAM, T., BORNHOLDT, S., GRO, M., MITCHELL, M. & PELLIZZARI, T. (2001), Non-Standard Computation: Molecular Computation Cellular Automata Evolutionary Algorithms Quantum Computers, Wiley-VCH. PUN, G., ROZENBERG, G. AND SALOMA, A. (1998), DNA Computing: New Computing Paradigms, Springer-Verlag. PISANTI, N. (1998), DNA Computing: A Survey, Bulletin of the European Association for Theoretical Computer Science, 64, pp. 188216. ROWEIS, S., WINFREE, E., BURGOYNE, R., CHELYAPOV, N. GOODMAN, M., ROTHEMUND, P.
AND

ADLEMAN, L. (1996), A Sticker Based Model for DNA Computation, In E. Baum,

D. Boneh, P. Kaplan, R. Lipton, J. Reif and N. Seeman (eds.), DNA Based Computers, Proc. of the 2nd Annual Meeting, pp.1-27.

Tpico 9 Computao de DNA

52

Você também pode gostar