ADL: Docking as a search algorithm case study

Alex R. Coto a.coto at
Mon Feb 24 12:12:38 PST 2014

Hi everyone,

As part of my bachelor's thesis, I'm currently working on a new 
metaheuristic, a black-box global optimization algorithm, which me and 
my tutor have already tested on general benchmarks, obtaining very 
competitive results compared to more traditional algorithms (say, 
genetic algorithms, differential evolution, particle swarm 

With the help of some colleagues, we've isolated AD4's scoring 
function, and we've built a MEX-file to allow scoring from within 
MATLAB, to ease testing our algorithms.

So far we've tried optimizing the scoring function, seeing it as a 
black box, and avoiding the use of gradients (at least for the moment).

Oleg already comented:
> Applying off-the shelf optimization software to docking
> correctly is not trivial, because, among other things, the
> variable space is non-Euclidean, as it includes 1D and 3D
> rotations.

I agree, and I figured as much as soon as I started working on this, 
specially because of the fact that our search algorithm uses the notion 
of orthogonal vectors when exploring the search space, which (might) 
lose a little meaning when your solution vector is composed both of 
translations and angles.

So, first questions: in your experience, how do docking programs such 
as Vina handle effectively the fact that the variable space is 
non-Euclidean? Do they modify the search algorithm in any specific way? 
Or do they only use search algorithms specially suited for this?

Oleg also said:
> For this reason, many docking programs I know have/had strong
> biases in them, so that if the input ligand is already in the
> correct conformation, the program is much more likely to find
> it (despite randomizing variables, internally), leading to
> dramatically misleading performance comparisons.

True. If I'm not mistaken, in optimization jargon, that's just like 
starting a local search two steps away from the optimum. Unfair 
comparisons is a problem I'd like to avoid, and I think I can do that if 
I try docking a fixed set of complexes with my own algorithms. I'm aware 
that this shouldn't achieve better results than AD4 or Vina's, but my 
research is actually on search algorithms, so I think this should be 
enough for a start. It'd be great to contribute somehow to the docking 
community, nevertheless.

So, last question: right now, I have a couple of complexes prepared (4 
actually, 1adb, 1bmm, 1cjw & 2z5u). I've tried out several algorithms, 
and I'm currently implementing more of them, hybridizing some, and doing 
some parameter tuning. I'd like to try with other complexes too: can you 
give me some pointers as to where can I get the files for preparing new 

Sorry for the long mail. I'd really appreciate your help.

More information about the autodock mailing list