Ejemplo n.º 1
0
        static void MakePicture(string smiles, string filename)
        {
            int width  = 200;
            int height = 200;

            RWMol mol = null;

            mol = RWMol.MolFromSmiles(smiles);
            if (mol == null)
            {
                mol = RWMol.MolFromSmarts(smiles);
            }
            if (mol == null)
            {
                throw new Exception($"Cannot recognize: '{smiles}'");
            }

            RDKFuncs.prepareMolForDrawing(mol);
            if (filename.EndsWith(".svg"))
            {
                var view = new MolDraw2DSVG(width, height);
                view.drawMolecule(mol);
                view.finishDrawing();
                using (var w = new StreamWriter(filename))
                {
                    w.Write(view.getDrawingText());
                    Console.WriteLine($"{filename} is drawn.");
                }
            }
            else if (filename.EndsWith(".png"))
            {
                var view = new MolDraw2DCairo(width, height);
                view.drawMolecule(mol, Path.GetFileNameWithoutExtension(filename));
                view.finishDrawing();
                view.writeDrawingText(filename);
            }
            else
            {
                throw new Exception($"Not supported: {filename}");
            }
        }
Ejemplo n.º 2
0
 public static RWMol MolFromSmarts(string smiles, bool mergeHs = false)
 {
     return(RWMol.MolFromSmarts(smiles, 0, mergeHs));
 }