API Overview
PolyzyMD is organized into the following modules:
Package Structure
polyzymd/
├── config/ # Configuration and YAML loading
│ ├── schema.py # Pydantic models for all config sections
│ └── loader.py # YAML loading utilities
├── builders/ # System building components
│ ├── enzyme.py # Enzyme/protein preparation
│ ├── substrate.py # Substrate/ligand handling
│ ├── polymer.py # Polymer chain generation
│ ├── solvent.py # Solvation and ion addition
│ └── system_builder.py # Main system assembly
├── simulation/ # MD simulation execution
│ ├── runner.py # Simulation runner
│ ├── continuation.py # Checkpoint continuation
│ ├── progress.py # Segment progress tracking
│ └── signals.py # SLURM signal handling
├── workflow/ # HPC workflow management
│ ├── slurm.py # SLURM script generation
│ └── daisy_chain.py # Job submission
├── core/ # Core utilities
│ ├── parameters.py # Simulation parameters
│ └── restraints.py # Restraint definitions
├── analysis/ # Post-simulation trajectory analysis
│ ├── rmsf/ # Root Mean Square Fluctuation
│ ├── distances/ # Inter-atomic distance analysis
│ ├── triad/ # Catalytic triad integrity
│ ├── contacts/ # Polymer-protein contacts, binding preference
│ ├── sasa/ # Solvent Accessible Surface Area
│ ├── exposure/ # Chaperone-like exposure dynamics
│ ├── core/ # Statistics, autocorrelation, MetricType
│ └── results/ # Serializable result models
├── compare/ # Multi-condition statistical comparison
│ ├── comparators/ # RMSF, contacts, triad, BFE, affinity, exposure
│ ├── results/ # Comparison result models
│ └── plotters/ # Publication-quality figures
└── cli/ # Command-line interface
└── main.py # Click CLI
Key Classes
Configuration
SimulationConfig- Main configuration containerEnzymeConfig- Enzyme settingsPolymerConfig- Polymer settingsOutputConfig- Output directory settings
Building
SystemBuilder- Main system builderEnzymeBuilder- Enzyme preparationPolymerBuilder- Polymer generation
Simulation
SimulationRunner- Run simulationsContinuationManager- Continue from checkpointSimulationProgress- Track segment completion across jobs
Workflow
DaisyChainSubmitter- Self-resubmitting SLURM job submissionSlurmConfig- SLURM configuration
Restraints
RestraintDefinition- Restraint specificationAtomSelection- Atom selectionRestraintFactory- Create restraints from config
Analysis
RMSFCalculator- Per-residue RMSFDistanceCalculator- Inter-group distancesCatalyticTriadAnalyzer- Catalytic triad integrityParallelContactAnalyzer- Polymer-protein contactsBaseAnalysisResult- Serializable result base class
Comparison
BaseComparator- Template Method comparator baseExposureDynamicsComparator- Chaperone analysisBindingFreeEnergyComparator- Per-contact ΔG_selPolymerAffinityScoreComparator- Total interaction strength
Quick Reference
Load Configuration
from polyzymd.config.schema import SimulationConfig
config = SimulationConfig.from_yaml("config.yaml")
print(config.enzyme.name)
Build System
from polyzymd.builders.system_builder import SystemBuilder
builder = SystemBuilder(config)
interchange = builder.build(replicate=1)
Run Simulation
from polyzymd.simulation.runner import SimulationRunner
runner = SimulationRunner(interchange, working_dir, config)
runner.run_equilibration()
runner.run_production(segment_index=0)
Submit to SLURM
from polyzymd.workflow.daisy_chain import submit_daisy_chain
results = submit_daisy_chain(
config_path="config.yaml",
slurm_preset="aa100",
replicates="1-5",
)