Skip to main content

synth-dynamics: Time-Resolved Ensemble Generator

codecov PyPI version Python License: MIT Tests Lint Ruff Checked with mypy

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 MDAnalysis and biotite for 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-nmr or synth-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:

  • Open In Colab 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:

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)

Source distribution for synth-dynamics 0.1.3
File Size Uploaded Provenance
synth_dynamics-0.1.3.tar.gz 18.2 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for synth-dynamics 0.1.3
File Interpreter ABI Platform
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 log

Release 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 log

Security 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.

Select from 2 files

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 log

A 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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page