From: Jiao, D. <dj...@in...> - 2007-04-15 14:58:34
|
Egon Willighagen wrote: > On Saturday 14 April 2007, Jiao, Dazhi wrote: > >>>> The only problem is when there is a recursive Smarts inside the >>>> brackets. Then we not only have QueryAtom, but also QueryAtomContainer. >>>> I don't see how to modify the SmartsAtom. So I think instead, when >>>> parsing smarts, we need to build a QueryAtomContainer when there is >>>> Recursive Smarts in the Brackets. When there is no Recursive Smarts, >>>> return a SmartsAtom. >>>> >>> This is probably right; however it seems that when you have a >>> QueryAtomContainer as a node in the parse tree, we might hit problems >>> with the UniversalIsomoprhismTester which considers atoms/bonds but not >>> whole containers. >>> >> This is bothering me as well. As I am getting myself more familiar with >> the API, I am not sure if this is doable just using the >> QueryAtomContainer for the RecursiveSmarts. Maybe we need a >> SMARTSAtomContainer, which could contain the logical relationship. But I >> am not sure due to my lack of understanding of how the query are >> actually done. What do you think? >> > > OK, this would indeed be a problem. I do not feel that the UIT will be able to > support this. > > Might you show some SMARTS examples that use such set up? Does anyone know if > MQL also have such constructs? > > Egon > > Hi, Egon, There are examples in the Daylight Smarts example page at http://www.daylight.com/dayhtml_tutorials/languages/smarts/smarts_examples.html. Be careful, there are some smarts that could make people dizzy :) Here is one I copied from it. N-Oxide [$([#7+][OX1-]),$([#7v5]=[OX1]);!$([#7](~[O])~[O]);!$([#7]=[#7])] Hits both forms. Won't hit azoxy, nitro, nitroso,or nitrate. The daylight tutorial has some examples of recursive smarts. http://www.daylight.com/dayhtml_tutorials/languages/smarts/index.html#RECURSIVE David |