8. Force field selection¶
The mdpow.forcefields
module contains settings for selecting
different force fields and the corresponding solvent topologies.
The OPLS-AA, CHARMM/CGENFF and the AMBER/GAFF force field are directly supported. In the principle it is possible to switch to a different force field by supplying alternative template files.
-
mdpow.forcefields.
DEFAULT_FORCEFIELD
= 'OPLS-AA'¶ Default force field. At the moment, OPLS-AA, CHARMM/CGENFF, and AMBER/GAFF are directly supported. However, it is not recommended to change the default here as this behavior is not tested.
-
mdpow.forcefields.
DEFAULT_WATER_MODEL
= 'tip4p'¶ Use the default water model unless another water model is chosen in the run input file file by setting the
setup.watermodel
parameter.Warning
Select the native water model manually and do not rely on the default set here. For CHARMM/GAFF the CHARMM TIP3P model is recommended. For AMBER/GAFF the TIP3P mdeol is often used. Choosing the correct water model is a scientific decision that you have to make conscientiously.
8.1. Solvent models¶
Different water models are already supported
-
mdpow.forcefields.
GROMACS_WATER_MODELS
= {'m24': <M24 water: identifier=m24, ff=OPLS-AA>, 'spc': <SPC water: identifier=spc, ff=OPLS-AA>, 'spce': <SPC/E water: identifier=spce, ff=OPLS-AA>, 'tip3p': <TIP3P water: identifier=tip3p, ff=OPLS-AA>, 'tip4p': <TIP4P water: identifier=tip4p, ff=OPLS-AA>, 'tip4pd': <TIP4P-D water: identifier=tip4pd, ff=OPLS-AA>, 'tip4pew': <TIP4PEW water: identifier=tip4pew, ff=OPLS-AA>, 'tip5p': <TIP5P water: identifier=tip5p, ff=OPLS-AA>}¶ Dictionary of
GromacsSolventModel
instances, one for each Gromacs water model available under the force field directory. The keys are the water model identifiers. For OPLS-AA the following ones are available.
as well as different general solvent models
-
mdpow.forcefields.
GROMACS_SOLVENT_MODELS
= {'AMBER': {'cyclohexane': <CYCLOHEXANE water: identifier=cyclohexane, ff=OPLS-AA>, 'octanol': <OCTANOL water: identifier=octanol, ff=OPLS-AA>, 'wetoctanol': <WETOCTANOL water: identifier=wetoctanol, ff=OPLS-AA>}, 'CHARMM': {'cyclohexane': <CYCLOHEXANE water: identifier=cyclohexane, ff=OPLS-AA>, 'octanol': <OCTANOL water: identifier=octanol, ff=OPLS-AA>, 'wetoctanol': <WETOCTANOL water: identifier=wetoctanol, ff=OPLS-AA>}, 'OPLS-AA': {'cyclohexane': <CYCLOHEXANE water: identifier=cyclohexane, ff=OPLS-AA>, 'octanol': <OCTANOL water: identifier=octanol, ff=OPLS-AA>, 'octanolnew': <OCTANOL water: identifier=octanol, ff=OPLS-AA>, 'wetoctanol': <WETOCTANOL water: identifier=wetoctanol, ff=OPLS-AA>, 'wetoctanolnew': <WETOCTANOL water: identifier=wetoctanol, ff=OPLS-AA>}}¶ Solvents available in GROMACS; the keys of the dictionary are the forcefields.
8.2. Internal data¶
-
mdpow.forcefields.
SPECIAL_WATER_COORDINATE_FILES
= {'m24': 'spc216.gro', 'spc': 'spc216.gro', 'spce': 'spc216.gro', 'tip3p': 'spc216.gro', 'tip4p': None, 'tip4pd': 'tip4p.gro', 'tip4pew': 'tip4p.gro', 'tip5p': None}¶ For some water models we cannot derive the filename for the equilibrated box so we supply them explicitly.
-
mdpow.forcefields.
GROMACS_WATER_MODELS
= {'m24': <M24 water: identifier=m24, ff=OPLS-AA>, 'spc': <SPC water: identifier=spc, ff=OPLS-AA>, 'spce': <SPC/E water: identifier=spce, ff=OPLS-AA>, 'tip3p': <TIP3P water: identifier=tip3p, ff=OPLS-AA>, 'tip4p': <TIP4P water: identifier=tip4p, ff=OPLS-AA>, 'tip4pd': <TIP4P-D water: identifier=tip4pd, ff=OPLS-AA>, 'tip4pew': <TIP4PEW water: identifier=tip4pew, ff=OPLS-AA>, 'tip5p': <TIP5P water: identifier=tip5p, ff=OPLS-AA>} Dictionary of
GromacsSolventModel
instances, one for each Gromacs water model available under the force field directory. The keys are the water model identifiers. For OPLS-AA the following ones are available.
-
mdpow.forcefields.
GROMACS_SOLVENT_MODELS
= {'AMBER': {'cyclohexane': <CYCLOHEXANE water: identifier=cyclohexane, ff=OPLS-AA>, 'octanol': <OCTANOL water: identifier=octanol, ff=OPLS-AA>, 'wetoctanol': <WETOCTANOL water: identifier=wetoctanol, ff=OPLS-AA>}, 'CHARMM': {'cyclohexane': <CYCLOHEXANE water: identifier=cyclohexane, ff=OPLS-AA>, 'octanol': <OCTANOL water: identifier=octanol, ff=OPLS-AA>, 'wetoctanol': <WETOCTANOL water: identifier=wetoctanol, ff=OPLS-AA>}, 'OPLS-AA': {'cyclohexane': <CYCLOHEXANE water: identifier=cyclohexane, ff=OPLS-AA>, 'octanol': <OCTANOL water: identifier=octanol, ff=OPLS-AA>, 'octanolnew': <OCTANOL water: identifier=octanol, ff=OPLS-AA>, 'wetoctanol': <WETOCTANOL water: identifier=wetoctanol, ff=OPLS-AA>, 'wetoctanolnew': <WETOCTANOL water: identifier=wetoctanol, ff=OPLS-AA>}} Solvents available in GROMACS; the keys of the dictionary are the forcefields.
8.3. Internal classes and functions¶
-
class
mdpow.forcefields.
GromacsSolventModel
(identifier, name=None, itp=None, coordinates=None, description=None, forcefield='OPLS-AA')[source]¶ Data for a solvent model in Gromacs.
-
mdpow.forcefields.
get_water_model
(watermodel='tip4p')[source]¶ Return a
GromacsSolventModel
corresponding to identifier watermodel
-
mdpow.forcefields.
get_solvent_identifier
(solvent_type, model=None, forcefield='OPLS-AA')[source]¶ Get the identifier for a solvent model.
The identifier is needed to access a water model (i.e., a
GromacsSolventModel
) throughget_solvent_model()
. Because we have multiple water models but only limited other solvents, the organization of these models is a bit convoluted and it is best to obtain the desired water model in these two steps:identifier = get_solvent_identifier("water", model="tip3p") model = get_solvent_model(identifier)
For
solvent_type
water: either provideNone
or “water” for the specificmodel
(and the defaultDEFAULT_WATER_MODEL
will be selected, or a specific water model such as “tip3p” or “spce” (seeGROMACS_WATER_MODELS
). For other “octanol” or “wetoctanol” of OPLS-AA forcefield, themodel
is used to select a specific model. For other solvents and forcefields, “model” is not required.Returns: Either an identifier or None
-
mdpow.forcefields.
get_solvent_model
(identifier, forcefield='OPLS-AA')[source]¶ Return a
GromacsSolventModel
corresponding to identifier identifier.If identifier is “water” then the
DEFAULT_WATER_MODEL
is assumed.