Archive for October, 2008
Sometime back I was playing around with dynamic HTML and cam across a tutorial that described how to implement the dynamic suggestion feature that is commonly found on many websites (such as Google and Amazon). This set me wondering how I could use this mechanism to dynamically depict a SMILES string as I type it.
I came across an interesting site called the World Names Profiler, which given a surname colors a map of the world based on frequency of occurence of the name in different countries. They have a dataset of 300 million names across 26 countries.
While it’s a nice visualization, it was very interesting for me to see the spread of Indian surnames, as the Indian diaspora is spread out all over the globe. Obviously Indian surnames have a maximum frequency in India, but it’s quite interesting to note that Guha has a high frequency in North America and Central Europe and a very low frequency in Australia. I was also surprised to see that it had a non-zero occurrence in Argentina. On the other hand, Ghosh, is has a higher frequency in Canada compared to the US and a higher frequency in Argentina than Guha. However, Patel, has a much higher frequency in Australia than either Guha or Ghosh. Singh on the other hand, appears to have similar frequencies in Canada and Australia, which are both higher than in the US
I chose these surname because they’re pretty common Indian surnames. One could correlate frequencies of occurrence to the background represented by the surnames, but that would be easily confounded by stereotypes. However, for me, it’s a nice visualization of how Indians have spread over the globe.
In a previous post, I dicussed virtual screening benchmarks and some new public datasets for this purpose. I recently improved the performance of the CDK hashed fingerprints and the next question that arose is whether the CDK fingerprints are any good. With these new datasets, I decided to quantitatively measure how the CDK fingerprints compare to some other well known fingerprints.
Update – there was a small bug in the calculations used to generate the enrichment curves in this post. The bug is now fixed. The conclusions don’t change in a significant way. To get the latest (and more) results you should take a look here.
Since I do a lot of cheminformatics work in R, I’ve created various functions and packages that make life easier for me as do my modeling and analysis. Most of them are for private consumption. However, I’ve released a few of them to CRAN since they seem to be generally useful.
One of them is the fingerprint package (version 2.9 was just uploaded to CRAN) , that is designed to read and manipulate fingerprint data generated from various cheminformatics toolkits or packages. Right now it supports output from the CDK, BCI and MOE. Fingerprints are represented using S4 classes. This allows me to override the R logical operators, so that one can do things like compute the logical OR of two fingerprints.
Virtual screening (VS) is a common task in the drug discovery process and is a computational method to identify promising compounds from a collection of hundreds to millions of possible compounds. What “promising” exactly means, depends on the context – it might be compounds that will likely exhibit certain pharmacological effects. Or compounds that are expected to non-toxic. Or combinations of these and other properties. Many methods are available for virtual screening including similarity, docking and predictive models.
So, given the plethora of methods which one do we use? There are many factors affecting choice of VS method including availability, price, computational cost and so on. But in the end, deciding which one is better than another depends on the use of benchmarks. There are two features of VS benchmarks: the metric employed to decide whether one method is better than another and the data used for benchmarking. This post focuses on the latter aspect.