From: Daniel Z. <zah...@dt...> - 2004-03-22 14:54:17
|
On Mar 17, 2004, at 11:04 AM, Miguel Howard wrote: > Christoph had previously inquired off-list about displaying arbitrary > atom > properties in labels. Text of that message is below. > > Christoph, > > I have completed the work to allow the display of arbitrary > user-defined > properties using the 'label' tags in Jmol. This should allow you to > display your nmrshift property ... or any other property associated > with a > cdk.Atom object. > > The syntax is: > label My custom property value is %{propertyName} > > The curly brackets are required to delimit the property name. > > Currently, only the CDKJmolModelAdapter implements this method. This could be very useful to us and it is a convenient time to talk about what DTP would like to do with Jmol. We are working on a utility that allows users to enter a list of molecules and the application will look for common pharmacophores and fit the molecules onto each possible pharmacophore. The early algorithm work is going well and we are ready to integrate this into our larger work. From the storage side, we needed to be able to store atom properties so that we had a way to keep things like atom parameters, pharmacophore center types, etc. (See more below). From the display side, our early work used a VRML plugin, which has a number of problems, most notably the fact that every time you want to change which molecules are displayed, you have to generate a new model. We would like to use Jmol and just load all the molecules into the model and blank and unblank particular molecules using the Chime script. In our very first looks at using Jmol we saw two problems. The first is essentially what is described above. we needed a way to label pharmacophore points and have the label be displayed, even if the atom was dummy atom. The second problem we saw was that Jmol tried to draw bonds between all atoms that were close together. Is there a way to tell it to draw only those bonds that are explicitly given? Anyway, that is where we are starting in our Jmol work. > > Q: Are there file types that store arbitrary property values for atoms? I'm not sure about file types, we are using CML. We do have work on a database that will store this type of data. Basically for atoms and bonds, all child nodes of type CMLScalar will be stored. Three things are stored, name, type, and value. The first choice for name is the return from getDictRef(). If that is null, then getTitle() is used. If both are null, an exception is thrown. The type comes from the return from getDataType() and the value is the return from getContenetValue(). At this exact moment we don't store any unit info, but we will prob add a field for storing the return from getUnits(). For atoms we also look for child nodes of type CMLArray. The storage is similar, with the addition of a delimiter field (getDelimiter()). This code just got working on the first test cases this weekend and isn't even in our CVS yet, so if anyone is really interested in trying this out, let me know and I'll try to get things accessible before I go off to the cancer meetings this weekend. DanZ /*******************************************************/ * Daniel Zaharevitz * Chief, Information Technology Branch, DTP, NCI * zah...@dt... * phone: 301-496-8747 /*******************************************************/ |