Computational approaches to fragment based screening