Transformers are objects that take an openmm system as created by loading an amber topology and modify it in various ways. Example transformations include:
Adding extra forces for restraints
Modifying an existing force, like REST2
Replacing an existing force, like softcore interactions
One thing transformers should not do is add particles to the system. Instead, particles can be added using Patcher objects.
The transformers are chained together, so that at the end, all necessary modifications have been made and the system can be simulated with OpenMM. To add a new transformer, you must first create a new transformer class that implements the transformer protocol given in TransformerBase. Next, you must add this class to the list in OpenMMRunner._setup_transformers.
Base class to document how transformers work.
This module implements a transformer that implements REST2.
This module implements transformers that add restraint forces to the openmm system before simulation