public void TestAromaticSaturation() { var mol = builder.NewAtomContainer(); mol.Atoms.Add(builder.NewAtom("C")); // 0 mol.Atoms.Add(builder.NewAtom("C")); // 1 mol.Atoms.Add(builder.NewAtom("C")); // 2 mol.Atoms.Add(builder.NewAtom("C")); // 3 mol.Atoms.Add(builder.NewAtom("C")); // 4 mol.Atoms.Add(builder.NewAtom("C")); // 5 mol.Atoms.Add(builder.NewAtom("C")); // 6 mol.Atoms.Add(builder.NewAtom("C")); // 7 mol.AddBond(mol.Atoms[0], mol.Atoms[1], BondOrder.Single); // 1 mol.AddBond(mol.Atoms[1], mol.Atoms[2], BondOrder.Single); // 2 mol.AddBond(mol.Atoms[2], mol.Atoms[3], BondOrder.Single); // 3 mol.AddBond(mol.Atoms[3], mol.Atoms[4], BondOrder.Single); // 4 mol.AddBond(mol.Atoms[4], mol.Atoms[5], BondOrder.Single); // 5 mol.AddBond(mol.Atoms[5], mol.Atoms[0], BondOrder.Single); // 6 mol.AddBond(mol.Atoms[0], mol.Atoms[6], BondOrder.Single); // 7 mol.AddBond(mol.Atoms[6], mol.Atoms[7], BondOrder.Triple); // 8 for (int f = 0; f < 6; f++) { mol.Atoms[f].IsAromatic = true; mol.Atoms[f].Hybridization = Hybridization.SP2; mol.Bonds[f].IsAromatic = true; } FindAndConfigureAtomTypesForAllAtoms(mol); adder.AddImplicitHydrogens(mol); Assert.AreEqual(6, AtomContainerManipulator.GetTotalHydrogenCount(mol)); }
/// <summary> /// </summary> /// <param name="set">The collection of IAtomContainer objects</param> /// <returns>The summed implicit hydrogens of all atoms in this set.</returns> public static int GetTotalHydrogenCount(IEnumerable <IAtomContainer> set) { int hCount = 0; foreach (var item in set) { hCount += AtomContainerManipulator.GetTotalHydrogenCount(item); } return(hCount); }
public void TestNaCl() { var mol = builder.NewAtomContainer(); var cl = builder.NewAtom("Cl"); cl.FormalCharge = -1; mol.Atoms.Add(cl); var na = builder.NewAtom("Na"); na.FormalCharge = +1; mol.Atoms.Add(na); FindAndConfigureAtomTypesForAllAtoms(mol); adder.AddImplicitHydrogens(mol); Assert.AreEqual(2, mol.Atoms.Count); Assert.AreEqual(0, AtomContainerManipulator.GetTotalHydrogenCount(mol)); Assert.AreEqual(0, mol.GetConnectedBonds(cl).Count()); Assert.AreEqual(0, cl.ImplicitHydrogenCount.Value); Assert.AreEqual(0, mol.GetConnectedBonds(na).Count()); Assert.AreEqual(0, na.ImplicitHydrogenCount.Value); }
public void TestAdenine() { var mol = builder.NewAtomContainer(); // Adenine IAtom a1 = mol.Builder.NewAtom("C"); a1.Point2D = new Vector2(21.0223, -17.2946); mol.Atoms.Add(a1); IAtom a2 = mol.Builder.NewAtom("C"); a2.Point2D = new Vector2(21.0223, -18.8093); mol.Atoms.Add(a2); IAtom a3 = mol.Builder.NewAtom("C"); a3.Point2D = new Vector2(22.1861, -16.6103); mol.Atoms.Add(a3); IAtom a4 = mol.Builder.NewAtom("N"); a4.Point2D = new Vector2(19.8294, -16.8677); mol.Atoms.Add(a4); IAtom a5 = mol.Builder.NewAtom("N"); a5.Point2D = new Vector2(22.2212, -19.5285); mol.Atoms.Add(a5); IAtom a6 = mol.Builder.NewAtom("N"); a6.Point2D = new Vector2(19.8177, -19.2187); mol.Atoms.Add(a6); IAtom a7 = mol.Builder.NewAtom("N"); a7.Point2D = new Vector2(23.4669, -17.3531); mol.Atoms.Add(a7); IAtom a8 = mol.Builder.NewAtom("N"); a8.Point2D = new Vector2(22.1861, -15.2769); mol.Atoms.Add(a8); IAtom a9 = mol.Builder.NewAtom("C"); a9.Point2D = new Vector2(18.9871, -18.0139); mol.Atoms.Add(a9); IAtom a10 = mol.Builder.NewAtom("C"); a10.Point2D = new Vector2(23.4609, -18.8267); mol.Atoms.Add(a10); IBond b1 = mol.Builder.NewBond(a1, a2, BondOrder.Double); mol.Bonds.Add(b1); IBond b2 = mol.Builder.NewBond(a1, a3, BondOrder.Single); mol.Bonds.Add(b2); IBond b3 = mol.Builder.NewBond(a1, a4, BondOrder.Single); mol.Bonds.Add(b3); IBond b4 = mol.Builder.NewBond(a2, a5, BondOrder.Single); mol.Bonds.Add(b4); IBond b5 = mol.Builder.NewBond(a2, a6, BondOrder.Single); mol.Bonds.Add(b5); IBond b6 = mol.Builder.NewBond(a3, a7, BondOrder.Double); mol.Bonds.Add(b6); IBond b7 = mol.Builder.NewBond(a3, a8, BondOrder.Single); mol.Bonds.Add(b7); IBond b8 = mol.Builder.NewBond(a4, a9, BondOrder.Double); mol.Bonds.Add(b8); IBond b9 = mol.Builder.NewBond(a5, a10, BondOrder.Double); mol.Bonds.Add(b9); IBond b10 = mol.Builder.NewBond(a6, a9, BondOrder.Single); mol.Bonds.Add(b10); IBond b11 = mol.Builder.NewBond(a7, a10, BondOrder.Single); mol.Bonds.Add(b11); FindAndConfigureAtomTypesForAllAtoms(mol); adder.AddImplicitHydrogens(mol); Assert.AreEqual(5, AtomContainerManipulator.GetTotalHydrogenCount(mol)); }