Calculation of Absolute Hydration Free Energies from the FreeSolv Database

This example computes absolute hydration free energies of a subset of the FreeSolv database in both implicit and explicit solvent.

This example showcases how easy it is to set up and run free energy calculations for a large dataset from a single input file, and how easy it is to set up that file. Here we combine everything we learned from the previous examples into one. If any of the following ideas are unfamiliar, please see the linked examples.

  1. Setting up general options, molecules, protocols, and experiments
  2. Setting up implicit solvent simulations
  3. Configuring multiple solvents for hydration free energy calculations
  4. Running combinatorial simulations and constructing molecules from SMILES strings

This example resides in {PYTHON SOURCE DIR}/share/hydration/freesolv.

Examining YAML file

Options Header

Here we set an NPT simulation (it will be NVT for implicit solvent by default), where we also have verbose set and minimize.

Molecules Header

Here we target a .smiles file which behaves identical to a .csv file. Multiple molecules are specified, one per line, where the second column is the SMILES string of the molecule.

We get the missing molecule parameters with ANTECHAMBER and charge the molecule with AM1-BCC.

Solvents Header

We specify three solvents for this example: an explicit solvent (TIP3P with PME), and implicit solvent (GBSA), and the vacuum solvent. We only need the vacuum and one other one to do a hydration free energy calculation, but we want to set up both implicit and explicit solvent simulations in the same file.

Systems Header

Here we setup a hydration free energy system a normal, but we specify for solvent1 that we want the !Combinatorial option so we run the database through both our implicit and explicit solvents.

Protocols Header

We specify a standard alchemical pathway which our simulations will run through.

Experiments Header

Lastly we put together our experiment that will combine our protocol and system to tell YANK what to run.

Running the Simulation

Running the simulation is the same as the other examples where you can either run the run-yank.sh script, or by running yank script --yaml=yank.yaml. For running on multiple nodes, use run-torque-yank.sh and adapt it to your parallel platform.