コード例 #1
0
        public void InliningReactionsWithRadicals()
        {
            IChemObjectBuilder bldr     = ChemObjectBuilder.Instance;
            SmilesParser       smipar   = new SmilesParser(bldr);
            IReaction          reaction = smipar.ParseReactionSmiles("[CH2]CO.CC(=O)O>[H+]>CCOC(=O)C.O |^1:0| ethyl esterification");
            SmilesGenerator    smigen   = new SmilesGenerator(SmiFlavors.CxSmiles);
            // convert to molecule
            IAtomContainer mol = ReactionManipulator.ToMolecule(reaction);

            Assert.AreEqual("[CH2]CO.CC(=O)O.[H+].CCOC(=O)C.O |^1:0|", smigen.Create(mol));
            Assert.AreEqual("[CH2]CO.CC(=O)O>[H+]>CCOC(=O)C.O |^1:0|", smigen.CreateReactionSMILES(ReactionManipulator.ToReaction(mol)));
        }
コード例 #2
0
        public void Generate(string text, string filename)
        {
            Depiction depict = null;

            if (IsReactionSmilees(text))
            {
                var rxn = parser.ParseReactionSmiles(text);
                ReactionManipulator.PerceiveDativeBonds(rxn);
                ReactionManipulator.PerceiveRadicals(rxn);
                depict = PictureGenerator.Depict(rxn);
            }
            else
            {
                var mol = NCDKExcel.Utility.Parse(text);
                AtomContainerManipulator.PerceiveDativeBonds(mol);
                AtomContainerManipulator.PerceiveRadicals(mol);
                depict = PictureGenerator.Depict(mol);
            }
            depict.WriteTo(filename);

            if (!filename.EndsWith(".svg"))
            {
                return;
            }

            string svg;

            using (var r = new StreamReader(filename))
            {
                svg = r.ReadToEnd();
            }
            using (var r = new StreamWriter(filename))
            {
                r.Write(_rect_transparent.Replace(svg, ""));
            }
        }
コード例 #3
0
        public static IReaction ReactionFromSmiles(string smiles, bool sanitize = true)
        {
            var parser = new SmilesParser(CDK.Builder, kekulise: sanitize);

            return(parser.ParseReactionSmiles(smiles));
        }