quinta-feira, dezembro 14, 2006

Computadores de DNA ganham vida

Computadores de DNA ganham vida

.
Por Ehud Shapiro e Yaakov Benenson


Cientistas exploram o poder de computação de moléculas biológicas e criam máquinas minúsculas capazes de falar diretamente com células vivas.

.



Quando o matemático britânico Alan Turing concebeu a noção de uma máquina de computação programável universal, a palavra "computador" tipicamente se referia não a um objeto, mas a seres humanos. Era 1936, e pessoas que tinham o trabalho de computar, em termos modernos, trituravam números. Turing projetou uma máquina capaz de realizar o trabalho deles - calcular qualquer problema computável - e armou o cenário para o estudo teórico da computação que permanece como base para a ciência da computação. Mas ele nunca especificou quais materiais deveriam ser usados para construí-la.

A máquina puramente conceitual de Turing não tinha fios elétricos, transistores ou portões lógicos. Na verdade, ele imaginava-a como uma pessoa com uma folha de papel infinitamente longa, um lápis e um simples manual de instruções. Seu computador incansável leria um símbolo, o modificaria e depois passaria para o símbolo seguinte, de acordo com regras programadas, e continuaria agindo assim até que nenhuma regra mais se aplicasse. Portanto, apesar de a maioria das pessoas só ter visto até hoje máquinas eletrônicas de metal, válvulas e peças de silício, essas não são a única forma possível que um computador pode assumir.

Também os organismos vivos realizam processos físicos complexos sob o comando de informações digitais. As reações bioquímicas e, em última análise, o funcionamento de um organismo inteiro são regidos por instruções armazenadas em seu genoma, codificado em seqüências de ácidos nucleicos. Quando o mecanismo das máquinas biomoleculares no interior das células que processam DNA e RNA é comparado à máquina de Turing, surgem semelhanças impressionantes: os dois sistemas processam informações armazenadas em uma seqüência de símbolos tomados de um alfabeto fixo, e ambos avançam passo a passo ao longo dessas seqüências, modificando ou acrescentando símbolos de acordo com um conjunto de regras.

Esses paralelos inspiraram a idéia de que moléculas biológicas poderiam, um dia, virar a matéria-prima de uma espécie nova de computador. Ele não necessariamente teria um desempenho maior nas tarefas tradicionais de computação - a velocidade de máquinas moleculares naturais, como o ribossomo, é de apenas centenas de operações por segundo, comparada aos bilhões de operações por segundo em alguns dispositivos eletrônicos. Mas as moléculas têm uma capacidade singular: falam a língua das células vivas.

A vantagem dos computadores constituídos de moléculas biológicas vem de seu potencial de funcionarem em um ambiente bioquímico (até mesmo dentro de um organismo vivo) e interagir com ele através de entradas e saídas em forma de outras moléculas biológicas. Um computador biomolecular poderia agir como um "médico" autônomo dentro de uma célula, por exemplo. Ele poderia perceber sinais do ambiente indicando doença, processá-los usando seu conhecimento médico pré-programado e gerar um sinal ou um remédio terapêutico como saída.

Nos últimos sete anos, temos trabalhado para concretizar essa promessa. Já conseguimos criar um autômato biológico, constituído de DNA e proteínas, capaz de diagnosticar num tubo de ensaio sintomas moleculares de certos tipos de câncer e "tratar" a doença com a liberação de uma molécula terapêutica. Essa prova de conceito foi empolgante, pelas possíveis aplicações médicas futuras e por diferir totalmente daquilo que tínhamos em mente originalmente.
Dos Modelos às Moléculas

Um de nós (Shapiro) começou sua pesquisa ao perceber que as operações básicas de certas máquinas biomoleculares dentro das células - reconhecimento dos blocos de construção moleculares, clivagem (fragmentação) e ligação de moléculas de biopolímeros e movimentos ao longo de um polímero - poderiam ser empregadas, em princípio, para construir um computador universal baseado na máquina conceitual de Turing. Em essência, as operações computacionais de tal máquina de Turing se traduziriam em termos biomoleculares como: um "reconhecimento", duas "clivagens", duas "ligações" e um movimento para a esquerda ou direita.

Charles Bennett, da IBM, já havia feito observações semelhantes e proposto uma máquina de Turing molecular hipotética em 1982.

Interessado na física do consumo de energia, ele especulou que as moléculas poderiam, um dia, se tornar a base de dispositivos computacionais mais eficientes em termos de energia.

