The dead-end elimination algorithm (DEE) is a method for minimizing a function over a discrete set of independent variables. The basic idea is to identify "dead ends", i.e., combinations of variables that are not necessary to define a global minimum because there is always a way of replacing such combination by a better or equivalent one. Then we can refrain from searching such combinations further. Hence, dead-end elimination is a mirror image of dynamic programming, in which "good" combinations are identified and explored further. Although the method itself is general, it has been developed and applied mainly to the problems of predicting and designing the structures of proteins. It closely related to the notion of dominance in optimization also known as substitutability in a Constraint Satisfaction Problem. The original description and proof of the dead-end elimination theorem can be found in .

## Basic requirements

An effective DEE implementation requires four pieces of information:

1. A well-defined finite set of discrete independent variables
2. A precomputed numerical value (considered the "energy") associated with each element in the set of variables (and possibly with their pairs, triples, etc.)
3. A criterion or criteria for determining when an element is a "dead end", that is, when it cannot possibly be a member of the solution set
4. An objective function (considered the "energy function") to be minimized

Note that the criteria can easily be reversed to identify the maximum of a given function as well.

## Applications to protein structure prediction

Dead-end elimination has been used effectively to predict the structure of side chains on a given protein backbone structure by minimizing an energy function $E$ . The dihedral angle search space of the side chains is restricted to a discrete set of rotamers for each amino acid position in the protein (which is, obviously, of fixed length). The original DEE description included criteria for the elimination of single rotamers and of rotamer pairs, although this can be expanded.

In the following discussion, let $N$ be the length of the protein and let $r_{k}$ represent the rotamer of the $\mathrm {k^{th}}$ side chain. Since atoms in proteins are assumed to interact only by two-body potentials, the energy may be written

$E_{TOT}=\sum _{k}E_{k}(r_{k})+\sum _{k\neq l}E_{kl}(r_{k},r_{l})\,$ Also note that $E_{kk}(r_{k}^{A},r_{k}^{A})$ (that is, the pair energy between a rotamer and itself) is taken to be zero, and thus does not affect the summations. This notation simplifies the description of the pairs criterion below.

### Singles elimination criterion

If a particular rotamer $r_{k}^{A}$ of sidechain $k$ cannot possibly give a better energy than another rotamer $r_{k}^{B}$ of the same sidechain, then rotamer A can be eliminated from further consideration, which reduces the search space. Mathematically, this condition is expressed by the inequality

$E_{k}(r_{k}^{A})+\sum _{l=1}^{N}\min _{X}E_{kl}(r_{k}^{A},r_{l}^{X})>E_{k}(r_{k}^{B})+\sum _{l=1}^{N}\max _{X}E_{kl}(r_{k}^{B},r_{l}^{X})$ ### Pairs elimination criterion

The pairs criterion is more difficult to describe and to implement, but it adds significant eliminating power. For brevity, we define the shorthand variable $U_{kl}^{AB}$ that is the intrinsic energy of a pair of rotamers $A$ and $B$ at positions $k$ and $l$ , respectively

$U_{kl}^{AB}\ {\stackrel {\mathrm {def} }{=}}\ E_{k}(r_{k}^{A})+E_{l}(r_{l}^{B})+E_{kl}(r_{k}^{A},r_{l}^{B})$ $U_{kl}^{AB}+\sum _{i=1}^{N}\min _{X}\left(E_{ki}(r_{k}^{A},r_{i}^{X})+E_{lj}(r_{l}^{B},r_{j}^{X})\right)>U_{kl}^{CD}+\sum _{i=1}^{N}\max _{X}\left(E_{ki}(r_{k}^{C},r_{i}^{X})+E_{lj}(r_{l}^{D},r_{j}^{X})\right)$ ### Energy matrices

For large $N$ , the matrices of precomputed energies can become costly to store. Let $N$ be the number of amino acid positions, as above, and let $p$ be the number of rotamers at each position (this is usually, but not necessarily, constant over all positions). Each self-energy matrix for a given position requires $p$ entries, so the total number of self-energies to store is $Np$ . Each pair energy matrix between two positions $r_{k}$ and $r_{l}$ , for $p$ discrete rotamers at each position, requires a $p\times p$ matrix. This makes the total number of entries in an unreduced pair matrix $N^{2}p^{2}$ . This can be trimmed somewhat, at the cost of additional complexity in implementation, because pair energies are symmetrical and the pair energy between a rotamer and itself is zero.

## Implementation and efficiency

The above two criteria are normally applied iteratively until convergence, defined as the point at which no more rotamers or pairs can be eliminated. Since this is normally a reduction in the sample space by many orders of magnitude, simple enumeration will suffice to determine the minimum within this pared-down set.

Given this model, it is clear that the DEE algorithm is guaranteed to find the optimal solution; that is, it is a global optimization process. The single-rotamer search scales quadratically in time with total number of rotamers. The pair search scales cubically and is the slowest part of the algorithm (aside from energy calculations). This is a dramatic improvement over the brute-force enumeration which scales as $O(p^{N})$ .

A large-scale benchmark of DEE compared with alternative methods of protein structure prediction and design finds that DEE reliably converges to the optimal solution for protein lengths for which it runs in a reasonable amount of time. It significantly outperforms the alternatives under consideration, which involved techniques derived from mean field theory, genetic algorithms, and the Monte Carlo method. However, the other algorithms are appreciably faster than DEE and thus can be applied to larger and more complex problems; their relative accuracy can be extrapolated from a comparison to the DEE solution within the scope of problems accessible to DEE.

## Protein design

{{#invoke:main|main}} The preceding discussion implicitly assumed that the rotamers $r_{k}$ are all different orientations of the same amino acid side chain. That is, the sequence of the protein was assumed to be fixed. It is also possible to allow multiple side chains to "compete" over a position $k$ by including both types of side chains in the set of rotamers for that position. This allows a novel sequence to be designed onto a given protein backbone. A short zinc finger protein fold has been redesigned this way. However, this greatly increases the number of rotamers per position and still requires a fixed protein length.

## Generalizations

More powerful and more general criteria have been introduced that improve both the efficiency and the eliminating power of the method for both prediction and design applications. One example is a refinement of the singles elimination criterion known as the Goldstein criterion, which arises from fairly straightforward algebraic manipulation before applying the minimization:

$E_{k}(r_{k}^{A})-E_{k}(r_{k}^{B})+\sum _{l=1}^{N}\min _{X}\left(E_{kl}(r_{k}^{A},r_{l}^{X})-E_{kl}(r_{k}^{B},r_{l}^{X})\right)>0$ Thus rotamer $r_{k}^{A}$ can be eliminated if any alternative rotamer from the set at $r_{k}$ contributes less to the total energy than $r_{k}^{A}$ . This is an improvement over the original criterion, which requires comparison of the best possible (that is, the smallest) energy contribution from $r_{k}^{A}$ with the worst possible contribution from an alternative rotamer.

An extended discussion of elaborate DEE criteria and a benchmark of their relative performance can be found in .