/LSS

Primary LanguageJupyter Notebook

Latent Space Simulators (LSS)

This repository demonstrates application of latent space simulators in PyTorch for two exemplar biomolecules alanine dipeptide (ADP) and the WLALL pentapeptide.

image

The Latent Space Simulators (LSS) framework provides a workflow for generating simulation data by splitting the task into three, relatively simple, supervised learning problems:

  • Starting with some simulation data used to train the network, use State-free (non-)reversible VAMPNets (SNRVs) to learn a low-dimentional encoding of the system kinetics. The typical procedure here involves featurizing each simulation snapshot using some roto-translationally invariant descriptor (such as pairwise distances). The SNRV then translates these high-dimentional features into a low-dimentional embeddings that encaptures the slow (maximally autocorrelated) kinetics in your system.
  • Given your SNRV featurization, we then train a Mixture Density Network (MDN) propagator that learns to propagate trajectory timesteps within the low-dimensional kinetic subspace. Using this MDN network we can generate synthetic trajectories in the space of our low-dimensional SNRV coordinates at a fraction of the cost that propagating dynamics in the full 3N-dimensional configurational space would be.
  • In the final step we train a generative model, either a Generative Adversarial Network (GAN) or a Denoising Diffusion Probabilistic Model (DDPM), to produce realistic coordinate associated with any given low-dimensional SNRV featurization. Using this trained model we can decode the synthetic trajectory in our low-dimensional SNRV space generated by the MDN into assocaited full-dimensional coordinate space, rendering these structures to produce a snynthetic molecular trajectory.

Jupyter notebooks demonstrating the LSS workflow can be found in ADP_backbone_LSS.ipynb and WLALL_backbone_LSS.ipynb

Getting Started

Usage

To run the examples you will need to clone and install the following repositories that impliment the three separate supervised learning components in your environment:

Some additional dependencies for running and visualizing the examples:

Cite

If you use this code in your work, please cite:

Sidky, Hythem, Wei Chen, and Andrew L. Ferguson. "Molecular latent space simulators." Chemical Science 11.35 (2020): 9459-9467. DOI: 10.1039/D0SC03635H

@article{sidky2020molecular,
  title={Molecular latent space simulators},
  author={Sidky, Hythem and Chen, Wei and Ferguson, Andrew L},
  journal={Chemical Science},
  volume={11},
  number={35},
  pages={9459--9467},
  year={2020},
  publisher={Royal Society of Chemistry}
}

W. Chen, H. Sidky, and A.L. Ferguson "Nonlinear discovery of slow molecular modes using state-free reversible VAMPnets" J. Chem. Phys. 150 214114 (2019) doi: 10.1063/1.5092521

@article{chen2019nonlinear,
  title={Nonlinear discovery of slow molecular modes using state-free reversible VAMPnets},
  author={Chen, Wei and Sidky, Hythem and Ferguson, Andrew L},
  journal={The Journal of Chemical Physics},
  volume={150},
  number={21},
  pages={214114},
  year={2019},
  publisher={AIP Publishing LLC}
}