First appears the list of software and hardware requirements for running a VSDMIP system. Then, it appears an overview of the installation process. Then, this "Installation" section shows you how to obtain the VSDMIP distribution, install a VSDMIP platform, create a VSDMIP database, install the VS software included in this distribution, and setup your system for using external VS software.
This second release (1.5) of VSDMIP have a lot of improvements and new capabilities that have modified significativelly the requeriments to run the software.
Linux-based operating system running on i386 or x86_64 (limited functionability can be obtained in other platforms where binary programs are not available). The platform has been tested on CentOS 5.x machines, Fedora Core 14 and GNU/Debian Squeeze.
MySQL 5.x database management system and its developement libraries
MySQL++ 3.x development libraries
CMake 2.8 to make packages or 2.6 to build from source
Python 2.2 or newer
GNU C Compiler (gcc) and GNU Fortran Compiler (g77 or gfortran) 3.3 or newer
The requirements on the client side are not such restrictive:
Linux, Windows or Mac OS X where PyMOL and SSH (like openssh) client is available.
PyMOL binaries or PyMOL source code and a python runtime environment.
numpy and MySQLdb packages for Python.
VSDMIP can be installed and run either in a single computer, a computer cluster, or a networked set of computers. A VSDMIP system consist of one or more VSDMIP databases managed by a MySQL database management system and the VSDMIP software that coordinates the external VS tools and the necessary databases. In addition, in this version an improved client version has been included. A VSDMIP system relies on external VS tools to work.
Several configurations are posible, however the three most common are:
All in one. Database management system, VS tools and client in the same machine. This could lead to a lost of performance except a big number of processors are available in the machine (i.e. SMP with quad cores).
The database management system and the client in one computer and the VS tools in a queue system with several computers. This configuration have a mixed performace, SBVS may have optimum behaviour while LBVS will suffer from some limitations
Everything separated. The database, the queue system and the client in several different machines. This configuration will reach the optimum perfomance in both SBVS and LBVS.
Local. Without the queue system and without the database, VSDMIP is still able to perform single docking calculations from a client machine. This configuration is only suitable for a limited number of operations and can achieve very poor performance.
Whatever the configuration is chosen, direct network access is necessary between clients and server: the database server has to be accessible from queue system hosts and the clients to perform the basic operations. The Client and the queue systems should be share storage trough NFS or Samba in order to copy and extract data in some cases (i.e. grids for docking) but the system could have several features available without this access.
From now on, we will assume that the database management system is installed on a computer named dbmaster.example.net, and all the other software is installed in master.farm.example.net. However, remember that it is perfectly possible to install everything in the same computer, in such case, substitute both computer names by localhost or whatever DNS name your computer has.
If only local installation is desired, you have to install only the client side package which contains everything to perform single docking
The installation order for a VSDMIP system is:
Set up the MySQL server and add a new database.
Set up the OpenPBS/Torque queue system.
Install the VSDMIP platform software.
Install the client software.
Set up the system interconnectivity.
Check the installation and follow tutorial.
The order of steps 1-2, 3 and 4 are interchangeable
The software is freely distributed for academic and research purposes upon request. For more information please visit http://ub.cbm.uam.es/VSDMIP.html.
The source distribution is divided in a source package and a PyMol plugin:
Source package. Contains the local and cluster codes.
PyMOL plygin. Download the file vsdmip.py from the web and install using the PyMOL plugin installer dialog.
and select the file vsdmip.py
To unpack the source distrubution, follow the next steps:
[user@node $] mkdir $HOME/VSDMIP/ ; cd $HOME/VSDMIP
[user@node $] tar -jxvf vsdmip_1.5.0_source.tbz
The structure of directories is the following (where $VSDMIP is your unpacking path by default):
$VSDMIP/VSDB. Contains the library and the programs to run in the queue system.
$VSDMIP/local/CGRID. Contains the code to generate the grids for docking.
$VSDMIP/local/CDOCK. Contains the code to perform the docking based on the grids generated by CGRID.
$VSDMIP/local/ALFA. Contains the code to perform conformational analysis.
$VSDMIP/local/ISM. Contains the code analyze score and evaluate complex energy.
$VSDMIP/local/GFUSION. Contains the code to perform analysis of grid generated by CGRID.
$VSDMIP/local/GTP. Contains the code to generate 3D fingerprints based on pharmacophoric points.
$VSDMIP/local/eulerAnglesAndTransVector. Contains the code to peform internal operations.
$VSDMIP/local/openbabel-2.3.0_mod. Contains a full OpenBABEL version with patches to generate fingerprints.
If you have not installed MySQL server in your system you may download it from MySQL web page or use the packages available for your distribution:
In the case of CentOS or RedHat-like systems
% yum install mysql-server
In the case of Debian/Ubuntu
% apt-get install mysql-server
Make sure your installation supports InnoDB tables (which is supported by default), since VSDMIP requires this kind of tables in order to use transactions. You, or your database administrator should assure enought space for database storage. This can be check in the configuration file /etc/my.cnf. An example is shown here:
table_cache = 1024 sort_buffer_size = 5M read_buffer_size = 5M thread_cache_size = 64 thread_concurrency = 1 log-slow-queries log-queries-not-using-indexes key_buffer_size = 256M max_connections = 150 tmp_table_size = 64M innodb_data_home_dir=/data/MySQL/ innodb_log_group_home_dir=/data/MySQL/ innodb_log_arch_dir = /data/MySQL/ innodb_buffer_pool_size = 512M innodb_additionak_mem_pool_size = 20M innodb_log_file_size = 5M innodb_log_buffer_size = 8M innodb_flush_log_at_trx_commit = 1 innodb_lock_wait_timeout = 50 innodb_buffer_pool_size=1024M
If MySQL has been installed for the first time, security and configurations tasks should be performed following MySQL reference guide (2.4.16 "Post-Installation Setup and Testing") and your distribution specific information.
Now, that MySQL server is running, you should create the database schema of VSDMIP and fill it with the initial data set, this could be acomplish following these commands:
[user@dbmaster $] mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands en with ; or \g. Your MySQL connection id is 1 to the server version: 5.0.22-log Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> CREATE DATABASE VSDB; mysql> GRANT ALL PRIVILEGES ON VSDB.* TO 'vsdbuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; mysql> FLUSH PRIVILEGES mysql> quit
[user@dbmaster $] mysql -u root -p -D VSDB < $VSDMIP/VSDB/UDFs/VSDMIP15.sql Enter password:
First, obtain the Torque system from Cluster resource web page or from your distribution repository.
In the case of CentOS or RedHat-like systems calculation nodes:
[user@node $] yum install torque torque-client torque-mom
And in the main node:
[user@master $] yum install torque-scheduler torque-server
You have to install Torque (at least node execution part) in all nodes
Configuration of Torque batch system is out of the scope of this manual, but there are plenty of documentation and resources available at the World Wide Web. Nevertheless, here are some basic tips that works in some cases following:
Configure your nodes to be clients of the master node selected:
[user@node $] vi /var/torque/mom_priv/config
Append the following line:
Then, configure your nodes to run pbs_mom at startup
Let's assume you have the default queue and system ready. You only need to set up a list of nodes to send tasks:
[user@master $] vi /var/torque/server_priv/nodes
Append the corresponding lines:
nodo1 np=4 nodo2 np=2 nodo3 np=1
This example add three nodes with 4, 2 and 1 processors/cores each one
Then configure your nodes to run pbs_server and pbs_sched at startup
Before compiling and installing VSDMIP included software you need to make sure the following elements are located in standard paths. If it is not the case, configuration parameters within CMAKE can be change defining compilation time variables as described in the next section.
The paths to the MySQL libraries and include files.
The paths to the MySQL++ libraries and include files.
The path where you want to install VSDMIP platform and the included VS software.
Optionally, you need the paths to:
DOCK 3.5 installation.
XScore 1.2.1 installation.
DelPhi 4 installation.
MOPAC 7 installation.
Corina 3.0.5 installation.
OpenEye installation or license.
Install MySQL++ if it is not yet installed. MySQL++ is a C++ wrapper for MySQL's C API. It is needed to compile the VSDB library and associated programs. You can obtain the lastest version from MySQL++ web page or from your distribution repository. In the case of source code, you can install MySQL++ in any directory of your choice.
In the case of CentOS or RedHat-like systems:
[user@node $] yum install mysql++ mysql++-devel
For simplicity, we assume that you have installed it into the $VSDMIP/bin/mysql++ directory using the prefix option when executing the MySQL++ configuration script.
[user@node $] ./configure ; make ; make install
If the MySQL libraries and header files are not in the standard location, we also indicate where they are with the expression --with-mysql=/mysql-base-dir or --mysql-lib=/usr/lib(64)/mysql
In the MySQL++ web page you can also found the manuals, instructions about compilation are in the README file inside the distribution. MySQL libraries and header files are necessary to compiler the wrapper, so you will need to install them first in your computer; if they are not installed, you can obtain them from the same place as the rest of MySQL software or from your distribution repository.
To modify the default values of paths and environment you should change the values at configuration time. A detalied information of every variable can be found in the following table
Table 1. VSDMIP CMAKE variables description
|Variable name||Content||Default value|
|mysql++_include||Header files for MySQL++||Automatically set unless it is not found in standard locations|
|mysql_include||Header files for MySQL||Automatically set unless it is not found in standard locations|
|mysql++_libs||Library files for MySQL++||Automatically set unless it is not found in standard locations|
|mysql_libs||Library files for MySQL||Automatically set unless it is not found in standard location|
|openeye_include||Header files of the OpenEye toolkit for ALFA||/usr/local/openeye/include or /usr/openeye/include|
|openeye_oebio_library||OEBIO library from Openeye||liboebio.a in /usr/local/openeye/lib or /usr/openeye/lib|
|openeye_oechem_library||OECHEM library from Openeye||liboechem.a in /usr/local/openeye/lib or /usr/openeye/lib|
|openeye_oesystem_library||OESYSTEM library from Openeye||liboesystem.a in /usr/local/openeye/lib or /usr/openeye/lib|
|openeye_oeplatform_library||OEPLATFORM library from Openeye||liboeplatform.a /usr/local/openeye/lib or /usr/openeye/lib|
|Z_LIBS||Path to the zlib compression library||libz.a in standard system locations|
|THREAD_LIBS||Path to the thread libs||libpthread.a in standard system locations|
|oelibs||All openeye libs together||Automatically defined|
|CMAKE_INSTALL_PREFIX||Installation directory for the software||/usr/local/vsdmip|
Now, the distribution can be built and installed. First we have to prepare the local program, then the cluster programs and finally the SQL modules for the database. For the local programs:
[user@node $] cd $HOME/VSDMIP/local [user@node $] mkdir build ; cd build [user@node $] cmake ../ -- The C compiler identification is GNU -- The CXX compiler identification is GNU -- Check for working C compiler: /usr/bin/gcc -- Check for working C compiler: /usr/bin/gcc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- The Fortran compiler identification is GNU -- Check for working Fortran compiler: /usr/bin/gfortran -- Check for working Fortran compiler: /usr/bin/gfortran -- works -- Detecting Fortran compiler ABI info -- Detecting Fortran compiler ABI info - done -- Checking whether /usr/bin/gfortran supports Fortran 90 -- Checking whether /usr/bin/gfortran supports Fortran 90 -- yes -- Configuring done -- Generating done -- Build files have been written to: /root/VSDMIP/local/build (Or very similar output) [user@node $] make Scanning dependencies of target ALFA.exe [ 0%] Building CXX object CMakeFiles/ALFA.exe.dir/ALFA/ALFA.cpp.o [ 1%] Building CXX object CMakeFiles/ALFA.exe.dir/ALFA/RotatableBond.cpp.o [ 2%] Building CXX object CMakeFiles/ALFA.exe.dir/ALFA/TorsionRule.cpp.o Linking CXX executable ALFA.exe [ 2%] Built target ALFA.exe Scanning dependencies of target CDOCK.exe [ 2%] Building Fortran object CMakeFiles/CDOCK.exe.dir/CDOCK/amoeba.f.o [ 3%] Building Fortran object CMakeFiles/CDOCK.exe.dir/CDOCK/clock.f.o [ 4%] Building Fortran object CMakeFiles/CDOCK.exe.dir/CDOCK/ematr.f.o [ 4%] Building Fortran object CMakeFiles/CDOCK.exe.dir/CDOCK/eulerAnglesAndTransVector.f.o [ 5%] Building Fortran object CMakeFiles/CDOCK.exe.dir/CDOCK/GetExternalDistance.f.o [ 6%] Building Fortran object CMakeFiles/CDOCK.exe.dir/CDOCK/GetExternalOverlapsFromNeighbors.f.o [ 6%] Building Fortran object CMakeFiles/CDOCK.exe.dir/CDOCK/GetHydrogenBondsCDOCK.f.o [ 7%] Building Fortran object CMakeFiles/CDOCK.exe.dir/CDOCK/getime.f.o [ 8%] Building Fortran object CMakeFiles/CDOCK.exe.dir/CDOCK/GetInternalDistance.f.o [ 9%] Building Fortran object CMakeFiles/CDOCK.exe.dir/CDOCK/GetISM.f.o [ 9%] Building Fortran object CMakeFiles/CDOCK.exe.dir/CDOCK/GetMinLigLength.f.o [ 10%] Building Fortran object CMakeFiles/CDOCK.exe.dir/CDOCK/GetNearestGridPoint.f.o ( More log info ) [user@node $] make install (as root)
These steps should build and install:
Then, we have to install openbabel-2.3.0_mod package, which have an independent CMake building system:
[user@node $] mkdir -p $HOME/VSDMIP/local/openbabel-2.3.0_mod/build ; cd $HOME/VSDMIP/local/openbabel-2.3.0_mod/build [user@node $] cmake ../ -DCMAKE_INSTALL_PREFIX=/usr/local/vsdmip/ [user@node $] make [user@node $] make install (as root)
To finish the installation we have to declare the variable OE_LICENSE to the place where the Openeye license file is located (usually at /usr/local/vsdmip/share/oe_license.txt. To this purpose we should edit the file /etc/profile and add the next line for Bash:
Or in the case of tcsh/csh
setenv OE_LICENSE /usr/local/vsdmip/share/oe_license.txt
Now we will try to build the cluster programs which will provide the following applications:
VSDMIP core library.
Follow the next steps in order to compile the source code:
[user@node $] cd $HOME/VSDMIP/VSDB/VSDBLibrary/Release [user@node $] cmake ../ -- The C compiler identification is GNU -- The CXX compiler identification is GNU -- Check for working C compiler: /usr/bin/gcc ( More output) [user@node $] make [ 2%] Building CXX object CMakeFiles/vsdb.dir/ProgramInterface/GTPInterface.cpp.o [ 4%] Building CXX object CMakeFiles/vsdb.dir/ProgramInterface/CorinaInterface.cpp.o [ 6%] Building CXX object CMakeFiles/vsdb.dir/ProgramInterface/CorinaResult.cpp.o ( More log info )
Once we have the libraries compiled we can start the process for the programs:
[user@node $] cd $HOME/VSDMIP/VSDB/VSDBPrograms/ [user@node $] mkdir build ; cd build [user@node $] cmake ../ -- The C compiler identification is GNU -- The CXX compiler identification is GNU -- Check for working C compiler: /usr/bin/gcc ( More output) [user@node $] make Scanning dependencies of target calculateXScore.exe [ 6%] Building CXX object CMakeFiles/calculateXScore.exe.dir/src/calculateXScore.cpp.o Linking CXX executable calculateXScore.exe [ 6%] Built target calculateXScore.exe Scanning dependencies of target getLigandsVolume.exe [ 13%] Building CXX object CMakeFiles/getLigandsVolume.exe.dir/src/getLigandsVolume.cpp.o ( More log info ) [user@node $] make install
Last step includes the modules for MySQL and requires a MySQL service already configured:
[user@node $] mkdir -p $HOME/VSDMIP/VSDB/UDFs/build ; cd $HOME/VSDMIP/VSDB/UDFs/build [user@node $] cmake ../ - The C compiler identification is GNU -- The CXX compiler identification is GNU -- Check for working C compiler: /usr/bin/gcc -- Check for working C compiler: /usr/bin/gcc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Configuring done -- Generating done -- Build files have been written to: /root/VSDMIP/VSDB/UDFs/build [user@node $] make Scanning dependencies of target My3DSearch [ 20%] Building CXX object CMakeFiles/My3DSearch.dir/My3DSearch.cpp.o Linking CXX shared library libMy3DSearch.so [ 20%] Built target My3DSearch Scanning dependencies of target MyCentroids [ 40%] Building C object CMakeFiles/MyCentroids.dir/centroids.c.o Linking C shared library libMyCentroids.so [ 40%] Built target MyCentroids Scanning dependencies of target MyFusion [ 60%] Building CXX object CMakeFiles/MyFusion.dir/MyFusion.cpp.o Linking CXX shared library libMyFusion.so [ 60%] Built target MyFusion Scanning dependencies of target MyHibrid [ 80%] Building C object CMakeFiles/MyHibrid.dir/MyHibrid.c.o Linking C shared library libMyHibrid.so [ 80%] Built target MyHibrid Scanning dependencies of target MyPart [100%] Building CXX object CMakeFiles/MyPart.dir/MyPart.cpp.o Linking CXX shared library libMyPart.so [100%] Built target MyPart [user@node $] make install
Now we have to define the modules inside MySQL, to do so we should run a SQL script located in /usr/local/vsdmip/share/define_UDFs.sql
[user@dbmaster $] mysql -u root -p -D VSDB < /usr/local/vsdmip/share/define_UDFs.sql Enter password:
If no errors are displayed, the distribution is installed and can be tested
Reference section includes information on all the installed programs
If you have not installed Mopac 7, install the provided Mopac 7 or directly from your distribution respository.
From RedHat-like systems
[user@node $] yum install mopac7
[user@node $] make ; make install
VSDMIP provides binaries of MOPAC 7 Public domain for Linux.
In order to execute remote command you should be able to login automatically in the remote system
To activate this mode, you should generate a pair of keys (public and private) in the client machine with the following command and pressing enter in all the questions:
[user@node $] ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: 43:2b:06:93:8e:8b:36:0f:46:aa:82:2b:e8:98:ea:1a root@squeeze
In the case of a Windows system, you should do the same using a cygwin environment or with your favourite SSH client application
Following, copy the contents of the file $HOME/.ssh/id_rsa.pub and it to the remote machine file $HOME/.ssh/authorized_keys
If the machine is the same for client and server parts, simply execute the following command:
[user@node $] cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
Finally test the access without password in the remove machine