/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*\
|* *|
|* .-------. ______ *|
|* / o /| /\ \ *|
|* /_______/o| /o \ o \ *|
|* | o | | / o \___ _\ *|
|* | o |o/ \o /o / *|
|* | o |/ \ o/ o / *|
|* '-------' \/____o/ *|
|* *|
\*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
Version 0.5
DiCE is a command-line tool for comparing molecular dynamics (MD) trajectory ensembles at per-atom resolution. It uses Support Vector Machine (SVM) classification to quantify how distinguishable each atom's conformational distribution is between two simulation ensembles, producing a per-atom η (eta) score ranging from 0 to 1. An eta value near 0 indicates the atom occupies nearly identical conformational space in both ensembles, while a value near 1 indicates the distributions are highly separable.
DiCE was developed in the Lab of Computational Biophysics at the University of South Florida (Tampa, FL) by Aditya Gupta and Guy "Wayyne" Dayhoff under the direction of Dr. Sameer Varma (2023–2024).
For each atom in the system, DiCE constructs a binary classification problem from its 3D coordinates across all frames of the two input trajectories. A C-SVM with an RBF kernel is trained to distinguish frames from ensemble 1 vs. ensemble 2. The eta value is derived from the fraction of support vectors: fewer support vectors means the ensembles are more easily separable at that atom (higher eta), while more support vectors means they overlap (lower eta).
Default SVM hyperparameters are C = 100 and γ = 0.4. Training is parallelized with OpenMP when available.
-
PDB (
.pdb) — Multi-model PDB files withMODEL/ENDMDLdelimiters per frame -
GROMACS XTC (
.xtc) — Compressed trajectory format -
GROMACS TRR (
.trr) — Full-precision trajectory format
Both input files must be of the same format. Coordinates from PDB files are treated in Ångströms; XTC/TRR coordinates are scaled by 10× internally (nm → Å).
DiCE is written in C/C++ and uses libsvm (bundled) and the xdrfile library (bundled) for reading GROMACS trajectories.
git clone https://github.com/idyeetya/DiCE.git
cd DiCE
make
This produces the DiCE executable. A C compiler with C99 support and a C++ compiler are required. OpenMP support is optional but recommended for parallel training.
./DiCE --fileOne <trajectory1> --fileTwo <trajectory2> [options]
-
--fileOne <file>/-f1— First trajectory file (PDB, XTC, or TRR) -
--fileTwo <file>/-f2— Second trajectory file (same format)
-
--print <template.pdb>/-p— Write eta values into the B-factor column of a PDB template -
--full/-f— Write all frames (requires--print); default writes one frame -
--avg/-a— Compute per-residue averaged eta values -
--threads <N>/-t— Number of OpenMP threads (default: 32) -
--help/-h— Display help
Compare two PDB ensembles and output eta values:
./DiCE -f1 ensemble_wt.pdb -f2 ensemble_mut.pdb
Compare two XTC trajectories, write etas into a PDB template, and average per residue:
./DiCE --fileOne traj_apo.xtc --fileTwo traj_holo.xtc -p reference.pdb -f -a
-
eta.dat— Per-atom eta values with atom index, residue ID, and eta score (always produced) -
avg_eta.dat— Per-residue averaged eta values (requires-a) -
writtenPDB.pdb— PDB with eta in the B-factor column (requires-p) -
writtenPDB_avg.pdb— PDB with averaged eta in the B-factor column (requires-pand-a)
PDB output files allow direct visualization of eta values in molecular viewers like PyMOL or VMD by coloring by B-factor.