From: Rajarshi G. <rx...@ps...> - 2004-10-20 00:45:49
|
Hi, I'm having a problem with some of the methods for an Atom object. I read in some of the example structures in the data directory of the CDK sources. Then I loop over all the atoms and get the values of getHydrogenCount() getHybridization() getFormalNeighbourCount() However the values of all three functions are always zero. The code snippet that I'm doing this with is: for (int i = 0; i < mol.getAtomCount(); i++) { //if (!mol.getAtomAt(i).getSymbol().equals("C")) continue; Atom atom = mol.getAtomAt(i); int hcount = atom.getHydrogenCount(); int hyb = atom.getHybridization(); int fnc = atom.getFormalNeighbourCount(); System.out.println("OK, got a carbon: " + mol.getAtomAt(i).getSymbol() + " " +hyb + " " + fnc + " " + hcount); } The output (for coffeine.pdb) is OK, got a carbon: C 0 0 0 OK, got a carbon: C 0 0 0 OK, got a carbon: O 0 0 0 OK, got a carbon: O 0 0 0 OK, got a carbon: C 0 0 0 OK, got a carbon: N 0 0 0 OK, got a carbon: C 0 0 0 OK, got a carbon: N 0 0 0 OK, got a carbon: C 0 0 0 OK, got a carbon: C 0 0 0 OK, got a carbon: C 0 0 0 OK, got a carbon: N 0 0 0 OK, got a carbon: C 0 0 0 OK, got a carbon: N 0 0 0 I faced this problem with coffiene.pdb, naphthalene.cml and some of my own HIN files. Am I doing something wrong here? Are these values meant to be set by the readers or do I need to evaluate them when manipulating atoms? Thanks, ------------------------------------------------------------------- Rajarshi Guha <rx...@ps...> <http://jijo.cjb.net> GPG Fingerprint: 0CCA 8EE2 2EEB 25E2 AB04 06F7 1BB9 E634 9B87 56EE ------------------------------------------------------------------- Nothing spoils fun like finding out it builds character" -Calvin |
From: E.L. W. <eg...@us...> - 2004-10-20 07:06:55
|
=2D----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Wednesday 20 October 2004 02:45, Rajarshi Guha wrote: > Hi, I'm having a problem with some of the methods for an Atom object. > > I read in some of the example structures in the data directory of the > CDK sources. Then I loop over all the atoms and get the values of > > getHydrogenCount() That's the number of implicit hydrogens... PDB does not contain such=20 information, so this is zero. > getHybridization() > getFormalNeighbourCount() These are atom type properties... PDB does not contain hybridization or for= mal=20 neighbourCount information, so these are unset too. > However the values of all three functions are always zero. Because these properties are not stored in the PDB, some algorithm should=20 deduce them from the connectivity or 3D coordinates or so... Have a look at the class cdk.config.AtomTypeConfigurator (or so), which can= do atom type perception... Depending on the info that is in the PDB, you might= =20 need to do bond order perception (see cdk.graph.rebond), and aromaticity=20 detection. > The code snippet that I'm doing this with is: <snippet left out/> > Am I doing something wrong here? Are these values meant to be set by the > readers or do I need to evaluate them when manipulating atoms? The Readers are designed to only read that information that it explicitely = in=20 the file (and often only a subset of that)... For the rest, see above... Egon PS. This question would actually have better been sent to cdk-user@... cdk-devel@ is about development of CDK, not development *with* CDK... =2D --=20 eg...@us... =2D --------------------------------------- CDK: http://cdk.sf.net/ JChemPaint: http://jchempaint.sf.net/ Jmol: http://www.jmol.org/ =2D----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (SunOS) iD8DBQFBdg6Dd9R8I9Yza6YRAsKNAKDNKk0/Tx0bZ/aFXju9O0rsplfcrgCgjq2Z W87XCCR65dLpS2uIcqKGso0=3D =3DH9dI =2D----END PGP SIGNATURE----- |