A primeira demonstração no mundo real do poder computacional das moléculas surgiu em 1994, quando Leonard M. Adleman, da Universidade da Califórnia do Sul, usou DNA para solucionar um problema que é sempre incômodo para algoritmos de computadores tradicionais. Conhecido como o problema do caixeiro-viajante, seu objetivo é descobrir a rota mais curta entre cidades ligadas por avião, passando por cada cidade uma só vez. Ao criar moléculas de DNA para representar simbolicamente as cidades e vôos e, depois, combinar trilhões delas em um tubo de ensaio, ele se aproveitou das afinidades de emparelhamento das moléculas para obter resposta em cerca de um segundo. Infelizmente, com as ferramentas de laboratório disponíveis naquela época, Adleman levou muito mais tempo para pescar manualmente, de dentro da mistura, as moléculas que representavam a solução correta. Ele aguardou a descoberta de tecnologias que permitissem a criação de um computador molecular mais prático.

"No futuro, as pesquisas de biologia molecular poderão fornecer técnicas aperfeiçoadas para manipular macromoléculas", escreveu em 1994, ao descrever o experimento. "As pesquisas na química devem permitir o desenvolvimento de enzimas sintéticas. Pode-se imaginar o surgimento de um computador de uso geral, com uma única macromolécula conjugada a uma coleção de enzimas semelhante a um ribossomo que agem sobre ele."
Conceber um projeto lógico concreto para tal dispositivo, capaz de funcionar como a "especificação operacional" fundamental para uma ampla classe de computadores moleculares futuros, tornou-se o objetivo de Shapiro. Em 1999, ele tinha um modelo mecânico do projeto, feito de peças plásticas. Juntamos então forças para traduzi-lo em moléculas reais.

Entretanto, em vez de enfrentar desde o princípio o desafio final de construir uma máquina de Turing molecular completa, concordamos em tentar primeiro uma versão simplificada, conhecida como autômato finito. Sua única função seria descobrir se uma seqüência de símbolos ou letras de um alfabeto de duas letras, como "a" e "b", continha um número par de letras b. A tarefa pode ser realizada por um autômato finito com apenas dois estados e um "programa" composto de quatro instruções chamadas regras de transição. Um de nós (Benenson) teve a idéia de empregar uma molécula de DNA de fita dupla para representar a seqüência de entrada, outras quatro mais curtas para representar as regras de transição do autômato, ou "software", e duas enzimas manipuladoras de DNA naturais, FokI e ligase, como "hardware".

O problema lógico principal que tivemos de resolver foi como representar os estados intermediários mutáveis da computação, que consistem no estado interno atual do autômato e um ponteiro para o símbolo da seqüência de entrada sendo processado. Conseguimos isso com um artifício engenhoso: a cada passo da computação, o hardware enzimático realmente "digeria" a molécula de entrada, clivava o símbolo que estava sendo processado e expunha o próximo. Como era possível fragmentar o símbolo em dois locais diferentes, cada versão resultante podia representar, além do próprio símbolo, um dentre os dois estados possíveis da computação. Descobrimos mais tarde que este último elemento era similar a um desenho que Paul Rothemund, ex-aluno de Adleman, havia proposto para a máquina molecular de Turing.

O interessante é que o computador resultante que descrevemos em 2001 era autônomo: uma vez que as moléculas de entrada, de software e de hardware foram colocadas em uma solução de armazenamento em um tubo de ensaio, a computação teve início e prosseguiu iterativamente até o fim, sem nenhuma intervenção humana.

Durante os testes, percebemos que o sistema não apenas resolvia o problema para o qual foi projetado - descobrir se um símbolo ocorre um número par de vezes em uma seqüência - como poderia fazer mais. Um autômato finito de dois estados e dois símbolos possui oito combinações possíveis de regras de símbolos/estados (23) e, como nosso projeto era modular, todas as oito possíveis regras de transição podiam ser prontamente implementadas mediante oito moléculas de transição diferentes. O autômato era capaz, portanto, de realizar diferentes tarefas, escolhendo diferentes "programas" - ou seja, um mix diferente de moléculas de transição.

Ao testarmos uma variedade de programas com nosso autômato molecular simples, descobrimos uma forma de melhorar ainda mais o desempenho. Em um "experimento de omissão", a operação do autômato foi avaliada com a remoção de um componente molecular de cada vez. Quando removemos a ligase, que une a molécula de software à molécula de entrada para permitir seu reconhecimento e clivagem pela outra enzima, FokI, a computação pareceu progredir. Havíamos descoberto uma capacidade antes desconhecida de FokI: reconhecer e clivar certas seqüências de DNA, quer as duas fitas da molécula estivessem unidas ou não.

A perspectiva de remover a ligase de nosso computador molecular nos empolgou, porque reduziria imediatamente em 50% o hardware enzimático requerido. Mais importante, a ligação era a única operação que consumia energia na computação, de modo que, ao evitá-la, o computador funcionaria sem fonte externa de combustível. E sem a etapa de ligação, moléculas de software deixaram de ser consumidas durante a computação, podendo ser recicladas.

