Alexandre Bonvin bio photo

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

Email Github Youtube Subscribe

Supported by:

HADDOCK2.4 manual - Installation Instructions

Installing HADDOCK

Downloading HADDOCK

To obtain HADDOCK2.4 fill the HADDOCK license form ).

Downloading CNS

The other required piece of software to run HADDOCK is its computational engine, CNS (Crystallography and NMR System – ). CNS is freely available for non-profit organisations. In order to get access to all features of HADDOCK you will need to recompile CNS using the additional files provided in the HADDOCK distribution in the cns1.3 directory. Compilation of CNS might be non-trivial. We are providing some instructions here. Consult also for some guidance the related entry in the HADDOCK forum


python version 2.7 is required in order to run HADDOCK2.4. Importantly, python2 (pointing to python2.7) should be existing on your system.

As python2.7 is end of life, one way to install it is to use miniconda on your system.

Biopython 1.72 (only required to use the coarse-graining option in HADDOCK2.4)

Biopython version 1.72 is required in order to be able to convert the atomistic models into coarse grained models (see coarse graining PDB files for docking.

DSSP (only required to use the coarse-graining option in HADDOCK2.4)

DSSP is required to define the secondary structure, an information required to select the proper backbone parameter for the Martini coarse grained model (see coarse graining PDB files for docking.


In order to identify surface-accessible residues to define restraints for HADDOCK we can make use of NACCESS freely available to non-profit users, or its open-source software alternative FreeSASA. We will here make use of FreeSASA. Following the download and installation instructions from the FreeSASA website. The direct download command is:


If running into problems you might want to disable json and xml support. Here we will assume you save the tar archive under the software directory in your home directory:

  tar xvfz freesasa-2.0.3.tar.gz
  cd freesasa-2.0.3
  ./configure \-\-disable-json \-\-disable-xml \-\-prefix ~/software
  make install


HADDOCK-tools** is collection of HADDOCK-related scripts freely available from our GitHub repository. To install it:

  cd ~/software
  git clone

In case git is not installed on your system, go the GitHub site given in the command and download directly the archive.


MolProbity is a structure validation software suite developed in the Richardson lab at Duke University. In the context of HADDOCK we are making use of MolProbity to define the protonation state of Histidine residues using the reduce application. An pre-compiled executable can be freely downloaded from the MolProbity GitHub website. You can directly download the reduce executable for Linux or OSX.

Put the executable for example in ~software/bin or some other software installation directory in your path, rename it to reduce if needed and make sure it is executable (e.g. chmod +x ~/software/bin/reduce).


PDB-tools is a useful collection of Python scripts for the manipulation (renumbering, changing chain and segIDs…) of PDB files is freely available from our GitHub repository. To install it:

  cd ~/software
  git clone

In case git is not installed on your system, go the GitHub site given in the command and download directly the archive.


ProFit is designed to be the ultimate protein least squares fitting program. Some of the provided analysis tools in HADDOCK make use of Profit. Profit can be obtained free of charge for both non-profit and commercial users. The latter should notify the authors that they are using it. For information and download see the ProFit webpage.


PyMol is a visualisation software. It is used throughout our tutorials.

Configuring HADDOCK

After having downloaded HADDOCK, unpack the archive under the installation directory with the following command:

  tar xvfz haddock2.4.tgz

In case you installed miniconda, create a HADDOCK2.4 environment with the following command (withing the haddock2.4 directory):

conda env create -f requirements.yml

Then activate the haddock2.4 environment with:

conda activate haddock2.4

Edit then a configuration file specific to your system.

This configuration file should contain the following information:

CNSTMP defining the location of your CNS executable

QUEUETMP defining the submission command for running the jobs (e.g. either via csh or through a specific command submitting to your local batch system)

NUMJOB defining the number of concurrent jobs executed (or submitted).

QUEUESUB defining the HADDOCK python script used to run the jobs (the default should do in most cases).

And example configuration file for running on local resources assuming a 4 core system would be:

  set CNSTMP=/home/software/cns/cns_solve-1.31-UU-Linux64bits.exe
  set QUEUETMP=/bin/csh
  set NUMJOB=4

For submitting to a batch system instead you might want to use a wrapper script. An example for torque can be found here.

In order to configure HADDOCK, call the install.csh script with as argument the configuration script you just created:

  ./install.csh my-config-file

There is one more file that should be manually edited to define the number of models to concatenate within one job (useful when submitting to a batch system to ensure jobs are not too short in queue). Depending on the size of your system, a typical run time for rigid body docking would be a few tens of seconds per model written to disk (which effectively correspond to 10 docking trials internally), and a few minutes per model for the flexible refinement and water refinement. But this can increase a lot depending on the complexity of your system and the number of molecules to dock.

To define the number of concatenated models edit Haddock/Main/ located in the haddock2.4 installation directory and change the values as required, e.g.:

jobconcat["0"] = 5
jobconcat["1"] = 1
jobconcat["2"] = 1

If running on local system, change all values to 1.

OneOne last command to source the HADDOCK environment (under bash) (for csh, replace .sh by .csh):

  cd ~/software/haddock2.4
  source ./

At this stage you should be ready to use HADDOCK2.4!