The GAFF2 Molecule follows similar paradigms as the CGenFF Molecule in terms of parsing. GAFF2 also includes a penalty score which makes this more interesting to capture.
The equation differs slightly in terms of the harmonics and recent additions have been the impropers. The parser was built to handle frcmod files into dataframes and update their values accordingly.
An example of the format can be found here in terms of how the frcmod is defined and what all the numbers mean:
BOND
atom type | force constant | bond length
ca-ns 315.20 1.412 same as ca- n, penalty score= 0.0
ANGLE
atom type | force constant | angle degree
c -ns-ca 65.700 123.710 same as c -n -ca, penalty score= 0.0
DIHE
atom type | idivf1 | force constant | phase | periodicity
o -c -ns-ca 4 10.000 180.000 2.000 same as X -c -n -X , penalty score= 0.0
IMPROPER
atom type | force constant | phase | periodicity
ca-ca-ca-ns 1.1 180.0 2.0 Using the default value
NONBON
atom type | rmin half | epsilon
Import the Package
from global_chem_extensions import GlobalChemExtensions
gce = GlobalChemExtensions()
Harmonic values refers to anything that is either a bond-length, angle, dihedral or improper angle. Multiplicity only refers to dihedrals or impropers.