Escolar Documentos
Profissional Documentos
Cultura Documentos
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.
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.
IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp
gene
gene
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.
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
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
IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp
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
IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp
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)
5 T C G A T T G A A 3 3 A A C T T C 5
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)
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
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.
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
13
IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp
14
IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp
15
IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp
6 2 3
0 5 1
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.
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.
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:
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
(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.
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.
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.
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.
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.
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.
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
en0 vn en1
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.
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.
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.
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:
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.
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:
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
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.
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
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.
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
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.
41
IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp
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.
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
IA013 Introduo Computao Natural Profs. Fernando J. Von Zuben & Romis R. F. Attux DCA/FEEC/Unicamp
o (q,xk) = (q,xk,R)
Beaver (1995) tambm estendeu este mtodo para simular mquinas de Turing no-determinsticas.
...
x k2 xk1 xk xk+1 q
...
...
xk2 x k1 xk x k+1 q
...
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
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
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
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.
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
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
D. Boneh, P. Kaplan, R. Lipton, J. Reif and N. Seeman (eds.), DNA Based Computers, Proc. of the 2nd Annual Meeting, pp.1-27.
52