EntangledSBM for Transition Path Sampling ⚛️
This part of the code is for running the transition path sampling (TPS) experiments. We demonstrate that EntanlgedSBM generates physically plausible transition paths for fast-folding proteins at an all-atom resolution. This codebase is partially built off of the TPS-DPS repo.
Environment Installation
conda env create -f environment.yml
conda activate entangled-tps
Running Experiments
All training scripts are located in entangled-tps/scripts/. Each script is pre-configured for a specific experiment.
Before running experiments:
- Set
HOME_LOCto the base path where EntangledSBM is located andENV_PATHto the directory where your environment is downloaded in the.bashfiles inscripts/ - Replace
/path/to/your/hometo the base path where EntangledSBM is located in the.slurmfiles inscripts/ - Create a path
entangled-tps/resultswhere the simulated trajectory figures and metrics will be saved. Also, createentangled-tps/logswhere the training logs will be saved. - Activate the conda environment:
conda activate entangled-tps
- Login to wandb using
wandb login
Run experiment using nohup with the following commands:
cd entangled-tps/scripts
chmod aldp.sh
nohup ./aldp.sh > aldp.log 2>&1 &
Run experiment using slurm with the following commands:
cd entangled-tps/scripts
sbatch aldp.slurm
Evaluation will run automatically after each sampling step and logged with wandb.
We report the following metrics in our paper:
- Root-Mean Squared Distance (RMSD) of the Kabsch-aligned coordinates averaged across 64 paths.
- Percentage of simulated trajectories that hit the target state (THP)
- Highest energy transition state along the biased trajectories averaged across the trajectories that hit the target (ETS; kJ/mol)
Overview of Outputs
Training outputs are saved to experiment-specific directories:
entangled-tps/results/
├── aldp_ce/
│ └── positions/ # Generated trajectory
│ └── paths.png # Figure of simulated trajectories
│ └── policy.pt # Model checkpoint
Training logs are saved in:
entangled-tps/logs/
├── <DATE>_entangled-aldp-ce.log
├── <DATE>_entangled-chignolin-ce.log
├── <DATE>_entangled-trpcage-ce.log
└── <DATE>_entangled-bba-ce.log