Showing posts from 2013

Deposit Silicos-it Shape-it as an Ubuntu 12.04 package in a personal PPA

See, I've never made a package for ubuntu repos, so I didn't know how much fun I was in...
Shape-it an open and free software package that's using the same underlying theory as OpenEye's ROCS. Both codes perform a Gaussian-overlap of groups of atoms. But free stuff is good and so to make the free stuff even more free I've decided to put it in the Ubuntu repos. Now, I don't know how the Silicios-it and OpenEye implementations compare in either speed or getting the "right" answer (data for getting the right answer is know for ROCS from benchmarks on the DUD set, for example), so no guarantees folks!
Piecing together bits from various tutorials, I've come up with the script below that will download the original source and configure the package for you. Replace jandom-gmail and other details with your data, setup a PPA on launchpad, generate a GPG public-private keypair and register it with the PPA - you should be ready to go.

Before we ju…

Build Desmond- on Ubuntu 12.04 64-bit

Desmond is probably the best MD engine out there, especially if you have an InfiniBand cluster. In addition to Desmond itself, it comes with a bunch of goodies such as viparr and msys, which are top-notch modeling tools. Desmond build problem is solved by using SCONS, a python-based build tool. To my surprise the build process went super-smooth! That said, I don't have the necessary sequence of "sudo apt-get install packageA packageB". Please checkout the share/ to get a feel for what Ubuntu packages you might need; frequently a '-dev' package will be needed. Here is what i did The build/ config is shown below Then testing the build to check if the random number is generating the expected random number ;) Test restoring the checkpoint capacity; the files 'dhfr.eneseq' and 'dhfr.eneseq.original' should be identical. Finally, test the parallel part. Here there should be a good match of energi…

Wrapping openbabel in python - using cython

The previous post showed a contrived example of how one could access the openbabel functionality in python using the boost libraries. There is alternative to boost to wrap around c/c++ code, it's called cython. Here is an example openbabel wrapper, exposing some very simple functionality. Just before diving in, you should know that there already exists a wrapper around openbabel in python (it is called pybel). What I'm showing here doesn't even come close to pybel in terms of usefulness, the idea here is to show a demo of how easy wrapping things in python is. #! /usr/bin/python from ez_setup import use_setuptools use_setuptools() from setuptools import setup, Extension, find_packages from Cython.Distutils import build_ext import sys, os import glob import subprocess as sub def get_include(name="openbabel"): p = sub.Popen('locate %s' % name ,stdout=sub.PIPE,stderr=sub.PIPE, shell=True) output, errors = p.communicate() include = [str…

Wrapping openbabel in python - accessing C++ via boost with

Update I have de-contrived the example below. After some struggle, I've managed to accomplish this seemingly simple task: wrap a friendly open-source library inside python and make it a python module. Such wrapping is handy, because it retains the speed of c++ inside of python.
If you want to check out how to do more or less the same thing with cython instead of boost see this.
So here is the // Comment #! /usr/bin/python from ez_setup import use_setuptools use_setuptools() from setuptools import setup, Extension import sys, os import glob include_dirs = [] if __name__ == '__main__': extensions = [Extension('_boostbabel',['src/boostbabel.cpp'], include_dirs+['src/boostbabel/', '/usr/include/openbabel-2.0/'], language="c++", libraries=['boost_python', 'openbabel']), ] setup(name = 'boostbabel', …

Silicos shape-it as a free alternative to OpenEye ROCS?

Silicos provides shape-it - a C++ program for doing shape matching using gaussian volume.

To compile under Ubunt 12.04

sudo apt-get install  libopenbabel-dev libopenbabel4 openbabel

export BABEL_INCLUDEDIR=/usr/include/openbabel-2.0/openbabel
export BABEL_LIBDIR=/usr/lib/openbabel/2.3.1/
export BABEL_DATADIR=/usr/share/openbabel/openbabel/2.3.1/

Benchmarking molecular fingerprints

Inspired by Anthony Nicholls's paper "So what do we know and when do we know it?", I've started measuring the performance of available molecular fingerprint methods in discriminating between active and inactive componuds. Here are some preliminary results.

The left side of the first figure summarizes published results in the field; the right side of the figure reproduces the known performance for MACCS fingerprint and adds-in a bunch of different fingerprints. Overall they're not that different with ECFP4 perhaps being the best (highest median and narrow 1st-Quartile-3rd-Quartile range).

All methods were tested on the same ~100 protein targets. The second figure tries to explain how the performance of various fingerprints may be correlated with each other across this set of 100 targets.