GROMACS (http://www.gromacs.org) is een van de belangrijkste softwarepakketten voor de simulatie van biologische macromoleculen. Het is gericht op het uitvoeren van de simulatie van grote, biologisch relevante systemen, met de nadruk op zowel efficiënt als flexibel zijn om het onderzoek van een aantal verschillende systemen mogelijk te maken (zie de voorbeelden verderop op de pagina). Het programma is gebruikt door onderzoeksgroepen over de hele wereld, met enkele honderden publicaties die er direct of indirect op gebaseerd zijn en die in de afgelopen jaren zijn gepubliceerd (zie onderstaande figuur voor de resultaten van een zoekactie naar het gebruik van het programma in Scopus).
Licentie
GROMACS is vrije software; u kunt het opnieuw distribueren en/of wijzigen onder de voorwaarden van de GNU Lesser General Public License
zoals gepubliceerd door de Free Software Foundation; ofwel versie 2.1 van de licentie, ofwel (naar uw keuze) een latere versie.
GROMACS wordt verspreid in de hoop dat het nuttig zal zijn, maar ZONDER ENIGE GARANTIE; zelfs zonder de impliciete garantie van VERKOOPBAARHEID of GESCHIKTHEID VOOR EEN BEPAALD DOEL.
Zie de GNU Kleine Algemene Openbare Licentie voor meer details. De volledige licentietekst kan hier gevonden worden.
Betrokkenheid bij Bioexcel
GROMACS maakt deel uit van het Bioexcel streven om een raamwerk te bieden voor het simuleren van elk biomoleculair systeem, door de ontwikkeling van gereedschappen die zowel efficiënt zijn in het simuleren van biologisch relevante systemen, terwijl ze ook de flexibiliteit bieden om toegepast te worden op verschillende gebruikssituaties door de mogelijkheid om de functionaliteit snel uit te breiden. Het vermogen van GROMACS om willekeurig grote systemen te simuleren maakt het mogelijk om de kennis te combineren die wordt geleverd door de andere programma’s die bij het programma zijn betrokken om een beter begrip te krijgen van de systemen die worden bestudeerd.
Volgende ontwikkelingen als onderdeel van Bioexcel
Het doel is om de bestaande mogelijkheden van GROMACS uit te breiden door een API-raamwerk te bieden dat andere programma’s kunnen gebruiken om te interfacen met de belangrijkste simulatie-engine. Dit zal het mogelijk maken om het mogelijke gebruik uit te breiden tot meer biologisch en chemisch relevante systemen, aangezien andere programma’s in staat zullen zijn om direct te interfacen met de efficiënte kernroutines die voor de simulaties worden gebruikt.
Daarnaast zullen zowel de KTH als de MPG partners bijdragen aan het verbeteren van de prestaties, schaalbaarheid, kwaliteit en bruikbaarheid, zowel voor GROMACS als voor andere simulatiecodes:
- QA, unit testing en een algemene bibliotheek voor biomoleculaire modellering.
GROMACS zal worden omgevormd tot een state-of-the-art module-gebaseerde C++ bibliotheek met volledige unit testing en up-to-date gebruikers &ontwikkelaars documentatie voor alle modules. Het project gaat naar een professionele QA setup door de introductie van strikte code review (ook van de hoofdontwikkelaars) en automatische continue integratie waar alle patches worden gecompileerd en unit-getest op een breed scala aan hardware en compilers om elke verandering QA-goed te keuren, en om het mogelijk te maken voor elke installatie site om de kwaliteit van hun gecompileerde installatie te garanderen. - Heterogene parallellisatie.
We zullen een nieuwe heterogene parallellisatie-implementatie ontwikkelen waarbij alle beschikbare CPU-, versneller- en communicatiebronnen parallel worden gebruikt op elke node door expliciete multithreading en multi-level load balancing, evenals nieuwe ondersteuning voor OpenCL en Xeon Phi-versnellers naast CUDA. - Efficiënte ensembletechnieken.
Enkele van de krachtigste benaderingen van vandaag zijn gebaseerd op het gebruik van honderden of duizenden simulaties voor ensembletechnieken zoals Markov-statusmodellen of vrije-energieberekeningen. We zullen deze benaderingen toegankelijk maken voor gebruikers in het algemeen door ons Copernicus raamwerk voor ensemblesimulatie volledig te integreren met GROMACS (Pronk et al. 2011). Dit maakt het mogelijk om high-level sampling en vrije-energie berekeningsproblemen te formuleren als black-box rekenproblemen die intern honderdduizenden processoren kunnen gebruiken. Dit is met name van belang voor toepassingen met een hoge doorvoer van vrije-energiescreening. Om de uitwisseling van gegevens met andere toepassingen te vergemakkelijken en volledig geautomatiseerde high-throughput simulatie mogelijk te maken, ontwikkelen we openbare dataformaten om moleculen te beschrijven met XML, sterk gecomprimeerde trajectformaten die digitale hashes en handtekeningen ondersteunen om de integriteit van de gegevens te garanderen, en nieuwe hulpmiddelen om automatisch interactiebeschrijvingen (topologieën) te maken voor willekeurige kleine moleculen die bijv.bv. als medicijnverbindingen gericht op een aantal verschillende krachtvelden zoals CHARMM, GAFF, of OPLS-AA (Lundborg & Lindahl 2014). - Enkele van de meest veelbelovende potentiële toepassingen van vrije-energieberekening zijn de voorspelling van aminozuurscan-experimenten of hoe kleine moleculen moeten worden gewijzigd om de binding te verbeteren. Momenteel wordt dit belemmerd door de eis om ofwel absolute vrije energieën te berekenen voor grote veranderingen (wat grote statistische fouten veroorzaakt), ofwel handmatig topologieën te ontwerpen waarbij residuen of geneesmiddelen direct in verwante moleculen worden gemorforfoseerd. Als onderdeel van BioExcel zullen we vrije energie berekeningen toepasbaar maken in deze high-throughput settings door het ontwikkelen en integreren van nieuwe modules om automatisch elk aminozuur te morphen in andere, en automatisch medicijn verbindingen om te zetten in gerelateerde derivaten terwijl de perturbatie zo klein mogelijk wordt gehouden. In combinatie met automatische topologie generatie en ensemble simulatie zal dit moleculaire simulaties veranderen in een instrument dat moleculaire en bindingsstabiliteit kan screenen in 24-48h, met grote implicaties voor drug design gebruik in de farmaceutische industrie.
Ontwikkelingsinfrastructuur
Om de juistheid van de programmacode en dus van de simulatieresultaten te verzekeren, en om de ontwikkeling te sturen door zowel interne als externe bijdragen, maken we gebruik van de beste praktijken die geassocieerd worden met moderne software-ontwikkeling:
- Broncode versie- en revisiebeheer wordt verzorgd door git als versiebeheersysteem te gebruiken, met de GROMACS repository beschikbaar voor het bekijken van de broncode met
git clone git://gitlab.com/gromacs/gromacs.git
of door te browsen op https://github.com/gromacs/gromacs. git maakt efficiënt versiebeheer mogelijk en maakt bijdragen en ontwikkeling van ontwikkelaars over de hele wereld mogelijk.
- De GROMACS code wordt handmatig en automatisch gereviewd met GitLab, zodat nieuwe bijdragen en veranderingen aan de bestaande code door de inspectie van verschillende kernontwikkelaars komen voordat ze in de hoofddistributie worden opgenomen. De GROMCAS code review server is te bereiken op https://gitlab.com/gromacs/gromacs.
- Continue integratietesten worden uitgevoerd op elke verandering voor en na opname in de hoofdbranch door het gebruik van GitLab CI. Dit verzekert dat elke wijziging niet alleen een aantal tests op portabiliteit doorstaat voordat het wordt opgenomen, maar ook dat geen enkele wijziging fouten zal introduceren door uitgebreide tests op de bestaande functionaliteit. De GROMACS tests worden ook met GitLab uitgevoerd.
- Nieuwe en bestaande delen van het programma worden uitgebreid getest met behulp van onze unit en regressie testinfrastructuur geïntegreerd in ons code review en CI systeem.
- Documentatie standaarden worden gehandhaafd door het gebruik van Doxygen (doxygen.org) als het standaard gereedschap voor het documenteren van functies en het opnemen ervan in het programma referentie handboek.
- We gebruiken het issue tracking systeem geïntegreerd in GitLab, en issues kunnen worden geopend op de GROMACS issue tracker om ons in staat te stellen programmafouten te identificeren en samen te werken met gebruikers en ontwikkelaars om ze te repareren.
Opleiding en ondersteuning
We bieden verschillende manieren waarop zowel gebruikers als potentiële ontwikkelaars van GROMACS met ons in contact kunnen komen om hun vragen over toepassingen en modificaties te stellen.
- Algemene vragen over het gebruik van GROMACS voor het simuleren van systemen kunnen en moeten op het GROMACS forum worden gesteld.
- Vragen over de ontwikkeling van GROMACS en de implementatie van nieuwe functionaliteit kunnen worden gesteld op de mailing list voor ontwikkelaars. Dit is ook de plaats om meer informatie te krijgen over nieuwe en komende mogelijkheden voor toekomstige versies.
Software beschrijving
Simulatie van biologische macromoleculen heeft zich ontwikkeld van een niche statistisch-mechanische methode tot een van de meest toegepaste biofysische onderzoeksgereedschappen, en wordt ver buiten de theoretische chemie gebruikt. Supercomputers zijn nu even belangrijk als centrifuges of reageerbuizen in de chemie. Zoals blijkt uit de toekenning van de Nobelprijs voor de chemie in 2013, maakt moleculaire dynamica op basis van statistische mechanica het mogelijk om de bewegingen van atomen in realistische omgevingen bij kamertemperatuur te simuleren, voor systemen variërend van materiaalchemie tot eiwitten, DNA, RNA en membranen die miljoenen atomen bevatten. Het fundamentele algoritme van de moleculaire dynamica evalueert de krachten op alle atomen in een systeem en werkt de snelheden en posities van de atomen bij volgens de bewegingsvergelijkingen van Newton. Dit numerieke integratieschema wordt gedurende miljarden stappen herhaald, en het genereert een reeks monsters die het thermodynamische ensemble van het systeem beschrijven. Dit is de ware kracht van de techniek, aangezien zij experimenten voorspelt: zij kan nauwkeurig beschrijven hoe moleculen zoals eiwitten bewegen, maar zij maakt het ook mogelijk de vrije energieën te berekenen die chemische reacties beschrijven, bijvoorbeeld de bindingsvrije energie van een kandidaat-geneesmiddelverbinding in een actieve plaats van een eiwit of hoe een ligand een bepaalde conformatie zal stabiliseren om een ionkanaal te openen of te sluiten. Aangezien de berekening van krachten vereist is voor een groot aantal algoritmen, gebruiken verschillende andere pakketten moleculaire simulatie-toolkits als bibliotheken om energieën te evalueren, bijvoorbeeld bij docking of bij het verfijnen van structuren met experimentele restricties zoals röntgen-, NMR- of Cryo-EM-gegevens.
Deze ontwikkeling zou niet mogelijk zijn geweest zonder aanzienlijke onderzoeksinspanningen op het gebied van simulatiealgoritmen, optimalisatie en parallellisatie. De opkomst van gestandaardiseerde pakketten voor moleculaire modellering, zoals GROMACS, NAMD, AMBER en CHARMM, is van cruciaal belang geweest, aangezien deze pakketten hebben bijgedragen tot het gemeengoed maken van simulatie-onderzoek, waardoor de technieken beschikbaar zijn geworden voor onderzoekers die niet gespecialiseerd zijn in de ontwikkeling van simulaties voor biowetenschappelijke toepassingen. Al deze pakketten hebben complementaire sterke punten en profielen – het veld is overgegaan van historische concurrentie naar uitgebreide uitwisseling van ideeën. GROMACS is een van de meest gebruikte wetenschappelijke softwarepakketten ter wereld met in totaal ongeveer 20.000 citaties (Hess et al. 2008, Pronk et al. 2013); het is de grootste vrije software en open source toepassing in biomoleculair onderzoek, en het enige van de grote simulatiepakketten voor moleculaire dynamica waarvan de ontwikkeling in Europa wordt geleid.
Het GROMACS-project begon in 1995 als een van de allereerste parallelle simulatiecodes, het internationale ontwikkelingsteam wordt geleid door de KTH-partner, en het project is sterk gericht op simulatie-efficiëntie en generaliteit. Het is het enige pakket dat alle gangbare krachtvelden ondersteunt en het heeft een zeer breed scala aan simulatie-algoritmen. Dit gecombineerd met de zeer liberale (en bedrijfsvriendelijke) licenties is waarschijnlijk een belangrijke factor waarom het wordt gebruikt als een simulatie, minimalisatie en energie-evaluatie bibliotheek door verschillende andere toepassingen, bijv. in de bio-informatica of gedistribueerde computerprojecten zoals Folding@Home. De code is overdraagbaar naar een zeer breed scala van platformen (inclusief embedded), het bevat handmatig getunede assemblage kernels voor een dozijn verschillende architectuur instructiesets en versneller ondersteuning voor zowel Nvidia GPU’s met CUDA, AMD GPU’s met OpenCL, en Xeon Phi processoren natively. Het pakket maakt gebruik van state-of-the-art neutrale territoriumdomeindecompositie en multi-level parallellisatie om schaling mogelijk te maken naar zowel tienduizenden nodes op supercomputers als efficiënte high-throughput computing met versnellers (Pall et al. 2014).
GROMACS kan nu al duizenden cores en honderden versnellers efficiënt parallel gebruiken, zelfs voor een enkel vrij klein systeem. Wanneer ensemble-level parallellisatie met Copernicus wordt toegevoegd, breidt de totale probleemschaal nog eens twee orden van grootte uit.
Moleculaire dynamica simulatie in het algemeen, en GROMACS in het bijzonder, heeft het mogelijk gemaakt om grote en complexe biomoleculaire systemen zoals membranen en membraaneiwitten te bestuderen en atomaire details te peilen die voor geen enkele experimentele methode toegankelijk zijn. Moleculaire simulaties leverden enkele van de eerste hoge-resolutie modellen van rusttoestanden van ionenkanalen op basis van röntgenstructuren van open kanalen (Vargas et al. 2012), en ze waren van cruciaal belang voor het modelleren van voorbijgaande tussenliggende conformaties tijdens structurele overgangen van membraaneiwitten (Henrion et al. 2012). GROMACS werd ook gebruikt om de eerste specifieke moleculaire herkenning van lipiden door membraaneiwitten te voorspellen (Contreras et al. 2012) en voor de simulaties die afzonderlijke potentiërende en remmende bindingsplaatsen in de ligand-gated ionenkanalen van ons zenuwstelsel identificeerden (Murail et al. 2012) – resultaten die nu door verschillende groepen worden gebruikt in pogingen om betere geneesmiddelen te ontwerpen.