public void TestProject() { var chirality = new LigancyFourChirality(molecule.Atoms[1], ligands, TetrahedralStereo.Clockwise); chirality.Project(ligands); Assert.AreEqual(TetrahedralStereo.Clockwise, chirality.Stereo); }
public void TestProjectTwoChanges() { var chirality = new LigancyFourChirality(molecule.Atoms[1], ligands, TetrahedralStereo.Clockwise); var newLigands = new ILigand[] { ligands[1], ligands[0], ligands[3], ligands[2] }; chirality = chirality.Project(newLigands); Assert.AreEqual(TetrahedralStereo.Clockwise, chirality.Stereo); }
/// <summary> /// Returns the R or S chirality according to the CIP rules, based on the given /// chirality information. /// </summary> /// <param name="stereoCenter">Chiral center for which the CIP chirality is to be /// determined as <see cref="LigancyFourChirality"/> object.</param> /// <returns>A <see cref="CIPChirality"/> value.</returns> public static CIPChirality GetCIPChirality(LigancyFourChirality stereoCenter) { var ligands = Order(stereoCenter.Ligands); var rsChirality = stereoCenter.Project(ligands); bool allAreDifferent = CheckIfAllLigandsAreDifferent(ligands); if (!allAreDifferent) { return(CIPChirality.None); } if (rsChirality.Stereo == TetrahedralStereo.Clockwise) { return(CIPChirality.R); } return(CIPChirality.S); }