synth-dynamics: Time-Resolved Ensemble Generator
synth-dynamics is a fast, lightweight molecular dynamics engine designed to generate meaningful conformational ensembles of proteins. Unlike full-atom simulations (like GROMACS or Amber), synth-dynamics uses a Coarse-Grained Anisotropic Network Model (ANM) and Langevin dynamics to capture the essential global motions of proteins with minimal computational overhead.
This tool is designed to bridge the gap between static structures and time-averaged experimental observables, such as NMR relaxation parameters, SAXS Kratky plots, or FRET efficiency distributions.
🧪 For Structural Biologists
- Ensemble Generation: Rapidly sample the conformational landscape of a protein to simulate disordered states or flexible loops.
- Integration: Works seamlessly with
MDAnalysisandbiotitefor trajectory processing.
🤖 For Machine Learning Researchers
- Dynamic Training Data: Generate synthetic molecular trajectories to train time-series models (LSTMs, Transformers) or dynamic GNNs.
- High Performance: Optimized for throughput, allowing the generation of millisecond-scale ensembles in seconds.
Key Features
- Coarse-Grained Simulation: Models proteins using C-alpha atoms and harmonic "spring" networks.
- Fast Langevin Engine: Propagates coordinates using a stable, overdamped Langevin integrator.
- Experimental Integration: Perfect for generating the structural ensembles needed for
synth-nmrorsynth-saxs. - Easy to Use: Simple API for loading PDBs, configuring forcefields, and running simulations.
- Extensively Tested: 100% test coverage ensuring reliability and correctness.
📚 Tutorials
Experience synth-dynamics directly in your browser:
Elastic Network Models & Langevin Dynamics — Learn how to predict protein flexibility and simulate thermal fluctuations.
Installation
synth-dynamics requires Python 3.10+ and the following dependencies:
pip install numpy MDAnalysis scipy
To install the documentation theme:
pip install sphinx_rtd_theme
Quick Start
Running a simulation is straightforward:
from synth_dynamics import System, ANMForceField, LangevinIntegrator, Simulation
# 1. Load the system (automatically filters for C-alpha atoms)
system = System("protein.pdb")
# 2. Define the Anisotropic Network Model forcefield
# Cutoff (15A) and spring constant determine the flexibility
ff = ANMForceField(system.equilibrium_coords, cutoff=15.0, spring_constant=1.0)
# 3. Initialize the Langevin integrator (dt in ps, T in Kelvin)
integrator = LangevinIntegrator(dt=0.1, temperature=300.0, friction=1.0)
# 4. Run and save the trajectory
sim = Simulation(system, ff, integrator)
sim.run(n_steps=1000, output_path="trajectory.dcd", stride=10)
Documentation
Full API documentation and usage guides are available in the docs/ directory. You can build the HTML documentation locally:
cd docs
sphinx-build -b html . _build/html
Testing
To run the test suite and verify coverage:
PYTHONPATH=. pytest --cov=synth_dynamics tests/
License
This project is licensed under the MIT License - see the LICENSE file for details (if applicable).
Related Projects
This library is part of the synth-pdb ecosystem — use it to generate trajectories for synth-nmr or synth-saxs ensemble averaging:
- synth-pdb — Core protein structure generator
- synth-nmr — NMR observables simulator
- synth-saxs — SAXS profile simulator
- synth-cryo-em — Cryo-EM map simulator
- diff-biophys — Differentiable JAX biophysics kernels
Contributing
Contributions are welcome! Please open an issue or pull request on GitHub. Run pre-commit run --all-files before submitting.
Citation
@software{synth_dynamics,
author = {Elkins, George},
title = {synth-dynamics: Coarse-grained protein dynamics for ensemble generation},
year = {2026},
url = {https://github.com/elkins-lab/synth-dynamics},
version = {0.1.3}
}
Metadata
Release files for synth-dynamics 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| synth_dynamics-0.1.3.tar.gz | 18.2 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| synth_dynamics-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 27.1 kB
Release files / synth_dynamics-0.1.3.tar.gz
| Download URL | synth_dynamics-0.1.3.tar.gz |
|---|---|
| Size | 18.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f41a53ffe7face72f3ffe82042f83df01674f3536b6b728268d6248f9563a5ec
|
|
BLAKE2b-256 checksum How to use checksums |
83650708c485d93ab52a51c93a9be4a22caf3b71be70b559b5879114c2652aba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 30, 2026.
Transparency logRelease files / synth_dynamics-0.1.3-py3-none-any.whl
| Download URL | synth_dynamics-0.1.3-py3-none-any.whl |
|---|---|
| Size | 8.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2a17d80d5503ae49fab44bd77dc25466e63deb35007c4ad5daaa40f93bad43b9
|
|
BLAKE2b-256 checksum How to use checksums |
2a85fdd190f10496cf14bf6401adc8382833ad309fa58de1e989a43e231e4b74
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 30, 2026.
Transparency logSecurity for synth-dynamics 0.1.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for synth_dynamics-0.1.3.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 30, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.