Force fields

The ForceField model in MMElemental represents the functional form of force fields and their parameter sets (or subsets for parameterized molecules). ForceField objects can be used in molecular mechanics, molecular dynamics, Monte Carlo methods, molecular docking, coarse-graining, and any other method that utilizes force fields.

Instantiation

ForceField objects can be created by supplying keyword arguments to the constructor. Per the MMSchema specification, there are no required fields. Hence, the simplest way to create a force field object is via:

>>> ff = mmelemental.models.ForceField()

This creates a Molecule object with a unique hash code.

>>> ff
 ForceField(name='forcefield', form=[], hash='96b52d9')

We can also assign a unique name to this force field object:

>>> ff = mmelemental.models.ForceField(name="my_forcefield")
>>> ff
 ForceField(name='my_forcefield', form=[], hash='96b52d9')

Notice how the hash code did not change because the force field definition has not physically changed. In contrast, if we change a physical property such as the defs, its hash code changes i.e.

>>> ff = mmelemental.models.ForceField(name="my_forcefield", defs=["OW"])
>>> ff
 ForceField(name='my_forcefield', form=[], hash='0d9fc00')

Here we define an entity called “OW” which refers to an atom type of Oxygen.

Functional form

Here we discuss the use of the ForceField class for constructing force fields such as Amber99 and Sage OFF. To be completed.

Assigned parameters

ForceField objects can also store force field parameters that were assigned to a particular molecule. To be completed.

I/O operations

File operations

Coming soon.

Data conversion

Coming soon.

Coarse-graining

The ForceField models are applicable to any kind of particle systems i.e. the underlying object these models describe does not have to be atomic. The symbols property could for instance represent entities rather than atoms (although this will negate atomic properties such as atomic or mass numbers).

Validation

MMElemental performs only data type validation on any constructed model. However, beyond basic validation and sanity checks, MMElemental does not perform any scientific validation. This is what enables MMElemental to support coarse-graining for instance. For domain-specific (i.e. scientific) validation, MMElemental can theoretically make use of MMIC validators similarly to how it uses translators to parse and write to various file formats.