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

Reply via email to