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)