DOCK 6 FAQ

Copyright © 2006-2023
Regents of the University of California
All Rights Reserved

Last updated November 14, 2023




General Questions


What is the current release of DOCK?

The current release is version 6.11 which was released in November 2023.


Should I upgrade to the current release?

In general, yes. In particular, bug fixes and basic improvements will make the upgrade worthwhile even if the new functionalities are not desired.


Where do I get the dms program, and how much does it cost?

UCSF Chimera's Tool Write DMS (Chimera versions 1.3 and later) is a replacement for program dms; try it ! The dms program is distributed by the Computer Graphics Lab at UCSF. It is free of charge. To download a copy of dms, go to this link.


What if I have a question that is not answered here or in the manual?

You can join the DOCK-Fans mailing list to meet and talk with other people who are also interested in DOCK. Please search the archives before asking your question.




Installation Questions


How is dms installed ?

Note that UCSF Chimera's Tool Write DMS (Chimera versions 1.3 and later) is a replacement for program dms; try it ! The dms program description at the UCSF Computer Graphics Lab and the README file in the dms distribution provide details. Here is a quick start example:
sh < ./dms.shar
cd dms
# Edit GNUmakefile per the README: change LIBDIR and BINDIR
vi GNUmakefile
make install
Some reported problems are caused by invalid LIBDIR and BINDIR definitions. Ensure that these directories actually exist; create them with mkdir if necessary. Search the DOCK-Fans mail archives before posting dms related questions.


How is RDKit installed ?

The RDKit installation section in the DOCK 6 manual describes the main approaches. If the automated recipe supplied by Dock fails then this manual workaround is suggested (where the starting directory is the top level directory of DOCK) :
cd src/rdkit
make rdkitclean
make getdepend
make extract
cd rdkit-Release_2019_09_1
rm -rf build && mkdir build && cd build
cmake .. -DRDK_INSTALL_INTREE=OFF -DCMAKE_INSTALL_PREFIX=`pwd`/.. -DBOOST_ROOT=${BOOST_ROOT} -DBoost_NO_SYSTEM_PATHS=ON -DBoost_USE_STATIC_LIBS=OFF -DEIGEN3_INCLUDE_DIR=/absolute/path/to/dock6/src/rdkit/eigen-3.3.9 -DRDK_BUILD_PYTHON_WRAPPERS=OFF
make
make install
Note that this assumes that Boost has been installed with top level directory specified in environment variable BOOST_ROOT. This recipe is very close to that specified by target rdkit in src/rdkit/Makefile; the main difference is that this workaround eschews all Python. Note that a variety of Python related error messages have been observed when trying to use the automated DOCK procedure for installing RDKit. This may be due to the difficulty of employing Python for multiple purposes. See this for advice on rectifying your Python installation.


Should AMBERHOME be set ?

No. In fact, for DOCK versions through 6.11 a defined AMBERHOME environment variable will cause problems for the DOCK Amber score preparation procedure. For examples on undefining AMBERHOME see the next FAQ.


When I test or run DOCK with the amber_score, I get Error from amberize_ligand; ...

