Hi, I'm trying to implement some "simple" tasks using CDK. Given a Molecule I want to retrieve its Formula, Smiles Code, Molecular Weight and finally render an image. I was able to compute the smiles string and formula using CDK 1.2.7:
//smiles SmilesGenerator sg = new SmilesGenerator(); molecule.setSmiles(sg.createSMILES(cdkmolecule)); //formula IMolecularFormula moleculeFormula = MolecularFormulaManipulator.getMolecularFormula(cdkmolecule); molecule.setFormula(MolecularFormulaManipulator.getString(moleculeFormula)); next I wanted to render an image. I found an example on http://chem-bla-ics.blogspot.com/2010/04/cdk-jchempaint-1-rendering-molecules.html which assumes cdk-1.3.x and cdk-jchempaint. Trying to run this code with cdk-1.3.6 and cdk-jchempaint-15 (I got both via sourceforge) reveals the following exception: Exception in thread "main" java.lang.NoSuchMethodError: org.openscience.cdk.interfaces.IChemObjectBuilder.newInstance(Ljava/lang/Class;[Ljava/lang/Object;)Lorg/openscience/cdk/interfaces/ICDKObject; at org.openscience.cdk.renderer.generators.BasicBondGenerator.getRingSet(BasicBondGenerator.java:142) at org.openscience.cdk.renderer.generators.BasicBondGenerator.generate(BasicBondGenerator.java:204) at org.openscience.cdk.renderer.generators.BasicBondGenerator.generate(BasicBondGenerator.java:57) at org.openscience.cdk.renderer.AtomContainerRenderer.generateDiagram(AtomContainerRenderer.java:585) at org.openscience.cdk.renderer.AtomContainerRenderer.paint(AtomContainerRenderer.java:240) The code for the smiles string generation does not work either with cdk 1.3.x. I get the following exception: Exception in thread "main" java.lang.NoSuchMethodError: org.openscience.cdk.smiles.SmilesGenerator.createSMILES(Lorg/openscience/cdk/interfaces/IAtomContainer;)Ljava/lang/String; Hence, 1.3.x does not seem to be compatible to 1.2.x? Is that true? So I'm a little bit confused which version to use and how to calculate the desired properties? Regards Özgür Demir heres the code for image creation: private static void renderImage(IMolecule molecule, File file, int width, int height) throws Exception { Rectangle drawArea = new Rectangle(width, height); Image image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); StructureDiagramGenerator sdg = new StructureDiagramGenerator(); sdg.setMolecule(molecule); sdg.generateCoordinates(); molecule = sdg.getMolecule(); List<IGenerator<IAtomContainer>> generators = new ArrayList<IGenerator<IAtomContainer>>(); generators.add(new BasicSceneGenerator()); generators.add(new BasicBondGenerator()); generators.add(new BasicAtomGenerator()); AtomContainerRenderer renderer = new AtomContainerRenderer(generators, new AWTFontManager()); renderer.setup(molecule, drawArea); Graphics2D g2 = (Graphics2D) image.getGraphics(); g2.setColor(Color.WHITE); g2.fillRect(0, 0, width, height); renderer.paint(molecule, new AWTDrawVisitor(g2)); ImageIO.write((RenderedImage) image, "PNG", file); } ------------------------------------------------------------------------------ Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing. http://p.sf.net/sfu/novell-sfdev2dev _______________________________________________ Cdk-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/cdk-user

