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)