Hi all,
we used the attached java code utilizing CDK 1.5. to create a canonical chiral smiles from the input which was the attached Esomeprazol.sdf. The result is: Cc1cnc(C[S@@](=O)c2[nH]c3ccc(cc3n2)OC)c(C)c1OC To determine an explicit chirality from the smiles you need the four different substituents of the sulfur atom. Therefore, we miss the explicit representation of the free electron pair of sulfur. I have no representation of electron pairs in smiles in mind. Is there a rule where the free electron pair implicitly is placed? Such as for example: The free electron pair is always implicitly placed as first or last substituent of the chiral atom? Best regards, Lina -- Dipl.-Pharm. Lina Humbeck TU Dortmund University Faculty of Chemistry and Chemical Biology Otto-Hahn-Str. 6 D-44227 Dortmund Phone: +49 231-755 47 13 lina.humb...@tu-dortmund.de www.ccb.tu-dortmund.de
package example; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import org.openscience.cdk.aromaticity.Aromaticity; import org.openscience.cdk.aromaticity.ElectronDonation; import org.openscience.cdk.exception.CDKException; import org.openscience.cdk.graph.Cycles; import org.openscience.cdk.interfaces.IAtomContainer; import org.openscience.cdk.io.iterator.IteratingSDFReader; import org.openscience.cdk.silent.SilentChemObjectBuilder; import org.openscience.cdk.smiles.SmilesGenerator; import org.openscience.cdk.tools.CDKHydrogenAdder; import org.openscience.cdk.tools.manipulator.AtomContainerManipulator; public class Main { public static void main(String[] args) { // initialize IteratingSDFReader reader = null; IAtomContainer mol = null; String sdfFile = "./resources/Esomeprazole.sdf"; String smiles = ""; // read first (and only) atom from file try { reader = new IteratingSDFReader(new FileInputStream(sdfFile), SilentChemObjectBuilder.getInstance()); if (reader.hasNext()) mol = reader.next(); } catch (FileNotFoundException e) { e.printStackTrace(); } finally { try { reader.close(); } catch(IOException ex){} } // prepare atom types try { AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(mol); } catch (CDKException e) { e.printStackTrace(); } // add implicit hydrogens try { CDKHydrogenAdder.getInstance(mol.getBuilder()).addImplicitHydrogens(mol); } catch (CDKException e) { e.printStackTrace(); } // create SMILES SmilesGenerator smilesGen = SmilesGenerator.absolute().aromatic(); Aromaticity aromaticity = new Aromaticity(ElectronDonation.cdk(), Cycles.cdkAromaticSet()); try { aromaticity.apply(mol); } catch (CDKException e) { e.printStackTrace(); } try { smiles = smilesGen.create(mol); } catch (Exception e) { e.printStackTrace(); } // print result System.out.println("SMILES: "+smiles); } }
Esomeprazole.sdf
Description: application/extension-sdf
------------------------------------------------------------------------------ Go from Idea to Many App Stores Faster with Intel(R) XDK Give your users amazing mobile app experiences with Intel(R) XDK. Use one codebase in this all-in-one HTML5 development environment. Design, debug & build mobile apps & 2D/3D high-impact games for multiple OSs. http://pubads.g.doubleclick.net/gampad/clk?id=254741551&iu=/4140
_______________________________________________ Cdk-user mailing list Cdk-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/cdk-user