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:

HADDOCK2.4 manual - Diffusion Anisotropy Restraints

Diffusion anisotropy data (relaxation data) can provide useful information on the orientation of the molecules to be docked (comparable to RDCs). They can be introduced in HADDOCK as direct restraints (DANI statement in CNS).
For this, the tensor components need first to be determined. In the case of complexes, this can be easily done by using the known structures of the single domains. The software Tensor2 (Dosset, Marion and Blackledge (2000). J. Biomol. NMR 16, 23-28) can be used for this purpose.

You need for this to generate a Tensor2 input file containing your relaxation data.

A csh script called uname -pana_pdb_tensor2.csh is provided in the haddock/DANItools directory that will calculate from the experimental relaxation data the tensor parameters for all PDB files present in the current directory by best-fitting the data to the corresponding 3D structures.


   $HADDOCK/DANItools/ana_pdb_tensor2.csh tensor2.inp

Note that you have to define the fitting options in the tensor2 GUI manually. Tensor2 writes its output for each structure to a file called resaniso.0; each of these are moved to a subdirectory with directory name equal to the corresponding pdb file.

The script extracts the tensor parameters Dx, Dy and Dz and the chi2-value of the fit; these can be combined with the following command:

    paste D?_all.tmp chi2_all.tmp | awk '{print $1,$8,$16,$24,$27*100/100}' | sort -n +4 > tensor2_fit.lis

The components from the structure giving the best fit to the experimental data can be used to calculate the tensor parameters that are needed in run.cns with the script calc_tens.csh (provided in the haddock/DANItools directory).


    $HADDOCK/DANItools/calc_tens.csh dx dy dz

Where dx, dy and dz are the values from the file tensor2_fit.lis. The output of calc_tens.csh can be used directly in run.cns as dan1_tc, dan1_anis and dan1_r, the rotational correlation time, anisotropy and rhombicity of the rotational diffusion tensor, respectively. Alternatively, average values could be used; these can be calculated with:

   cat tensor2_fit.lis | awk '{print $2}' | $HADDOCKTOOLS/average.perl
   cat tensor2_fit.lis | awk '{print $3}' | $HADDOCKTOOLS/average.perl
   cat tensor2_fit.lis | awk '{print $4}' | $HADDOCKTOOLS/average.perl

Check the values in tensor2_fit.lis to make sure they match (e.g. same sign) before averaging them. Also make sure that an anisotropic model is in accordance with your data.

Use of relaxation data as restraints for docking

The proper format for DANI restraints is the following:

assi ( resid 999 and name OO )
     ( resid 999 and name Z  )
     ( resid 999 and name X  )
     ( resid 999 and name Y  )
     ( resid   20 and name N and segid A )
     ( resid   20 and name HN and segid A )   8.705   0.200

The restraints use the R2/R1 value; one should filter out residues where chemical exchange or mobility influences these values. Given a file containing residue_number R2/R1value and Segid a DANI restraint file in CNS format can be generated with the gawk script generate_dani provided in the HADDOCK/DANItools directory:

    $HADDOCK/DANItools/generate_dani dani_data_file

The error on the R2/R1 values is set by default to 0.2. This can be overruled by giving the error value as argument:

    $HADDOCK/DANItools/generate_dani ERR=0.5 dani_data_file

The 2.4 version of HADDOCK supports up to 5 different DANI restraints sets. Each can have a separate tensor. The tensor residue number should be in the range 999-995. You can edit and modify the generate_dani script to change the tensor number. To use DANI restraints in HADDOCK, use DANI in run.cns in the diffusion anisotropy section and define the proper tensor parameters that are output by the calc_tens.csh script. The DANI restraints are first used in the rigid body energy minimization step using as force constant the value defined for the hot phase.

The DANI restraints should be defined by the DANIX_FILE parameter in the run.param file used to setup a run, with X being the number of the restraint set. An example entry in run.param would be:


Example taken from the protein-protein-dani example provided with HADDOCK2.4.