I'm tring to do my M.Sc. research and I Have to do Docking to save some money as I cannot try all the compound that I'm working on.

what is the best Protein-Ligand Docking programme?

And anyone has any tutorial for such programmes.

  • $\begingroup$ If you want I can expand my answer below... But I'd need to know what's your programming level (e.g. can you use RDKit?) and are your ligands drug-like or metabolite-like? $\endgroup$ Commented Oct 21, 2019 at 14:50

2 Answers 2


It's case specific

Docking small compounds well is problematic and you need to consider whether:

  • if a single conformer is okay
  • if rigid sidechains are okay
  • if implicit water is okay
  • if a non-polarisable model is okay
  • if a non-covalent interaction is okay
  • if you are okay with a score that is a rough ΔΔGibbs approximation of the interaction (see this SO answer) or do you want something more like a K_d

Do note that for any experiment you do to have any validity you need to have controls. Do you know what can and cannot bind already? It is imperative that you score these too.


I am assuming that you want to use a free program. Virtual compound screens (VCS) are a big business in pharma. Therefore, a lot of really good software is not free, such as ICM-Dock, which outscores AutoDock discuss below in most tests.

AutoDock: simple cases

AutoDock Vina is easy to use and has a PyMOL plugin (I believe), but the peptide, in both its sidechains and its backbone, is rigid, which is not good. The ligand rotamers are generated for AutoDock at runtime, but there is a hardcoded low limit, it technically isn't a rigid ligand, but nearly. It is the best-scoring free rigid peptide docking program.

There are lots of tutorials on using Autodock, such as the official one or on YouTube. As shown by this Bioinformatics Stack Exchange question Autodock 4 (different score fxn) has several steps, each important.

Rosetta: very complicated cases

I prefer the harder to use Rosetta Ligand_dock which uses conformers (if the ligand is parameterised correctly, say they were generate via Open Babel conformers) and allows sidechains to repack.


Both tools mentioned use implicit waters, which works badly for highly hydrophobic ligands. That is the waters are simulated as a homogeneous field that affects the ligand and protein. But some solutions are possible, in the case of AutoDock WaterDock variant exists —although this is not polarisable water. For more advanced cases there are MD methods such as dynamic undocking, which are completely non-trivial. All these methods mentioned use classical force-field calculations (Amber, Charmm, Talaris etc. are different models), but in MD noise (think of it as environmental heat) is present in the calculations, so the ligand comes unbound (and is actually pulled out). You can also get better results by refining your bound ligand with QM-MD (e.g. gauss of gaussian).


This is a lot of options. So a first question is are your ligands man-made drugs/fragments (i.e. obey Lipinski's rule of 5) or metabolites? Generally the former are rigid and very hydrophobic (greasy) (and require better force fields), while the latter are flexible and hydrophilic.

Minor considerations

Also to consider is your entranceway to your protein as the Michaelis constant is dictated in some enzymes by the substrate going in, not by its binding (e.g. P450s).

If the ligand have a shared backbone that is fixed there are some tricks you can do to cut your compute time and increase the reliability.

If the ligands are bound not all methods are possible. Rosetta ligand_dock can but it is a bit fiddly to parameterize.

RDKit skills

One thing also to consider is your programming skills. Can you use RDKit? In most cases downloading the sdf off PubChem and running OBabel or similar to generate conformers is not possible and you have be familiar with a python package called RDKit, which is really powerful but non-trivial to use.

Additionally, docking scores can be strongly augmented with ligand-only values (such as logP, TPSA, molar refractivity, molecular weight, QED, Bertz topology etc. etc) that are generated from RDKit.

NB. The scoring function in Autodock Vina (not 4 though, as that is Amber FF) partially takes into account.

Ligand_dock details

Ligand_dock is an older application of the Rosetta suite and the current philosophy is to use a specific Rosetta script, however, it works fine and is actually quicker to implement. Here are some links:


Autodock-Vina is a free molecular docking solution. You need to generate different input conformations for each ligand though, e.g. with RDKit.

Here is a link to tutorial


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.