[TestMethod(), Ignore()] // This is an example structure where this class fails public void TestLargeBioclipseUseCase() { var smiles = "COc1ccc2[C@@H]3[C@H](COc2c1)C(C)(C)OC4=C3C(=O)C(=O)C5=C4OC(C)(C)[C@@H]6COc7cc(OC)ccc7[C@H]56"; var smilesParser = CDK.SmilesParser; var molecule = smilesParser.ParseSmiles(smiles); DeduceBondSystemTool dbst = new DeduceBondSystemTool(new AllRingsFinder()); molecule = dbst.FixAromaticBondOrders(molecule); Assert.IsNotNull(molecule); molecule = (IAtomContainer)AtomContainerManipulator.RemoveHydrogens(molecule); Assert.AreEqual(40, molecule.Atoms.Count); // we should have 14 double bonds int doubleBondCount = 0; for (int i = 0; i < molecule.Bonds.Count; i++) { IBond bond = molecule.Bonds[i]; if (bond.Order == BondOrder.Double) { doubleBondCount++; } } Assert.AreEqual(10, doubleBondCount); }
public void TestPyrrole_CustomRingFinder() { var smiles = "c2ccc3n([H])c1ccccc1c3(c2)"; var smilesParser = new SmilesParser(builder, false); var molecule = smilesParser.ParseSmiles(smiles); AtomContainerManipulator.SetSingleOrDoubleFlags(molecule); AtomContainerManipulator.PercieveAtomTypesAndConfigureAtoms(molecule); DeduceBondSystemTool dbst = new DeduceBondSystemTool(new AllRingsFinder()); molecule = dbst.FixAromaticBondOrders(molecule); Assert.IsNotNull(molecule); molecule = (IAtomContainer)AtomContainerManipulator.RemoveHydrogens(molecule); int doubleBondCount = 0; for (int i = 0; i < molecule.Bonds.Count; i++) { IBond bond = molecule.Bonds[i]; Assert.IsTrue(bond.IsAromatic); if (bond.Order == BondOrder.Double) { doubleBondCount++; } } Assert.AreEqual(6, doubleBondCount); }
public void TestLargeRingSystem() { var smiles = "O=C1Oc6ccccc6(C(O)C1C5c2ccccc2CC(c3ccc(cc3)c4ccccc4)C5)"; var smilesParser = CDK.SmilesParser; var molecule = smilesParser.ParseSmiles(smiles); DeduceBondSystemTool dbst = new DeduceBondSystemTool(new AllRingsFinder()); molecule = dbst.FixAromaticBondOrders(molecule); Assert.IsNotNull(molecule); molecule = (IAtomContainer)AtomContainerManipulator.RemoveHydrogens(molecule); Assert.AreEqual(34, molecule.Atoms.Count); // we should have 14 double bonds int doubleBondCount = 0; for (int i = 0; i < molecule.Bonds.Count; i++) { IBond bond = molecule.Bonds[i]; if (bond.Order == BondOrder.Double) { doubleBondCount++; } } Assert.AreEqual(13, doubleBondCount); }