Instant JChem makes it easy to set up a molecular
similarity filter, so that I might include/exclude molecules from a set
based on a variety of different similarity measures (Tanimoto, etc.).
Rather than filtering, however, I'd like to generate those similarity
scores, and then display the decimal representation of the similarity
score in a column, giving me the ability to store those values in my
database. Is there a way to do such a thing?
Yes, you can do this with a chemical terms expression. An example is:
1.0 - dissimilarity('CF', '[#6]N1CCN2C(C1)C1=C(CC3=C2C=CC=C3)C=CC=C1')
1. I subtract from 1.0 as the function is dissimilarity not similarity (Doh!)
2. The 'CF' parameter means chemical hashed fingerprints. Other options are available. See here:
3. The second parameter is the structure you are comparing to (in smarts format in this case).
One key benefit of this is that the similarity scores will be automatically kept up to date if you edit strucutres or add new ones. You can add as many of these columns as you want (within reason), each with a similarity to a different structure.
More generally, I can see from the release notes
that IJC has many powerful new capabilities in version 5.6 ( released
September 28). I'm having trouble finding documentation to describe all
of those new capabilities, however. Is there a comprehensive document
that describes all the capabilities ( new and old ) in a level of
detail sufficient to allow us to consider undertaking major software
development projects built around IJC? The Groovy-based scripting sounds
especially powerful -- what is the document that best captures the
details of utilizing the scripting language?
New features in 5.6 can be found here:
The documentation on scripting is admitedly somewhat basic, but can be found here:
You should also look at the groovy documentation and the IJC API docs. Links to both of these are at the bottom of that page.
The scripting functionality in IJC is not fully devloped at the current stage. The editor support is pretty basic, and there are many improvements planned, but it already provides a powerful way to expand the capabilites of IJC. If you need any advice then please ask.