Logo

Tutorials

  • Installation
    • Prerequisites
    • Install pixi
    • User Installation (local / no GPU)
      • What works in the build environment
    • HPC Installation
      • How to find your CUDA version
      • Setup steps
      • Submitting jobs
    • Developer Installation
    • Optional Dependencies
      • AmberTools
      • OpenEye Toolkit (commercial, faster AM1-BCC)
    • Common Installation Issues
      • “pixi: command not found”
      • “polyzymd: command not found”
      • pixi install fails on HPC login node
      • OpenMM can’t find CUDA
      • Adding support for a new cluster
    • Updating PolyzyMD
    • Uninstalling
    • Next Steps
  • Quick Start Guide
    • Overview
    • Step 1: Initialize Your Project
    • Step 2: Add Your Structure Files
      • Enzyme PDB Requirements
      • Substrate SDF Requirements (if using)
    • Step 3: Configure Your Simulation
      • Minimal Configuration (Enzyme Only)
      • Adding a Substrate
      • Adding Polymers
      • Adding Restraints
    • Step 4: Validate Configuration
    • Step 5: Test Build (Dry Run)
    • Step 6: Run Locally (Optional)
    • Step 7: Submit to HPC
    • Step 8: Monitor Jobs
    • Output Files
    • Next Steps
  • CLI Reference
    • Global Options
      • Colored Output
      • Logging Behavior
    • polyzymd init
      • Options
      • What It Creates
      • Example
      • Notes
    • polyzymd validate
      • Options
      • What It Checks
      • Example
    • polyzymd build
      • Options
      • Example
      • Output Files (OpenMM)
      • Output Files (GROMACS)
    • polyzymd run-gromacs
      • Options
      • Example
      • Workflow
      • Notes
      • Output Files
    • polyzymd submit
      • Options
      • SLURM Presets
      • Example
      • Self-Resubmitting Jobs
    • polyzymd run-segment
      • Options
      • Behavior
      • Exit Codes
      • Notes
    • polyzymd check-progress
      • Options
      • Exit Codes
      • Example
      • Notes
    • polyzymd status
      • Usage
      • Options
      • Output Format
      • Status Colors
      • Notes
    • polyzymd recover
      • Options
      • Example
      • Example Output (Status Only)
      • Notes
    • polyzymd info
      • Example Output
      • Use Cases
    • Environment Variables
      • Example
    • Exit Codes
    • See Also
  • Colored Logging
    • Color Scheme
    • Terminal Support Levels
    • Disabling Colors
      • 1. --no-color CLI flag
      • 2. NO_COLOR environment variable
      • 3. Automatic detection
    • Preserved Click Styling
    • For Developers
  • Configuration Reference
    • Configuration Structure
    • Enzyme Configuration
    • Substrate Configuration
      • Charge Methods
      • No Substrate (Apo Simulation)
    • Polymer Configuration
      • Basic Configuration (Cached Mode)
      • Dynamic Generation Configuration
      • All Polymer Options
      • Monomer Specification
      • Charge Methods for Dynamic Generation
      • No Polymers
    • Solvent Configuration
      • Water Models
      • Box Shapes
      • Co-solvents
        • Specification Methods
        • Volume Fraction Method
        • Concentration Method
        • Built-in Co-solvent Library
        • Custom Co-solvents
        • Multiple Co-solvents
        • Assumptions and Limitations
      • Solvent Parameterization
        • Why Pre-computed Charges?
        • How It Works
        • Available Pre-computed Solvents
        • Custom Solvents
        • Managing the Cache
    • Restraints Configuration
      • Restraint Types
    • Thermodynamics Configuration
    • Simulation Phases Configuration
      • Ensembles
      • Thermostats
      • Barostats
    • Output Configuration
      • Naming Template Variables
    • Force Field Configuration
      • Available Force Fields
      • Key Collision Warnings
        • Why This Happens
        • How OpenFF Handles This
        • What You’ll See in Logs
        • Further Reading
    • Complete Example
    • See Also
  • Multi-Stage Equilibration
    • Overview
    • Why Use Multi-Stage Equilibration?
    • Configuration
      • Basic Structure
      • Complete Example
    • Stage Configuration Options
      • Basic Options
      • Temperature Options
      • Position Restraints
    • Atom Groups
      • Available Groups
      • How Atom Groups Are Determined
    • Force Constants
      • Unit Conversion
      • Recommended Values
    • Temperature Ramping Details
      • How It Works
      • Calculating Duration
    • Periodic Boundary Conditions
      • How Position Restraints Handle PBC
    • Output Files
    • Typical Protocols
      • Enzyme-Only System
      • Enzyme-Polymer System
      • Gradual Restraint Release
    • Troubleshooting
      • Simulation Crashes with NaN
      • Temperature Spikes
      • Protein Unfolds During Polymer Relaxation
      • Slow Equilibration
  • Restraints Guide
    • Overview
    • Restraint Types
      • Flat-Bottom Restraint
      • Harmonic Restraint
      • Upper Wall
      • Lower Wall
    • Atom Selection Syntax
      • Available Keywords
      • Combining Selections
      • Index Conventions
    • Understanding Atom Ordering in PolyzyMD
    • Workflow: Finding Atom Indices with PyMOL
      • Step 1: Run Your Simulation Build
      • Step 2: Open the Solvated PDB in PyMOL
      • Step 3: Select and Label Your Target Atom
      • Step 4: Write Your Selection
    • Real Example: Restraining a Docked Ligand
      • The Solvated PDB Structure
      • The Configuration
      • What You’ll See When Running
    • Common Restraint Patterns
      • Substrate in Active Site
      • Multiple Active Site Contacts
      • Protein-Protein Distance
    • Force Constant Guidelines
    • Troubleshooting
      • “No atoms match selection”
      • “Requires exactly one atom per selection”
      • Restraint Not Taking Effect
    • Disabling Restraints
      • In Configuration
      • No Restraints at All
  • HPC and SLURM Guide
    • Overview
    • User Workflow
      • Step-by-Step Example
    • Directory Structure
    • Configuring Directories
      • In YAML Configuration
      • Via CLI Override
    • SLURM Presets
      • Using Presets
      • Overriding Time Limit
      • Custom SLURM Settings
    • Bridges2 (PSC)
      • Key Differences from Alpine
      • Account
      • GPU Type Selection
      • Full Bridges2 Workflow
      • Bridges2 Directory Structure
    • Self-Resubmitting Job Model
      • How It Works
      • Progress Tracking
      • Configuring Production Duration
    • Smart Restart & Fault Tolerance
      • What Happens Automatically
      • The Three Scenarios
      • Interrupted State Files
      • Wall-Time Restart Checkpoints
      • Adaptive Sub-Chunking
      • Signal Forwarding: Why trap + background + wait?
      • Manually Triggering an Interrupt
      • Cancelling a Job Permanently
      • Manual Recovery
    • Submitting Jobs
      • Dry Run (Recommended First)
      • Submit for Real
      • Replicate Specification
    • Monitoring Jobs
      • Check Job Status
      • View Job Output
      • Check Simulation Progress
    • Handling Failures
      • Wall-Time or Preemption Interrupts
      • Hard Crash (OOM, Segfault, Node Failure)
      • Checking Progress
      • Start Fresh
    • Generated Script Structure
      • Key Features of the Generated Script
    • Best Practices
      • 1. Always Test First
      • 2. Monitor Early Segments
      • 3. Back Up Important Data
      • 4. Use Email Notifications
      • 5. Segment Duration Guidelines
    • CLI Reference
      • polyzymd submit
      • polyzymd run-segment
      • polyzymd check-progress
      • polyzymd recover
    • Troubleshooting
      • “Job pending forever”
      • “pixi: command not found” in job
      • “Out of memory”
      • “GPU not detected”
      • “config.yaml not found”
  • Performance Benchmarks
    • How to Read These Tables
    • CU Boulder Alpine Cluster
      • NVIDIA A100 (aa100 partition)
      • NVIDIA L40 (al40 partition)
    • Blanca Cluster (Shirts Lab)
      • NVIDIA A40 (blanca-shirts partition)
    • Benchmark Conditions
    • Contributing Benchmarks
    • Estimating Simulation Time
  • Polymer Setup Guide
    • Overview
    • Basic Configuration
    • Monomer Definition
      • Probability-Based Selection
      • Multiple Monomers
      • Homopolymers
    • Chain Configuration
      • Chain Length
      • Number of Chains
    • Pre-Built Polymer SDFs
      • Directory Structure
      • Configuration
      • Naming Convention
    • Polymer Cache
    • Example Configurations
      • SBMA-EGPMA Co-polymer
      • PEG Homopolymer
      • Block Co-polymer (Approximate)
    • Disabling Polymers
      • Control Simulations
    • Placement and Solvation
      • Box Padding
    • Troubleshooting
      • “PACKMOL failed”
      • “Force field assignment failed”
      • “Simulation unstable with polymers”
    • Performance Considerations
    • See Also
  • Dynamic Polymer Generation
    • Overview
    • When to Use Dynamic Mode
    • Quick Start
    • Configuration Reference
      • Generation Mode
      • Monomer SMILES
      • ATRP Reaction Configuration
      • Charge Assignment
      • Retry Configuration
    • Complete Example Configuration
    • How Dynamic Generation Works
      • Step 1: Fragment Generation
      • Step 2: Polymer Building
      • Step 3: Caching
    • Supported Chemistries
      • ATRP (Atom-Transfer Radical Polymerization)
      • Adding New Monomers
    • Troubleshooting
      • “No 1-site terminal fragment found for monomer”
      • “Failed to build polymer after N attempts due to ring-piercing”
      • “Symbol ‘X’ not present in monomer group mapping”
      • Slow fragment generation
    • Performance Tips
    • See Also
  • GROMACS Export and Simulation
    • Overview
    • When to Use GROMACS vs OpenMM
    • Quick Start
      • Export and Run with GROMACS
      • Using a Custom GROMACS Installation
    • Complete Example: Multi-Component System
      • Step 1: Create Configuration
      • Step 2: Validate Configuration
      • Step 3: Run with GROMACS
    • GROMACS Output Files
    • MDP Parameters
      • Key Parameters
      • Thermostat/Barostat
    • Generated Run Script
    • Running on HPC Clusters
      • Manual SLURM Submission
      • Using GPU Acceleration
    • Troubleshooting
      • “GROMACS executable not found”
      • “grompp warnings about charge groups”
      • “Fatal error: Number of atoms in [file] does not match”
      • “Simulation crashes during equilibration”
      • “Trajectory has broken molecules”
    • Post-Processing and Analysis
      • Extract Energy Data
      • Trajectory Analysis
      • Visualize with VMD
    • Comparison with OpenMM Output
    • See Also
  • Understanding Residue Assignment in PolyzyMD
    • The Core Principle: One Repeat Unit = One Residue
    • The Problem: Default Behavior Loses Information
      • What Happens by Default
      • Why This Is a Problem
    • PolyzyMD’s Solution: Consistent Repeat-Unit Residue Assignment
      • What PolyzyMD Produces
      • Chain Assignment Strategy
    • Practical Analysis Examples
      • 1. Select Specific Solvent Molecules
      • 2. Find Waters Near the Active Site
      • 3. Track Hydration Shell Over Time
      • 4. Calculate Water Residence Times
      • 5. Analyze Polymer Monomers Individually
      • 6. Hydrogen Bond Analysis with Molecule Identity
      • 7. PyMOL Visualization
    • Technical Details
      • How It Works
      • Why Other Tools Don’t Do This
      • Verifying Your Topology
    • Comparison: Before and After
      • Without Proper Residue Assignment (Default OpenFF)
      • With PolyzyMD’s Repeat-Unit Residue Assignment
    • Best Practices
      • 1. Always Use the PolyzyMD-Generated PDB
      • 2. Mind the Chain Boundaries
      • 3. Think in Terms of Repeat Units
    • Summary
  • Architecture Guide
    • Package Structure
    • Data Flow Overview
    • Component Details
      • CLI (cli/main.py)
      • Configuration (config/schema.py)
      • Builders (builders/)
        • system_builder.py - Orchestrator
        • enzyme.py - Protein Loading
        • substrate.py - Ligand Handling
        • polymer.py - Random Copolymer Generation
        • solvent.py - Solvation
      • Simulation (simulation/)
        • runner.py - Initial Runs
        • continuation.py - Checkpoint Continuation
      • Workflow (workflow/)
        • slurm.py - SLURM Script Generation
        • daisy_chain.py - Job Submission
      • Core Utilities (core/)
        • parameters.py - Simulation Parameters
        • restraints.py - Distance Restraints
    • Common Modifications
      • Adding a New Reporter Output
      • Adding a New SLURM Preset
      • Changing the Force Field
      • Adding Custom Pre/Post-Processing Steps
    • Common Workflows
      • Submitting Jobs to HPC
        • Available Presets
        • Example Commands
        • Replicate Specification
        • Monitoring Jobs
    • Testing Your Changes
    • Related Documentation
  • Package Structure and Development Guide
    • Overview
    • Package Layout
      • The src/ Layout
      • Why src/ Layout?
      • Alternative: Flat Layout
    • The pyproject.toml File
      • Key Sections
        • Build System
        • Project Metadata
        • Dependencies
        • Entry Points (CLI Commands)
    • Handling Heavy Dependencies
      • The Challenge
      • The Solution: Lazy Imports
      • Why This Matters
      • Recommended Installation
      • Optional Charging Backends
        • AmberTools (sqm)
        • OpenEye Toolkit (Commercial)
    • Continuous Integration (CI)
      • Two-Tier CI Strategy
        • Tier 1: Basic CI (Runs on Every PR)
        • Tier 2: Full CI (Runs Weekly or on Release)
      • The Conda Environment File
    • Version Management
      • Simple Approach (Current)
      • Dynamic Versioning (Alternative)
    • Creating a Release
      • Steps for a New Release
      • PyPI Publishing
    • Directory Structure Reference
    • Best Practices Summary
      • Do
      • Don’t
    • Further Reading
    • See Also
  • Troubleshooting
    • Installation Issues
      • “README.md not found”
      • “Module not found: openmm”
      • “Import error after installation”
    • Configuration Errors
      • “Validation failed: field required”
      • “File not found”
      • “Invalid YAML syntax”
      • “Multiple validation errors” / “Field required” for list items
    • System Building Errors
      • “Charge assignment failed”
      • “PACKMOL failed to converge”
      • “No atoms match selection”
    • Simulation Errors
      • “NaN encountered”
      • “Out of memory”
        • GPU Memory (CUDA OOM)
        • System Memory (SLURM OOM)
      • “Simulation too slow”
    • SLURM/HPC Errors
      • “Job pending: Resources”
      • “Job failed: time limit”
      • “Module not found in job”
      • “Permission denied on scratch”
    • Continuation Errors
      • “Checkpoint not found”
      • “State mismatch”
    • Visualization Issues
      • “Molecules appear broken/scrambled in PyMOL or VMD”
    • Getting Help
      • Collect Debug Information
      • Report Issues
  • Help! My Simulation Shows a Ball of Bonds Instead of Reasonable Looking Molecules!
    • TL;DR (The Quick Fix)
    • The Problem We Encountered
      • What We Saw
      • The Crucial Observation
      • Why This Matters
    • Background: How DCD Trajectories Work
      • The DCD File Format
      • The Critical Assumption
      • A Simple Analogy
      • Why DCD Works This Way
    • Our Debugging Journey
      • Attempt 1: “It Must Be PBC Wrapping!”
      • Attempt 2: “Maybe It’s the DCD Reporter?”
      • Attempt 3: “Is It the Topology File?”
      • The Breakthrough: Pattern Recognition
    • Root Cause: Atom Order Mismatch
      • How OpenFF Interchange Works
      • The Old Algorithm (Broken)
      • The Topology File Order
      • The Mismatch Visualized
    • The Solution
      • New Algorithm: Preserve Order
      • Key Principle
      • Why Batching Consecutive Molecules Works
    • Lessons for Future Developers
      • 1. DCD Files Are “Dumb”
      • 2. Diagnosis Checklist
      • 3. Quick Verification Script
      • 4. Prevention Strategies
    • How to Verify the Fix Worked
      • Visual Verification
      • Programmatic Verification
    • Appendix: Technical Details
      • Relevant Code Location
      • The Actual Fix (Abbreviated)
      • Related Resources
      • When This Problem Might Appear Elsewhere
  • Contributing Guide
    • Contributing New Solvents
      • Step 1: Add to the Co-solvent Library
      • Step 2: Generate the Pre-computed SDF
      • Step 3: Verify the SDF
      • Step 4: Test the New Solvent
      • Step 5: Submit a Pull Request
    • SDF File Format
    • Water Models
    • Code Style
    • Testing
    • Questions?

