Installation

Open a terminal window and navigate to the folder where you want to install HADDOCK3; for example: software. The current installation instructions are local and will affect only your user.

Before starting with the installation of HADDOCK3, make sure to properly install CNS. If you have installed a previous version of HADDOCK, you may already have a suitable version of CNS. Please do check your CNS installation before proceeding.

1. Clone this repository:

Mind the --recursive flag when cloning!

git clone --recursive https://github.com/haddocking/haddock3.git

Go to the haddock3 directory

cd haddock3

and type the following commands to first install the FCC source code provided

cd src/fcc/src
chmod u+x Makefile
make
cd -

Then, follow the same logic to install the fast-rmsdmatrix source code

cd src/fast-rmsdmatrix/src
chmod u+x Makefile
make fast-rmsdmatrix
cd -

By the end of the above commands, you should be back to the haddock3 main folder.

2 Create a virtual environment with Python 3.9+ and install dependencies:

You can use Python’s venv or conda depending on your choice. Commands are provided below:

with venv

virtualenv venv --python=3.9
source venv/bin/activate
pip install -r requirements.txt

with conda

conda create -n haddock3 python=3.9
conda activate haddock3
pip install -r requirements.txt

3. Install the HADDOCK3 package and command line clients

python setup.py develop --no-deps

Of note, here we are still using the depreacted setup.py command due to HPC, GRID and LOCAL compabilities with CNS.

4. Make a CNS binary shortcut to the expected path:

mkdir -p bin/

# on mac
ln -s /PATH/TO/cns_solve_1.3/mac-intel-darwin/source/cns_solve-2206031450.exe bin/cns

# on linux
ln -s /PATH/TO/cns_solve_1.3/intel-x86_64bit-linux/source/cns_solve-2002171359.exe bin/cns

As long as you have the (haddock3) python environment activated, you can navigate away from the haddock3 installation folder. You can run HADDOCK3 from anywhere. To run HADDOCK3, follow the usage guidelines.

5. Keep your installation up to date

Navigate to the haddock3 installation folder (the one you cloned from GitHub). Ensure you have the (haddock3) python environment activated. Please keep in mind that HADDOCK3, as well as its dependencies, are under active development. If the updating processing fails, it is safest to reinstall from scratch. Always refer to the latest installation guidelines.

# if you used `venv`
source venv/bin/activate

# if you used `conda`
conda activate haddock3

Afterwards:

# pull the latest source code from our repository to your computer
git pull

# update the dependencies by running:
pip install -r requirements.txt  --upgrade

# ensure all command-lines clients are installed
python setup.py develop --no-deps

Of note, here we are still using the depreacted setup.py command due to HPC, GRID and LOCAL compabilities with CNS.

6. (Optional) Install MPI libraries if you intend to run HADDOCK3 with MPI

To use the mpi implementation of haddock3 you must have mpi4py installed in the (haddock3) python environment, and OpenMPI in the host system.

$ pip install mpi4py
# or
$ conda install -c conda-forge mpi4py

Later, you can find here instructions on how to run HADDOCK3 with MPI.

Installing third-party packages

HADDOCK3 can integrate third-party software in its workflows. We are not responsible for the proper installation of such packages, but we help you install them. Below, you will find a list of all third-party packages HADDOCK3 can use and guidelines for their proper installation.

lightdock

To install lightdock follow the instructions on the project’s website. Remember to install it under the same Python environment you created for HADDOCK3. If you have any doubts, please let us know.

gdock

  1. Clone the latest version:

cd some-folder
git clone https://github.com/rvhonorato/gdock.git
  1. Install Python3+ dependencies

pip install deap scipy mgzip biopython
  1. Set GDOCK_PATH

export GDOCK_PATH=some-folder

Important: These are not the full gdock installation instructions as only the model generation is used here. Please check the repository page for more information.