ADL: Docking as a search algorithm case study
Alex R. Coto
a.coto at lab.matcom.uh.cu
Mon Feb 24 12:12:38 PST 2014
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
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
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