This small package provides some framework and implementation of a relatively
deep learning model for doing virtual screening based on Tensorflow. The model is as
described in this paper

http://arxiv.org/abs/1502.02072

The framework is somewhat more general and can be used for a variety of
tensorflow models.

Note that this code is NOT fully functional as is. The input reading and label
operations are specific to Google's implementation and need to be reimplemented
for your environment.