make[2]: Entering directory `/dock6/install/test/amber_score_181l'
../../../bin/prepare_amber.pl lig.mol2 181l.pdb
Coordinate and parameter files for the Receptor 181l generated.
The AMBER score tagged mol2 file lig.amber_score.mol2 generated.
Splitting the multiple Ligand mol2 file into single mol2 files.
The single mol2 files will have the prefix: lig
The number of single Ligand mol2 files generated is 1.
Generating coordinate and parameter files for Ligands and Complexes.
Generating AM1-BCC charges. This may be time consuming.
Ligand lig.1 has total charge 0
Error from amberize_ligand; the name of the ligand is
ASL
Examine amberize_ligand.lig.1.out

What is causing the error, and how do I fix it?

It is very likely that the AMBERHOME environment variable is causing erroneous behavior in the DOCK antechamber. Try undefining AMBERHOME:
unset AMBERHOME (for the bash and similar shells)
unsetenv AMBERHOME (for the tcsh and similar shells).
If this does not fix the problem then read the rest of this FAQ.

Known causes are an incorrectly defined AMBERHOME environment variable, a correctly defined AMBERHOME environment variable that points to a faulty AMBER installation, and a correctly defined AMBERHOME environment variable that points to a correct AMBER9 through AMBER14 or AmberTools installation. The problem is usually that antechamber uses AMBERHOME to determine which executables to run and to locate those executables. This can cause antechamber to fail. Thus, the amberize_ligand step of the DOCK amber preparation scripts is failing. The error is inside the amberize_ligand.lig.1.out file. The simplest patch is to undefine AMBERHOME; the amber preparation scripts will then use the default DOCK supplied AMBER programs. A possible cause is a faulty DOCK installation; this cause has not been reported.


When I build DOCK, I get a yacc: Command not found error:

yacc parser.y
make[2]: yacc: Command not found
make[2]: *** [parser.c] Error 127

What is causing the error, and how do I fix it?

The tleap program requires a parser generator; example Unix command names are yacc and bison. All classical Unices have yacc. Linuces usually have yacc. But this command not found error is caused by a missing parser generator. (It may be that some users are not installing enough of their Linux.)

Here are some suggestions:


When I compile DOCK, I get an _mmolex Undefined symbols error:

g++ -O2 -o dock6 amber_typer.o base_mpi.o base_score.o conf_gen.o dock.o dockmol.o library_file.o master_score.o orient.o score.o simplex.o utils.o score_solvent.o score_amber.o sasa.o score_chemgrid.o nab/nab.a -lm -lpthread
ld: Undefined symbols:
_mmolex
make: *** [dock6] Error 1

What is causing the error, and how do I fix it?

DOCK 6 requires a lexical analyzer generator; example Unix command names are lex and flex. All classical Unices have lex. Linuces usually have flex. But this undefined symbol is caused by a missing lexical analyzer generator. (It may be that some users are not installing enough of their Linux.) In particular, dock6/src/dock/nab/lex.mm_options.c either will not exist or will have a size of zero if a lexical analyzer generator is missing.

Here are some suggestions:




Old Installation Questions


When I test or run DOCK with the amber_score, I get a getpdb: can't open file lig.1.amber.pdb error:

cd test/amber_score_1lgu ; make move_ligand.dockout
Reading parm file (1lgu.lig.1.prmtop)
title:
getpdb: can't open file lig.1.amber.pdb
make: *** [move_everything.dockout] Error 1

What is causing the error, and how do I fix it?

Two categories of causes are known: an incorrectly defined AMBERHOME environment variable, a correctly defined AMBERHOME environment variable that points to a faulty AMBER installation, and a correctly defined AMBERHOME environment variable that points to a correct AMBER9 installation. The problem is usually that antechamber uses AMBERHOME to determine which executables to run and to locate executables. This can cause antechamber to fail. Thus, one of the steps of the DOCK amber preparation scripts is failing. The error is buried inside one of the amberize_bla.out files. The simplest patch is to undefine AMBERHOME; the amber preparation scripts will then use the default DOCK supplied AMBER programs. The other category of known causes is a faulty program in the DOCK installation. Once again investigating the output files should lead to the culprit. Here is an example from the tutorials. File amberize_ligand.lig.1.out contained: /dock6/bin/mopac: error while loading shared libraries: libgfortran.so.4: cannot open shared object file: No such file or directory This executable was built under a different environment. Both updating the environment or rebuilding the DOCK installation resolved the problem.


When I compile DOCK with Intel compilers, I get a multiple definition of `main' error:

ifort -O2 grid.o score.o score_grid.o grid point.o define.o io.o io_grid.o io_gridf.o mol_prep.o io_receptor.o io_mol2.o io_pdb.o io_ptr.o io_sph.o label.o label_node.o label_chem.o label_vdw.o label_flex.o mol.o search.o transform.o transformf.o parm.o parm_grid.o rotrans.o utility.o vector.o -lm -lpthread -o grid
grid.o(.text+0x0): In function `main':
: multiple definition of `main'
/usr/local/intel-8.0-20040412/lib/for_main.o(.text+0x0): first defined here
/usr/local/intel-8.0-20040412/lib/for_main.o(.text+0x42): In function `main':
: undefined reference to `MAIN__'
make[2]: *** [grid] Error 1

What is causing the error, and how do I fix it?

When mixing C and Fortran some compilers automatically give preference to a user defined C main function. Some do not, such as Intel compilers, and that results in link errors for multiple definitions of main. The solution for Intel compilers is to include -nofor_main in the link step. The can be done via DOCKBUILDFLAGS or by modifying the Makefile. In release 6.3 we added a new make macro, LINK_WITHOUT_FORTRAN_MAIN, to implement a simple configuration file approach.


When I compile DOCK, I get syntax error before numeric constant:

g++ -c -DBUILD_DOCK_WITH_MPI -DMPICH_IGNORE_CXX_SEEK -I/include -O2 -o amber_typer.o amber_typer.cpp
In file included from /usr/include/mpi.h:1081,
from dock.h:28,
from amber_typer.cpp:1:
/usr/include/mpi++.h:1473: error: syntax error before numeric constant

What is causing the error, and how do I fix it?

