GROMACS (http://www.gromacs.org) er en af de vigtigste softwarepakker til simulering af biologiske makromolekyler. Det har til formål at udføre simulering af store, biologisk relevante systemer med fokus på at være både effektivt og fleksibelt for at muliggøre forskning i en række forskellige systemer (se eksemplerne længere nede på siden). Programmet er blevet brugt af forskningsgrupper over hele verden, og flere hundrede publikationer er direkte eller indirekte baseret på programmet, der er udgivet i løbet af de sidste par år (se figuren nedenfor for resultaterne af en søgning på brugen af programmet i Scopus).
Licens
GROMACS er fri software; du kan videredistribuere den og/eller ændre den i henhold til vilkårene i GNU Lesser General Public License
som offentliggjort af Free Software Foundation; enten version 2.1 af licensen eller (efter eget valg) enhver senere version.
GROMACS distribueres i håb om, at det vil være nyttigt, men UDEN NOGEN GARANTI; uden selv den underforståede garanti om MERCHANTABILITET eller egnethed til et bestemt formål.
Se GNU Lesser General Public License for flere detaljer. Den fulde licenstekst kan findes her.
Involvering i Bioexcel
GROMACS er en del af Bioexcel-indsatsen for at tilvejebringe rammerne for simulering af ethvert biomolekylært system gennem udvikling af værktøjer, der både er effektive til simulering af biologisk relevante systemer, og som samtidig giver fleksibilitet til at blive anvendt til forskellige anvendelsestilfælde gennem muligheden for hurtigt at udvide funktionaliteten. GROMACS evne til at simulere vilkårligt store systemer gør det muligt at kombinere den viden, der leveres af de andre programmer, der er involveret i programmet, for at få en bedre forståelse af de systemer, der studeres.
Den videre udvikling som en del af Bioexcel
Det er målet at udvide de eksisterende muligheder i GROMACS gennem tilvejebringelse af en API-ramme, som andre programmer kan bruge til at skabe en grænseflade til den primære simuleringsmotor. Dette vil gøre det muligt at udvide den mulige anvendelse yderligere til at omfatte flere biologisk og kemisk relevante systemer, da andre programmer vil være i stand til at have en direkte grænseflade med de effektive kerneroutiner, der anvendes til simuleringerne.
Dertil kommer, at både KTH- og MPG-partnere vil bidrage til at forbedre ydeevne, skalerbarhed, kvalitet og anvendelighed både for GROMACS og andre simulationskoder:
- QA, unit testing og et generelt bibliotek til biomolekylær modellering.
GROMACS vil blive omdannet til et state-of-the-art modulbaseret C++-bibliotek med fuld unit testing og opdateret bruger- & udviklerdokumentation for alle moduler. Projektet er ved at gå over til et professionelt QA-setup ved at indføre streng kodegennemgang (herunder fra de vigtigste udviklere) og automatisk kontinuerlig integration, hvor alle patches kompileres og unit-testes på en lang række hardware og compilere for at QA-godkende hver eneste ændring og for at gøre det muligt for ethvert installationssted at garantere kvaliteten af deres kompilerede installation. - Heterogen parallelisering.
Vi vil udvikle en ny implementering af heterogen parallelisering, hvor alle tilgængelige CPU-, accelerator- og kommunikationsressourcer anvendes parallelt på hver knude via eksplicit multithreading og belastningsbalancering på flere niveauer samt ny understøttelse af OpenCL- og Xeon Phi-acceleratorer ud over CUDA. - Effektive ensembleteknikker.
Nogle af de mest kraftfulde tilgange i dag er baseret på brug af hundredvis eller tusindvis af simuleringer til ensembleprøvetagningsteknikker som Markov-tilstandsmodeller eller beregninger af fri energi. Vi vil gøre disse tilgange tilgængelige for brugere generelt ved at integrere vores Copernicus-ramme for ensemblesimulering fuldt ud med GROMACS (Pronk et al. 2011). Dette vil gøre det muligt at formulere problemer med prøvetagning på højt niveau og beregning af fri energi som blackbox-beregningsproblemer, der internt kan anvende hundredtusindvis af processorer. Dette er særlig vigtigt for screeningsapplikationer med høj gennemstrømning af fri energi. Især er rammen ikke begrænset til GROMACS, men kan bruges med enhver kode. - For at lette udveksling af data med andre applikationer og muliggøre fuldt automatiseret højgennemløbssimulering udvikler vi offentlige dataformater til beskrivelse af molekyler med XML, stærkt komprimerede trajectory-formater, der understøtter digitale hashes og signaturer for at garantere dataintegritet, og nye værktøjer til automatisk at skabe interaktionsbeskrivelser (topologier) for vilkårlige små molekyler, der anvendes e.f.eks. som lægemiddelforbindelser, der er rettet mod en række forskellige kraftfelter som CHARMM, GAFF eller OPLS-AA (Lundborg & Lindahl 2014).
- Nogle af de mest lovende potentielle anvendelser af beregning af fri energi omfatter forudsigelse af aminosyrescanningseksperimenter, eller hvordan små molekyler skal ændres for at forbedre bindingen. I øjeblikket hæmmes dette af kravet om enten at beregne absolutte frie energier for store ændringer (hvilket medfører store statistiske fejl) eller manuelt at designe topologier, hvor rester eller lægemidler morphes direkte ind i beslægtede molekyler. Som en del af BioExcel vil vi gøre beregninger af fri energi anvendelige i disse high-throughput-situationer ved at udvikle og integrere nye moduler til automatisk at omdanne enhver aminosyre til andre aminosyrer og automatisk omdanne lægemiddelforbindelser til beslægtede derivater, samtidig med at forstyrrelsen holdes så lille som muligt. I kombination med automatisk topologiproduktion og ensemblesimulering vil dette gøre molekylære simuleringer til et værktøj, der kan screene molekylær og bindende stabilitet på 24-48 timer, hvilket vil få store konsekvenser for lægemiddeldesign i medicinalindustrien.
Udviklingsinfrastruktur
For at sikre både korrektheden af programkoden og dermed simuleringsresultaterne og for at drive udviklingen gennem både interne og eksterne bidrag anvender vi de bedste metoder, der er forbundet med moderne softwareudvikling:
- Kildekodeversionen og revisionskontrollen er sikret ved hjælp af git som versionsstyringssystem, og GROMACS-repositoriet er tilgængeligt for kontrol af kildekoden ved hjælp af
git clone git://gitlab.com/gromacs/gromacs.git
eller ved at gennemse det på https://github.com/gromacs/gromacs. git giver mulighed for effektiv versionskontrol samtidig med, at det muliggør bidrag og udvikling fra udviklere over hele verden.
- GROMACS-koden gennemgås manuelt og automatisk ved hjælp af GitLab, hvilket sikrer, at nye bidrag og ændringer til den eksisterende kodebase passerer flere kerneudvikleres inspektion, før de indgår i hoveddistributionen. GROMCAS’ kodegennemgangsserver kan nås på https://gitlab.com/gromacs/gromacs.
- Kontinuerlig integrationstest udføres på hver ændring før og efter optagelse i hovedgrenen ved hjælp af GitLab CI. Dette sikrer, at hver ændring ikke blot består en række test af portabiliteten, inden den inkluderes, men også at ingen ændring vil indføre fejl gennem omfattende test af den eksisterende funktionalitet. GROMACS-testene køres også ved hjælp af GitLab.
- Nye og eksisterende dele af programmet testes i vid udstrækning ved hjælp af vores infrastruktur for enheds- og regressionstest, der er integreret i vores kodegennemgangs- og CI-system.
- Dokumentationsstandarder håndhæves ved hjælp af Doxygen (doxygen.org) som standardværktøj til at dokumentere funktioner og inkludere dem i programmets referencehåndbog.
- Vi bruger det problemsporingssystem, der er integreret i GitLab, og der kan åbnes problemer på GROMACS’ problemsporingssystem, så vi kan identificere programfejl og arbejde sammen med brugere og udviklere om at rette dem.
Uddannelses- og støtteaktiviteter
Vi tilbyder flere måder, hvorpå både brugere og potentielle udviklere af GROMACS kan komme i kontakt med os og stille deres spørgsmål vedrørende applikationer og ændringer.
- Generelle spørgsmål vedrørende GROMACS’ anvendelse til simulering af systemer kan og bør stilles på GROMACS-forummet.
- Spørgsmål vedrørende udvikling af GROMACS og implementering af ny funktionalitet bør stilles på mailinglisten for udviklere. Dette er også stedet, hvor man kan få flere oplysninger om nye og kommende funktioner til fremtidige versioner.
Software beskrivelse
Simulering af biologiske makromolekyler har udviklet sig fra en nichemetode inden for statistisk mekanik til et af de mest anvendte biofysiske forskningsværktøjer og anvendes langt uden for den teoretiske kemi. Supercomputere er nu lige så vigtige som centrifuger eller reagensglas i kemi. Som det fremgår af Nobelprisen i kemi i 2013, gør molekylær dynamik baseret på statistisk mekanik det muligt at simulere atombevægelser i realistiske miljøer ved stuetemperatur for systemer, der spænder fra materialekemi til proteiner, DNA, RNA og membraner, der indeholder millioner af atomer. Den grundlæggende algoritme for molekylær dynamik evaluerer kræfter på alle atomer i et system og opdaterer atomernes hastigheder og positioner i henhold til Newtons bevægelsesligninger. Dette numeriske integrationsskema gentages i milliarder af trin og genererer en række prøver, der beskriver systemets termodynamiske helhed. Dette er den egentlige styrke ved teknikken, da den forudsiger eksperimenter: den kan præcist beskrive, hvordan molekyler som proteiner bevæger sig, men den gør det også muligt at beregne frie energier, der beskriver kemiske reaktioner, f.eks. den frie bindingsenergi for en lægemiddelkandidat i et aktivt sted i et protein, eller hvordan en ligand vil stabilisere en bestemt konformation for at åbne eller lukke en ionkanal. Da beregningen af kræfter er nødvendig for et stort antal algoritmer, bruger flere andre pakker molekylærsimuleringsværktøjskasser som biblioteker til at evaluere energier, f.eks. i docking eller ved raffinering af strukturer med eksperimentelle begrænsninger såsom røntgen-, NMR- eller kryo-EM-data.
Denne udvikling ville ikke have været mulig uden en betydelig forskningsindsats inden for simuleringsalgoritmer, optimering og parallelisering. Fremkomsten af standardiserede pakker til molekylær modellering som GROMACS, NAMD, AMBER og CHARMM har været afgørende, da de har bidraget til at gøre simuleringsforskning til en almindelig vare og gjort teknikkerne tilgængelige for forskere inden for life science-applikationer, som ikke er specialister i simulationsudvikling. Alle disse pakker har komplementære styrker og profiler – området har bevæget sig fra historisk konkurrence til omfattende udveksling af idéer. GROMACS er en af de mest udbredte videnskabelige softwarepakker i verden med ca. 20 000 citater i alt (Hess et al. 2008, Pronk et al. 2013); det er den største gratis software- og open source-applikation inden for biomolekylær forskning og den eneste af de store molekylærdynamiske simulationspakker, hvor udviklingen ledes i Europa.
GROMACS-projektet startede i 1995 som en af de allerførste parallelle simulationskoder, det internationale udviklingshold ledes af KTH-partneren, og projektet er stærkt fokuseret på simuleringseffektivitet og generalitet. Det er den eneste pakke, der understøtter alle almindelige kraftfelter, og den har en meget bred vifte af simuleringsalgoritmer. Dette kombineret med den meget liberale (og erhvervsvenlige) licensering er sandsynligvis en vigtig faktor for, at den anvendes som et simulerings-, minimerings- og energivurderingsbibliotek af flere andre applikationer, f.eks. inden for bioinformatik eller projekter for distribueret databehandling som Folding@Home. Koden kan overføres til en meget bred vifte af platforme (herunder indlejrede platforme), den indeholder manuelt afstemte assemblerkerner til et dusin forskellige arkitekturinstruktionssæt og acceleratorunderstøttelse både for Nvidia GPU’er med CUDA, AMD GPU’er med OpenCL og Xeon Phi-processorer nativt. Pakken anvender state-of-the-art neutral territory domain decomposition og multi-level parallelisering for at muliggøre skalering både til titusindvis af knudepunkter på supercomputere og effektiv højhastighedsberegning med acceleratorer (Pall et al. 2014).
GROMACS kan allerede nu bruge tusindvis af kerner og hundredvis af acceleratorer effektivt parallelt, selv for et enkelt ganske lille system. Når man tilføjer parallelisering på ensemble-niveau med Copernicus, udvides den samlede problemskalering med yderligere to størrelsesordener.
Molekylær dynamiksimulering i almindelighed og GROMACS i særdeleshed har gjort det muligt at studere store og komplekse biomolekylære systemer som membraner og membranproteiner og undersøge atomare detaljer, der ikke er tilgængelige for nogen eksperimentelle metoder. Molekylære simuleringer gav nogle af de første højopløselige modeller af ionkanalers hviletilstande baseret på røntgenstrukturer af åbne kanaler (Vargas et al. 2012), og de var afgørende for at modellere forbigående mellemkonformationer under strukturelle overgange af membranproteiner (Henrion et al. 2012). GROMACS blev også brugt til at forudsige den første specifikke molekylære genkendelse af lipider af membranproteiner (Contreras et al. 2012) og til de simuleringer, der identificerede separate potentierende og hæmmende bindingssteder i de ligand-gated ionkanaler i vores nervesystem (Murail et al. 2012) – resultater, der nu bruges af flere grupper i forsøg på at designe bedre lægemidler.