De tweede helft van de vorige eeuw  werd volledig gekenmerkt door een technologische revolutie: de softwarerevolutie. De mogelijkheid om elektronen  in silicium te programmeren liet technologieën,  bedrijven en industrieën ontstaan die toen voor velen van ons  nog onvoorstelbaar waren, maar die nu de aard van de wereld  fundamenteel hebben veranderd. Maar de eerste helft van deze eeuw zal worden getransformeerd  door een nieuwe softwarerevolutie: de revolutie van levende software. Die zal in staat zijn  om biochemie te programmeren op een materiaal dat we biologie heten. Daardoor zullen we gebruik kunnen maken  van de eigenschappen van de biologie om nieuwe soorten therapieën te ontwerpen, om beschadigd weefsel te herstellen, defecte cellen te herprogrammeren of zelfs biochemisch programmeerbare  besturingssystemen te bouwen. Als we dit kunnen realiseren --  en we moeten dit realiseren -- zal de impact ervan zo enorm zijn dat de eerste softwarerevolutie  erbij zal verbleken. 
Levende software zou de geneeskunde  namelijk helemaal veranderen, en ook de landbouw en energiesector, en deze sectoren overvleugelen veruit de sectoren gedomineerd door de IT. Stel je programmeerbare planten voor die stikstof efficiënter fixeren of nieuwe fungale pathogenen weerstaan, of zelfs eenjarige gewassen  tot doorlevende herprogrammeren zodat je je jaarlijkse oogst  zou kunnen verdubbelen. Dat zou de landbouw hervormen en onze groeiende wereldbevolking  van voedsel voorzien. Of stel je programmeerbare immuniteit voor door het ontwerpen en inschakelen  van moleculaire apparaten die je immuunsysteem leren om ziektes op te sporen, uit te roeien  of zelfs te voorkomen. Dit zou de geneeskunde hervormen en onze toenemende en vergrijzende  bevolking gezond houden. 
We hebben al veel methodes  om levende software te realiseren. We kunnen met CRISPR  genen precies bewerken. We kunnen de genetische code  base per base herschrijven. We kunnen zelfs functionerende  synthetische circuits bouwen uit DNA. Maar uitzoeken hoe en wanneer  deze tools te hanteren is nog maar in het stadium van gissen en missen. Er is diepgaande expertise  en jaren van specialisatie nodig. Experimentele protocollen  zijn moeilijk te ontdekken en maar al te vaak  moeilijk te reproduceren. In de biologie focussen we  ons vaak op de details, maar we weten toch dat iets als vliegen  niet begrepen kan worden door alleen maar veren te bestuderen. Het programmeren van biologie  gaat nog niet zo eenvoudig als het programmeren van je computer. Tot overmaat van ramp lijken levende systemen grotendeels  niet op de ontwikkelde systemen die jullie en ik elke dag programmeren. In tegenstelling tot technische systemen  doen levende systemen aan zelfgeneratie, zelforganisatie en werken ze op moleculaire schaal. Interacties op moleculair niveau leiden over het algemeen  tot een robuuste output op macroschaal. Ze kunnen zelfs zelfreparatie aan. 
Denk maar aan de nederige kamerplant die thuis op je schoorsteenmantel staat en die je vergat water te geven. Ondanks je verwaarlozing moet  die plant elke dag wakker worden en uitzoeken hoe ze  haar middelen zal benutten. Zal ze groeien, aan fotosynthese doen,  zaden produceren of bloeien? Dat is een beslissing  op het niveau van het hele organisme. Maar een plant heeft geen hersens  om dat allemaal uit te zoeken. Ze moet het doen  met de cellen op haar bladeren. Die moeten reageren op de omgeving en beslissingen nemen  die de hele plant beïnvloeden. Dus moet er in die cellen  een of ander programma lopen, een programma dat reageert  op ingangssignalen en bepaalt wat die cel zal doen. Dan moet dat programma  op een gedistribueerde manier werken in individuele cellen, zodat ze kunnen coördineren  en de plant kan groeien en bloeien. 
Als we deze biologische programma's  konden begrijpen, als we biologisch computeren begrepen, konden we snappen hoe en waarom cellen doen wat ze doen. Want als we deze programma's begrepen, konden we ze debuggen als er iets misgaat. Of konden we van hen leren  hoe synthetische circuits te ontwerpen die de rekenkracht  van de biochemie echt zouden benutten. 
Mijn passie over dit idee leidde me  naar een carrière in het onderzoek op het raakpunt van wiskunde,  informatica en biologie. In mijn werk richt ik me op het concept  van biologie als computerwerk. Dat betekent uitzoeken  wat cellen berekenen en hoe deze bio-programma's te vinden. Samen met enkele schitterende medewerkers  begon ik me dat af te vragen bij Microsoft Research  en de Universiteit van Cambridge waar we samen wilden begrijpen hoe biologische programma’s  verlopen in een uniek type cel: een embryonale stamcel. Deze cellen zijn uniek  omdat ze helemaal naïef zijn. Ze kunnen alles worden wat ze willen: een hersencel, een hartcel,  een botcel, een longcel, elk type volwassen cel. Deze naïviteit maakt ze speciaal, maar dat ontstak ook  de verbeelding van de wetenschappers, die beseften dat als we  dat potentieel konden aanboren, we een krachtige  medische tool zouden hebben. Als we kunnen achterhalen  hoe deze cellen beslissen om een of ander type cel te zijn, kunnen we dat misschien benutten om cellen te genereren die ziek  of beschadigd weefsel herstellen. Maar die visie realiseren  loopt niet van een leien dakje, vooral omdat deze specifieke cellen tot slechts zes dagen  na de bevruchting ontstaan. Na een paar dagen zijn ze weer weg. Ze volgen dan de verschillende paden die alle structuren en organen  van je volwassen lichaam gaan uitmaken. 
Maar nu blijkt het lot van cellen veel plastischer te zijn dan we eerder dachten. Ongeveer dertien jaar geleden vonden  enkele wetenschappers iets revolutionairs. Door het inbrengen van enkele genen  in een volwassen cel, zoals een huidcel, kan je die cel terug  naar de naïeve staat omvormen. Het is een proces dat bekend staat  als ‘herprogrammering’ en laat ons dromen van een stamcel-utopie, waar je een staal van de eigen cellen  van een patiënt kan nemen, ze terug naar de naïeve staat  kan transformeren en ze gebruiken om de cellen te maken  die de patiënt nodig heeft, ongeacht het nu hersen-  of hartcellen zijn. 
Maar in de afgelopen tien jaar bleef uitzoeken hoe het lot  van de cel te veranderen toch nog steeds een proces  van gissen en missen. Zelfs in gevallen waarin we succesvolle  experimentele protocollen hebben ontdekt, zijn ze nog steeds inefficiënt en weten we niet  hoe en waarom ze werken. Als je vindt hoe je een stamcel  in een hartcel kan veranderen, vertelt je dat nog niets  over hoe je een stamcel kan veranderen in een hersencel. Dus wilden we begrijpen hoe het biologische programma in een embryonale stamcel verloopt. Om de berekening te begrijpen  die verloopt in een levend systeem moet je beginnen  met een uiterst simpele vraag: wat moet dat systeem eigenlijk doen? 
Nu heeft de informatica  eigenlijk een set strategieën om om te gaan met wat de software  en de hardware moeten doen. Wanneer je een programma  of een stukje software schrijft, wil je dat die software goed werkt. Je wil prestaties, functionaliteit. Je wil bugs voorkomen. Die kunnen je duur komen te staan. Wanneer iemand  een programma schrijft, kan hij een bestek maken. Dat bepaalt wat  je programma hoort te doen. Misschien de grootte  van twee getallen vergelijken of ze ordenen naar grootte. Technologie bestaat  om automatisch na te gaan of aan onze specificaties is voldaan, of dat programma  doet wat het moet doen. Ons idee bestond erin  om op dezelfde manier na te gaan of experimentele waarnemingen,  dingen die we meten in het lab, beantwoorden aan specificaties van wat het biologische  programma moet doen. 
We hoefden maar een manier te vinden om deze nieuwe vorm  van specificatie te coderen. Stel dat je in het lab  uitzocht wat je genen doen en je ontdekte dat als gen A actief is, gen B of gen C ook actief lijken te zijn. We kunnen die observatie opschrijven  als een wiskundige uitdrukking. In de taal van de logica: als A, dan B of C. Nu is dit wel een heel  eenvoudig voorbeeld, oké. Alleen om het punt te illustreren. Maar we kunnen  echt rijke uitdrukkingen coderen die het gedrag van meerdere genen  of eiwitten in de tijd vastleggen over meerdere verschillende experimenten. Door onze observaties zo in wiskundige vorm te gieten, wordt het mogelijk om te testen  of deze waarnemingen al dan niet kunnen ontstaan uit een programma  van genetische interacties. 
We ontwikkelden een tool  om net dat te doen. We konden deze tool gebruiken  om waarnemingen te coderen als wiskundige uitdrukkingen en daardoor het genetische  programma ontdekken dat ze allemaal zou kunnen verklaren. En dan passen we deze aanpak toe om het genetische programma in embryonale stamcellen  zichtbaar te maken om te zien of we kunnen begrijpen  hoe die naïeve toestand te krijgen. Deze tool was eigenlijk gebouwd op een solver die routinematig wereldwijd wordt ingezet voor conventionele softwareverificatie. Dus begonnen we met een set  van bijna 50 verschillende specificaties gegenereerd uit experimentele  waarnemingen van embryonale stamcellen. Door het coderen van die  waarnemingen in deze tool, konden we het eerste  moleculaire programma ontdekken dat ze allemaal zou kunnen verklaren. 
Dat is toch wel  een prestatie op zich, niet? Al die verschillende waarnemingen  met elkaar verzoenen, is niet iets dat je even doet  op de achterkant van een envelop, zelfs niet op een echt grote envelop. Nu we dat begrepen,  konden we een stap verder. We kunnen dit gebruiken om te voorspellen  wat deze cel zou kunnen doen in nieuwe omstandigheden. We konden het programma  in silico uittesten. 
We deden precies dat: we maakten voorspellingen  die we testten in het lab en we vonden dat dit programma  een hoge voorspellende waarde had. Het vertelde ons hoe we  de voortgang konden versnellen om snel en efficiënt  naar de naïeve staat terug te keren. Het vertelde ons op welke genen  we ons moesten richten en welke genen dit proces  zelfs zouden kunnen hinderen. We vonden zelfs dat het programma de volgorde voorspelde  waarin de genen inschakelden. Deze benadering liet ons echt  de dynamiek ontdekken van wat de cellen doen. 
Wat we hebben ontwikkeld, is geen methode  die specifiek is voor stamcelbiologie. Nee, ze stelt ons in staat te begrijpen wat de cel aan berekeningen uitvoert in de context van genetische wisselwerkingen. Het is slechts één bouwsteen. Het gebied moet dringend  nieuwe methodes ontwikkelen voor een breder begrip  van biologische berekening en wel op verschillende niveaus, vanaf DNA tot aan  de informatiestroom tussen cellen. Alleen dit soort transformatief begrip zal ons toelaten om de biologie op een voorspelbare  en betrouwbare manier te benutten. 
Maar om biologie te programmeren,  is ook de ontwikkeling nodig van tools en talen waarmee zowel experimentalisten  als computationele wetenschappers biologische functies kunnen ontwerpen en dan die ontwerpen vertalen  naar het machinecodeniveau van de cel, haar biochemie, zodat we vervolgens  die structuren kunnen bouwen. Dat lijkt wel een samensteller van levende software en ik ben trots deel te zijn  van een team van Microsoft dat werkt aan de ontwikkeling daarvan. Dat het een grote uitdaging is, is wel een understatement, maar eens gerealiseerd, zou het de laatste brug zijn tussen software en wetware. 
Biologieprogrammering zal echter alleen maar mogelijk worden als we het gebied echt  interdisciplinair kunnen maken. De wetenschappen van de fysica  en het leven moeten we verbinden en wetenschappers uit  elk van deze disciplines moeten kunnen samenwerken  met gemeenschappelijke talen en gedeelde wetenschappelijke vragen. 
Uiteindelijk moeten we beseffen  dat veel van de grote softwarebedrijven en de technologie waarmee wij dagelijks werken, nauwelijks voorstelbaar was toen we voor het eerst programmeerden op silicium microchips. Nu we gaan nadenken  over de technologische mogelijkheden van de computationele biologie, zien we een aantal van de stappen  die we moeten nemen om dat te realiseren. Nu is er de ontnuchterende gedachte  dat van dit soort technologie misbruik gemaakt kan worden. Als we willen praten over de mogelijkheden van immuuncellen programmeren, moeten we ook bedenken dat we bacteriën kunnen ontwerpen  om ze ontwijken. Er kunnen mensen zijn  die dat zouden willen doen. Een geruststellende gedachte is dat -- nou ja, minder  voor de wetenschappers -- is dat biologie een fragiel ding is  om mee te werken. Biologie programmeren is niet iets dat je in je tuinhuisje gaat doen. Omdat we aan het begin hiervan staan, kunnen we verder gaan  met onze ogen wijd open. We kunnen vooraf  de moeilijke vragen stellen, de nodige waarborgen instellen en gecombineerd hiermee  nadenken over onze ethiek. We moeten nadenken  over het trekken van grenzen voor het implementeren  van biologische functies. Als onderdeel hiervan zal onderzoek  in de bio-ethiek prioritair moeten zijn. Ze mag niet op de tweede plaats komen in de opwinding  over de wetenschappelijke innovatie. 
Maar de ultieme prijs,  de ultieme bestemming op deze reis, zouden baanbrekende toepassingen  en baanbrekende industrieën zijn op het gebied van landbouw,  geneeskunde, energie en materialen, en zelfs van het computeren. Stel dat we ooit de planeet duurzaam  konden voorzien van ultieme groene energie als we iets zouden kunnen nabootsen wat  planten millennia geleden al uitvonden: hoe zonne-energie te benutten  met een rendement dat buiten het bereik ligt van onze huidige zonnecellen. Als we het programma begrepen van de kwantuminteracties die planten het zonlicht  zo efficiënt laten absorberen, konden we dat vertalen  in de bouw van synthetische DNA-circuits die een materiaal vormen voor betere zonnecellen. Er zijn nu teams en wetenschappers  die aan de fundamenten hiervan werken. Met de juiste aandacht  en de juiste investeringen, zou het in 10 of 15 jaar  kunnen worden gerealiseerd. 
We staan dus aan het begin  van een technologische revolutie. Inzicht in deze oude soort  van biologische berekening is de cruciale eerste stap. Als we dit kunnen realiseren, zouden we het tijdperk betreden  van een besturingssysteem dat levende software draait. 
Veel dank. 
(Applaus) 
