EGAD Library Manual

Introduction

Welcome

The EGAD Library is a modular, object-oriented approach to rational protein design. As its name implies, the library is not a stand-alone application, but a collection of classes and functions to facilitate programming protein design applications. It provides an open-source implementation of many protein design utilities that should prove useful in a variety of applications.

Requisite Knowledge

In order to use the library, you should have a good grasp of the C++ programming language and, of course, object-oriented programming. While it is not necessary, EGAD Library makes extensive use of the Standard Template Libraries (STL) and knowledge of these libraries can make reading source code easier.

If you do not already know C++, there are a number of useful references on the web. It is a simple and powerful language, like its predecessor. About.com hosts an excellent C++ Tutorial, if you are willing to deal with pop-ups (or have a means of squelching them). The Linux Documentation Project also hosts a good C++ Programming HOWTO. The latter also has many links to other C++ resources and is a good place for beginners and Java programmers to start.

Protein Design

Over the last decade, techniques have evolved to either improve current or produce novel functions in proteins. Directed evolution and catalytic antibodies are the first examples that come to mind. While both of these techniques harness the power of evolution, they lack physical insight into the reasons behind the mutations that occur.

"Rational" design is distinct from these techniques in that it attempts to choose mutations based on a physical understanding of the system. Such design is useful because success or failure is an indicator of the accuracy of our knowledge of the system. This is especially important for proteins, where the basic physical principles that govern their structure are still under debate.

Computational protein design takes rational design a step further, attempting to automate the process. By developing an accurate energy function that is able to quickly approximate the relevant physics of a protein system, we can highlight mutations that may have the desired effect. With search algorithms such as Monte Carlo and Dead-End-Elimination, we can find reasonable minima in the design space.

The field of protein design may not be young, but its potential is still mostly untapped. Computational design allows us to expand the applications of protein design to systems that were previously intractable by directed evolution or catalytic antibodies. While it may not be as effective as simple evolution in all cases, it is potentially more widely applicable and teaches us more about the true, underlying physics.

Licensing

The EGAD Library is distributed under the GNU Library General Public License. This means you are free to use it to develop both open and closed source applications, but you are required to make public any changes you make to the library itself. Of course, we encourage it to be used in fully open-source applications.

Some components of the library are from other open-source projects (such as zlib). These components have their own licensing, though they are even less restrictive than the LGPL.