Bob hit the nail on the head.

The first case, "N1N=CC=C1", is aromatic because the RDKit sees that the
first nitrogen has two bonds to it, assigns a hydrogen, and then sees a
conjugated pi system with 6 electrons that is flagged as aromatic.
Something similar would happen with the aromatic form [nH]1nccc1: first the
ring system is kekulized to yield N1N=CC=C1, then the sanitization proceeds
from there. The same thing would happen with the equivalent n1[nH]ccc1.

The second case, N1=NC=CC1, has a C (the last one) that only has single
bonds to it. This is assigned sp3 hybridization, so there's no conjugated
ring system for aromaticity to be perceived in.

The final case, n1nccc1, is an instance of the "pyrrole" problem: aromatic
N's that need an implicit H on them, should have that implicit H present in
the aromatic SMILES.

-greg




On Mon, Mar 3, 2014 at 5:59 PM, Bob Funchess <bfunch...@kelaroo.com> wrote:

> Hi Toby,
>
>
>
> I'd say it's more of a limitation inherent in Kekule representations than
> an actual bug in RDKit.  Trying to get too "clever" in figuring out what
> the user meant usually causes more harm than good.
>
>
>
> I'm not sure what version of RDKit you're using, but the aromatic
> specification with an explicit hydrogen on one of the nitrogen atoms works
> for me:
>
>
>
> >>> Chem.MolFromSmiles('n1[nH]ccc1').Debug();
>
> Atoms:
>
>         0 7 N chg: 0  deg: 2 exp: 3 imp: 0 hyb: 3 arom?: 1 chi: 0
>
>         1 7 N chg: 0  deg: 2 exp: 3 imp: 0 hyb: 3 arom?: 1 chi: 0
>
>         2 6 C chg: 0  deg: 2 exp: 3 imp: 1 hyb: 3 arom?: 1 chi: 0
>
>         3 6 C chg: 0  deg: 2 exp: 3 imp: 1 hyb: 3 arom?: 1 chi: 0
>
>         4 6 C chg: 0  deg: 2 exp: 3 imp: 1 hyb: 3 arom?: 1 chi: 0
>
> Bonds:
>
>         0 0->1 order: 12 conj?: 1 aromatic?: 1
>
>         1 1->2 order: 12 conj?: 1 aromatic?: 1
>
>         2 2->3 order: 12 conj?: 1 aromatic?: 1
>
>         3 3->4 order: 12 conj?: 1 aromatic?: 1
>
>         4 4->0 order: 12 conj?: 1 aromatic?: 1
>
>
>
> The double bonds in the Kekule representations here can be between atom
> pairs 1,2 and 3,4 or between atom pairs 2,3 and 4,0.  Putting one between
> pair 0,1 leaves atom 4 with two single bonds to it (and therefore, to
> satisfy valence requirements, two implicit hydrogens); I'm not horribly
> surprised that RDKit perceives that as aliphatic.  You can see that's
> what's happening in your second example where the hybridization of atom 4
> is 4 (sp3) instead of 3 (sp2).
>
>
>
> Regards,
>
> Bob
>
>
>
> --
>
> Bob Funchess, Ph.D.
> Kelaroo, Inc
>
> Senior Scientist
> www.kelaroo.com
>
> bfunch...@kelaroo.com                                         (858)
> 259-7561 x3
>
------------------------------------------------------------------------------
Subversion Kills Productivity. Get off Subversion & Make the Move to Perforce.
With Perforce, you get hassle-free workflows. Merge that actually works. 
Faster operations. Version large binaries.  Built-in WAN optimization and the
freedom to use Git, Perforce or both. Make the move to Perforce.
http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk
_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to