Hydration Free Energy of Phenol in Explicit TIP3P Water¶
This example highlights the other major type of free energy difference YANK can compute, hydration free energies. More generally it is solvation free energies, but TIP3P water is the only explicit water you can specify in YANK right now.
This example resides in {PYTHON SOURCE DIR}/share/yank/examples/hydration/phenol
. The rest of the example here
assumes you are in this directory.
This example can actually be considered a subset of the FreeSolv database example, however, describes in more detail how to set up a hydraiton free energy calculation.
Examining YAML File¶
Hydration free energies are different from binding free energies in that there is only a single molecule and two separate solvents. The other major difference is that the phases have different names which we will point out in this example.
Options Heading¶
There are no changes in this directive relative to the options in the binding free energy example.
Molecules Heading¶
In hydration free energy, only one molecule must be specified, although more could be specified for other simulatons. Otherwise, there are no changes in this directive relative to the molecules in the binding free energy example.
Solvents Heading¶
The solvents heading differs from previous examples in that there
two solvents must be specified. Let us take a look at this section in the explicit.yaml
file.
solvents:
water:
nonbonded_method: PME
nonbonded_cutoff: 9*angstroms
clearance: 16*angstroms
vacuum:
nonbonded_method: NoCutoff
Here we name two different solvents: water
and vacuum
. We then set the options for both solvents. The water
options are the PME nonbonded treatment with a cutoff at 9 Angstroms, then we fill in box with at least 16 angstroms
of water between the solute and the box edge. The vacuum
setting is very simple, we just set a NoCutoff
scheme
WITHOUT setting implicit_solvent
to create a vacuum system.
YANK will know not to add a barostat to the vacuum
system. Even though a pressure
is specified in the general
options, the choice of NoCutoff and no other options implies no barostat (since trying to do a periodic system without
a cutoff would be impossibly resource intensive).
Systems Heading¶
The systems
heading in this case has slightly different keys which tell YANK that this is a hydration free energy
system. Nothing in the previous sections indicated that this would be a hydration free energy so lets look at this section
here.
systems:
hydration-system:
solute: phenol
solvent1: water
solvent2: vacuum
leap:
parameters: leaprc.gaff
Lets start by looking at the familiar options.
We start by naming our system whatever we want, so we call it hydration-system
. leap
tells YANK where to get
parameters for the force field. Since we don’t have a protein to worry about, we can just point at a generalized force
field and run through from there.
Now lets look at the hydration free energy specific directives. We first specify the solute molecule with solute
which points at a user defined molecule. Next we specify our two solvents with solvent1
and solvent2
which
point at the two user defined solvents. Because free energy differences are just a sign convention, the solvent1
phase is considered the +
and solvent2
is the -
.
Protocols Heading¶
The protocol’s heading works the same as the binding examples, but requires slightly different phase deffinitions since there is no complex/solvent phase.
protocols:
hydration-protocol:
solvent1:
alchemical_path:
lambda_electrostatics: [1.00, 0.75, 0.50, 0.25, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00]
lambda_sterics: [1.00, 1.00, 1.00, 1.00, 1.00, 0.95, 0.90, 0.85, 0.80, 0.75, 0.70, 0.65, 0.60, 0.50, 0.40, 0.30, 0.20, 0.10, 0.00]
solvent2:
alchemical_path:
lambda_electrostatics: [1.00, 0.75, 0.50, 0.25, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00]
lambda_sterics: [1.00, 1.00, 1.00, 1.00, 1.00, 0.95, 0.90, 0.85, 0.80, 0.75, 0.70, 0.65, 0.60, 0.50, 0.40, 0.30, 0.20, 0.10, 0.00]
Here we define the two phases by solvent1
which is linked to the solvent1
of the systems
, and similalry the
solvent2
is linked to solvent2
.
Just like in the binding examples, the names solvent1
and solvent2
for
phase names is semi-arbitrary in that the name only has to contain the string. Perfectly valid names would be
waterphasesolvent1
and VACsolvent2UUM
pointing to solvent1
and solvent2
respectively.
Experiments Heading¶
Just like in the binding example, we point to a protocol and a system to make our experiment
experiments:
system: hydration-system
protocol: hydration-protocol
Running and Analyzing the Simulation¶
The execution and analysis of the simulation are handled the same as in the T4 Lysozyme binding example. Please see the documentation on that page for more information.