From: Rajarshi G. <rg...@in...> - 2006-09-17 15:24:57
|
On Sun, 2006-09-17 at 08:01 -0700, richard apodaca wrote: > In putting together and using RCDK: > > http://depth-first.com/articles/2006/09/14/cdk-the-ruby-way > > I began to see a real need for a CDK convenience > layer. What I mean by "convenience layer" is a set of > utilities that make doing simple things simple - > ideally just one line of code. [snip] > > I was interested what others people might come up > with. > > I've looked around CDK and can't find anything like > this. I think it would be a big help in promoting CDK. > Imagine giving a presentation on CDK and showing a > series of one-liners that solve problems that everyone > in the audience has had to solve dozens of times > before. > I agree - one line utility calls are very handy - even for seasoned users of the CDK :) Right now I have my own utility library that wraps a lot multi-step sequences into simple function calls. This has really been helpful when I've been writing the R-CDK interface (name collision!) which interfaces R and the CDK. Under R using the CDK directly can be tedious(in part due to the notation that is used to access a Java API under R). As a result, I have written several R functions that combine multiple steps of the CDK API - some of it dependent on my own Java classes, some of it simply prepackaged R calls to the individual methods. One of the most useful things for me has been a one-line to load files: So my utility classes allow me to do: String[] filenames = {"file1.sdf", "file2.mol", "file3.hin"}; IAtomContainer[] mols = Misc.loadMolecules(filenames); Similarly to bring up a 2D diagram I can do ViewMolecule2D v2d = new ViewMolecule2D(aMolecule); v2d.show(); Under R, these are more or less equivilant: library(rcdk) filenames <- list.files(...) mols <- load.molecules(filenames) view.molecule2d(mols[[1]]) and so on. Other examples include writing out SD files, getting vector or String versions of fingerprints, getting descriptor values directly (without having to go through the various result and value classes) etc > I was considering implementing this convenience layer > in RCDK, but it would be much better if the actual > work is done in CDK, and RCDK just mirrors the > existing convenience methods to make it more > Ruby-esque. I agree that it might be better that these utility methods be located in the CDK, that way other interfaces/bridges would have a consistent set of methods to work with. If this is something useful, I can put up my utility library (though it doesn't have too many classes) ------------------------------------------------------------------- Rajarshi Guha <rg...@in...> GPG Fingerprint: 0CCA 8EE2 2EEB 25E2 AB04 06F7 1BB9 E634 9B87 56EE ------------------------------------------------------------------- Finally I am becoming stupider no more - Paul Erdos' epitaph |