GROMACS/Julia scripting

Logo of Julia Scripting in Gromacs

Julia scripting in GROMACS (GROMACS/Julia) enables run-time customization of molecular dynamics simulations using the accessible programming language Julia. This integration provides a performant platform for rapid prototyping of novel MD protocols and methods, which can later be implemented as native GROMACS modules and features.

Note that GROMACS/Julia is an independent fork of GROMACS and is not affiliated with the official GROMACS project. Please direct support requests for Julia-specific features to the GROMACS/Julia authors.

Website under construction
Please note that some information may be missing, outdated, or inaccurate for the current version of the code.

Getting Started #

Get started with these essential resources:

Highlighted Features and Applications #

Novel Force Fields Functional Forms #

Julia’s just-in-time compilation to machine code enables implementation of custom potentials with near-native performance.

(TODO: Show performance plot)

(TODO: Link to example and documentation)

Temperature and Pressure Control #

GROMACS/Julia enables runtime customization of thermostats and barostats through Julia scripts, allowing implementation of novel temperature and pressure control algorithms.

(TODO: Write up more and show example)

Extended Topology Features #

GROMACS/Julia supports the addition of new, custom sections in topology files (topol.top). These sections can store application-specific data directly within the binary run input (.tpr) file, eliminating the need for external files. This integration enables the aforementioned novel force field functional form to store their parameters in the topology file, as similarly to existing functional forms. This integration particularly streamlines workflows in high-performance computing (HPC) environments.

See our examples (TODO: Add link here) and the documentation for the feature.

Customizable Structure Processing #

GROMACS/Julia extends the pdb2gmx tool with Julia scripting capabilities, enabling custom processing of protein structure files. This feature allows users to implement specialized force field assignments and structural modifications during topology generation.

(TODO: Add detailed documentation and examples)

Advanced Free Energy Calculations #

GROMACS/Julia provides programmatic control over free energy calculations through λ-value manipulation. This enables implementation of sophisticated protocols such as:

  • Non-linear λ schedules that adapt to simulation length (e.g. (TODO: Add example and link here))
  • Dynamic λ-value adjustment based on system properties (e.g. lambda dynamics (TODO: Add link here))
  • Custom free energy sampling schemes (e.g. (TODO: Add example and link here))

For implementation examples and detailed API documentation of free energy functions, see our guide on advanced free energy calculations (TODO: Add link here).

Project philosophy #

This project serves two primary goals. The first is to enable rapid development of novel MD techniques, making them accessible to computational scientists who are comfortable with programming but may hesitate to modify GROMACS complex source code directly.

Our second goal is to iteratively refine the scripting interface API design, optimizing for performance, clarity, and ease of use. While all released versions of GROMACS/Julia will of course remain available to preserve existing scripts usability, we do not guarantee backward compatibility in future versions. The API will undergo breaking changes as newer versions are released, requiring script updates during GROMACS/Julia upgrades. This experimental approach is essential for eliciting the best use cases and API designs.

This iterative approach contrasts with the stable APIs in upstream GROMACS —specifically the module interface (MDModule) and Python API — which prioritize backward compatibility. While such stability has benefits, ensuring modules work across GROMACS versions, it also imposes significant maintenance costs that limit experimentation. Our project explicitly chooses flexibility over stability to facilitate rapid prototyping and innovation.

Credits #

This software package was made possible by work by members of the Theoretical and Computational Biophysics group led by Prof. Dr. Helmut Grubmüller at the Max Planck Institute for Multidisciplinary Science (MPI-NAT), part of the network of institutes of the Max Planck Society.

If you find this software useful, please cite the following article:

[Citation information to be added upon publication]