Alexandre Bonvin bio photo

Computational Structural Biology group focusing on dissecting, understanding and predicting biomolecular interactions at the molecular level.

Email Twitter Github Youtube Subscribe


Supported by:




How to analyse docking results from HADDOCK or refine models?

Back to main best practice page

Best practice guide


Comparing your docking results to a known reference structure

There are various way how can your docking run be compared to a reference structure:

  • local HADDOCK scripts
    If you run HADDOCK locally, you can use the scripts that were installed in the tools directory during HADDOCK installation. Such analysis is described in the local HADDOCK tutorial and in the HADDOCK2.4 manual These scripts can be also found here Github.

  • ana_scripts
    After using the HADDOCK webserver, one can analyse their results locally with our analysis scripts in the ana_scripts directory. This analysis is described in the HADDOCK ab-intio tutorial. However they need to be modified for each individual use. These scripts can be also found here Github.

  • DockQ
    DockQ estimates protein-protein model quality in a quantitative way using all parameters as the CAPRI classification e.g. fraction of native contacts (fcc), interface root-mean-square-deviation (i-RMSD), ligand RMSD (l-RMSD) DockQ can be found on Github in both python or fortran.


Analysis manual

Analysis of docking results are described in the HADDOCK2.4 manual and more about parameters in the run.cns file is written here.


Clustering and scoring

The HADDOCK scoring function is explained here.

The cluster-based HADDOCK analysis is explained here.

A short section about key default analysis parameters is provided here.


Dos and Don’ts

Don't Do instead
take blindly the first ranked model/cluster consider/examine multiple models/clusters, especially if they overlap within standard deviations in their score
consider the size of the cluster as an indication of its quality use the cluster score and not its size for selecting best solutions (of course it is nice if the largest cluster is also the best scoring one)
consider/look only at the best model of a cluster within one cluster, do visualise and compare several models (e.g. the top4) to get an idea of the precision and make sure the clustering worked properly
take scores as proxies of binding affinity to compare different complexes compare scores only within the same system/complex (i.e. to distinguish models for one docking run), or in the case of mutations

Advanced model refinement

The HADDOCK2.4 server provides a dedicated web interface to run a refinement on a molecular complex (still experimental). As input, only a PDB file for each partner of the complex is needed. In case one wants to tune the default parameters, it is possible to run the refinement also locally or using the regular submission interface. Then following settings need to be adjusted:

Settings to run water refinement locally

Parameter run.cns name default value optimal value
Center of mass restraints cmrest false true
Surface contact restraints surfrest false true
Number of structures for rigid body docking (it0) structures_0 1000 same as itw structures
Number of structures for semi-flexible refinement (it1) structures_1 200 same as itw structures
Sample 180 degrees rotated solutions during rigid body EM rotate180_0 true false
Refine with short molecular dynamics in explicit solvent? solvshell false true
Perform cross-docking crossdock true false
Multiply the number of calculated structures by all combination ensemble_multiply* false true
Randomize starting orientations randorien true false
Perform initial rigid body minimisation rigidmini true false
Allow translation in rigid body minimisation rigidtrans true false
Number of MD steps for rigid body high temperature TAD initiosteps 500 0
Number of MD steps during first rigid body cooling stage cool1_steps 500 0
Number of MD steps during second cooling stage with flexible side-chains at interface cool2_steps 500 0
Number of MD steps during third cooling stage with fully flexible interface cool3_steps 500 0

* - only in json files, needs to be modified by hand in run.cns


Any more questions about analysis of the HADDOCK run? Have a look at our HADDOCK bioexcel forum hosted by . There is a very high chance that your problem has already been addressed.