Introduction to gOSPREY
Welcome to the website for the gOSPREY!
gOSPREY is the abbreviation for Open Source Protein REdesign for You on a GPU. It enables the user to utilize a GPU to accelerate the procedure of protein design in a massive parallel fashion.
gOSPREY is based on the software suite OSPREY, developed by the Donald Lab from Duke University. Here is a short introduction for OSPREY:
OSPREY incorporates several different algorithmic modules for structure-based protein design, including a number of powerful Dead-End Elimination algorithms and the ensemble-based K* algorithm for protein-ligand binding prediction. OSPREY allows the incorporation of continuous protein side-chain and continuous or discrete backbone flexibility, while maintaining provable guarantees with respect to the input model (input structure, rotamer library, energy function, and any backbone perturbations) for a given protein design problem. See full details of the different algorithmic modules in OSPREY.
Currently, the version of gOSPREY that you can download is based on OSPREY v2.1 beta with some improvements, including:
A robust CUDA implementation of GA*, a variant of A* algorithm runs on any CUDA-compatible device in a massive parallel fashion.
Improved computation of heuristic function for structure-based computation protein design, which is able to accelerate the protein design procedure significantly even without parallelization.
An implementation of GSMA* on CUDA, which is able to continue the design process even if the system is out of memory.
An alpha release of OpenCL implementation of GA*. This is not packaged by default. Advanced users with coding ability may want to try it in
A nice build/package system based on CMake so you should not worry about the ugly compilation process of CUDA (
nvcc) and Java Native Interface!
In order to use the function of GPU acceleration, the user must own a CUDA-compatible video card, with the Compute-Capability at least 2.0.
In order to run gOSPREY, a user must have the following installed:
A Linux operating system with NVIDIA proprietary driver
A JDK 1.7 implementation
A recent gcc/g++ release
Check your environment setting. Make sure you have CUDA installed on your Linux box. And make sure the
1_Utilities/deviceQueryshipped by CUDA SDK returns normally.
Download the source code from github. If you have
gitinstalled, you can
cdinto your working directory and perform the clone operation:
$ cd ~/src $ git clone https://github.com/zhou13/gOSPREY.git
Alternatively, you can to download the tarball from the website and decompress it by yourself.
Create a build directory for gOSPREY:
$ cd gOSPREY $ mkdir build
cmaketo generate the Makefile. Because gOSPREY uses Java Native Interface, a dynamic library must be installed under the
java.library.path. On most system, a prefix on
/usrshould do this job:
$ cd build $ cmake -DCMAKE_INSTALL_PREFIX=/usr ..
Compile gOSPREY and install its dynamic library:
$ make $ sudo make install
Thanks for the CMake and jar package system, the use of gOSPREY is pretty easy.
make install in the installation procedure, a file called
osprey.jar will be generated. This contains all the Java classes needed by
gOSPREY. You can copy/move this file to any place that make you feel
ppi_GPU as an example. You can find it under
Suppose you are still under the
build directory. Execute:
$ cd ../doc/example/ppi_GPU $ java -jar ../../../build/osprey.jar -t 8 -c KStar.cfg doDEE System.cfg DEE.cfg
-t 8 will make gOSPREY compute the energy matrix in 8 threads on your CPU.
Finally, hope that everything goes smooth for you!
The document of original OSPREY can be found at
doc/manual.pdf. Besides that,
gOSPREY provided some additional parameter that a user need to configure. You
can find an example under
enableAStarJava true enableAStarNativeC true enableAStarCUDA true maxNativeCPUMemory 5032706048 maxNativeGPUMemory 5032706048 numGPUWorkGroup 4 numGPUWorkItem 192 numGPUWorkItem2 192 shrinkRatio 1
enableAStarJava determines whether the A* module implemented by original
OSPREY will be enabled.
enableAStarNativeC determines whether the A*
module implemented using native machine code through JNI with heuristic function
optimization will be used.
enableAStarCUDA determines whether GA* will be
enabled through CUDA. If more than one modules are enabled, gOSPREY will
compare the results returned by different modules to verily the correctness.
If CUDA is enable,
numGPUWorkItem is the number of
parallel queues used in GA*.
numGPUWorkItem2 is the number of work items for
an individual work group when calculating the heuristic function in parallel.
shrinkRatio is not equal to one, GSMA* will be enabled. In that case,
when the system runs out of memory, a fraction of nodes specified by
will be dropped. You may want to set it to
Support or Contact
Having trouble at installation or function? Feel free to contact the authors: firstname.lastname@example.org.