From: Pascal M. <pas...@gm...> - 2007-09-11 13:03:11
|
Hi, Sorry, the mail is a bit long. 3 parts: LogP/PSA, HBD/HBA and RB. I need help mainly on smarts reading. [LogP] > There is some discussion of this in the comments in my blog article: > http://baoilleach.blogspot.com/2007/07/pybel-hack-that-sd-file.html Right, thanks. I found the reference for LogP in http://openbabel.svn.sourceforge.net/viewvc/openbabel/openbabel/trunk/data/logp.txt?view=markup What for PSA? [HBD/HBA] > Maybe someone here can comment further. If you are using these > strings, I would like to, I must compute descriptors for my library. > you could do us all a big favour by checking the references > and letting us know if everything is OK according to your own chemical > knowledge. Like GMC2007 commented on your blog, I prefer to use Lipinski's definition of donor/acceptor for library descriptors. However, if Lipinski HBA definition include or exclude e.g. amide or aromatic nitrogen, I don't know. I must check. Here http://openbabel.svn.sourceforge.net/viewvc/openbabel/openbabel/trunk/src/smartsdescriptors.cpp?view=markup#l_57 we have HBD: "[!#6;!H0]","Number of Hydrogen Bond Donors (JoelLib)"); HBA1: "[$([!#6;+0]);!$([F,Cl,Br,I]);!$([o,s,nX3]);!$([Nv5,Pv5,Sv4,Sv6])]", "Number of Hydrogen Bond Acceptors 1 (JoelLib)"); HBA2: "[$([$([#8,#16]);!$(*=N~O);!$(*~N=O);X1,X2]),$([#7;v3;!$([nH]);!$(*(-a)-a)])]", "Number of Hydrogen Bond Acceptors 2 (JoelLib)"); Does the first part of HBA2 means "any oxygen (excepted in nitroso or oxyme) or sulfur atom with one or 2 connections"? (It's the X1,X2 part which is annoying me). On Daylight website we can read: Hydrogen-bond donor. [!$([#6,H0,-,-2,-3])] "A H-bond donor is a non-negatively charged heteroatom with at least one H" [!H0;#7,#8,#9] "Must have an N-H bond, an O-H bond, or a F-H bond" I'll use HBD [#7,#8;!H0] (any nitrogen or oxygen with at least one attached hydrogen) for my purpose. (By the way, is P-H a HBD?) Still from Daylight site: Hydrogen-bond acceptor [!$([#6,F,Cl,Br,I,o,s,nX3,#7v5,#15v5,#16v4,#16v6,*+1,*+2,*+3])] A H-bond acceptor is a heteroatom with no positive charge, note that negatively charged oxygen or sulphur are included. Excluded are halogens, including F, heteroaromatic oxygen, sulphur and pyrrole N. Higher oxidation levels of N,P,S are excluded. Note P(III) is currentl y included. Well, amide nitrogen and e.g. Phe-NH2 are considered HBA with that definition, and the same in JoelLib HBA1 and HBA2, isn't it? Assuming all 3-connected nitrogen next to sp2 or sp carbon smarts is [NX3][c,C&X3,C&X2] like written in the comment in Noel's blog post (does this smarts means : a nitrogen atom, with 3 neighbours, bound to an aromatic carbon, or to a carbon with 3 neighbours, or to a carbon with 2 neighbours?) the smarts for HBA should be (?): [ !$([#6,F ... +3,]); !$([NX3][c,C&X3,C&X2]) ] OK, better to do some tests to see if I understood these unreadable smarts... [Amide / rotatable bond] > Regarding "Is amide bond considered as a rotatable bond?". Uh...this > requires looking at the code, which says: bool OBBond::IsRotor() { return(_bgn->GetHvyValence() > 1 && _end->GetHvyValence() > 1 && _order == 1 && !IsInRing() && _bgn->GetHyb() != 1 && _end->GetHyb() != 1); } I'm neither a C++ reader... _bgn->GetHvyValence() > 1 && _end->GetHvyValence() > 1 Both atoms must not be hydrogen... _order == 1 ...and the bond must be simple... !IsInRing() ... and is not included in a ring... bgn->GetHyb() != 1 &&_end->GetHyb() != 1) ... and both atom must not... well, what are the values for hybridization? > Hmmm....in an amide bond, I expect the hybridization of the C and N to > be 2 (i.e. sp2), so it looks like the expression above evaluates to > True. I think this is a bug. Can some of the C++ guys comment? > Presumably adding a check for amide is possible, and also desirable? In the "rule of 3" definition I found (and I'm interested in for the moment), which include RB, the amide bond is not considered as rotatable - I agree with that. I would go either for considering amide bond as not rotatable, either giving the choice (amide bond optionally rotatable / not rotatable by default) to the user. But of course that's would only corresponding to my personnal usage. > Since OpenBabel is not the only Open Source cheminformatics toolkit, > we can compare and contrast.... > > The CDK uses a SMARTS pattern for determining the number of rotatable > bonds as described here: > http://cheminfo.informatics.indiana.edu/~rguha/code/java/nightly/api/org/openscience/cdk/qsar/descriptors/molecular/RotatableBondsCountDescriptor.html > > It would be interesting and useful to determine all those cases where > this value disagrees with OpenBabel... Following multiple links I got finally to http://www.daylight.com/dayhtml_tutorials/languages/smarts/smarts_examples.html#ROTATE Rotatable bond [!$(*#*)&!D1]-!@[!$(*#*)&!D1] "An atom which is not triply bonded and not one-connected i.e.terminal connected by a single non-ring bond to and equivalent atom." Consider amide bond as rotatable as far I understand the definition - didn't even give a try for that smarts :) Regards, Pascal |