public void TestTermination() { int ringSize = 7; var ring = builder.NewAtomContainer(); for (int i = 0; i < ringSize; i++) { ring.Atoms.Add(builder.NewAtom("C")); } for (int j = 0; j < ringSize - 1; j++) { ring.AddBond(ring.Atoms[j], ring.Atoms[j + 1], BondOrder.Single); } ring.AddBond(ring.Atoms[ringSize - 1], ring.Atoms[0], BondOrder.Single); ring.Atoms.Add(builder.NewAtom("Cl")); ring.Atoms.Add(builder.NewAtom("F")); ring.AddBond(ring.Atoms[0], ring.Atoms[ringSize], BondOrder.Single); ring.AddBond(ring.Atoms[0], ring.Atoms[ringSize + 1], BondOrder.Single); ring.Atoms.Add(builder.NewAtom("O")); ring.AddBond(ring.Atoms[1], ring.Atoms[ringSize + 2], BondOrder.Single); var atoms = new IAtom[] { ring.Atoms[ringSize], ring.Atoms[ringSize + 1], ring.Atoms[ringSize - 1], ring.Atoms[1] }; var stereoCenter = new TetrahedralChirality(ring.Atoms[0], atoms, TetrahedralStereo.AntiClockwise); ring.StereoElements.Add(stereoCenter); SmilesGenerator generator = new SmilesGenerator(); CIPTool.GetCIPChirality(ring, stereoCenter); }
public void Main() { IAtomContainer mol = new AtomContainer(); IAtom centralAtom = new Atom(); #region IAtom[] ligandAtoms = mol.GetConnectedAtoms(centralAtom).ToArray(); ITetrahedralChirality tetraStereo = new TetrahedralChirality(centralAtom, ligandAtoms, TetrahedralStereo.AntiClockwise); CIPChirality cipChirality = CIPTool.GetCIPChirality(mol, tetraStereo); #endregion }
public void TestGetCIPChiralityILigancyFourChirality() { var ligandAtoms = new List <IAtom>(); foreach (var ligand in ligands) { ligandAtoms.Add(ligand.LigandAtom); } var chirality = new TetrahedralChirality(molecule.Atoms[1], ligandAtoms, TetrahedralStereo.Clockwise); var rsChirality = CIPTool.GetCIPChirality(molecule, chirality); Assert.AreEqual(CIPTool.CIPChirality.S, rsChirality); }
public void TestTetrahedralStereo() { // L-Alanine var acL = builder.NewAtomContainer(); var ligandAtoms = new IAtom[4]; var a1 = builder.NewAtom("C"); var a1H = builder.NewAtom("H"); ligandAtoms[0] = a1H; var a2 = builder.NewAtom("C"); ligandAtoms[1] = a2; var a3 = builder.NewAtom("N"); ligandAtoms[2] = a3; var a4 = builder.NewAtom("C"); ligandAtoms[3] = a4; var a5 = builder.NewAtom("O"); var a6 = builder.NewAtom("O"); a1.ImplicitHydrogenCount = 0; a3.ImplicitHydrogenCount = 2; a4.ImplicitHydrogenCount = 3; a5.ImplicitHydrogenCount = 1; acL.Atoms.Add(a1); acL.Atoms.Add(a1H); acL.Atoms.Add(a2); acL.Atoms.Add(a3); acL.Atoms.Add(a4); acL.Atoms.Add(a5); acL.Atoms.Add(a6); acL.Bonds.Add(builder.NewBond(a1, a1H, BondOrder.Single)); acL.Bonds.Add(builder.NewBond(a1, a2, BondOrder.Single)); acL.Bonds.Add(builder.NewBond(a1, a3, BondOrder.Single)); acL.Bonds.Add(builder.NewBond(a1, a4, BondOrder.Single)); acL.Bonds.Add(builder.NewBond(a2, a5, BondOrder.Single)); acL.Bonds.Add(builder.NewBond(a2, a6, BondOrder.Double)); var chirality = new TetrahedralChirality(a1, ligandAtoms, TetrahedralStereo.AntiClockwise); acL.StereoElements.Add(chirality); var genL = factory.GetInChIGenerator(acL); Assert.AreEqual(InChIReturnCode.Ok, genL.ReturnStatus); Assert.AreEqual("InChI=1S/C3H7NO2/c1-2(4)3(5)6/h2H,4H2,1H3,(H,5,6)/t2-/m0/s1", genL.InChI); }
public void TestConstructorILigancyFourChirality() { var ligandAtoms = new List <IAtom>(); foreach (var ligand in ligands) { ligandAtoms.Add(ligand.LigandAtom); } var cdkChiral = new TetrahedralChirality(molecule.Atoms[1], ligandAtoms, TetrahedralStereo.Clockwise); var chirality = new LigancyFourChirality(molecule, cdkChiral); Assert.IsNotNull(chirality); Assert.AreEqual(molecule.Atoms[1], chirality.ChiralAtom); for (int i = 0; i < ligands.Length; i++) { Assert.AreEqual(ligands[i].LigandAtom, chirality.Ligands[i].LigandAtom); Assert.AreEqual(ligands[i].CentralAtom, chirality.Ligands[i].CentralAtom); Assert.AreEqual(ligands[i].AtomContainer, chirality.Ligands[i].AtomContainer); } Assert.AreEqual(TetrahedralStereo.Clockwise, chirality.Stereo); }
public void TestOla28() { var filename = "NCDK.Data.CML.mol28.cml"; IChemFile file; IAtomContainer mol; using (var reader = new CMLReader(ResourceLoader.GetAsStream(filename))) { file = reader.Read(builder.NewChemFile()); mol = ChemFileManipulator.GetAllAtomContainers(file).First(); } foreach (var atom in mol.Atoms) { var neighbors = mol.GetConnectedAtoms(atom).ToReadOnlyList(); if (neighbors.Count == 4) { var stereo = StereoTool.GetStereo(neighbors[0], neighbors[1], neighbors[2], neighbors[3]); ITetrahedralChirality stereoCenter = new TetrahedralChirality(mol.Atoms[0], neighbors, stereo); CIPTool.CIPChirality chirality = CIPTool.GetCIPChirality(mol, stereoCenter); } } }
public void TestSteroid() { var mol = builder.NewAtomContainer(); var a1 = builder.NewAtom("F"); a1.FormalCharge = 0; a1.Point3D = new Vector3(7.0124, 2.5853, -0.9016); mol.Atoms.Add(a1); var a2 = builder.NewAtom("O"); a2.FormalCharge = 0; a2.Point3D = new Vector3(-0.5682, -0.2861, 2.1733); mol.Atoms.Add(a2); var a3 = builder.NewAtom("O"); a3.FormalCharge = 0; a3.Point3D = new Vector3(2.2826, -2.9598, -0.5754); mol.Atoms.Add(a3); var a4 = builder.NewAtom("O"); a4.FormalCharge = 0; a4.Point3D = new Vector3(-6.6808, -1.9515, 0.4596); mol.Atoms.Add(a4); var a5 = builder.NewAtom("O"); a5.FormalCharge = 0; a5.Point3D = new Vector3(4.2201, -1.7701, -1.7827); mol.Atoms.Add(a5); var a6 = builder.NewAtom("O"); a6.FormalCharge = 0; a6.Point3D = new Vector3(-7.0886, 0.761, 0.0885); mol.Atoms.Add(a6); var a7 = builder.NewAtom("O"); a7.FormalCharge = 0; a7.Point3D = new Vector3(-3.3025, 3.5973, -0.657); mol.Atoms.Add(a7); var a8 = builder.NewAtom("C"); a8.FormalCharge = 0; a8.Point3D = new Vector3(0.4862, -0.9146, 0.0574); mol.Atoms.Add(a8); var a9 = builder.NewAtom("C"); a9.FormalCharge = 0; a9.Point3D = new Vector3(-0.1943, 0.2177, 0.8706); mol.Atoms.Add(a9); var a10 = builder.NewAtom("C"); a10.FormalCharge = 0; a10.Point3D = new Vector3(1.7596, -1.1559, 0.9089); mol.Atoms.Add(a10); var a11 = builder.NewAtom("C"); a11.FormalCharge = 0; a11.Point3D = new Vector3(-2.4826, -0.4593, -0.073); mol.Atoms.Add(a11); var a12 = builder.NewAtom("C"); a12.FormalCharge = 0; a12.Point3D = new Vector3(-3.7166, 0.0102, -0.941); mol.Atoms.Add(a12); var a13 = builder.NewAtom("C"); a13.FormalCharge = 0; a13.Point3D = new Vector3(-0.4659, -2.1213, 0.0044); mol.Atoms.Add(a13); var a14 = builder.NewAtom("C"); a14.FormalCharge = 0; a14.Point3D = new Vector3(-1.485, 0.6715, 0.2231); mol.Atoms.Add(a14); var a15 = builder.NewAtom("C"); a15.FormalCharge = 0; a15.Point3D = new Vector3(0.9729, 1.1842, 1.122); mol.Atoms.Add(a15); var a16 = builder.NewAtom("C"); a16.FormalCharge = 0; a16.Point3D = new Vector3(2.1976, 0.2666, 1.3272); mol.Atoms.Add(a16); var a17 = builder.NewAtom("C"); a17.FormalCharge = 0; a17.Point3D = new Vector3(-1.8034, -1.7401, -0.6501); mol.Atoms.Add(a17); var a18 = builder.NewAtom("C"); a18.FormalCharge = 0; a18.Point3D = new Vector3(-4.2265, 1.3894, -0.4395); mol.Atoms.Add(a18); var a19 = builder.NewAtom("C"); a19.FormalCharge = 0; a19.Point3D = new Vector3(2.8802, -1.9484, 0.2485); mol.Atoms.Add(a19); var a20 = builder.NewAtom("C"); a20.FormalCharge = 0; a20.Point3D = new Vector3(0.862, -0.4809, -1.3862); mol.Atoms.Add(a20); var a21 = builder.NewAtom("C"); a21.FormalCharge = 0; a21.Point3D = new Vector3(-4.8907, -1.0078, -0.8633); mol.Atoms.Add(a21); var a22 = builder.NewAtom("C"); a22.FormalCharge = 0; a22.Point3D = new Vector3(-1.7576, 1.9697, 0.0241); mol.Atoms.Add(a22); var a23 = builder.NewAtom("C"); a23.FormalCharge = 0; a23.Point3D = new Vector3(-4.9064, 1.3293, 0.9405); mol.Atoms.Add(a23); var a24 = builder.NewAtom("C"); a24.FormalCharge = 0; a24.Point3D = new Vector3(-3.339, 0.1527, -2.4408); mol.Atoms.Add(a24); var a25 = builder.NewAtom("C"); a25.FormalCharge = 0; a25.Point3D = new Vector3(-3.1038, 2.4096, -0.4054); mol.Atoms.Add(a25); var a26 = builder.NewAtom("C"); a26.FormalCharge = 0; a26.Point3D = new Vector3(-5.5668, -1.0627, 0.5104); mol.Atoms.Add(a26); var a27 = builder.NewAtom("C"); a27.FormalCharge = 0; a27.Point3D = new Vector3(3.7564, -1.0338, -0.652); mol.Atoms.Add(a27); var a28 = builder.NewAtom("C"); a28.FormalCharge = 0; a28.Point3D = new Vector3(-6.0498, 0.3154, 0.9627); mol.Atoms.Add(a28); var a29 = builder.NewAtom("C"); a29.FormalCharge = 0; a29.Point3D = new Vector3(3.6914, -2.6828, 1.3258); mol.Atoms.Add(a29); var a30 = builder.NewAtom("C"); a30.FormalCharge = 0; a30.Point3D = new Vector3(4.9535, -0.3812, 0.0661); mol.Atoms.Add(a30); var a31 = builder.NewAtom("C"); a31.FormalCharge = 0; a31.Point3D = new Vector3(5.4727, 0.8461, -0.696); mol.Atoms.Add(a31); var a32 = builder.NewAtom("C"); a32.FormalCharge = 0; a32.Point3D = new Vector3(6.7079, 1.5265, -0.0844); mol.Atoms.Add(a32); var a33 = builder.NewAtom("C"); a33.FormalCharge = 0; a33.Point3D = new Vector3(6.4387, 2.104, 1.3013); mol.Atoms.Add(a33); var a34 = builder.NewAtom("C"); a34.FormalCharge = 0; a34.Point3D = new Vector3(7.9342, 0.6197, -0.0661); mol.Atoms.Add(a34); var a35 = builder.NewAtom("H"); a35.FormalCharge = 0; a35.Point3D = new Vector3(1.4474, -1.6941, 1.8161); mol.Atoms.Add(a35); var a36 = builder.NewAtom("H"); a36.FormalCharge = 0; a36.Point3D = new Vector3(-2.8575, -0.7521, 0.9166); mol.Atoms.Add(a36); var a37 = builder.NewAtom("H"); a37.FormalCharge = 0; a37.Point3D = new Vector3(-0.0529, -2.952, -0.5733); mol.Atoms.Add(a37); var a38 = builder.NewAtom("H"); a38.FormalCharge = 0; a38.Point3D = new Vector3(-0.6583, -2.5149, 1.01); mol.Atoms.Add(a38); var a39 = builder.NewAtom("H"); a39.FormalCharge = 0; a39.Point3D = new Vector3(1.1462, 1.8516, 0.2703); mol.Atoms.Add(a39); var a40 = builder.NewAtom("H"); a40.FormalCharge = 0; a40.Point3D = new Vector3(0.8186, 1.8095, 2.0087); mol.Atoms.Add(a40); var a41 = builder.NewAtom("H"); a41.FormalCharge = 0; a41.Point3D = new Vector3(2.5044, 0.2648, 2.3797); mol.Atoms.Add(a41); var a42 = builder.NewAtom("H"); a42.FormalCharge = 0; a42.Point3D = new Vector3(2.9822, 0.7582, 0.7671); mol.Atoms.Add(a42); var a43 = builder.NewAtom("H"); a43.FormalCharge = 0; a43.Point3D = new Vector3(-2.4854, -2.5906, -0.5319); mol.Atoms.Add(a43); var a44 = builder.NewAtom("H"); a44.FormalCharge = 0; a44.Point3D = new Vector3(-1.6353, -1.6475, -1.7261); mol.Atoms.Add(a44); var a45 = builder.NewAtom("H"); a45.FormalCharge = 0; a45.Point3D = new Vector3(-4.9616, 1.7691, -1.1638); mol.Atoms.Add(a45); var a46 = builder.NewAtom("H"); a46.FormalCharge = 0; a46.Point3D = new Vector3(-0.0354, -0.2446, -1.9684); mol.Atoms.Add(a46); var a47 = builder.NewAtom("H"); a47.FormalCharge = 0; a47.Point3D = new Vector3(1.3691, -1.2574, -1.9625); mol.Atoms.Add(a47); var a48 = builder.NewAtom("H"); a48.FormalCharge = 0; a48.Point3D = new Vector3(1.4296, 0.4511, -1.4252); mol.Atoms.Add(a48); var a49 = builder.NewAtom("H"); a49.FormalCharge = 0; a49.Point3D = new Vector3(-4.5596, -2.0138, -1.147); mol.Atoms.Add(a49); var a50 = builder.NewAtom("H"); a50.FormalCharge = 0; a50.Point3D = new Vector3(-5.6512, -0.7511, -1.6149); mol.Atoms.Add(a50); var a51 = builder.NewAtom("H"); a51.FormalCharge = 0; a51.Point3D = new Vector3(-1.0464, 2.7559, 0.2488); mol.Atoms.Add(a51); var a52 = builder.NewAtom("H"); a52.FormalCharge = 0; a52.Point3D = new Vector3(-4.1786, 1.0807, 1.7222); mol.Atoms.Add(a52); var a53 = builder.NewAtom("H"); a53.FormalCharge = 0; a53.Point3D = new Vector3(-5.2947, 2.3265, 1.1848); mol.Atoms.Add(a53); var a54 = builder.NewAtom("H"); a54.FormalCharge = 0; a54.Point3D = new Vector3(-2.421, 0.7311, -2.5838); mol.Atoms.Add(a54); var a55 = builder.NewAtom("H"); a55.FormalCharge = 0; a55.Point3D = new Vector3(-3.2008, -0.8224, -2.9194); mol.Atoms.Add(a55); var a56 = builder.NewAtom("H"); a56.FormalCharge = 0; a56.Point3D = new Vector3(-4.1353, 0.658, -3.0004); mol.Atoms.Add(a56); var a57 = builder.NewAtom("H"); a57.FormalCharge = 0; a57.Point3D = new Vector3(-4.8758, -1.4669, 1.2574); mol.Atoms.Add(a57); var a58 = builder.NewAtom("H"); a58.FormalCharge = 0; a58.Point3D = new Vector3(-0.9312, 0.4562, 2.6867); mol.Atoms.Add(a58); var a59 = builder.NewAtom("H"); a59.FormalCharge = 0; a59.Point3D = new Vector3(3.1882, -0.2287, -1.0977); mol.Atoms.Add(a59); var a60 = builder.NewAtom("H"); a60.FormalCharge = 0; a60.Point3D = new Vector3(-6.4869, 0.2469, 1.965); mol.Atoms.Add(a60); var a61 = builder.NewAtom("H"); a61.FormalCharge = 0; a61.Point3D = new Vector3(4.102, -2.0082, 2.0826); mol.Atoms.Add(a61); var a62 = builder.NewAtom("H"); a62.FormalCharge = 0; a62.Point3D = new Vector3(4.5162, -3.2434, 0.8708); mol.Atoms.Add(a62); var a63 = builder.NewAtom("H"); a63.FormalCharge = 0; a63.Point3D = new Vector3(3.0747, -3.4251, 1.8469); mol.Atoms.Add(a63); var a64 = builder.NewAtom("H"); a64.FormalCharge = 0; a64.Point3D = new Vector3(1.8961, -3.6368, 0.0058); mol.Atoms.Add(a64); var a65 = builder.NewAtom("H"); a65.FormalCharge = 0; a65.Point3D = new Vector3(5.7631, -1.1204, 0.1084); mol.Atoms.Add(a65); var a66 = builder.NewAtom("H"); a66.FormalCharge = 0; a66.Point3D = new Vector3(4.743, -0.1036, 1.1001); mol.Atoms.Add(a66); var a67 = builder.NewAtom("H"); a67.FormalCharge = 0; a67.Point3D = new Vector3(-6.3482, -2.8223, 0.1828); mol.Atoms.Add(a67); var a68 = builder.NewAtom("H"); a68.FormalCharge = 0; a68.Point3D = new Vector3(4.6594, -1.153, -2.3908); mol.Atoms.Add(a68); var a69 = builder.NewAtom("H"); a69.FormalCharge = 0; a69.Point3D = new Vector3(-7.3836, 1.6319, 0.4047); mol.Atoms.Add(a69); var a70 = builder.NewAtom("H"); a70.FormalCharge = 0; a70.Point3D = new Vector3(5.716, 0.5715, -1.7297); mol.Atoms.Add(a70); var a71 = builder.NewAtom("H"); a71.FormalCharge = 0; a71.Point3D = new Vector3(4.6721, 1.5926, -0.7787); mol.Atoms.Add(a71); var b1 = builder.NewBond(a1, a32, BondOrder.Single); mol.Bonds.Add(b1); var b2 = builder.NewBond(a2, a9, BondOrder.Single); mol.Bonds.Add(b2); var b3 = builder.NewBond(a2, a58, BondOrder.Single); mol.Bonds.Add(b3); var b4 = builder.NewBond(a3, a19, BondOrder.Single); mol.Bonds.Add(b4); var b5 = builder.NewBond(a3, a64, BondOrder.Single); mol.Bonds.Add(b5); var b6 = builder.NewBond(a4, a26, BondOrder.Single); mol.Bonds.Add(b6); var b7 = builder.NewBond(a4, a67, BondOrder.Single); mol.Bonds.Add(b7); var b8 = builder.NewBond(a5, a27, BondOrder.Single); mol.Bonds.Add(b8); var b9 = builder.NewBond(a5, a68, BondOrder.Single); mol.Bonds.Add(b9); var b10 = builder.NewBond(a6, a28, BondOrder.Single); mol.Bonds.Add(b10); var b11 = builder.NewBond(a6, a69, BondOrder.Single); mol.Bonds.Add(b11); var b12 = builder.NewBond(a7, a25, BondOrder.Double); mol.Bonds.Add(b12); var b13 = builder.NewBond(a8, a9, BondOrder.Single); mol.Bonds.Add(b13); var b14 = builder.NewBond(a8, a10, BondOrder.Single); mol.Bonds.Add(b14); var b15 = builder.NewBond(a8, a13, BondOrder.Single); mol.Bonds.Add(b15); var b16 = builder.NewBond(a8, a20, BondOrder.Single); mol.Bonds.Add(b16); var b17 = builder.NewBond(a9, a14, BondOrder.Single); mol.Bonds.Add(b17); var b18 = builder.NewBond(a9, a15, BondOrder.Single); mol.Bonds.Add(b18); var b19 = builder.NewBond(a10, a16, BondOrder.Single); mol.Bonds.Add(b19); var b20 = builder.NewBond(a10, a19, BondOrder.Single); mol.Bonds.Add(b20); var b21 = builder.NewBond(a10, a35, BondOrder.Single); mol.Bonds.Add(b21); var b22 = builder.NewBond(a11, a12, BondOrder.Single); mol.Bonds.Add(b22); var b23 = builder.NewBond(a11, a14, BondOrder.Single); mol.Bonds.Add(b23); var b24 = builder.NewBond(a11, a17, BondOrder.Single); mol.Bonds.Add(b24); var b25 = builder.NewBond(a11, a36, BondOrder.Single); mol.Bonds.Add(b25); var b26 = builder.NewBond(a12, a18, BondOrder.Single); mol.Bonds.Add(b26); var b27 = builder.NewBond(a12, a21, BondOrder.Single); mol.Bonds.Add(b27); var b28 = builder.NewBond(a12, a24, BondOrder.Single); mol.Bonds.Add(b28); var b29 = builder.NewBond(a13, a17, BondOrder.Single); mol.Bonds.Add(b29); var b30 = builder.NewBond(a13, a37, BondOrder.Single); mol.Bonds.Add(b30); var b31 = builder.NewBond(a13, a38, BondOrder.Single); mol.Bonds.Add(b31); var b32 = builder.NewBond(a14, a22, BondOrder.Double); mol.Bonds.Add(b32); var b33 = builder.NewBond(a15, a16, BondOrder.Single); mol.Bonds.Add(b33); var b34 = builder.NewBond(a15, a39, BondOrder.Single); mol.Bonds.Add(b34); var b35 = builder.NewBond(a15, a40, BondOrder.Single); mol.Bonds.Add(b35); var b36 = builder.NewBond(a16, a41, BondOrder.Single); mol.Bonds.Add(b36); var b37 = builder.NewBond(a16, a42, BondOrder.Single); mol.Bonds.Add(b37); var b38 = builder.NewBond(a17, a43, BondOrder.Single); mol.Bonds.Add(b38); var b39 = builder.NewBond(a17, a44, BondOrder.Single); mol.Bonds.Add(b39); var b40 = builder.NewBond(a18, a23, BondOrder.Single); mol.Bonds.Add(b40); var b41 = builder.NewBond(a18, a25, BondOrder.Single); mol.Bonds.Add(b41); var b42 = builder.NewBond(a18, a45, BondOrder.Single); mol.Bonds.Add(b42); var b43 = builder.NewBond(a19, a27, BondOrder.Single); mol.Bonds.Add(b43); var b44 = builder.NewBond(a19, a29, BondOrder.Single); mol.Bonds.Add(b44); var b45 = builder.NewBond(a20, a46, BondOrder.Single); mol.Bonds.Add(b45); var b46 = builder.NewBond(a20, a47, BondOrder.Single); mol.Bonds.Add(b46); var b47 = builder.NewBond(a20, a48, BondOrder.Single); mol.Bonds.Add(b47); var b48 = builder.NewBond(a21, a26, BondOrder.Single); mol.Bonds.Add(b48); var b49 = builder.NewBond(a21, a49, BondOrder.Single); mol.Bonds.Add(b49); var b50 = builder.NewBond(a21, a50, BondOrder.Single); mol.Bonds.Add(b50); var b51 = builder.NewBond(a22, a25, BondOrder.Single); mol.Bonds.Add(b51); var b52 = builder.NewBond(a22, a51, BondOrder.Single); mol.Bonds.Add(b52); var b53 = builder.NewBond(a23, a28, BondOrder.Single); mol.Bonds.Add(b53); var b54 = builder.NewBond(a23, a52, BondOrder.Single); mol.Bonds.Add(b54); var b55 = builder.NewBond(a23, a53, BondOrder.Single); mol.Bonds.Add(b55); var b56 = builder.NewBond(a24, a54, BondOrder.Single); mol.Bonds.Add(b56); var b57 = builder.NewBond(a24, a55, BondOrder.Single); mol.Bonds.Add(b57); var b58 = builder.NewBond(a24, a56, BondOrder.Single); mol.Bonds.Add(b58); var b59 = builder.NewBond(a26, a28, BondOrder.Single); mol.Bonds.Add(b59); var b60 = builder.NewBond(a26, a57, BondOrder.Single); mol.Bonds.Add(b60); var b61 = builder.NewBond(a27, a30, BondOrder.Single); mol.Bonds.Add(b61); var b62 = builder.NewBond(a27, a59, BondOrder.Single); mol.Bonds.Add(b62); var b63 = builder.NewBond(a28, a60, BondOrder.Single); mol.Bonds.Add(b63); var b64 = builder.NewBond(a29, a61, BondOrder.Single); mol.Bonds.Add(b64); var b65 = builder.NewBond(a29, a62, BondOrder.Single); mol.Bonds.Add(b65); var b66 = builder.NewBond(a29, a63, BondOrder.Single); mol.Bonds.Add(b66); var b67 = builder.NewBond(a30, a31, BondOrder.Single); mol.Bonds.Add(b67); var b68 = builder.NewBond(a30, a65, BondOrder.Single); mol.Bonds.Add(b68); var b69 = builder.NewBond(a30, a66, BondOrder.Single); mol.Bonds.Add(b69); var b70 = builder.NewBond(a31, a32, BondOrder.Single); mol.Bonds.Add(b70); var b71 = builder.NewBond(a31, a70, BondOrder.Single); mol.Bonds.Add(b71); var b72 = builder.NewBond(a31, a71, BondOrder.Single); mol.Bonds.Add(b72); var b73 = builder.NewBond(a32, a33, BondOrder.Single); mol.Bonds.Add(b73); var b74 = builder.NewBond(a32, a34, BondOrder.Single); mol.Bonds.Add(b74); var ligandAtoms = new IAtom[4]; ligandAtoms[0] = a1; // F ligandAtoms[1] = a33; // Me ligandAtoms[2] = a34; // Me ligandAtoms[3] = a31; // rest of molecule var stereo = StereoTool.GetStereo(ligandAtoms[0], ligandAtoms[1], ligandAtoms[2], ligandAtoms[3]); var tetraStereo = new TetrahedralChirality(a32, ligandAtoms, stereo); Assert.AreEqual(CIPTool.CIPChirality.None, CIPTool.GetCIPChirality(mol, tetraStereo)); }