Intrinsic Dynamics Domains (IDDs)


IDD Protein-DNA Filter

A Matlab-based program helps filter FTDock conformers of protein-DNA interaction based on whether the DNA is cut through by the IDD plane.

If you use our software, please cite us:

Chandrasekaran, A., Chan, J., Lim, C., & Yang, L.-W. (2016). Protein dynamics and contact topology reveal protein-DNA binding orientation. Journal of Chemical Theory and Computation, acs.jctc.6b00688.

How to use?

1. Extract the file containing the IDD folder

2. Run the following in Matlab:

 addpath('Full path of the IDD folder in the IDD_Filter folder that was extracted in (1)')
 [filtered_conformers_list, IDD_norm, mean_mid_point_transitions, num_transition_points] = IDD_prot_DNA_conformer_filter(FTDock_output_file, prot_pdb_file, dna_pdb_file, num_conformers, filtered_conformers_list_file, output_folder);

Which will generate num_conformers and apply the IDD filter, the filtered conformers list will be written out to filtered_conformers_list_file while the PDB files of the filtered conformers in output_folder.

If you do not want to write out the conformers:

 [filtered_conformers_list, IDD_norm, mean_mid_point_transitions, num_transition_points] = IDD_prot_DNA_conformer_filter(FTDock_output_file, prot_pdb_file, dna_pdb_file, num_conformers, filtered_conformers_list_file);

Optional arguments:

  • num_conformers: Set the number of FTDock conformers to filter. Default: '', 4000 FTDock conformers
  • filtered_conformers_list_file: Filename to write the list of filtered conformers. Default: '', does not write to file
  • output_folder: Folder to write the filtered conformers in PDB format. Default: '', does not write conformers to disk

For more details, in Matlab type:

 help IDD_prot_DNA_conformer_filter

NOTE: The protein MUST be the STATIC molecule and DNA the MOBILE molecule.

See the Example section below for an example on how to do a complete run.


An example is provided in the Example folder. To dock and filter the protein-DNA complexes:

$ cd IDD_Filter/Example
$ Path_to_FTDock_folder/scripts/preprocess-pdb.perl -pdb 1vsr.pdb
$ Path_to_FTDock_folder/progs/ftdock -static 1vsr.parsed -mobile 1cw0_A_DNA.pdb -out 1vsr_1cw0.out

This might take a while. The *.bak files in the folder are the FTDock files generated by us and can be used to compare with the files you have generated.

Open Matlab and change the current working directory to IDD_Filter/Example then:

 addpath('Full path of the IDD folder in the IDD_Filter folder that was extracted earlier')
 [cur_filtered_conformers_list, cur_IDD_norm, cur_mean_mid_point_transitions, cur_num_transition_points] = IDD_prot_DNA_conformer_filter('1vsr_1cw0.out', '1vsr.parsed', '1cw0_A_DNA.pdb', '', '', '');


 [cur_filtered_conformers_list, cur_IDD_norm, cur_mean_mid_point_transitions, cur_num_transition_points] = IDD_prot_DNA_conformer_filter('1vsr_1cw0.out', '1vsr.parsed', '1cw0_A_DNA.pdb');

The above will not write the PDB files of the filtered conformers and the list to file, if you would like to do that, run the following:

 [cur_filtered_conformers_list, cur_IDD_norm, cur_mean_mid_point_transitions, cur_num_transition_points] = IDD_prot_DNA_conformer_filter('1vsr_1cw0.out', '1vsr.parsed', '1cw0_A_DNA.pdb', '', 'File to write list of filtered conformers', 'Path to the folder where the PDB of the filtered conformers will be written to');

You should get back the following output:

	cur_IDD_norm: 0.8847, -0.4642, 0.0430
	cur_mean_mid_point_transitions: -1.7904, 0.9226, 1.5122
	cur_num_transition_points: 4
	The precalculated cur_filtered_conformers_list can be found in cur_filtered_conformers_list.txt

All the output of is stored in 1vsr_1cw0_output.mat.

Modified FTDock

The FTDock program used in this analysis requires modifications to include partial charges for DNA.

Reference for FTDock:
Gabb, H. A., Jackson, R. M., & Sternberg, M. J. E. (1997). Modelling protein docking using shape complementarity, electrostatics and biochemical information. Journal of Molecular Biology, 272(1), 106–120.

To build the modified FTDock package download the following:

To install FFTW:

$ tar -xzf fftw-2.1.5.tar.gz
$ cd fftw-2.1.5
$ ./configure
$ make -j 5 install

The default install will install FFTW to /usr/local/, if you would like to install it at some other location then:

$ ./configure --prefix=path_to_other_location
$ make -j 5 install

To build and install the modified FTDock:

$ tar -xzf gnu_licensed_3D_Dock.tar.gz
$ unzip
$ cp IDD_Filter/FTDock_patch 3D_Dock/progs/FTDock_patch
$ cd 3D_Dock/progs/
$ patch < FTDock_patch

Edit Makefile using a text editor (Ex. vi, emacs & etc) and modify FFTW_DIR's value to the folder that you have install FFTW (default install: /usr/local, other location: path_to_other_location). Then: make -j 5

To perform protein-DNA docking:

Prepare 2 PDB files, one containing the protein only and the other DNA only. You can use VMD, PyMol, Discovery Studio or etc to do this. Use the scripts/preprocess-pdb.perl script to preprocess the protein PDB file, see the FTDock manual for more information. Do not preprocess the DNA PDB file.
Run progs/ftdock using the preprocessed protein PDB file and the DNA PDB file.

FTDock manual:


  • Linux/Unix
  • Matlab R2013a or higher.
  • FTDock with modifications for docking with DNA (see below section on Modified FTDock).
  • Output file from FTDock where the protein is the STATIC molecule and DNA is the MOBILE molecule using default settings.