Introduction
Library Structure
Classes in EGAD Library call into four major categories: Physical Model, Energy Function, Minimizer and Utility classes. The first three categories are the critical components of most protein design applications.
Physical model classes, as their name implies, represent the physical design problem in question. They are responsible for tracking the locations and parameters of molecules (or some approximation of molecules) in space, among many other tasks. These classes can be considered the foundation of the library, as most other classes will, directly or indirectly, query the physical model for information about the design problem being addressed.
Energy functions are classes that represent the physics behind the design problem. They are responsible for interacting with the physical model and calculating energies. Energy function classes are usually built as energy terms that can be glued together to make more complicated energy functions. This creates a system where energy terms can be mixed and matched using the same physical model and is very useful for the comparison of different terms. It also allows a user of the library to pick and choose which terms are most appropriate for the design problem (explicit hydrogen bonding, for example, may not be suitable for all situations).
Minimizer classes represent algorithms designed to navigate the energy landscape of a protein design problem. For the full-sequence design of even a small, 100-residue protein, there are over 10^40 possible sequence choices and 10^600 possible rotamer combinations. The minimizer is responsible for determining which, out of the 10^600 rotamer combinations, is the Global Minimum Energy Conformation (GMEC). Different minimizers are useful for different problems, so many alternatives are provided within the library.
