There are several different approaches to docking, based either on the philosophy of molecular dynamics - where the ligand is essentially allowed to wander around in space until it finds the binding site - or on a more exhaustive search concept. Two current programs are:
  • FtDock : good for protein-protein interactions.
  • AutoDock : more receptor-ligand searching.

The FtDock (fourier transform dock) moves one set of protein coordinates through the other - imagine the points representing the atoms of one chain plotted on tracing paper and moved through small steps across a plot of the other chain. Except, of course, in 3D.

Where the points collide, a high value results; and where they don't, a low value is recorded. This builds up a map of possible interfaces for each run - where a single 'run' is one orientation of the moving protein. For as many orientations as the step size demands, best positions for the moving molecule are produced and the list is sorted to produce a best overall position / orientation.

For AutoDock, the algorithm is quite different (as well as very complicated). The ligand is first 'gridded' against the receptor - that is, for each point on a 3D grid over the protein the energy of each ligand atom is computed and stored in a grid map. For a typical CHO ligand (sucrose, say) four grid maps are produced - C, H, O and e (electrostatics). These are used too speed up the docking.

The actual procedure is to randomly move from a starting point (which is specified by the ligand's initial coordinates) random changes to its position and orientation are made. Two different search techniques can be used: lamarkian genetic algorithms or simulated annealing, which both do essentially the same thing of selection of the best positions from a random population. The latter approach uses a temperature, which cools during the run.