API Documentation

  • API Overview
    • Package Structure
    • Key Classes
      • Configuration
      • Building
      • Simulation
      • Workflow
      • Restraints
    • Quick Reference
      • Load Configuration
      • Build System
      • Run Simulation
      • Submit to SLURM
  • Configuration Module
    • ChargeMethod
      • ChargeMethod.NAGL
      • ChargeMethod.ESPALOMA
      • ChargeMethod.AM1BCC
    • WaterModel
      • WaterModel.TIP3P
      • WaterModel.SPCE
      • WaterModel.TIP4P
      • WaterModel.TIP4PEW
      • WaterModel.OPC
    • BoxShape
      • BoxShape.CUBE
      • BoxShape.RHOMBIC_DODECAHEDRON
      • BoxShape.TRUNCATED_OCTAHEDRON
    • Ensemble
      • Ensemble.NVT
      • Ensemble.NPT
      • Ensemble.NVE
    • ThermostatType
      • ThermostatType.LANGEVIN_MIDDLE
      • ThermostatType.LANGEVIN
      • ThermostatType.ANDERSEN
      • ThermostatType.NOSE_HOOVER
    • BarostatType
      • BarostatType.MONTE_CARLO
      • BarostatType.MONTE_CARLO_ANISOTROPIC
    • RestraintType
      • RestraintType.FLAT_BOTTOM
      • RestraintType.HARMONIC
      • RestraintType.UPPER_WALL
      • RestraintType.LOWER_WALL
    • EnzymeConfig
      • EnzymeConfig.name
      • EnzymeConfig.pdb_path
      • EnzymeConfig.description
      • EnzymeConfig.name
      • EnzymeConfig.pdb_path
      • EnzymeConfig.description
      • EnzymeConfig.validate_pdb_path()
      • EnzymeConfig.model_config
    • SubstrateConfig
      • SubstrateConfig.name
      • SubstrateConfig.sdf_path
      • SubstrateConfig.conformer_index
      • SubstrateConfig.charge_method
      • SubstrateConfig.residue_name
      • SubstrateConfig.name
      • SubstrateConfig.sdf_path
      • SubstrateConfig.conformer_index
      • SubstrateConfig.charge_method
      • SubstrateConfig.residue_name
      • SubstrateConfig.validate_sdf_path()
      • SubstrateConfig.model_config
    • PolymerPackingConfig
      • PolymerPackingConfig.padding
      • PolymerPackingConfig.tolerance
      • PolymerPackingConfig.movebadrandom
      • PolymerPackingConfig.box_vectors
      • PolymerPackingConfig.padding
      • PolymerPackingConfig.tolerance
      • PolymerPackingConfig.movebadrandom
      • PolymerPackingConfig.box_vectors
      • PolymerPackingConfig.model_config
    • MonomerSpec
      • MonomerSpec.label
      • MonomerSpec.probability
      • MonomerSpec.name
      • MonomerSpec.smiles
      • MonomerSpec.residue_name
      • MonomerSpec.label
      • MonomerSpec.probability
      • MonomerSpec.name
      • MonomerSpec.smiles
      • MonomerSpec.residue_name
      • MonomerSpec.auto_generate_residue_name()
      • MonomerSpec.model_config
    • PolymerGenerationMode
      • PolymerGenerationMode.CACHED
      • PolymerGenerationMode.DYNAMIC
    • ReactionConfig
      • ReactionConfig.initiation
      • ReactionConfig.polymerization
      • ReactionConfig.termination
      • ReactionConfig.initiation
      • ReactionConfig.polymerization
      • ReactionConfig.termination
      • ReactionConfig.resolve_default_paths()
      • ReactionConfig.model_config
    • PolymerConfig
      • PolymerConfig.enabled
      • PolymerConfig.generation_mode
      • PolymerConfig.type_prefix
      • PolymerConfig.monomers
      • PolymerConfig.length
      • PolymerConfig.count
      • PolymerConfig.sdf_directory
      • PolymerConfig.reactions
      • PolymerConfig.charger
      • PolymerConfig.max_retries
      • PolymerConfig.cache_directory
      • PolymerConfig.packing
      • PolymerConfig.random_seed
      • PolymerConfig.enabled
      • PolymerConfig.generation_mode
      • PolymerConfig.type_prefix
      • PolymerConfig.monomers
      • PolymerConfig.length
      • PolymerConfig.count
      • PolymerConfig.sdf_directory
      • PolymerConfig.reactions
      • PolymerConfig.charger
      • PolymerConfig.max_retries
      • PolymerConfig.cache_directory
      • PolymerConfig.packing
      • PolymerConfig.random_seed
      • PolymerConfig.validate_probabilities_sum_to_one()
      • PolymerConfig.validate_generation_mode_requirements()
      • PolymerConfig.model_config
    • CoSolventSpec
      • CoSolventSpec.name
      • CoSolventSpec.smiles
      • CoSolventSpec.volume_fraction
      • CoSolventSpec.concentration
      • CoSolventSpec.density
      • CoSolventSpec.residue_name
      • CoSolventSpec.name
      • CoSolventSpec.smiles
      • CoSolventSpec.volume_fraction
      • CoSolventSpec.concentration
      • CoSolventSpec.density
      • CoSolventSpec.residue_name
      • CoSolventSpec.validate_and_populate()
      • CoSolventSpec.model_config
    • PrimarySolventConfig
      • PrimarySolventConfig.type
      • PrimarySolventConfig.model
      • PrimarySolventConfig.type
      • PrimarySolventConfig.model
      • PrimarySolventConfig.model_config
    • IonConfig
      • IonConfig.neutralize
      • IonConfig.nacl_concentration
      • IonConfig.kcl_concentration
      • IonConfig.mgcl2_concentration
      • IonConfig.neutralize
      • IonConfig.nacl_concentration
      • IonConfig.kcl_concentration
      • IonConfig.mgcl2_concentration
      • IonConfig.model_config
    • BoxConfig
      • BoxConfig.padding
      • BoxConfig.shape
      • BoxConfig.target_density
      • BoxConfig.tolerance
      • BoxConfig.padding
      • BoxConfig.shape
      • BoxConfig.target_density
      • BoxConfig.tolerance
      • BoxConfig.model_config
    • SolventConfig
      • SolventConfig.primary
      • SolventConfig.co_solvents
      • SolventConfig.ions
      • SolventConfig.box
      • SolventConfig.primary
      • SolventConfig.co_solvents
      • SolventConfig.ions
      • SolventConfig.box
      • SolventConfig.validate_volume_fractions()
      • SolventConfig.model_config
    • AtomSelectionConfig
      • AtomSelectionConfig.selection
      • AtomSelectionConfig.description
      • AtomSelectionConfig.selection
      • AtomSelectionConfig.description
      • AtomSelectionConfig.model_config
    • RestraintConfig
      • RestraintConfig.type
      • RestraintConfig.name
      • RestraintConfig.atom1
      • RestraintConfig.atom2
      • RestraintConfig.distance
      • RestraintConfig.force_constant
      • RestraintConfig.enabled
      • RestraintConfig.type
      • RestraintConfig.name
      • RestraintConfig.atom1
      • RestraintConfig.atom2
      • RestraintConfig.distance
      • RestraintConfig.force_constant
      • RestraintConfig.enabled
      • RestraintConfig.model_config
    • ThermodynamicsConfig
      • ThermodynamicsConfig.temperature
      • ThermodynamicsConfig.pressure
      • ThermodynamicsConfig.salt_concentration
      • ThermodynamicsConfig.temperature
      • ThermodynamicsConfig.pressure
      • ThermodynamicsConfig.model_config
    • SimulationPhaseConfig
      • SimulationPhaseConfig.ensemble
      • SimulationPhaseConfig.duration
      • SimulationPhaseConfig.samples
      • SimulationPhaseConfig.time_step
      • SimulationPhaseConfig.thermostat
      • SimulationPhaseConfig.thermostat_timescale
      • SimulationPhaseConfig.barostat
      • SimulationPhaseConfig.barostat_frequency
      • SimulationPhaseConfig.checkpoint_interval
      • SimulationPhaseConfig.ensemble
      • SimulationPhaseConfig.duration
      • SimulationPhaseConfig.samples
      • SimulationPhaseConfig.time_step
      • SimulationPhaseConfig.thermostat
      • SimulationPhaseConfig.thermostat_timescale
      • SimulationPhaseConfig.barostat
      • SimulationPhaseConfig.barostat_frequency
      • SimulationPhaseConfig.checkpoint_interval
      • SimulationPhaseConfig.validate_ensemble_barostat()
      • SimulationPhaseConfig.model_config
    • PositionRestraintConfig
      • PositionRestraintConfig.group
      • PositionRestraintConfig.force_constant
      • PositionRestraintConfig.group
      • PositionRestraintConfig.force_constant
      • PositionRestraintConfig.validate_group_name()
      • PositionRestraintConfig.model_config
    • EquilibrationStageConfig
      • EquilibrationStageConfig.name
      • EquilibrationStageConfig.duration
      • EquilibrationStageConfig.samples
      • EquilibrationStageConfig.ensemble
      • EquilibrationStageConfig.temperature
      • EquilibrationStageConfig.temperature_start
      • EquilibrationStageConfig.temperature_end
      • EquilibrationStageConfig.temperature_increment
      • EquilibrationStageConfig.temperature_interval
      • EquilibrationStageConfig.position_restraints
      • EquilibrationStageConfig.time_step
      • EquilibrationStageConfig.thermostat
      • EquilibrationStageConfig.thermostat_timescale
      • EquilibrationStageConfig.barostat
      • EquilibrationStageConfig.barostat_frequency
      • EquilibrationStageConfig.name
      • EquilibrationStageConfig.duration
      • EquilibrationStageConfig.samples
      • EquilibrationStageConfig.ensemble
      • EquilibrationStageConfig.temperature
      • EquilibrationStageConfig.temperature_start
      • EquilibrationStageConfig.temperature_end
      • EquilibrationStageConfig.temperature_increment
      • EquilibrationStageConfig.temperature_interval
      • EquilibrationStageConfig.position_restraints
      • EquilibrationStageConfig.time_step
      • EquilibrationStageConfig.thermostat
      • EquilibrationStageConfig.thermostat_timescale
      • EquilibrationStageConfig.barostat
      • EquilibrationStageConfig.barostat_frequency
      • EquilibrationStageConfig.validate_temperature_mode()
      • EquilibrationStageConfig.validate_npt_barostat()
      • EquilibrationStageConfig.is_temperature_ramping
      • EquilibrationStageConfig.get_start_temperature()
      • EquilibrationStageConfig.get_final_temperature()
      • EquilibrationStageConfig.model_config
    • SimulationPhasesConfig
      • SimulationPhasesConfig.equilibration_stages
      • SimulationPhasesConfig.equilibration
      • SimulationPhasesConfig.production
      • SimulationPhasesConfig.model_config
      • SimulationPhasesConfig.equilibration_stages
      • SimulationPhasesConfig.equilibration
      • SimulationPhasesConfig.production
      • SimulationPhasesConfig.warn_deprecated_segments()
      • SimulationPhasesConfig.validate_equilibration_mode()
      • SimulationPhasesConfig.uses_staged_equilibration
      • SimulationPhasesConfig.total_equilibration_duration
      • SimulationPhasesConfig.total_equilibration_samples
    • expand_path()
    • OutputConfig
      • OutputConfig.projects_directory
      • OutputConfig.scratch_directory
      • OutputConfig.naming_template
      • OutputConfig.job_scripts_subdir
      • OutputConfig.slurm_logs_subdir
      • OutputConfig.save_checkpoint
      • OutputConfig.save_state_data
      • OutputConfig.trajectory_format
      • OutputConfig.projects_directory
      • OutputConfig.scratch_directory
      • OutputConfig.naming_template
      • OutputConfig.job_scripts_subdir
      • OutputConfig.slurm_logs_subdir
      • OutputConfig.save_checkpoint
      • OutputConfig.save_state_data
      • OutputConfig.trajectory_format
      • OutputConfig.base_directory
      • OutputConfig.expand_env_vars_in_paths()
      • OutputConfig.handle_legacy_base_directory()
      • OutputConfig.effective_scratch_directory
      • OutputConfig.format_directory_name()
      • OutputConfig.get_job_scripts_directory()
      • OutputConfig.get_slurm_logs_directory()
      • OutputConfig.model_config
    • ForceFieldConfig
      • ForceFieldConfig.protein
      • ForceFieldConfig.small_molecule
      • ForceFieldConfig.water
      • ForceFieldConfig.protein
      • ForceFieldConfig.small_molecule
      • ForceFieldConfig.model_config
    • SimulationConfig
      • SimulationConfig.name
      • SimulationConfig.description
      • SimulationConfig.enzyme
      • SimulationConfig.substrate
      • SimulationConfig.polymers
      • SimulationConfig.solvent
      • SimulationConfig.restraints
      • SimulationConfig.thermodynamics
      • SimulationConfig.simulation_phases
      • SimulationConfig.output
      • SimulationConfig.force_field
      • SimulationConfig.name
      • SimulationConfig.description
      • SimulationConfig.enzyme
      • SimulationConfig.substrate
      • SimulationConfig.polymers
      • SimulationConfig.solvent
      • SimulationConfig.restraints
      • SimulationConfig.thermodynamics
      • SimulationConfig.simulation_phases
      • SimulationConfig.output
      • SimulationConfig.force_field
      • SimulationConfig.from_yaml()
      • SimulationConfig.to_yaml()
      • SimulationConfig.get_working_directory()
      • SimulationConfig.get_projects_directory()
      • SimulationConfig.discover_replicate_dirs()
      • SimulationConfig.to_signac_statepoint()
      • SimulationConfig.model_config
    • Loader Utilities
      • ConfigLoader
        • ConfigLoader.__init__()
        • ConfigLoader.load()
      • load_config()
      • save_config()
      • load_config_dict()
  • Builders Module
    • System Builder
      • SystemBuilder
        • SystemBuilder.__init__()
        • SystemBuilder.interchange
        • SystemBuilder.solvated_topology
        • SystemBuilder.from_config()
        • SystemBuilder.build_enzyme()
        • SystemBuilder.build_substrate()
        • SystemBuilder.build_polymers()
        • SystemBuilder.combine_solutes()
        • SystemBuilder.pack_polymers()
        • SystemBuilder.solvate()
        • SystemBuilder.create_interchange()
        • SystemBuilder.save_topology()
        • SystemBuilder.build_from_config()
        • SystemBuilder.get_openmm_components()
        • SystemBuilder.export_to_gromacs()
        • SystemBuilder.get_component_info()
    • Enzyme Builder
      • EnzymeBuilder
        • EnzymeBuilder.__init__()
        • EnzymeBuilder.topology
        • EnzymeBuilder.pdb_path
        • EnzymeBuilder.build()
        • EnzymeBuilder.build_from_config()
        • EnzymeBuilder.get_molecule()
        • EnzymeBuilder.validate()
    • Substrate Builder
      • SubstrateBuilder
        • SubstrateBuilder.__init__()
        • SubstrateBuilder.molecule
        • SubstrateBuilder.all_conformers
        • SubstrateBuilder.sdf_path
        • SubstrateBuilder.conformer_index
        • SubstrateBuilder.build()
        • SubstrateBuilder.build_from_config()
        • SubstrateBuilder.get_n_conformers()
        • SubstrateBuilder.validate()
    • Polymer Builder
      • canonical_sequence()
      • generate_random_sequence()
      • PolymerBuilder
        • PolymerBuilder.__init__()
        • PolymerBuilder.characters
        • PolymerBuilder.probabilities
        • PolymerBuilder.length
        • PolymerBuilder.loaded_molecules
        • PolymerBuilder.sequence_counts
        • PolymerBuilder.build()
        • PolymerBuilder.build_from_config()
        • PolymerBuilder.get_packing_info()
        • PolymerBuilder.validate()
    • Solvent Builder
      • Solvent Parameterization
      • CoSolvent
        • CoSolvent.name
        • CoSolvent.smiles
        • CoSolvent.volume_fraction
        • CoSolvent.concentration
        • CoSolvent.density
        • CoSolvent.residue_name
        • CoSolvent.molecule
        • CoSolvent.name
        • CoSolvent.smiles
        • CoSolvent.volume_fraction
        • CoSolvent.concentration
        • CoSolvent.density
        • CoSolvent.residue_name
        • CoSolvent.molecule
        • CoSolvent.__post_init__()
        • CoSolvent.__init__()
      • SolvationCounts
        • SolvationCounts.water
        • SolvationCounts.na
        • SolvationCounts.cl
        • SolvationCounts.co_solvents
        • SolvationCounts.water
        • SolvationCounts.na
        • SolvationCounts.cl
        • SolvationCounts.co_solvents
        • SolvationCounts.total_solvent_molecules
        • SolvationCounts.__init__()
      • SolventComposition
        • SolventComposition.water_model
        • SolventComposition.co_solvents
        • SolventComposition.nacl_concentration
        • SolventComposition.kcl_concentration
        • SolventComposition.mgcl2_concentration
        • SolventComposition.neutralize
        • SolventComposition.water_model
        • SolventComposition.co_solvents
        • SolventComposition.nacl_concentration
        • SolventComposition.kcl_concentration
        • SolventComposition.mgcl2_concentration
        • SolventComposition.neutralize
        • SolventComposition.water_volume_fraction
        • SolventComposition.__init__()
      • SolventBuilder
        • SolventBuilder.__init__()
        • SolventBuilder.solvated_topology
        • SolventBuilder.box_vectors
        • SolventBuilder.solvation_counts
        • SolventBuilder.solvate()
        • SolventBuilder.solvate_from_config()
        • SolventBuilder.validate()
  • Simulation Module
    • Simulation Runner
      • SimulationRunner
        • SimulationRunner.__init__()
        • SimulationRunner.simulation
        • SimulationRunner.working_dir
        • SimulationRunner.history
        • SimulationRunner.minimize()
        • SimulationRunner.run_equilibration()
        • SimulationRunner.run_equilibration_stage()
        • SimulationRunner.run_staged_equilibration()
        • SimulationRunner.run_production()
        • SimulationRunner.save_history()
        • SimulationRunner.load_checkpoint()
    • Continuation Manager
      • quantity_from_dict()
      • ContinuationManager
        • ContinuationManager.__init__()
        • ContinuationManager.working_dir
        • ContinuationManager.segment_index
        • ContinuationManager.simulation
        • ContinuationManager.load_previous_state()
        • ContinuationManager.run_segment()
  • Workflow Module
    • Job Submitter
      • check_existing_slurm_jobs()
      • create_job_name()
      • DaisyChainConfig
        • DaisyChainConfig.slurm_config
        • DaisyChainConfig.total_production_time_ns
        • DaisyChainConfig.total_samples
        • DaisyChainConfig.equilibration_time_ns
        • DaisyChainConfig.replicates
        • DaisyChainConfig.dry_run
        • DaisyChainConfig.force
        • DaisyChainConfig.output_script_dir
        • DaisyChainConfig.config_path
        • DaisyChainConfig.slurm_config
        • DaisyChainConfig.total_production_time_ns
        • DaisyChainConfig.total_samples
        • DaisyChainConfig.equilibration_time_ns
        • DaisyChainConfig.replicates
        • DaisyChainConfig.dry_run
        • DaisyChainConfig.force
        • DaisyChainConfig.output_script_dir
        • DaisyChainConfig.config_path
        • DaisyChainConfig.from_simulation_config()
        • DaisyChainConfig.__init__()
      • SubmissionResult
        • SubmissionResult.job_id
        • SubmissionResult.script_path
        • SubmissionResult.segment_index
        • SubmissionResult.replicate
        • SubmissionResult.is_dry_run
        • SubmissionResult.job_id
        • SubmissionResult.script_path
        • SubmissionResult.segment_index
        • SubmissionResult.replicate
        • SubmissionResult.is_dry_run
        • SubmissionResult.__init__()
      • DaisyChainSubmitter
        • DaisyChainSubmitter.__init__()
        • DaisyChainSubmitter.sim_config
        • DaisyChainSubmitter.dc_config
        • DaisyChainSubmitter.job_chains
        • DaisyChainSubmitter.generate_job_script()
        • DaisyChainSubmitter.submit_replicate()
        • DaisyChainSubmitter.submit_all()
      • submit_daisy_chain()
    • SLURM Configuration
      • SlurmConfig
        • SlurmConfig.partition
        • SlurmConfig.qos
        • SlurmConfig.account
        • SlurmConfig.time_limit
        • SlurmConfig.email
        • SlurmConfig.nodes
        • SlurmConfig.ntasks
        • SlurmConfig.memory
        • SlurmConfig.gpus
        • SlurmConfig.exclude
        • SlurmConfig.gpu_type
        • SlurmConfig.gpu_directive_style
        • SlurmConfig.partition
        • SlurmConfig.qos
        • SlurmConfig.account
        • SlurmConfig.time_limit
        • SlurmConfig.email
        • SlurmConfig.nodes
        • SlurmConfig.ntasks
        • SlurmConfig.memory
        • SlurmConfig.gpus
        • SlurmConfig.exclude
        • SlurmConfig.gpu_type
        • SlurmConfig.gpu_directive_style
        • SlurmConfig.from_preset()
        • SlurmConfig.__init__()
      • JobContext
        • JobContext.job_name
        • JobContext.output_file
        • JobContext.scratch_dir
        • JobContext.projects_dir
        • JobContext.segment_index
        • JobContext.replicate_num
        • JobContext.extra_vars
        • JobContext.job_name
        • JobContext.output_file
        • JobContext.scratch_dir
        • JobContext.projects_dir
        • JobContext.segment_index
        • JobContext.replicate_num
        • JobContext.extra_vars
        • JobContext.working_dir
        • JobContext.__init__()
      • SlurmScriptGenerator
        • SlurmScriptGenerator.JOB_TEMPLATE
        • SlurmScriptGenerator.__init__()
        • SlurmScriptGenerator.config
        • SlurmScriptGenerator.generate_job_script()
        • SlurmScriptGenerator.save_script()
      • parse_replicate_range()
      • validate_replicate_range()
  • Core Module
    • Restraints
      • RestraintType
        • RestraintType.FLAT_BOTTOM
        • RestraintType.HARMONIC
        • RestraintType.UPPER_WALL
        • RestraintType.LOWER_WALL
      • AtomSelection
        • AtomSelection.selection
        • AtomSelection.description
        • AtomSelection.selection
        • AtomSelection.description
        • AtomSelection.resolve()
        • AtomSelection.__init__()
      • RestraintDefinition
        • RestraintDefinition.restraint_type
        • RestraintDefinition.name
        • RestraintDefinition.atom1
        • RestraintDefinition.atom2
        • RestraintDefinition.distance
        • RestraintDefinition.force_constant
        • RestraintDefinition.enabled
        • RestraintDefinition.restraint_type
        • RestraintDefinition.name
        • RestraintDefinition.atom1
        • RestraintDefinition.atom2
        • RestraintDefinition.distance
        • RestraintDefinition.force_constant
        • RestraintDefinition.enabled
        • RestraintDefinition.apply()
        • RestraintDefinition.__init__()
      • RestraintFactory
        • RestraintFactory.from_config()
        • RestraintFactory.create_flat_bottom()
        • RestraintFactory.create_harmonic()
      • apply_restraints()
    • Simulation Parameters
      • quantity_to_dict()
      • quantity_from_dict()
      • ThermostatParameters
        • ThermostatParameters.temperature
        • ThermostatParameters.timescale
        • ThermostatParameters.thermostat
        • ThermostatParameters.temperature
        • ThermostatParameters.timescale
        • ThermostatParameters.thermostat
        • ThermostatParameters.to_dict()
        • ThermostatParameters.from_dict()
        • ThermostatParameters.__init__()
      • BarostatParameters
        • BarostatParameters.pressure
        • BarostatParameters.temperature
        • BarostatParameters.update_frequency
        • BarostatParameters.barostat
        • BarostatParameters.pressure
        • BarostatParameters.temperature
        • BarostatParameters.update_frequency
        • BarostatParameters.barostat
        • BarostatParameters.to_dict()
        • BarostatParameters.from_dict()
        • BarostatParameters.__init__()
      • ThermoParameters
        • ThermoParameters.thermostat_params
        • ThermoParameters.barostat_params
        • ThermoParameters.thermostat_params
        • ThermoParameters.barostat_params
        • ThermoParameters.ensemble
        • ThermoParameters.to_dict()
        • ThermoParameters.from_dict()
        • ThermoParameters.__init__()
      • IntegratorParameters
        • IntegratorParameters.time_step
        • IntegratorParameters.total_time
        • IntegratorParameters.num_samples
        • IntegratorParameters.time_step
        • IntegratorParameters.total_time
        • IntegratorParameters.num_samples
        • IntegratorParameters.total_steps
        • IntegratorParameters.reporting_interval
        • IntegratorParameters.to_dict()
        • IntegratorParameters.from_dict()
        • IntegratorParameters.__init__()
      • ReporterParameters
        • ReporterParameters.traj_ext
        • ReporterParameters.state_data
        • ReporterParameters.report_checkpoint
        • ReporterParameters.report_state
        • ReporterParameters.report_trajectory
        • ReporterParameters.report_state_data
        • ReporterParameters.traj_ext
        • ReporterParameters.state_data
        • ReporterParameters.report_checkpoint
        • ReporterParameters.report_state
        • ReporterParameters.report_trajectory
        • ReporterParameters.report_state_data
        • ReporterParameters.to_dict()
        • ReporterParameters.from_dict()
        • ReporterParameters.__init__()
      • SimulationParameters
        • SimulationParameters.thermo_params
        • SimulationParameters.integ_params
        • SimulationParameters.reporter_params
        • SimulationParameters.thermo_params
        • SimulationParameters.integ_params
        • SimulationParameters.reporter_params
        • SimulationParameters.to_dict()
        • SimulationParameters.from_dict()
        • SimulationParameters.to_json()
        • SimulationParameters.from_json()
        • SimulationParameters.__init__()
      • SimulationPhase
        • SimulationPhase.name
        • SimulationPhase.parameters
        • SimulationPhase.name
        • SimulationPhase.parameters
        • SimulationPhase.to_dict()
        • SimulationPhase.from_dict()
        • SimulationPhase.__init__()
      • create_nvt_parameters()
      • create_npt_parameters()
PolyzyMD
  • Overview: module code

All modules for which code is available

  • polyzymd.builders.enzyme
  • polyzymd.builders.polymer
  • polyzymd.builders.solvent
  • polyzymd.builders.substrate
  • polyzymd.builders.system_builder
  • polyzymd.config.loader
  • polyzymd.config.schema
  • polyzymd.core.parameters
  • polyzymd.core.restraints
  • polyzymd.simulation.continuation
  • polyzymd.simulation.runner
  • polyzymd.workflow.daisy_chain
  • polyzymd.workflow.slurm

© Copyright 2026, Joseph R. Laforet Jr..

Built with Sphinx using a theme provided by Read the Docs.