From: Egon W. <ego...@gm...> - 2010-12-10 14:05:47
|
On Fri, Dec 10, 2010 at 2:57 PM, Rajarshi Guha <raj...@gm...> wrote: >> new Atom(Elements.CARBON); >> >> which would actually set both, because we are clearly reading from a >> controlled vocabulary here, and this is actually what you can do >> nowadays. > > Yes, this is nice when you are constructing atoms by hand. How would > the SMILES parser make use of this? Would we have to rewrite it to > have a 100-line if-else block? Fair. We would need an ElementFactory for that: IElement element = ElementFactory.getElement((String)symbol); This might actually be good for memory use too, as we will not have many "C" Strings instantiated... >> However, I do not think class are using that yet... but this >> would be semantically correct... passing a String which happens to be >> "C" is less clear... > > It would be simply enough to do a look up on the periodic table by > symbol and get the atomic number and the appropriate details. If an > invalid symbol is provided, then atomic number is null Yes. >> I recommend using the Atom(IElement) constructor. That should set the >> atomic number. >> >> Would that work for you? > > Not really, because right now, molecules obtained from a SMILES string > have null for atomic number I have no objections against setting the atomic number in the SmilesParser. Egon -- Dr E.L. Willighagen Postdoctoral Research Associate University of Cambridge Homepage: http://egonw.github.com/ LinkedIn: http://se.linkedin.com/in/egonw Blog: http://chem-bla-ics.blogspot.com/ PubList: http://www.citeulike.org/user/egonw/tag/papers |