On Thu, Dec 13, 2012 at 4:25 PM, Chris Morley <c.mor...@gaseq.co.uk> wrote:
> On 12/12/2012 18:15, Tim Vandermeersch wrote:
> > Hi,
> >
> > On Wed, Dec 12, 2012 at 5:55 PM, Geoffrey Hutchison <geo...@pitt.edu
> > <mailto:geo...@pitt.edu>> wrote:
> >
> >
> > On Dec 12, 2012, at 11:44 AM, Noel O'Boyle wrote:
> >
> > > I can't find it on the Daylight website, or in the OpenSMILES
> spec,
> > > but Roger has told me (the classic "appeal to authority" argument)
> > ...
> > > Certainly Daylight's Depict (
> http://www.daylight.com/daycgi/depict)
> > > does not accept c1nncc1, but is happy with c1n[nH]cc1.
> >
> > The problem is not the appeal to authority or whether or not
> > Daylight depict accepts certain things. What we know from experience
> > is that SMILES collections exist, which include such non-standard
> > patterns. IIRC, there are a few such things in PubChem and ZINC. I
> > remember them bitterly in the efforts in 2.2 and 2.3 to make the
> > canonical SMILES round-trip.
> >
> >
> > Yes, while working on Smiley I've come across several SMILES that are
> > not valid according to Daylight but OB accepts them.
> >
> > Examples:
> >
> > n1cccc1 invalid
> > [n]1cccc1 invalid
> > [nH]1cccc1 valid
> > [n-]1cccc1 valid
> >
> > OpenBabel currently outputs:
> >
> > [nH]1cccc1
> > [n]1cccc1
> > [nH]1cccc1
> > [n-]1cccc1
> >
> > The first is converted to a valid SMILES, not following the Daylight
> > approach. The second remains invalid without warning. I haven't come
> > across the second though. Another interpretation for the first would be
> > [n-]1cccc1 and although this follows the zero implicit hydrogens rule,
> > OB's solution is what is usually intended I think.
>
> In spite of failing in Daylight's Depict, I would have thought that the
> second above, [n]1cccc1, was a valid radical; OB depicts it as such.
>
> Smiley does not seem set up to handle any radicals at present.
>
Smiley can handle this, the callback for "n" gives hCount -1 meaning
default hydrogens, [n] gives 0 and [nH] gives 1.
Parsing: n1cccc1
addAtom(atomicNumber = 7, hCount = -1)
Parsing: [n]1cccc1
addAtom(atomicNumber = 7, hCount = 0)
Parsing: [nH]1cccc1
addAtom(atomicNumber = 7, hCount = 1)
So it is up to the callback functor to choose how to interpret these 3
different SMILES.
Tim
Chris
>
>
>
> ------------------------------------------------------------------------------
> LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
> Remotely access PCs and mobile devices and provide instant support
> Improve your efficiency, and focus on delivering more value-add services
> Discover what IT Professionals Know. Rescue delivers
> http://p.sf.net/sfu/logmein_12329d2d
> _______________________________________________
> OpenBabel-Devel mailing list
> OpenBabel-Devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/openbabel-devel
>
------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
OpenBabel-Devel mailing list
OpenBabel-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-devel