From: <ch...@us...> - 2006-05-17 09:23:11
|
Revision: 6275 Author: chhoppe Date: 2006-05-17 02:22:50 -0700 (Wed, 17 May 2006) ViewCVS: http://svn.sourceforge.net/cdk/?rev=6275&view=rev Log Message: ----------- patch for RGroups which are named R#. Changes # to a number corresponding to the occurence of the RGroup in the MDL file. Modified Paths: -------------- trunk/cdk/src/org/openscience/cdk/io/MDLReader.java Modified: trunk/cdk/src/org/openscience/cdk/io/MDLReader.java =================================================================== --- trunk/cdk/src/org/openscience/cdk/io/MDLReader.java 2006-05-17 09:20:45 UTC (rev 6274) +++ trunk/cdk/src/org/openscience/cdk/io/MDLReader.java 2006-05-17 09:22:50 UTC (rev 6275) @@ -77,6 +77,10 @@ * molecule.getProperty(CDKConstants.TITLE); * </pre> * + * RGroups which are saved in the mdl file as R#, are renamed according to their appearance, + * e.g. the first R# is named R1. With PseudAtom.getLabel() "R1" is returned (instead of R#). + * This is introduced due to the SAR table generation procedure of Scitegics PipelinePilot. + * * @cdk.module io * * @author steinbeck @@ -297,6 +301,9 @@ int atom2 = 0; int order = 0; int stereo = 0; + int RGroupCounter=1; + int Rnumber=0; + String [] rGroup=null; double x = 0.0; double y = 0.0; double z = 0.0; @@ -354,6 +361,18 @@ atom = IsotopeFactory.getInstance(molecule.getBuilder()).configure(molecule.getBuilder().newAtom(element)); } else { logger.debug("Atom ", element, " is not an regular element. Creating a PseudoAtom."); + //check if the element is R + rGroup=element.split("^R"); + if (rGroup.length >1){ + try{ + Rnumber=new Integer(rGroup[(rGroup.length-1)]).intValue(); + RGroupCounter=Rnumber; + }catch(Exception ex){ + Rnumber=RGroupCounter; + RGroupCounter++; + } + element="R"+Rnumber; + } atom = molecule.getBuilder().newPseudoAtom(element); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |