Ligações Improváveis: RNA antisense, Sudoku e Redes Neurais
A ciência é cheia de ligações improváveis.
Veja por exemplo o estudo das partículas subatômicas e seus spins: quem diria que conhecer isso poderia permitir uma revolução na neurociência? Entendendo como o núcleo atômico dos átomos se comporta em um campo magnético foi possível construir o aparelho que permite literalmente olhar dentro de nosso cérebro, passando bem longe de um desconfortável bisturi: o aparelho de Ressonância Magnética Nuclear Funcional (geralmente os hospitais e clínicas tiram o “Nuclear” do nome porque isso assusta os pacientes; é sério!).
Chamamos essas ligações de “improváveis” principalmente por causa da sua contra-intuitividade, afinal quem pensaria em analisar o comportamento de cérebros ao se estudar algumas das menores coisas do universo!? Fazer essas pontes é o que se precisa para criar inovação, e é exatamente na busca desse tipo de coisa que nas últimas reuniões do Clube de Biologia Sintética começamos a fazer algumas ligações (não necessariamente na ordem do título) que “do lado de fora” têm uma aparência improvável, mas que no fundo talvez só sejam contra-intuitivas.
Tudo começou, ou melhor, tudo deveria ter começado (para amenizar a aparente desconexão) falando-se da mais novinha regulação de expressão gênica no mundo das descobertas científicas:
O RNA de Interferência
É mais uma daquelas descobertas “nobélicas”, estudada pelos pesquisadores americanos Andrew Fire e Craig Mello em 1998, ganhando o prêmio em 2006. A grande ideia dos RNAs de interferência (iRNA) é o pareamento de pequenos segmentos de RNA – que não são codificados em proteínas – com RNAs mensageiros, impedindo que sejam traduzidos por “bloquear” o ribossomo . Esse sistema de inibição gênica envolve várias enzimas (se quiser saber mais veja esse ótimo vídeo) e é um pouco mais complexo do que o sistema de regulação gênica daquilo que chamamos de RNA antisense, mas na essência funcionam do mesmo jeito: bloqueio da tradução através de um RNA antisense complementar. A grande diferença entre os RNAs antisense e os de interferência, que são comumente confundindos com sinônimos, é que os iRNA atuam através de toda uma via de reações enzimáticas em eucariotos, enquanto os RNA antisense são mais característicos de seres procarióticos e não precisam de uma via enzimática para regularem a expressão gênica.
Diferentemente dos outros tipos de regulação mediados por inibidores, que são basicamente proteínas que se ligam ao DNA inibindo a transcrição gênica, com os RNAs antisense têm-se uma gama muito maior de inibidores da expressão gênica. Imagine que você quer controlar uns 2 ou 3 genes em uma bactéria: existem muitos metabólitos que podem fazer esse trabalho (por exemplo IPTG, galactose, TetR e etc.), mas e se você quiser ter um controle de mais genes, digamos, uns 20!? Dá-lhe repressores! Por outro lado, se for possível usar RNAs de interferência suficientemente eficientes, poderia se fazer um vetor de transformação bem mais enxuto (em relação aos sítios repressores) além de poder construir um mecanismo de repressão mais orientado ao “alvo” de repressão: basta construir um RNA mensageiro complementar. É exatamente essa versatilidade que torna possível contruir uma…
Bactéria Resolvedora de Sudoku
Legal: Sudoku, Bactérias e RNA antisense… O que essas coisas têm a ver!?
Essa grande ideia veio do time japonês UT-Tokyo do iGEM de 2010, e além de usar RNAs antisense, também usou do dispositivo gênico baseado em recombinases semelhante ao que o time da Unicamp usou em 2009 para a mesma finalidade, que é diferenciar diferentes populações de bactérias. O sistema que eles criaram funciona basicamente assim:
Populações Diferentes
Eles representaram (em um sudoku 4×4) cada posição por uma população específica de E.coli’s. Cada posição tem algo em seu DNA que a torna diferente de todas.
Diferentes Estados
Cada população pode se diferenciar em quatro tipos diferentes de E.coli’s correspondentes à cada número que um sudoku 4×4 permite (1, 2, 3 e 4).
Comunicação entre as Posições (Populações)
As populações devem se comunicar para transmitir a informação de suas posições para as outras posições; afinal é assim que se resolve um sudoku: podemos dizer que uma posição é 1, 2, 3 ou 4 depois de recebermos as informações de quais números existem no quadrado, linha e coluna correspondente à posição em questão.
Essa comunicação é feita através de vetores virais, que são vírus que as bactérias produzem para infectar as outras populações correspondentes às outras posições, transmitindo as informações que possuem (como sua “posição” e “estado”: 1, 2, 3 ou 4).
Diferenciação dos Estados
Para o sudoku funcionar, quando uma posição identificar qual é o estado de suas vizinhas, ela deve se diferenciar justamente no estado que não recebeu sinal. Por exemplo (imagem ao lado), se a posição (1,1) (linha 1, coluna 1) receber as informações de que certas posições em seu quadrado, linha e coluna já estão diferenciadas nos estados 3, 2 e 1, ela deve se diferenciar em 4. Para conseguir fazer isso, os japoneses usaram o dispositivo chamado “4C3 leak switch”, que se baseia na probabilidade de uma polimerase em “ignorar” os sítios terminadores de transcrição. Para entender melhor, veja a imagem abaixo:
Cada gene codifica um tipo de recombinase (as setinhas apontando para a esquerda: Hin, flpe, Ligand 3 e Ligand 4). Quando a E.coli for infectada por um vírus de uma posição com que se comunica, ele inserirá um plasmídeo que expressa uma dessas 4 recombinases, agindo nas posições que flanqueam o mesmo gene na bactéria. Por exemplo, na imagem da diferenciação dos estados, a posição (2,2) envia um vírus à (1,1) passando a informação de que possui o estado “2”, expressando a recombinase flpe e retirando o respectivo gene do plasmídeo bacteriano através das posições FTR que flanqueiam o gene (ver imagem acima). Ao fazer isso, também retirará o sítio terminador que fica entra os FTR, aumentando a probabilidade da polimerase atravessar todas as sequências de recombinases de sequências invertidas e expressar a cre recombinase (setinha cinza apontando para a direita). Depois, se a posição (1,1) receber mais dois vírus diferentes, ele perderá 3 genes de recombinase e três sítios terminadores, restando apenas um sítio terminador entre o promotor pT7 e o gene cre. Nesse estágio, a probablilidade de a polimerase ultrapassar o sítio terminador (daí que vem o “leak”) é considerável, e quando o faz, transcreve a cre recombinase, que retira seu próprio gene e os dois sítios terminadores duplos depois dele, conectando o gene de recombinase que não foi retirado do plasmídeo junto dos genes que também estão em sentido reverso, transcritos pelo promotor pSP6. Além disso promove a produção de vírus através da retirada dos dois sítios de parada que separam o segundo promotor pT7 do gene que transcreve a polimerase que atua no promotor pSP6 e o gene que produz o capsídeo do vírus. O empacotamento das sequências genéticas no vírus acontecem após a loading sequence (retângulo rosa). Isso faz com que a posição 1 passe também a “emitir” vírus informando seu estado e posição.
Para entender de verdade, vale assistir o vídeo (começa mesmo aos 24 seg) que o próprio time japonês fez para mostrar o funcionamento do sistema (percebam o sotaque!):
Restrição de Posições
Para isso dar certo é preciso que somente as populações da respectiva linha, coluna e quadrado comuniquem-se entre si, ou seja, deve have uma restrição à comunicação entre as populações de posições não-relacionadas segundo o sudoku. Como isso é feito!? Sim! RNAs antisense!
Tudo isso só consegue funcionar graças à atuação dos RNAs antisense que coordenam o fluxo de informação entre as diferentes populações associadas às diferentes posições do sudoku. Na imagem do 4C3 leak switch são as location sequence que contém todas as sequências codificantes dos RNAs de interferência de cada posição. Com isso é possível construir uma tabela de correspondência de antisense que dirá quais antisense uma posição deve fazer para inibir a atuação dos vírus de outras posições não-relacionadas:
Mas espera aí! O sudoku é uma tabela 2D, como é possível separar as diferentes populações, uma em cada posição característica, e assim fazer a transferência de informação!? É preciso construir algo físico – uma tabela de sudoku de verdade – para esse sistema sintético!? Resposta: não é preciso “separar” as populações, a interação entre os RNAs antisense dos vírus de cada população que remete à uma posição dá conta do recado. Você pode misturar todas a populações em um tubo de ensaio (com o input, é claro) e depois analisar os estados de cada bactéria pertencente à um tipo de população (por sequenciamento) e assim saber o resultado do sudoku.
Esse conceito de restrição de informação por RNAs antisense, e esse fluxo de informação por vírus é essencial para se entender o que estávamos discutindo no clube de biologia sintética, sobre como fazer em um sistema bactériano uma…
Rede Neural
Por fim: rede neural! Como fazer um dispositivo biológico sintético que imite uma rede neural!?
Bem, abstratamente falando, uma rede neural pode ser simbolizada através da imagem ao lado: os neurônios (as bolinhas) e suas ligações. O que temos em comum entre esses sistema e o sudoku são que temos posições espaciais trocando informações e seguindo um padrão. No sudoku o que restringe o fluxo de informação são as regras que pré-estabelecemos para o jogo, no sistema neuronal o que restringe a comunicação é apenas o espaço (existe um número finito de ligações axônicas que os neurônios podem fazer devido à limitação de espaço), além de outro fator: o “peso” dessas interações, que associa uma intensidade de fluxo de informação entre neurônios (o aumento desses “pesos” durante o tempo devido a um estímulo é o que chamamos de aprendizado).
Rede de Hopfield
Para querer fazer o design de um sistema sintético que se comporte como uma rede
neural devemos usar um modelo que represente uma rede neural! Existem vários deles, mas um mais simples e talvez o mais interessante para usarmos é a Rede de Hopfield, muito usada em computadores para reconhecimento de padrões. Hopfield é chama de uma rede de memória associativa pois consegue armazemar memória através da associação de informações existentes na comunicação entre vários neurônios. Uma das implicações disso é a capacidade de recuperar esse padrão mesmo quando dado um padrão incompleto.
Exemplo do Funcionamento
Imaginemos que, semelhantemente ao sudoku, também tenhamos uma matriz com posições, só que agora 3×3 e tendo apenas dois estados: “preenchida” ou “ativada”(denotada por 1), e “não-preenchida” ou “inativada” (denotada por 0). Podemos construir então “letras” preenchendo essas posições. Queremos que nosso sistema reconheça o padrão incompleto dessas letras e complete-o com sua memória:
Legal, mas como funciona o algoritmo disso!? Basicamente é com a definição das conexões que esses dois padrões têm. Partindo da hipótese que somente as posições próximas podem se comunicar (assim como neurônios, em um modelo simplificado), no padrão que pré-estabelecemos para o sistema, a comunicação entre duas posições preenchidas é considerada excitatória, ou seja, uma posição influencia a outra a permanecer ativada; já quando uma posição não-preenchida se comunica com uma preenchida, a comunicação é considerada inibitória; e por fim, quando duas posições não-preenchidas estão uma ao lado da outra, há indiferença e não há ativação ou inibição entre si (ver imagem abaixo). Com isso podemos criar uma rede de comunicação característica de cada figura com os pesos dos padrões.
Para a rede reconhecer ambos os padrões, deve-se somar os pesos dos padrões L e T:
Cada peso de comunicação da soma dos pesos é computada para reestabelecer um dos padrões da memória dado um padrão incompleto. Vejamos o exemplo da imagem abaixo: um L incompleto. Para decidir se a posição não-preenchida se preencherá é preciso computar o padrão incial em relação aos pesos na “memória da rede” com a expressão abaixo, em que wik é o peso da interação entre a posição em questão (denotada por i) e uma determinada posição k.
Então somando-se os produtos entre os estados xk (das k posições comunicando-se com a posição incompleta) e os pesos wik das interações entre as k posições e a posição incompleta, define-se o estado que a posição incompleta deve ter: se é de fato um estado inativado ou ativado (preenchido):
x(3,1) = 1 . 1 + 0 . 1
x(3,1) = 1
Portanto, segundo a interação associativa da rede, a posição (3,1) torna-se em um estado ativado (1) completando a letra L. Para diferentes inputs o cálculo é o mesmo e (com algumas exceções) o sistema sempre se ajusta à um dos dois padrões de sua memória: ou um L ou um T.
Como Fazer isso com Bactérias
Assim comom no sudoku, podemos criar diferentes populações de bactérias para cada posição além de – pelo mesmo mecanismo – uma rede de transmissão de RNAs antisense por vírus baseando-se na tabela de pesos das interações entre as populações existentes (a “memória” do sistema), de modo que cada posição tenha os antisense corretos para reprimir ou estimular a produção de uma determinada proteína repórter para cada posição! O que se diferenciaria do sudoku é que precisaríamos construir um aparelho literal do sistema que queremos construir, ou seja: é preciso separar as diferentes populações para discernir os outputs para saber ao certo qual população referente emitiu luz verde por GFP, por exemplo. O input também poderia ser luz, feito através de um light switch.
E assim o ciclo das relações um tanto improváveis se fecha. Mas como a ciência é extremamente mutável vários outros assuntos podem se juntar nessa ciranda e dar origem a outras “improbabilidades”. Você, leitor, também pode fazer parte desse trabalho ou pelo menos acompanhar de perto e conhecer um pouco melhor sobre essas coisas que andam rolando nas discussões do clube de biologia sintética através das reuniões gravadas, em especial (sobre como fazer uma rede neural artificial em bactérias) essa aqui no nosso canal no LiveStream.
Quem sabe possamos colocar em prática tudo isso!? Vejamos em 2012!