Non-standard aminoacids in OpenMM, with OpenMMForceFields and OpenFF

This is a brief tutorial to prepare a protein with non-standard aminoacids for MD modeling with OpenMM. It illustrates the process for an inhibitor covalently attached to a cysteine. The general idea is to:

The procedure requires openmm, openmmforcefields, and rdkit. They can all be installed using conda/mambda. 

2. OpenFF parameterization and processing

python openff-lig.py --LIGSDFinFile 424p.sdf --LIGXMLoutFile 424p.xml

which creates a ForceField xml file for the ligand fragment

python replace-types.py --LIGXMLinFile 424p.xml --LIGPDBinFile 424p.pdb --LIGXMLoutFile 2xu1p.xml

which creates the ForceField xml file 2xu1p.xml which contains the force field information for both the ligand fragment and for the ligand covalently attached to the protein. This script scans the force field information for the ligand fragment and creates force field interaction terms between the ligand and the protein. It creates a residue template for the covalently attached ligand after deleting the caps.


3. Use custom force field

pdbrcpt = PDBFile("2xu1p.pdb")

forcefield = ForceField("amber14-all.xml",  "amber14/tip3p.xml", "2xu1p.xml")

system=forcefield.createSystem(pdbrcpt.topology)