Installation

From Source

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.

Server side requirements

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

  • BASH

  • GNU C Compiler (gcc) and GNU Fortran Compiler (g77 or gfortran) 3.3 or newer

Client side requirements

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.

Overview

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:

  1. Set up the MySQL server and add a new database.

  2. Set up the OpenPBS/Torque queue system.

  3. Install the VSDMIP platform software.

  4. Install the client software.

  5. Set up the system interconnectivity.

  6. Check the installation and follow tutorial.

The order of steps 1-2, 3 and 4 are interchangeable

Obtaining VSDMIP

The software is freely distributed for academic and research purposes upon request. For more information please visit http://ub.cbm.uam.es/VSDMIP.html.

Unpacking

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.

    Plugin->Manage Plugins->Install

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.

MySQL Database Management System installation and setup

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:

Installing queue system

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

Warning

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:

  • Compute nodes

    Configure your nodes to be clients of the master node selected:

    [user@node $] vi /var/torque/mom_priv/config 

    Append the following line:

          $pbsserver      my-ip-from-master-node

    Then, configure your nodes to run pbs_mom at startup

  • Server node

    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

Installing VSDMIP platform included software

Dependencies

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.

    • AMBER installation.

    • DelPhi 4 installation.

    • MOPAC 7 installation.

    • Corina 3.0.5 installation.

    • OpenEye installation or license.

    • AutoDock.

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 nameContentDefault value
mysql++_includeHeader files for MySQL++Automatically set unless it is not found in standard locations
mysql_includeHeader files for MySQLAutomatically set unless it is not found in standard locations
mysql++_libsLibrary files for MySQL++Automatically set unless it is not found in standard locations
mysql_libsLibrary files for MySQLAutomatically set unless it is not found in standard location
openeye_includeHeader files of the OpenEye toolkit for ALFA/usr/local/openeye/include or /usr/openeye/include
openeye_oebio_libraryOEBIO library from Openeyeliboebio.a in /usr/local/openeye/lib or /usr/openeye/lib
openeye_oechem_libraryOECHEM library from Openeyeliboechem.a in /usr/local/openeye/lib or /usr/openeye/lib
openeye_oesystem_libraryOESYSTEM library from Openeyeliboesystem.a in /usr/local/openeye/lib or /usr/openeye/lib
openeye_oeplatform_libraryOEPLATFORM library from Openeyeliboeplatform.a /usr/local/openeye/lib or /usr/openeye/lib
Z_LIBSPath to the zlib compression librarylibz.a in standard system locations
THREAD_LIBSPath to the thread libslibpthread.a in standard system locations
oelibsAll openeye libs togetherAutomatically defined
CMAKE_INSTALL_PREFIXInstallation 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:

  • ALFA

  • CDOCK

  • CGRID

  • eulerAnglesAndTransVector.

  • GFUSION

  • GTP

  • ISM

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:

export OE_LICENSE=/usr/local/vsdmip/share/oe_license.txt

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.

  • VSDMIP modules.

    • calculateXScore.

    • getMol2.

    • getPDBforCDOCK3.

    • getResultsFromDOCK.

    • getResultsFromVS.

    • insertVSDB.

    • runAutoDock.

    • runCDOCK.

    • runDelPhiAndApolar.

    • runDOCKFilter.

    • runFredFilter.

    • runGTP.

    • runISM.

    • runRocsFilter.

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

From source

[user@node $] make ; make install

VSDMIP provides binaries of MOPAC 7 Public domain for Linux.

Configuring remote access without password prompt

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