Hex

Hex is an interactive protein docking and molecular superposition program, written by Dave Ritchie. Hex understands protein and DNA structures in PDB format, and it can also read small-molecule SDF files.

Installed version

  • 8.0.0 with CUDA (from binary distribution files)
$ module load tools/hex

How to use it?

Hex is used in interactive mode with remote visualization capability with GPU Visualisation à distance HPC.

Before starting using Hex, we need to create a cache directory in WORK folder :

  1. in your WORK create a directory named hex_work: mkdir hex_work
  2. append your ~/.bashrc file by adding export HEX_CACHE=$WORK/hex_work

Here are the steps to follow:

  1. Request a remote GPU session: 3dession
  2. open a VNC session as explained here
  3. in the remote desktop open a terminal and load hex: module load tools/hex
  4. and finally run hex: vglrun hex

This mode is used to run hex without gui enabled. We are using SGE to execute hex in multicore nodes in batch mode.

hex [-options] [pdbfile(s)]

Say we want to run docking of two structures a.pdb and b.pdb. We will use a macro file dock_ab.mac containing these parameters:

dock_ab.mac
DOCKING_RECEPTOR_SAMPLES  492
DOCKING_LIGAND_SAMPLES    492
DOCKING_ALPHA_SAMPLES     128
 
RECEPTOR_RANGE_ANGLE       30
LIGAND_RANGE_ANGLE         30
TWIST_RANGE_ANGLE         360
 
R12_RANGE                  21
R12_STEP                 0.75
GRID_SIZE                0.6
LIGAND_RANGE_ANGLE         30
RECEPTOR_RANGE_ANGLE       30
 
DOCKING_MAIN_SCAN          16
DOCKING_MAIN_SEARCH        25
 
 
ACTIVATE_DOCKING

We run hex using 2 processors for example:

$ hex -nogui -ncpu 2 a.pdb  b.pdb -e dock_ab.mac -l docking_ab.log

BUT Since Hex binary are compiled for Ubuntu like distribution we will use a container (singularity) to run hex. Typically, we run hex inside singularity like this (example taken from hex website):

$ singularity exec $SING_SPOOL/ubuntu-16.img hex -nogui -ncpu 2 a.pdb b.pdb -e dock_ab.mac -l docking_ab.log

The final SGE script, to run the command above using 16 cores is :

script.sge
#!/bin/bash
#$ -N Docking
#$ -q all.q
#$ -pe openmp 16 ## we request 16 cores
 
## We load singularity module
module load tools/singularity
 
## run hex inside singularity
singularity exec $SING_SPOOL/ubuntu-16.img hex -nogui -ncpu $NSLOTS a.pdb b.pdb -e dock_ab.mac -l docking_ab.log

Finally submit the job to SGE:

$ qsub script.sge