O aperfeiçoamento do sistema sem ligase levou meses de esforços. De início, ele foi ineficiente, parando após um ou dois passos computacionais. Mas estávamos motivados pelos desafios computacional e bioquímico, e com o auxílio de colegas, Benenson enfim encontrou a solução. Com mudanças pequenas, mas cruciais, nas seqüências de DNA usadas no autômato, conseguimos tirar proveito da capacidade até então desconhecida de FokI e dar um salto quântico no desempenho. Em 2003, dispúnhamos de um computador autônomo e programável capaz de usar sua molécula de entrada como fonte de combustível . Em princípio, ele poderia processar qualquer molécula de entrada, de qualquer comprimento, usando um número fixo de moléculas de hardware e software, sem esgotar a energia. Contudo, do ponto de vista computacional, nosso autômato ainda parecia uma lambreta comparado com o Rolls-Royce que tínhamos como objetivo: a máquina de Turing biomolecular.
Missão Terapêutica
Como o autômato finito de dois estados era simples demais para ter qualquer utilidade na solução de problemas computacionais complexos, nós o consideramos mera demonstração interessante do conceito de computadores biomoleculares programáveis e autônomos, e decidimos ir em frente. Ao concentrarmos esforços na construção de autômatos mais complicados, logo deparamos com o problema reconhecido por Adleman: as "enzimas projetadas" com que ele sonhara uma década antes ainda não existiam.

Nenhuma enzima ou complexo de enzimas conhecidos na Natureza conseguem realizar reconhecimentos, clivagens e ligações, em seqüência e em conjunto, com a flexibilidade necessária ao projeto da máquina de Turing. Enzimas naturais teriam de ser personalizadas; as sintéticas totalmente novas teriam de ser engendradas. Como a ciência ainda carece dessa capacidade, vimo-nos com uma especificação de projeto lógico de uma máquina de Turing biomolecular, mas forçados a aguardar até que as peças para sua construção fossem inventadas.

Por isso voltamos ao nosso autômato de dois estados para ver se conseguíamos encontrar alguma aplicação útil. Tendo em mente aplicações médicas, queríamos saber se o dispositivo poderia realizar um diagnóstico simples, como descobrir se determinadas condições representando uma doença específica estão presentes. Para essa tarefa, bastam apenas dois estados: chamamos um de "sim" e o outro de "não".

O autômato começaria a computação no estado sim e verificaria uma condição de cada vez. Se uma condição de sua checklist estivesse presente, o estado sim vigoraria, mas se alguma não aparecesse, o autômato mudaria para o estado não, permanecendo assim pelo resto do processo. Desse modo, a computação só terminaria em sim se todos os sintomas da doença estivessem presentes; porém, se um não fosse encontrado, o "diagnóstico" seria negativo.

Para fazer esse esquema lógico funcionar, tivemos de encontrar um meio de ligar o autômato molecular ao seu ambiente bioquímico de modo que conseguisse perceber se condições específicas de doenças estavam presentes. A idéia geral de que o ambiente pudesse afetar as concentrações relativas de moléculas de transição concorrentes - e alterar a computação - já havia sido sugerida no plano da máquina de Turing molecular. Para aplicar esse princípio na detecção de sintomas de doenças, tivemos de transformar a presença ou ausência de um indicador de doença em um determinante da concentração das moléculas de software que indicam o sintoma.

Muitos cânceres, por exemplo, se caracterizam por níveis anormais de certas proteínas na célula como resultado de genes específicos, expressando acima ou abaixo do normal sua proteí-na codificada. Quando um gene é expresso, enzimas no núcleo da célula copiam sua seqüência para uma versão em RNA. Essa transcrição molecular do gene, conhecida como RNA mensageiro (mRNA), é então lida por uma estrutura denominada ribossomo, que traduz a seqüência de RNA em uma seqüência de aminoá-cidos que formarão a proteína. Desse modo, níveis acima ou abaixo do normal de transcrições específicas de mRNA podem refletir a atividade dos genes.

Benenson concebeu um sistema em que certas moléculas de transição interagiam preferencialmente com essas seqüências de mRNA. A interação, por sua vez, afetaria a capacidade das moléculas de transição de participarem da computação. Um alto nível de mRNA representando um sintoma de uma doença causaria a predominância das moléculas de transição sim sim, aumentando a probabilidade de que o computador detectasse a presença do sintoma . Na prática, esse sistema poderia se aplicar a qualquer doença associada a níveis anormais de proteínas resultantes da atividade dos genes e ser adaptado para detectar mutações maléficas em seqüências de mRNA. Uma vez dotados de um mecanismo de entrada capaz de perceber sintomas de doenças e do aparato lógico para realizar o diagnóstico, a pergunta seguinte foi: o que o computador deve fazer ao diagnosticar uma doença? De início, pensamos em fazer com que produzisse um sinal de diagnóstico visível. No mundo molecular, produzir um sinal e dar o próximo passo lógico de ministrar um remédio não estão tão distantes. Binyamin Gil, aluno de graduação do nosso grupo, projetou e implementou um mecanismo que permite ao computador liberar uma molécula de remédio no caso de diagnóstico positivo.

