Geoffrey Hutchison wrote: > > On Oct 29, 2009, at 2:40 PM, Craig A. James wrote: > >> This is a good topic for OpenBabel 3. There really is no such thing >> as an "aromatic atom". Aromaticity is only a property of bonds and >> ring systems. It might make sense to eliminate the "atom-is-aromatic" >> property altogether. > > That's a tough call, though. What do you do with SMARTS "c" or atom > typing for Sybyl Mol2, which wants "C.ar" or similar? > > I somewhat agree with your premise, but there's too much existing > weight. A more accurate question would be "is this atom aromatic in this > ring?"
I think the trick would be to keep the "aromatic atom" concept externally. As you and others point out, it's useful. But it should be clearly defined as a sort of conceptual shorthand for "an atom with aromatic bonds." Internally, all algorithms that deal with aromaticity should do it at the bond level. Take this function from ring.cpp: bool OBRing::IsAromatic() { OBMol *mol = _parent; vector<int>::iterator i; for (i = _path.begin();i != _path.end();++i) if (!(mol->GetAtom(*i))->IsAromatic()) return(false); return(true); } This simply gives the wrong answer. The premise that, "A ring is aromatic if its atoms are aromatic," is false. Craig ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ OpenBabel-Devel mailing list OpenBabel-Devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbabel-devel