Example #1
0
        public void TestProject()
        {
            var chirality = new LigancyFourChirality(molecule.Atoms[1], ligands, TetrahedralStereo.Clockwise);

            chirality.Project(ligands);
            Assert.AreEqual(TetrahedralStereo.Clockwise, chirality.Stereo);
        }
Example #2
0
        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);
        }
Example #3
0
        /// <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);
        }