A segunda metade do século passado foi completamente definida
por uma revolução tecnológica:
a revolução do software.
A capacidade de programar elétrons em um material chamado silício
possibilitou tecnologias, empresas e indústrias
que eram, em algum momento, inimagináveis para muitos de nós,
mas que, agora, mudaram fundamentalmente a maneira como o mundo funciona.
Porém a primeira metade deste século
será transformada por uma nova revolução de software:
a revolução do software vivo.
Ela será movida pela capacidade de programar a bioquímica
em um material chamado biologia.
Isso nos permitirá aproveitar as propriedades da biologia
para gerar novos tipos de terapias,
reparar tecidos danificados,
reprogramar células defeituosas
ou até construir sistemas operacionais programáveis a partir da bioquímica.
Se conseguirmos perceber isso, e precisamos perceber,
o impacto será tão grande
que a primeira revolução do software perderá importância na comparação.
Isso ocorre porque o software vivo transformaria toda a medicina,
agricultura e energia,
que são setores que diminuem aqueles dominados pela TI.
Imaginem plantas programáveis que fixam o nitrogênio de maneira mais eficaz
ou resistem a patógenos fúngicos emergentes,
ou até mesmo programar as safras para serem perenes, em vez de anuais,
para que a produção seja duplicada a cada ano.
Isso transformaria a agricultura
e o modo como manteremos alimentada nossa crescente população global.
Ou imaginem uma imunidade programável,
o projeto e o aproveitamento de dispositivos moleculares
que guiam o sistema imunológico
para detectar, erradicar, ou até mesmo prevenir doenças.
Isso transformaria a medicina
e o modo como manteremos saudável nossa crescente população de idosos.
Já temos muitas das ferramentas
que tornarão o software vivo uma realidade.
Podemos editar genes com precisão usando o CRISPR,
reescrever o código genético uma base por vez
e até construir circuitos sintéticos funcionais a partir do DNA.
Mas descobrir como e quando usar essas ferramentas
ainda é um processo de tentativa e erro.
Requer conhecimento profundo e anos de especialização.
Protocolos experimentais são difíceis de descobrir
e frequentemente difíceis de reproduzir.
Na biologia, temos a tendência de focar muito as partes,
mas todos sabemos que algo como voar
não seria entendido apenas pelo estudo das penas.
Programar biologia não é tão simples quanto programar um computador.
Para piorar a situação,
sistemas vivos não têm grande semelhança com sistemas de engenharia
que programamos todos os dias.
Ao contrário de sistemas de engenharia, sistemas vivos se autogeram,
se auto-organizam,
operam em escalas moleculares.
Essas interações de nível molecular
levam geralmente a resultados robustos em macroescala.
Esses sistemas conseguem até mesmo se autocorrigirem.
Considerem, por exemplo, a humilde planta doméstica,
como aquela de sua casa,
que você se esquece de regar.
Todos os dias, apesar de sua negligência, essa planta precisa acordar
e descobrir como alocar seus recursos.
Ela crescerá, fará fotossíntese, produzirá sementes ou flores?
Essa é uma decisão que deve ser tomada no nível de todo o organismo.
Mas uma planta não tem cérebro para tomar decisões.
Ela tem que se virar com as células de suas folhas,
que precisam reagir ao meio ambiente
e tomar as decisões que afetam toda a planta.
De alguma forma, deve haver um programa em execução dentro dessas células,
que responde às pistas e aos sinais de entrada
e modela o que essa célula fará.
Depois, esses programas devem operar de modo distribuído
entre células individuais
para que possam se coordenar
e para que essa planta consiga crescer e florescer.
Se conseguíssemos entender esses programas biológicos
e a computação biológica,
isso transformaria nossa capacidade de entender como e por que
as células fazem o que fazem.
Porque, se entendêssemos esses programas, poderíamos detectar e eliminar erros.
Ou poderíamos aprender com eles a projetar o tipo de circuitos sintéticos
que realmente exploram o poder computacional da bioquímica.
Minha paixão por essa ideia me levou a uma carreira de pesquisa
em matemática, biologia e ciência da computação.
Em meu trabalho, eu me concentro no conceito de biologia como computação.
Isso significa perguntar o que as células computam,
e como podemos descobrir esses programas biológicos.
Comecei a fazer essas perguntas com alguns colaboradores geniais
da Microsoft Research e da Universidade de Cambridge,
onde, juntos, queríamos entender
o programa biológico em execução dentro de um tipo único de célula:
uma célula-tronco embrionária.
Essas células são únicas porque são totalmente simples.
Elas conseguem se transformar no que quiserem:
uma célula cerebral, cardíaca, óssea, pulmonar,
qualquer tipo de célula adulta.
Essa simplicidade as diferencia,
mas também estimula a imaginação da comunidade científica,
que percebeu que, se conseguíssemos aproveitar esse potencial,
teríamos uma ferramenta poderosa para a medicina.
Se conseguíssemos descobrir como essas células decidem
se tornar um tipo de célula ou outra,
poderíamos aproveitá-las para gerar células necessárias
para reparar tecidos doentes ou danificados.
Mas perceber que essa visão não está isenta de desafios,
principalmente porque essas células específicas
surgem apenas seis dias após a concepção
e, cerca de um dia depois, elas se foram.
Seguiram os diferentes caminhos
que formam todas as estruturas e órgãos do corpo adulto.
Mas acontece que o destino das células é muito mais plástico
do que poderíamos imaginar.
Cerca de 13 anos atrás, alguns cientistas mostraram algo realmente revolucionário.
Ao introduzir apenas um punhado de genes em uma célula adulta,
como uma das células da pele,
podemos transformar essa célula de volta ao estado simples.
É um processo conhecido como "reprogramação",
que nos permite imaginar um tipo de utopia de células-tronco:
a capacidade de coletar uma amostra das células de um paciente,
transformá-las de volta ao estado simples
e usá-las para fazer o que o paciente precisar,
sejam células cerebrais ou cardíacas.
Mas, ao longo da última década,
descobrir como mudar o destino das células
ainda é um processo de tentativa e erro.
Mesmo nos casos em que descobrimos protocolos experimentais bem-sucedidos,
eles ainda são ineficientes,
e nos falta um entendimento fundamental de como e por que eles funcionam.
Descobrir como transformar uma célula-tronco em uma cardíaca
não dirá como transformar uma célula-tronco
em uma célula cerebral.
Queríamos entender
o programa biológico em execução dentro de uma célula-tronco embrionária.
O entendimento da computação realizada por um sistema vivo
começa por uma pergunta incrivelmente simples:
"O que esse sistema realmente precisa fazer?"
A ciência da computação tem um conjunto de estratégias
para lidar com o que o software e o hardware estão destinados a fazer.
Ao escrever um programa, você codifica um software,
e quer que ele seja executado corretamente.
Você quer desempenho, funcionalidade.
Quer evitar erros,
que podem lhe custar muito.
Quando um desenvolvedor programa,
ele poderia anotar uma série de especificações
que o programa deveria fazer.
Talvez deveria comparar o tamanho de dois números
ou ordená-los de forma crescente.
A tecnologia nos permite verificar automaticamente
se nossas especificações são atendidas,
se o programa faz o que deveria fazer.
Então, nossa ideia era que, do mesmo modo,
as observações experimentais, que avaliamos no laboratório,
correspondam às especificações do que o programa biológico deveria fazer.
Só precisávamos descobrir uma forma
de codificar esse novo tipo de especificação.
Digamos que você estivesse ocupado no laboratório avaliando seus genes
e descobrisse que, se o gene A está ativo,
então o gene B ou C parece estar ativo.
Podemos anotar essa observação como uma expressão matemática
se pudermos usar a linguagem da lógica:
se A, então B ou C.
Esse é um exemplo muito simples,
apenas para exemplificar a questão.
Podemos codificar expressões muito ricas
que capturam o comportamento de múltiplos genes ou proteínas ao longo do tempo
através de vários experimentos diferentes.
Assim, ao traduzir nossas observações
em expressão matemática dessa forma,
é possível testar se essas observações podem ou não surgir
de um programa de interações genéticas.
Desenvolvemos uma ferramenta para fazer exatamente isso.
Conseguimos utilizá-la para codificar observações
como expressões matemáticas,
e essa ferramenta nos permitia descobrir o programa genético
que poderia explicar todas elas.
Em seguida, aplicamos essa abordagem para descobrir
o programa genético em execução dentro das células-tronco embrionárias
para ver se conseguíamos entender como induzir aquele estado simples.
Essa ferramenta, na verdade, foi construída
num solucionador implantado frequentemente no mundo todo
para verificação de software convencional.
Começamos com um conjunto de quase 50 especificações diferentes
que geramos a partir de observações experimentais
de células-tronco embrionárias.
Ao codificar essas observações nessa ferramenta,
conseguimos descobrir o primeiro programa molecular
que poderia explicar todas elas.
Isso por si só é uma façanha.
Conseguir conciliar todas essas observações diferentes
não é o tipo de coisa que se pode fazer no verso de um envelope,
mesmo que ele seja muito grande.
Com esse tipo de entendimento, poderíamos dar um passo adiante
e usar esse programa para prever o que essa célula podia fazer
em condições que ainda não havíamos testado.
Poderíamos examinar o programa por meio de simulações.
Foi o que fizemos:
geramos previsões, que testamos no laboratório,
e descobrimos que esse programa era altamente preditivo.
Ele informava como poderíamos acelerar o progresso
de volta ao estado simples de maneira rápida e eficiente,
quais genes selecionar para fazer isso
e quais deles até podem dificultar esse processo.
Até descobrimos que o programa previa a ordem na qual os genes seriam ativados.
Essa abordagem nos permitiu descobrir a dinâmica
do que as células estão fazendo.
Não desenvolvemos um método específico para a biologia de células-tronco.
Em vez disso, esse método permite entender a computação realizada pela célula
no contexto de interações genéticas.
É apenas um componente básico.
A área precisa desenvolver, com urgência, novas abordagens
para entender a computação biológica de modo mais amplo e em níveis diferentes,
desde o DNA até o fluxo de informações entre as células.
Somente esse tipo de entendimento transformador
nos permitirá aproveitar a biologia de maneiras previsíveis e confiáveis.
Mas, para programar a biologia,
também precisaremos desenvolver os tipos de ferramentas e linguagens
que permitam aos experimentalistas e aos cientistas da computação
projetar funções biológicas,
e que esses projetos sejam compilados até o código de máquina da célula,
sua bioquímica,
para que possamos, então, construir essas estruturas.
Isso é algo semelhante a um compilador de software vivo,
e me orgulho de fazer parte
de uma equipe da Microsoft que trabalha para desenvolver um.
Embora seja um eufemismo dizer que é um grande desafio,
a sua realização
seria a ponte final entre o software e o cérebro humano.
Mais amplamente, porém, a programação da biologia só será possível
se pudermos transformar a área em algo verdadeiramente interdisciplinar.
Precisamos relacionar as ciências físicas e a vida,
e os cientistas de cada uma dessas disciplinas
precisam conseguir trabalhar juntos com linguagens comuns
e compartilhar questões científicas.
A longo prazo, vale lembrar que muitas das empresas gigantes de software
e a tecnologia com a qual trabalhamos todos os dias
dificilmente poderiam ser imaginadas
quando começamos a programar em microchips de silício.
Se começarmos agora a pensar
no potencial da tecnologia possibilitada pela biologia computacional,
veremos alguns dos passos que precisamos seguir pelo caminho
para torná-la realidade.
É desanimador pensar que esse tipo de tecnologia
pode estar aberto ao uso indevido.
Se quisermos falar sobre o potencial de programar células imunológicas,
também devemos pensar no potencial de bactérias projetadas para evitá-las.
Pode haver pessoas dispostas a fazer isso.
Um pensamento animador a respeito,
menos para os cientistas,
é a fragilidade do trabalho com a biologia.
Programar biologia não será algo que você fará no galpão do quintal.
Mas, como estamos no início,
podemos avançar com os olhos bem abertos.
Podemos fazer as perguntas difíceis com antecedência,
pôr em prática as proteções necessárias
e, como parte disso, teremos que pensar em nossa ética.
Teremos que pensar em colocar limites na implementação da função biológica.
Como parte disso, a pesquisa em bioética terá que ser uma prioridade.
Não pode ser relegada ao segundo plano
na empolgação da inovação científica.
Mas o prêmio final, o destino final dessa jornada,
seriam aplicações e indústrias inovadoras
em áreas como agricultura, medicina, energia e materiais
e até a própria computação.
Imaginem, um dia, podermos alimentar o planeta de modo sustentável
com a energia verde final,
se pudéssemos imitar algo que as plantas descobriram há milênios:
como aproveitar a energia do Sol com uma eficiência sem paralelo
por nossas células solares atuais.
Se entendêssemos esse programa de interações quânticas
que permitem que as plantas absorvam a luz do Sol com tanta eficiência,
poderíamos traduzir isso na construção de circuitos de DNA sintético
que oferecessem o material para células solares melhores.
Há equipes e cientistas trabalhando nos fundamentos disso neste momento.
Se talvez recebessem a atenção e o investimento adequados,
isso poderia ocorrer em 10 ou 15 anos.
Estamos no início de uma revolução tecnológica.
Compreender esse tipo antigo de computação biológica
é o primeiro passo decisivo.
Se pudermos perceber isso,
entraremos na era de um sistema operacional
que executa software vivo.
Muito obrigada.
(Aplausos)