A package for atom-typing as well as applying and disseminating force fields
Annotate an OpenMM .xml force field file with SMARTS-based atomtypes:
<ForceField> <AtomTypes> <Type name="opls_135" class="CT" element="C" mass="12.01100" def="[C;X4](C)(H)(H)H" desc="alkane CH3"/> <Type name="opls_140" class="HC" element="H" mass="1.00800" def="H[C;X4]" desc="alkane H"/> </AtomTypes> </ForceField>
Apply the forcefield to arbitrary chemical topologies. We currently support:
from foyer import Forcefield import parmed as pmd untyped_ethane = pmd.load_file('ethane.mol2', structure=True) oplsaa = Forcefield(forcefield_files='oplsaa.xml') ethane = oplsaa.apply(untyped_ethane) # Save to any format supported by ParmEd ethane.save('ethane.top') ethane.save('ethane.gro')
Check out our example template for disseminating force fields: https://github.com/mosdef-hub/forcefield_template
Various sub-portions of this library may be independently distributed under different licenses. See those files for their specific terms.
This material is based upon work supported by the National Science Foundation under grants NSF ACI-1047828 and NSF ACI-1535150. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.