Skip to main content

Molecular dynamics simulation toolkit for enzyme-polymer systems

Project description

PolyzyMD Logo

PolyzyMD

CI Python 3.11 License: MIT

Molecular dynamics simulation toolkit for enzyme-polymer systems.

DocumentationInstallationQuick Start


Overview

PolyzyMD provides a streamlined workflow for setting up and running MD simulations of enzymes with co-polymer chains. It handles:

  • System Building: Combine enzyme structures, docked substrates, and random co-polymers
  • Solvation: Add water, ions, and optional co-solvents with PACKMOL
  • Simulation: Run equilibration and production with OpenMM
  • HPC Integration: Self-resubmitting job submission for SLURM clusters
  • Configuration: YAML-based configuration with validation

Analysis Status

  • Stable comparison and plotting workflows: RMSF, contacts, distances, catalytic triad, and secondary structure
  • Experimental but still available: contacts binding preference, exposure dynamics, binding free energy, and polymer affinity score
  • Experimental analyses remain callable from the CLI, but PolyzyMD labels their text output and generated figures as experimental because definitions and interpretation may change in a later release
  • Analysis currently supports OpenMM-produced trajectories (DCD format) only; GROMACS XTC trajectory support is planned for v1.2.1 (#47)

Installation

PolyzyMD uses pixi for environment management. Pixi handles all dependencies (OpenMM, OpenFF stack, CUDA, etc.) from conda-forge with reproducible lockfiles.

1. Install pixi

curl -fsSL https://pixi.sh/install.sh | sh

2. Clone and install

git clone https://github.com/joelaforet/polyzymd.git
cd polyzymd

For local use (building systems, validation, no GPU):

pixi install -e build
pixi shell -e build

For HPC clusters (GPU simulations):

Pick the environment that matches your cluster's CUDA version:

Cluster CUDA Environment OpenMM
CU Boulder Blanca 12.4 cuda-12-4 8.1
PSC Bridges2 12.6 cuda-12-6 8.4
# Example for Blanca:
pixi install -e cuda-12-4
pixi shell -e cuda-12-4

# Example for Bridges2:
pixi install -e cuda-12-6
pixi shell -e cuda-12-6

After pixi shell, the polyzymd command is on PATH and works normally.

How to find your CUDA version

Run on a GPU node:

nvidia-smi | head -1

The driver version in the top-right maps to a maximum supported CUDA version. Use the environment whose CUDA version does not exceed your driver.

Quick Start

1. Initialize a Project

polyzymd init --name my_simulation
cd my_simulation

This creates a project directory with a template config.yaml and placeholder files.

2. Add Your Structure Files

cp /path/to/enzyme.pdb structures/
cp /path/to/substrate.sdf structures/  # optional

3. Edit Configuration & Run

# Edit config.yaml with your settings, then:
polyzymd validate -c config.yaml
polyzymd submit -c config.yaml --replicates 1-5 --preset blanca-shirts

The --preset flag selects SLURM configuration and automatically picks the correct pixi environment (cuda-12-4 for Blanca, cuda-12-6 for Bridges2). You can override with --pixi-env:

polyzymd submit -c config.yaml --replicates 1-5 --preset bridges2 --pixi-env cuda-12-6

See the Quick Start Guide for a complete walkthrough.

CLI Commands

Command Description
polyzymd init -n my_project Initialize a new project directory
polyzymd validate -c config.yaml Validate configuration file
polyzymd build -c config.yaml Build simulation system
polyzymd run-gromacs -c config.yaml Build and run GROMACS simulation
polyzymd submit -c config.yaml Submit self-resubmitting jobs to SLURM
polyzymd run-segment -c config.yaml Run a single production segment
polyzymd check-progress -c config.yaml Check simulation completion status
polyzymd recover -c config.yaml Resume a stalled simulation
polyzymd info Show installation information

Pixi Environments

PolyzyMD uses pixi instead of conda/mamba. Key differences:

  • No conda activate — use pixi shell -e <env> instead
  • No environment YAMLpixi.toml + pixi.lock are the single source of truth
  • Reproducible — the lockfile pins every package to exact versions
  • CUDA-aware — each environment pins the correct CUDA and OpenMM versions
Environment Use case Requires GPU?
build System building, PDB prep, validation No
cuda-12-4 Simulations on CUDA 12.4 clusters (Blanca) Yes
cuda-12-6 Simulations on CUDA 12.6 clusters (Bridges2) Yes

Adding support for a new cluster

  1. Determine the CUDA version (nvidia-smi on a GPU node)
  2. Add a new [feature.cuda-X-Y] block in pixi.toml following the existing pattern
  3. Add the corresponding environment in [environments]
  4. Add the preset mapping in PRESET_DEFAULT_PIXI_ENV in slurm.py
  5. File a PR

Documentation

Full documentation is available at polyzymd.readthedocs.io.

License

MIT License - see LICENSE file for details.

Citation

If you use PolyzyMD in your research, please cite:

@software{polyzymd,
  author = {Laforet Jr., Joseph R.},
  title = {PolyzyMD: Polymer-Enzyme Interactions Studied with Molecular Dynamics},
  year = {2026},
  url = {https://github.com/joelaforet/polyzymd}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

polyzymd-1.2.0.tar.gz (537.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

polyzymd-1.2.0-py3-none-any.whl (658.6 kB view details)

Uploaded Python 3

File details

Details for the file polyzymd-1.2.0.tar.gz.

File metadata

  • Download URL: polyzymd-1.2.0.tar.gz
  • Upload date:
  • Size: 537.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for polyzymd-1.2.0.tar.gz
Algorithm Hash digest
SHA256 09260632901f41760a9822455ecd50e3d33f2a1b50ffff06c6de116697ce88d4
MD5 732f3b09b07c58c75ca001279a0ecdeb
BLAKE2b-256 a529ef8688f528049a5151a19542addefbe7811e9bfd751299f9f58914a1da22

See more details on using hashes here.

Provenance

The following attestation bundles were made for polyzymd-1.2.0.tar.gz:

Publisher: release.yml on joelaforet/polyzymd

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polyzymd-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: polyzymd-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 658.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for polyzymd-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c3b79762031edcf6625890f78fa30cf5fc787ebb09321a55fc53c06a1500de59
MD5 de3807cf433bf4bbfce3606d39a7a0e3
BLAKE2b-256 655be19f4efa7fbeaabbd1fa3808de4be955e80ce7f6cf9a261d6567cc0dbe4c

See more details on using hashes here.

Provenance

The following attestation bundles were made for polyzymd-1.2.0-py3-none-any.whl:

Publisher: release.yml on joelaforet/polyzymd

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page