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))); }
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, "")); } }
public static IReaction ReactionFromSmiles(string smiles, bool sanitize = true) { var parser = new SmilesParser(CDK.Builder, kekulise: sanitize); return(parser.ParseReactionSmiles(smiles)); }