This error is due to an incompatibility between the configuration of the MPICH2 installation and the configuration of DOCK 6. Because DOCK 6 does not use the MPI C++ bindings, this issue can be avoided by defining the macro MPICH_SKIP_MPICXX. This can be done on the command line via: make -e DOCKBUILDFLAGS='-DMPICH_SKIP_MPICXX' or by modifying the DOCK 6 configuration file config.h directly via an addition to the macro CFLAGS, e.g., CFLAGS= -DBUILD_DOCK_WITH_MPI -DMPICH_IGNORE_CXX_SEEK -DMPICH_SKIP_MPICXX -I$(MPICH_HOME)/include -O2. In release 6.1 we modified the DOCK 6 configuration files as above. See MPI C++ Bindings for background information. Note that DOCK 6 does use some MPI C bindings and does not use any MPI Fortran bindings.




Platform Specific Questions


What is the impact of Windows and DOS line terminators ?

dms and sphgen cannot read files that are created under the Disk Operating System (DOS) which underlies Windows. One can translate the DOS line terminators to UNIX line terminators using command dos2unix in Cygwin's cygutils package or using a web service. Alternatively, some editors can change line terminators: For example, to change the line terminators in the rec.pdb file, type the following commands in the cygwin window:

vi rec.pdb
:set fileformat=unix
:wq

Note that the Write DMS tools in pre June 3, 2009 Chimera versions produce a molecular surface file that is not readable by sphgen because it contains DOS line terminators. Use a later Chimera version or translate using the approaches above.


What are the prerequisites for installing on macOS ?

Versions 6 of DOCK officially support macOS platforms. GNU compilers and thus configuration files are recommended in general (but keep on reading). The main effort is setting up your macOS for building computational chemistry software. There are various schools of thought. As of macOS Monterey (version 12), macOS Ventura (version 13), and macOS Ventura (version 14) installing prerequisites natively is generally possible; see the Amber instructions for installing Xcode and gfortran. However, employing a package management system may still be the most prudent path. Here is one approach using MacPorts, and another using Homebrew is here. In DOCK release 6.11 we added homebrew configuration files which merely cater to idiosyncratic details of compiler naming, e.g., gcc-11.

The most frequent user issue is compilation errors caused by stale GNU compilers (e.g., gcc 4.2.1). On the other hand, a GNU compiler on the bleeding edge can also cause problems because DOCK has not yet been updated to support compiler releases subsequent to the DOCK release. As a point of reference in late 2023, DOCK release 6.11 was tested with GNU 12.3.0. Search the DOCK-Fans mail archives for the latest user experiences.


What are the prerequisites for installing on Ubuntu ?

As of version 6.3 DOCK officially supports Ubuntu Linux platforms. We recommend a full operating system (OS) installation. However, for disk space misers here is the list of packages that we had to install on a fresh 14.10 Ubuntu OS:

sudo apt-get install build-essential byacc
sudo apt-get install flex gfortran

Ubuntu command to get OS version: cat /etc/lsb-release
GNU command to get compiler version: g++ -v


What is the status of DOCK on SGI platforms ?

As of version 6.3 DOCK officially stopped supporting SGI platforms because we no longer have access to SGI machines. However, user interest has continued, and we are cooperating in updating sgi configuration files when we receive patches from users. The latest input from our user community dated January 2014 reports that DOCK version 6.6 was built on SGI machines running IRIX 6.5.23 and MIPSpro compiler version 7.4 from 2003. The sgi configuration files for DOCK versions 6.7 and later have been updated appropriately.


What is the status of DOCK on 64 bit platforms ?

As of version 6.3 DOCK officially supports 64 bit platforms. (However, there is one known problem - namely, with ChemGrid Score's grid-convert.) As of version 6.4 the test suite contains reference outputs from a 64 bit platform (x86_64). This can cause false positives on 32 bit platforms; in particular, there may be differing numbers of Orientations or Conformations which can cause different scores, but tests that only do rescoring generally show only very slightly different scores. Apply common sense and good judgment to determine the significance of a possible failure, and note that a small number of failures is rarely an indication of real problems, but if almost every test fails with significant differences then something is amiss.




Scoring Questions


What is a DOCK Score ?

DOCK scores are not absolute binding free energies. DOCK scores are approximate binding energies. The level of approximation varies across the scores. The overview in the manual describes the calculation of the main basic DOCK scores. Here is part of a DOCK-Fans post by developer P. Therese Lang that provides context:
DOCK and other docking algorithms are designed to rank libraries of molecules with respect to each other. If this is the level of accuracy you need, DOCK should work fine. If you would like to calculate the absolute binding free energy, you will need to move to much more sophisticated (and time intensive) calculations. Some of the more commonly used of these types of calculations include MM/PBSA, Free Energy Perturbation (FEP), and Thermodynamic Integration (TI). You should be able to find some literature reviews that cover the strengths and weaknesses of each technique.