GROMACS (http://www.gromacs.org) è uno dei principali pacchetti software per la simulazione di macromolecole biologiche. Ha lo scopo di eseguire la simulazione di grandi sistemi biologicamente rilevanti, con l’obiettivo di essere efficiente e flessibile per permettere la ricerca di un certo numero di sistemi diversi (vedi gli esempi forniti più in basso nella pagina). Il programma è stato usato da gruppi di ricerca in tutto il mondo, con diverse centinaia di pubblicazioni basate direttamente o indirettamente su di esso pubblicate negli ultimi anni (vedi la figura qui sotto per i risultati di una ricerca dell’uso del programma in Scopus).
Licenza
GROMACS è software libero; è possibile ridistribuirlo e/o modificarlo secondo i termini della GNU Lesser General Public License
come pubblicata dalla Free Software Foundation; o la versione 2.1 della licenza, o (a vostra scelta) qualsiasi versione successiva.
GROMACS è distribuito nella speranza che sia utile, ma SENZA ALCUNA GARANZIA; senza nemmeno la garanzia implicita di COMMERCIABILITÀ o IDONEITÀ PER UN PARTICOLARE SCOPO.
Vedi la GNU Lesser General Public License per maggiori dettagli. Il testo completo della licenza può essere trovato qui.
Involgimento in Bioexcel
GROMACS è parte dell’iniziativa Bioexcel per fornire il quadro di riferimento per la simulazione di qualsiasi sistema biomolecolare, attraverso lo sviluppo di strumenti che sono sia efficienti nella simulazione di sistemi biologicamente rilevanti, sia flessibili per essere applicati a diversi casi d’uso grazie alla possibilità di estendere rapidamente la funzionalità. La capacità di GROMACS di simulare sistemi arbitrariamente grandi rende possibile combinare la conoscenza fornita dagli altri programmi coinvolti nel programma per ottenere una migliore comprensione dei sistemi studiati.
Ulteriori sviluppi come parte di Bioexcel
Lo scopo è di estendere le capacità esistenti di GROMACS attraverso la fornitura di un framework API che altri programmi possono utilizzare per interfacciarsi con il motore di simulazione principale. Questo permetterà di estendere ulteriormente il possibile utilizzo a sistemi più rilevanti dal punto di vista biologico e chimico, poiché altri programmi saranno in grado di interfacciarsi direttamente con le efficienti routine di base utilizzate per le simulazioni.
In aggiunta a questo, entrambi i partner KTH e MPG contribuiranno a migliorare le prestazioni, la scalabilità, la qualità e l’usabilità sia per GROMACS che per altri codici di simulazione:
- QA, test delle unità e una libreria generale per la modellazione biomolecolare.
GROMACS sarà trasformato in una libreria C++ basata su moduli allo stato dell’arte, con test completi delle unità e documentazione aggiornata per gli & sviluppatori di tutti i moduli. Il progetto si sta muovendo verso una configurazione di QA professionale introducendo una rigorosa revisione del codice (anche da parte degli sviluppatori principali) e un’integrazione continua automatica dove tutte le patch sono compilate e testate su una vasta gamma di hardware e compilatori per approvare QA ogni singolo cambiamento, e per rendere possibile a qualsiasi sito di installazione di garantire la qualità della loro installazione compilata. - Parallelizzazione eterogenea.
Svilupperemo una nuova implementazione di parallelizzazione eterogenea in cui tutte le risorse disponibili di CPU, acceleratore e comunicazione sono usate in parallelo su ogni nodo attraverso il multithreading esplicito e il bilanciamento del carico a più livelli, così come il nuovo supporto per gli acceleratori OpenCL e Xeon Phi oltre a CUDA. - Tecniche di ensemble efficienti.
Alcuni degli approcci più potenti oggi sono basati sull’uso di centinaia o migliaia di simulazioni per tecniche di campionamento di ensemble come i modelli di stato Markov o i calcoli di energia libera. Renderemo questi approcci accessibili agli utenti in generale integrando completamente il nostro framework Copernicus per la simulazione di ensemble con GROMACS (Pronk et al. 2011). Questo renderà possibile formulare problemi di campionamento di alto livello e di calcolo dell’energia libera come problemi di calcolo black-box che possono impiegare internamente centinaia di migliaia di processori. Questo è particolarmente importante per le applicazioni di screening ad alta velocità dell’energia libera. In particolare, il framework non è limitato a GROMACS, ma può essere usato con qualsiasi codice. - Per facilitare lo scambio di dati con altre applicazioni, e per consentire la simulazione ad alta produttività completamente automatizzata, stiamo sviluppando formati di dati pubblici per descrivere le molecole con XML, formati di traiettoria altamente compressi che supportano hash digitali e firme per garantire l’integrità dei dati, e nuovi strumenti per creare automaticamente descrizioni di interazione (topologie) per piccole molecole arbitrarie utilizzate ad es.Ad esempio, come composti di farmaci che si rivolgono a diversi campi di forza come CHARMM, GAFF, o OPLS-AA (Lundborg & Lindahl 2014).
- Alcune delle applicazioni potenziali più promettenti del calcolo dell’energia libera includono la previsione degli esperimenti di scansione degli aminoacidi o come le piccole molecole dovrebbero essere modificate per migliorare il legame. Attualmente, questo è ostacolato dal requisito di calcolare energie libere assolute per grandi cambiamenti (che causa grandi errori statistici), o di progettare manualmente topologie in cui i residui o i farmaci sono morpati direttamente in molecole correlate. Come parte di BioExcel, renderemo i calcoli delle energie libere applicabili in queste impostazioni ad alta produttività sviluppando e integrando nuovi moduli per trasformare automaticamente qualsiasi amminoacido in altri, e trasformare automaticamente i composti di farmaci in derivati correlati, mantenendo la perturbazione più piccola possibile. In combinazione con la generazione automatica della topologia e la simulazione d’insieme, questo trasformerà le simulazioni molecolari in uno strumento che può esaminare la stabilità molecolare e di legame in 24-48 ore, con grandi implicazioni per l’uso del drug design nell’industria farmaceutica.
Infrastruttura di sviluppo
Per garantire la correttezza del codice del programma e quindi i risultati della simulazione, e per guidare lo sviluppo attraverso contributi sia interni che esterni, impieghiamo le migliori pratiche associate al moderno sviluppo del software:
- Il controllo della versione e della revisione del codice sorgente è fornito utilizzando git come sistema di controllo della versione, con il repository di GROMACS disponibile per il controllo del codice sorgente usando
git clone git://gitlab.com/gromacs/gromacs.git
o attraverso il browsing a https://github.com/gromacs/gromacs. git permette un controllo di versione efficiente allo stesso tempo e permette contributi e sviluppo da parte di sviluppatori di tutto il mondo.
- Il codice di GROMACS è rivisto manualmente e automaticamente usando GitLab, assicurando che i nuovi contributi e le modifiche al codice base esistente passino l’ispezione di diversi sviluppatori del nucleo prima di essere inclusi nella distribuzione principale. Il server di revisione del codice di GROMCAS può essere raggiunto all’indirizzo https://gitlab.com/gromacs/gromacs.
- I test di integrazione continui sono eseguiti su ogni modifica prima e dopo l’inclusione nel ramo principale attraverso l’uso di GitLab CI. Questo assicura che ogni cambiamento non solo passi un certo numero di test sulla portabilità prima di essere incluso, ma anche che nessun cambiamento introduca errori attraverso un ampio test della funzionalità esistente. Anche i test di GROMACS sono eseguiti usando GitLab.
- Le parti nuove ed esistenti del programma sono ampiamente testate usando la nostra infrastruttura di test di unità e regressione integrata nel nostro sistema di revisione del codice e CI.
- Gli standard di documentazione sono applicati attraverso l’uso di Doxygen (doxygen.org) come strumento standard per documentare le funzioni e includerle nel manuale di riferimento del programma.
- Utilizziamo il sistema di tracciamento dei problemi integrato in GitLab, e i problemi possono essere aperti sul GROMACS issue tracker per permetterci di identificare gli errori del programma e lavorare insieme agli utenti e agli sviluppatori per correggerli.
Attività di formazione e supporto
Abbiamo diversi modi sia per gli utenti che per i potenziali sviluppatori di GROMACS di mettersi in contatto con noi per porre le loro domande riguardanti applicazioni e modifiche.
- Le domande generali riguardanti l’uso di GROMACS per simulare sistemi possono e devono essere poste sul forum di GROMACS.
- Le domande riguardanti lo sviluppo di GROMACS e l’implementazione di nuove funzionalità dovrebbero essere poste sulla mailing list degli sviluppatori. Questo è anche il luogo dove ottenere maggiori informazioni sulle nuove e future caratteristiche delle versioni future.
Descrizione del software
La simulazione delle macromolecole biologiche si è evoluta da un metodo di nicchia di meccanica statistica in uno degli strumenti di ricerca biofisica più ampiamente applicato, ed è usato ben al di fuori della chimica teorica. I supercomputer sono ora importanti quanto le centrifughe o le provette nella chimica. Come dimostrato dal premio Nobel 2013 per la chimica, la dinamica molecolare basata sulla meccanica statistica permette di simulare i movimenti degli atomi in ambienti realistici a temperatura ambiente, per sistemi che vanno dalla chimica dei materiali alle proteine, DNA, RNA e membrane contenenti milioni di atomi. L’algoritmo fondamentale della dinamica molecolare valuta le forze su tutti gli atomi di un sistema e aggiorna le velocità e le posizioni degli atomi secondo le equazioni del moto di Newton. Questo schema di integrazione numerica viene iterato per miliardi di passi, e genera una serie di campioni che descrivono l’insieme termodinamico del sistema. Questa è la vera forza della tecnica, poiché predice gli esperimenti: può descrivere accuratamente come si muovono molecole come le proteine, ma permette anche il calcolo delle energie libere che descrivono le reazioni chimiche, per esempio l’energia libera di legame di un composto farmacologico candidato in un sito attivo della proteina o come un ligando stabilizzerà una particolare conformazione per aprire o chiudere un canale ionico. Poiché il calcolo delle forze è richiesto per un gran numero di algoritmi, molti altri pacchetti usano toolkit di simulazione molecolare come librerie per valutare le energie, per esempio nel docking o quando si raffinano le strutture con vincoli sperimentali come i dati X-ray, NMR, o Cryo-EM.
Questo sviluppo non sarebbe stato possibile senza significativi sforzi di ricerca in algoritmi di simulazione, ottimizzazione e parallelizzazione. L’emergere di pacchetti standardizzati per la modellazione molecolare come GROMACS, NAMD, AMBER, e CHARMM è stato fondamentale poiché hanno contribuito a mercificare la ricerca sulla simulazione, rendendo le tecniche disponibili ai ricercatori di applicazioni delle scienze della vita che non sono specializzati nello sviluppo di simulazioni. Tutti questi pacchetti hanno punti di forza e profili complementari – il campo è passato dalla competizione storica a un’ampia condivisione di idee. GROMACS è uno dei pacchetti software scientifici più utilizzati al mondo con circa 20.000 citazioni in totale (Hess et al. 2008, Pronk et al. 2013); è il più grande software libero e applicazione open source nella ricerca biomolecolare, e l’unico dei principali pacchetti di simulazione di dinamica molecolare in cui lo sviluppo è guidato in Europa.
Il progetto GROMACS è iniziato nel 1995 come uno dei primi codici di simulazione parallela, il team internazionale di sviluppo è guidato dal partner KTH, e il progetto è fortemente focalizzato sull’efficienza e la generalità della simulazione. È l’unico pacchetto che supporta tutti i campi di forza comuni e ha una gamma molto ampia di algoritmi di simulazione. Questo, combinato con le licenze molto liberali (e favorevoli al business), è probabilmente uno dei fattori principali per cui è usato come libreria di simulazione, minimizzazione e valutazione dell’energia da molte altre applicazioni, per esempio in bioinformatica o in progetti di calcolo distribuito come Folding@Home. Il codice è portabile su una gamma molto ampia di piattaforme (incluse quelle embedded), include kernel assembly sintonizzati manualmente per una dozzina di set di istruzioni di architetture diverse e supporto per acceleratori sia per GPU Nvidia con CUDA, sia per GPU AMD con OpenCL, sia per processori Xeon Phi nativamente. Il pacchetto utilizza la decomposizione del dominio del territorio neutrale allo stato dell’arte e la parallelizzazione a più livelli per consentire la scalabilità sia a decine di migliaia di nodi sui supercomputer che un efficiente calcolo ad alto rendimento con gli acceleratori (Pall et al. 2014).
GROMACS può già utilizzare migliaia di core e centinaia di acceleratori in modo efficiente in parallelo, anche per un singolo sistema abbastanza piccolo. Quando si aggiunge la parallelizzazione a livello di ensemble con Copernicus la scalabilità totale del problema si estende di altri due ordini di grandezza.
La simulazione della dinamica molecolare in generale, e GROMACS in particolare, ha reso possibile studiare sistemi biomolecolari grandi e complessi come le membrane e le proteine di membrana e sondare dettagli atomici che non sono accessibili a nessun metodo sperimentale. Le simulazioni molecolari hanno fornito alcuni dei primi modelli ad alta risoluzione degli stati di riposo dei canali ionici basati su strutture a raggi X di canali aperti (Vargas et al. 2012), e sono state fondamentali per modellare conformazioni intermedie transitorie durante le transizioni strutturali delle proteine di membrana (Henrion et al. 2012). GROMACS è stato utilizzato anche per prevedere il primo riconoscimento molecolare specifico dei lipidi da parte delle proteine di membrana (Contreras et al. 2012) e per le simulazioni che hanno identificato siti di legame separati per il potenziamento e l’inibizione nei canali ionici ligando-gated del nostro sistema nervoso (Murail et al. 2012) – risultati che sono ora utilizzati da diversi gruppi nel tentativo di progettare farmaci migliori.