How biocoder007/jiggle works
Jiggle is a desktop molecular-dynamics application for running OpenMM simulations while viewing the evolving protein structure and live metrics. The user selects a PDB and simulation settings; the worker repairs and prepares the structure, minimizes and equilibrates it, then streams production frames and metrics to the UI, which updates the viewer and plots and supports saving results. The README documents additional capabilities such as pause/resume, chain detection, frame saving, and exports. Some worker and UI code was only excerpted, so undocumented links are omitted.
Main entry points: main_window.py Main window · simulation_worker.py Simulation worker · main.py App launcher · analysis.py Metric calculations
Components 16
Desktop interface
- App launcher
main.py - Run configuration
ui/main_window.py - Structure input
ui/main_window.py - Main window
ui/main_window.py
Simulation workflow
- Simulation worker
core/simulation_worker.py - Structure preparation
core/simulation_worker.py - Force-field catalogue
core/forcefields.py - Minimize and equilibrate
core/simulation_worker.py - Production dynamics
core/simulation_worker.py
Live analysis
- Metric calculations
core/analysis.py - Frame and metric stream
core/simulation_worker.py
Viewing and results
- 3D structure viewer
ui/viewer_template.html - Live plots
ui/main_window.py - Result export
ui/main_window.py
Other components
- User
- OpenMM and PDBFixer
Connections 25
- User → App launcher: starts app
README.md - App launcher → Main window: opens window
main.py - User → Run configuration: sets options
README.md - User → Structure input: chooses PDB
README.md - Run configuration → Main window: configures run
ui/main_window.py - Structure input → Main window: supplies structure
README.md - Main window → Force-field catalogue: populates choices
ui/main_window.py - Main window → Simulation worker: starts worker
ui/main_window.py - Simulation worker → Force-field catalogue: resolves parameters
core/simulation_worker.py - Simulation worker → Structure preparation: prepares structure
README.md - Structure preparation → OpenMM and PDBFixer: repairs structure
README.md - Simulation worker → Minimize and equilibrate: runs preparation
README.md - Minimize and equilibrate → OpenMM and PDBFixer: builds and runs system
core/simulation_worker.py - Simulation worker → Production dynamics: runs production
README.md - Production dynamics → OpenMM and PDBFixer: advances simulation
README.md - Simulation worker → Metric calculations: calculates metrics
core/simulation_worker.py - Metric calculations → Frame and metric stream: returns measurements
core/simulation_worker.py - Simulation worker → Frame and metric stream: emits frames
README.md - Frame and metric stream → Main window: delivers updates
README.md - Main window → 3D structure viewer: updates coordinates
README.md - Main window → Live plots: updates plots
ui/main_window.py - User → Result export: requests export
README.md - Main window → Result export: exports results
ui/main_window.py - User → Simulation worker: pauses or resumes
README.md - User → 3D structure viewer: saves live frame
README.md