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)