Tijdens m’n bachelor heb ik een paar keer wat computersimulaties gedaan. Voor degenen die onbekend zijn met simulaties zal ik in het volgende voorbeeld inzichtelijk maken wat dat inhoudt. Stel je voor dat je met een keu tegen een biljartbal stoot. Als je precies weet hoe zwaar die bal is en hoe hard je stoot, kun je behoorlijk berekenen waar die bal terecht komt. Je kunt hierbij een aanname maken over hoeveel snelheid de biljartbal verliest door het rollen (rolweerstand) en hoeveel tijdens het stoten tegen de rand van de pooltafel. Dit is best lastig om te berekenen, dus wordt de berekening op een computer gedaan: een computersimulatie. Op ieder interessant punt in de tijd wordt er gekeken wat de snelheid van de bal is. Dan worden alle krachten die op de biljartbal werken (rolweerstand, inelastisch botsen) in overweging genomen en er wordt een nieuwe (kleinere) snelheid berekend. Herhaal dit totdat de snelheid van de bal nul is en teken de baan van de bal uit op grafiekpapier. Dit is je eerste, echte simulatie. Als je een beetje handig bent met Excel zou je dit ook prima zelf op de computer kunnen doen. (Als je écht handig bent met computers raad ik je C of Python aan.)
Je kan nu goed zien wanneer computersimulaties handig zijn: zou je nu een heleboel biljartballen op de tafel hebben liggen, dan is dit niet meer redelijk met Excel te doen. Mijn eerste simulatie bestond ook uit een driedimensionale doos met stuiterballen zonder zwaartekracht. Nee, dat is niet helemaal waar. Mijn eerste echte simulatie was drie jaar daarvoor. Ik simuleerde twee puntjes die elkaar (magnetisch) aantrokken, zonder wrijving, zonder zwaartekracht, in twee dimensies. In Excel.
Nu eiwitten. Eiwitten zijn de werkers van alle cellen in alle organismen. Eiwitten zijn verschrikkelijk ingewikkelde dingen. In een cel worden een reeks van aminozuren aan elkaar geregen tot een lange ketting. Die ketting wordt daarna heel specifiek gevouwen en opgepropt. Daarna worden er misschien stukjes vanaf geknipt, andere stukjes van andere kettingen aan geplakt, dán worden er misschien nog wel wat suikers aan geplakt en met een beetje geluk wordt het geheel ook nog eens in een vettige envelop ingepakt om verstuurd te worden. Als het eiwit op de plaats van bestemming is gekomen, wordt het uitgepakt om daar z’n werk te doen. De werking van het eiwit hangt af van de soorten aminozuren waaruit het eiwit opgebouwd is en hoe het eiwit gevouwen.
Een van de grote vragen in de wetenschap is “Hoe gedraagt een eiwit zich?” Een nog grotere vraag is: “kunnen we voorspellen hoe een eiwit zich gedraagt, als we weten hoe de aminozuur-volgorde is?” En dat is waar de computersimulaties om de hoek komen kijken. Je zou je bijvoorbeeld kunnen afvragen hoe twee eiwitten zich gedragen als ze elkaar tegenkomen. Stel, ze binden zich aan elkaar (“docking“), hoe verandert de stuctuur van die eiwitten dan? Om dit wat inzichtelijker te maken, heb ik twee afbeeldingen voor jullie opgezocht uit m’n persoonlijke archief, van twee eiwitten die aan elkaar gebonden zijn. Het is een beetje lastig om een eiwit weer te geven, want atomen kun je niet zien. Daarnaast hebben de meeste eiwitten geen eigen kleur. De twee meestgebruikte manieren om een eiwit af te beelden heten “ruimtevullend” (links) en “lint” (rechts). De derde “bolletjes-en-stokjes”-weergave is niet zo heel geschikt voor eiwitten, maar wordt wel vaak voor kleinere, organische moleculen gebruikt.
En omdat simulaties van die mooie afbeeldingen geven, heb ik hier nog een gecomputerde plaatjes van een eiwit waar alle drie de soorten weergaven gebruikt zijn voor één en hetzelfde eiwit. Door sommige delen op andere manieren weer te geven — bijvoorbeeld van het bindende gedeelte bolletjes-en-stokjes te gebruiken, en niet-bindende delen lint-weergave — kan een getraind oog enorm veel leren van deze afbeelding.
Zo. Nu weten we een beetje over simulaties en over eiwitten. Helaas gaat het leven van een wetenschapper niet over rozen. Het simuleren van eiwitten is helemaal niet eenvoudig. Sterker nog, het is een drama: eiwitten in water bewegen de hele tijd. Als er een beetje zout of zuur bij komt, beweegt hij weer anders. En als hij in het ene gedeelte van een cel zit, is hij anders gevouwen dan in een ander gedeelte van een cel. Ook zijn eiwitten veel te groot om “exact” te berekenen hoe ze gevouwen zijn (kwantummechanisch), laat staan dat te berekenen is hoe ze reageren op andere eiwitten.
Wetenschappers zijn al decennia op zoek naar oplossingen voor dat probleem. De eenvoudigste manier is snellere computers kopen. Maar zelfs de grootste en snelste computers op deze aarde zijn nog niet goed genoeg om kleine eiwitten door te rekenen. Wetenschappers moeten wat ze al weten over eiwit-interactie in de simulatie meegeven. In plaats van te berekenen hoe de atomen zich gedragen waaruit het eiwit bestaat, wordt gekeken hoe de aminozuren zich gedragen. De atomen waar de aminozuren uit bestaan, zitten dan vast. Een nog grotere vereenvoudiging is om een aantal aminozuren die achter elkaar zitten, als star te beschouwen. Als een bepaalde reeks aminozuren in een slinger zitten, en die slinger komt voor in een heleboel verschillende eiwitten, dan is het interessant om eens te onderzoeken of die slinger altijd eenzelfde soort functie heeft. Misschien grijpt die slinger wel altijd aan een celwand, of hij houdt water uit de buurt van de bindingsplaats. Of als er een reeks aminozuren een hol buisje vormt, vervoert het eiwit daar misschien wel iets door. Het is allemaal mogelijk.
Samengevat: eiwitten zijn grote, opgepropte slingers van aminozuren. Om te simuleren hoe eiwitten zich gedragen, wordt bekeken hoe ieder aminozuur zich gedraagt. Aminozuren kunnen ten opzichte van elkaar een beetje bewegen en draaien, maar niet veel. Naast dat twee aminozuren niet op dezelfde plek kunnen zijn, voelen ze elkaar op nog meer manieren. Het is belangrijk om te weten dat er in de natuur 20 verschillende aminozuren zijn. Sommigen zijn een beetje positief of negatief geladen, dus die trekken elkaar aan of stoten elkaar af, net als magneten. Andere aminozuren zijn een klein beetje geladen en kunnen waterstofbruggen met elkaar maken. Eentje bevat een zwavelatoom en kan zwavelbruggen maken. Tot slot zijn een paar aminozuren graag in de buurt van water en anderen niet. Eiwitten zitten meestal in een waterige omgeving (in een cel of in bloed), dus die water-hatende (hydrofoob) aminozuren zullen naar binnen richten en de water-minnende (hydrofiel) aminozuren zullen juist aan de buitenkant van het eiwit zitten.
Zo, nu weten hebben we genoeg voorkennis om perfect te kunnen begrijpen waar Foldit over gaat. Want waar gaat dit verhaal nou heen? Keiharde wetenschap. Sterker nog: zelf keiharde wetenschap beoefenen. Al die computers die de hele tijd eiwitstructuren proberen te berekenen zijn niet zo handig. Ze kosten veel geld, abstracte regels voor het vouwen van eiwitten zijn ingewikkeld en mensen hebben een extreem ontwikkeld ruimtelijk inzicht. Het is een beetje zoals de spellingscontroller op je computer: je tekstverwerker kan je wél vertellen dat “werdt” altijd fout is, maar hij ziet slecht in wanneer een woordkeuze beter kan. Mensen kunnen dat wel.
Foldit is een computerspel waarbij de speler een eiwit zo goed mogelijk moet vouwen. Het spel is gebaseerd op Rosetta@home. De computer berekent hoe goed een vouwing is en geeft aan elke structuur een score mee. Die score is omgekeerd evenredig met de energie van het eiwit. Als je dat een beetje ingewikkelde manier van denken vindt, moet je bedenken dat een hogere score, een betere eiwitvouwing inhoudt. Foldit begint met een serie eenvoudige eiwitten die je laten oefenen met de opbouw van het spel. Eerst krijg je te zien hoe je een eiwit draait, dan mag je hem zelf heen en weer trekken. Je moet erop letten dat een eiwit hydrofobe gedeeltes heeft die liever binnenin zitten, in plaats van naar buiten gekeerd. Later kun je met denkbeeldige elastiekjes bepaalde gedeeltes van eiwitten naar elkaar toe trekken. Al die handelingen zorgen ervoor dat de beste kwaliteiten van de computer samengevoegd worden met de beste kwaliteiten van de gamer. Rekenkracht en inzicht. De perfecte samenwerking.
Maar wacht, er is meer! Ook de gamer zal een heleboel handelingen moeten herhalen. Aan het begin van elke nieuwe eiwit-uitdaging, zal de speler een aantal dezelfde dingen doen: eerst een wiggle, dan een shake (of misschien andersom). Dat zijn dingen die de computer ook best zonder de hulp van de gamer kan doen. Om die standaard-handelingen te automatiseren is er een kookboek-functie in het spel geïmplementeerd, genaamd cookbook. Er kan gekozen worden uit een lange lijst handelingen die in een bepaalde volgorde, automatisch uitgevoerd kunnen worden. Eerst selecteren, een shake en dan een wiggle kan geautomatiseerd worden door: select_all() do_shake() do_global_wiggle()
. Er schijnt ook een knoppen-gebaseerd GUI-alternatief voor het scripten te zijn, maar daar heb ik nog niet naar gekeken.
Zo’n succesverhaal is niet compleet zonder een aantal succesvolle publicaties in vooraanstaande tijdschriften: Nature, PNAS, Nature Structural and Molecular Biology en Nature Biotechnology zijn maar een paar voorbeelden. Absoluut geen misselijke score.
Foldit is beschikbaar voor Windows, Mac OS X en Linux (link). Het spel is gratis voor iedereen, er zit een duidelijk wedstrijdelement in, maar het is ook prima in single-player mode te spelen. Er zijn nog enorm veel structuren van eiwitten onbekend, dus er is genoeg te doen. Ik stel voor dat jullie je kerstvakantie lekker vullen met hardcore simulaties van eiwitten en de wetenschap een handje helpen.
Meer informatie:
- Foldit: “The Science Behind Foldit”
- Nature “Predicting protein structures with a multiplayer online game”
- PNAS “Algorithm discovery by protein folding game players”
- Ars Technica “Gamers create recipes for protein-folding algorithms”
- Wired Med Tech “Gamers Unravel the Secret Life of Protein”
- Boing Boing “Wasting Time for a Good Cause”
- Kennislink|Biologie “Eiwitten Vouwen — The Game”