Mesmo assim, nosso plano não estava completo. Talvez a questão central no projeto de hardware de computadores é como desenvolver um sistema confiável com componentes duvidosos. Esse problema não é próprio dos computadores biológicos - é uma propriedade intrínseca aos sistemas complexos. Mesmo dispositivos mecânicos se tornam menos confiáveis com a diminuição da escala e o aumento do número de componentes. No nosso caso, dada a natureza probabilística em geral da computação e o comportamento impreciso dos elementos biomoleculares, algumas computações inevitavelmente terminariam com um diagnóstico positivo mesmo estando ausentes vários ou todos os sintomas da doença.

Felizmente, esse comportamento probabilístico é mensurável e repetível, de modo que poderíamos compensá-lo com um sistema de checagem e contrapesos. Criamos dois tipos de moléculas de computação: um projetado para liberar um remédio quando a computação terminasse no estado sim, e outro para liberar um supressor daquele mesmo remédio quando a computação terminasse no estado não. Modificando as concentrações relativas dos dois tipos de moléculas, poderíamos exercer um controle fino sobre o limite de certeza de diagnóstico que desencadearia a administração de um remédio ativo.

Os médicos humanos tomam esse tipo de decisão ao avaliar o risco de uma doença para o paciente, levando em conta a toxicidade do tratamento e a certeza do diagnóstico. No futuro, se nosso autômato molecular for enviado em missão médica, poderá ser programado para exercer julgamento semelhante.
Nasce uma Nova Espécie
Nossa lambreta acabou nos levando bem mais longe do que imaginávamos, e numa direção um tanto diferente. Até agora, nosso computador biomolecular só foi demonstrado em um tubo de ensaio. Seu ambiente biológico foi simulado com a adição de concentrações diferentes de moléculas de RNA e DNA; depois colocamos todos os componentes do autômato no mesmo tubo. Agora nossos objetivos são fazer com que funcione em uma célula viva, observar sua computação dentro dela e fazer com que se comunique com seu ambiente.

Só inserir o autômato na célula já é desafiador, porque a maioria dos sistemas de inserção molecular está adaptada para DNA ou proteína. Nosso computador contém ambos, de modo que estamos tentando encontrar meios de ministrar essas moléculas em conjunto. Outro obstáculo é encontrar um meio de observar todos os aspectos da computação enquanto ocorrem dentro de uma célula, para confirmar que o autômato consegue funcionar sem que as atividades da célula prejudiquem passos da computação ou os componentes do computador afetem o comportamento celular de forma indesejada. Exploramos alternativas de vincular o autômato ao seu ambiente. Pesquisas recentes de câncer indicam que microRNAs, moléculas pequenas com funções regulatórias dentro das células, são melhores indicadores da doença, de modo que estamos reprojetando nosso computador para "falar" com o microRNA, em vez do mRNA.

Embora ainda estejamos longe de aplicar nosso dispositivo dentro de células vivas, sem falar em organismos vivos, já dispomos da importante prova de conceito. Ao associar um sintoma bioquímico de doença diretamente com os passos básicos de um computador molecular, nossa demonstração do tubo de ensaio confirmou que uma máquina autônoma consegue se comunicar com sistemas biológicos e realizar cálculos biologicamente significativos. Seu mecanismo de entrada percebe o ambiente no qual opera; o mecanismo de computação analisa esse ambiente; e o mecanismo de saída o afeta de forma inteligente, com base no resultado da análise.

Desse modo, nosso autômato cumpriu a promessa dos computadores biomoleculares de permitir a interação direta com o mundo bioquímico. E traz a ciência computacional de volta à visão original de Turing. As primeiras máquinas computadoras tiveram de se desviar de seu conceito para se ajustar às limitações das peças eletrônicas. Somente décadas depois, quando os biólogos moleculares começaram a revelar as operações de máquinas minúsculas dentro de células vivas, os cientistas da informática reconheceram um sistema em funcionamento semelhante à idéia abstrata de Turing acerca da computação.

Isso não significa que as moléculas tendem a substituir as máquinas eletrônicas em todas as tarefas computacionais. As duas espécies de computadores têm poderes diferentes e podem facilmente coexistir. Como as biomoléculas conseguem acessar dados codificados em outras biomoléculas, elas são compatíveis com os sistemas vivos como os computadores eletrônicos jamais serão. Assim acreditamos que nossos experimentos sugerem que essa espécie nova de computador é de importância fundamental e se mostrará valiosa para uma grande variedade de aplicações. O computador biomolecular ganhou vida.

Sem comentários: