Dear Evgueni,
On Mon, Jul 6, 2009 at 8:03 PM, Evgueni Kolossov<[email protected]> wrote: > > To display structure I need to put string MDLMol into the control. > > If I call compute2DCoords - it raised an exception but if do not - all > > atoms in one dot and you cannot see it at all The same is if I try to > > read call sanitizeMol. > > Looking like problem in Kekilizer because some of my fragments can > > contain atoms and bonds taken from the aromatic ring (and it must be so). > > Simple fragments like chain fragments displayed Ok because they are > > not causing exception in compute2Dcoords. RDKit::MolToMolBlock (or MolToMolFile) each take an optional kekulize argument (the last one). If you set this to false, the mol file writer will not attempt to kekulize aromatic bonds. Here's an example of doing this from python: ------------ [72]>>> m = Chem.MolFromSmiles('cccc',sanitize=False) [73]>>> AllChem.Compute2DCoords(m) Out[73] 0 [74]>>> print Chem.MolToMolBlock(m,kekulize=False) RDKit 2D 4 3 0 0 0 0 0 0 0 0999 V2000 0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.0000 -1.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.0000 -3.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.0000 -4.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1 2 4 0 2 3 4 0 3 4 4 0 M END ------------ A note: as this example shows the coordinates generated by the depictor for unsanitized molecules are likely to be less than pleasing. To have a chance at getting something reasonable for fragments, you probably ought to generate 2D coordinates for the full molecule, then manually set the positions of the atoms in the fragment's conformer. Best Regards, -greg

