Nonbonded parameters

Nonbonded parameters for particles in Msys are handled as follows. A System may have at most one TermTable whose name is “nonbonded” and whose category is also “nonbonded”. The ParamTable for the nonbonded table, not surprisingly, holds the nonbonded parameters for all the atoms. Atoms are assigned a nonbonded type by creating Terms in the nonbonded TermTable. There should be exactly one Term for each Atom, and each Atom should be represented by exactly one Term.

The System class has a method called addNonbondedFromSchema which is a shortcut for creating a nonbonded table of a particular type. The argument to addNonbondedFromSchema will be the vdw_funct that appears in the nonbonded_info field of the System. The following vdw_funct values are currently supported:

  • vdw_12_6 : parameters sigma, epsilon

  • vdw_exp_6 : parameters alpha, epsilon, rmin

  • vdw_exp_6s : parameters sigma, epsilon, lne

When a System is created by loading a DMS or MAE file, a nonbonded table will be created if and only if the input file contains nonbonded information. When saving a System to a DMS file, Msys checks that there is at most one nonbonded table, and if one exists, ensures that every Atom is found in exactly one Term.

Alternative nonbonded tables

Starting with version 1.6.0, Msys supports export to DMS files of systems containing nonbonded tables not named “nonbonded”. Any number of such tables may be created, either with or without the traditional “nonbonded” table”:

m=msys.CreateSystem()
a=m.addAtom()
disp = m.addTable('nonbonded_dispersion', 1)
repl = m.addTable('nonbonded_repulsion', 1)
elec = m.addTable('nonbonded_charge', 1)
for t in disp, repl, elec:
    t.category='nonbonded'
    p=t.params.addParam()
    t.addTerm([a],p)

disp.params.addProp('foo', float)
repl.params.addProp('bar', float)
elec.params.addProp('charge', float)
m.nonbonded_info.vdw_funct = "disp_repl_charge"
m.nonbonded_info.vdw_rule = "geom/geom/geom"

The vdw_funct attribute should reflect the nature of the nonbonded schemas that are present in the system.

Note that if there is no table named “nonbonded”, then the particle table in the DMS file will not contain an nbtype column.

Overriding nonbonded interactions

Nonbonded interactions between particles are usually calculated by looking up the nonbonded parameters (e.g., charge, sigma, epsilon) of the two interacting particles, performing some sort of combining operation on those parameters (e.g., geometric mean of the charge, arithmetic mean of the sigma), then using those values in the functional form of the interaction.

The DMS and MAE file formats allow one to specify nonbonded types whose combined values are to be taken from a table, rather than computed according to a combining rule. In Msys, overrides to the parameters in a TermTable are stored as a mapping from pairs of entries in the params to a entry in the override_params ParamTable. Pairs of Params are stored such that the id of the first Param is less than or equal to the id of the second Param; hence, there are no redundant or conflicting overrides: if parameters i and j have an override, then parameters j and i must be considered to have the same override.

Alchemical nonbonded interactions

DMS files use a table called alchemical_particle to indicate which particles have alchemical nonbonded states, and the parameters for those states. Msys represents the information in that table with a TermTable called alchemical_nonbonded. This table will share a ParamTable with the regular nonbonded table, but will contain Terms only for the alchemical particles. The parameter for each Term in alchemical_nonbonded will correspond to the B state of the term’s particle. Additional per-particle information, such as chargeB, chargeC, or moiety, will appear as term properties for the particles.

NonbondedInfo

class msys.NonbondedInfo
property es_funct

Name of the electrostatic functional form

property vdw_funct

Name of the vdw functional form; e.g., ‘vdw_12_6’

property vdw_rule

Nonbonded combining rule; e.g., ‘arithmetic/geometric’