Exemplo n.º 1
0
        public void TestExtraEigenvalues()
        {
            var       filename = "NCDK.Data.HIN.gravindex.hin";
            IChemFile content;

            using (var reader = new HINReader(ResourceLoader.GetAsStream(filename)))
            {
                content = reader.Read(CDK.Builder.NewChemFile());
            }
            var cList = ChemFileManipulator.GetAllAtomContainers(content).ToReadOnlyList();
            var ac    = cList[0];

            var descriptor      = CreateDescriptor(true);
            var descriptorValue = descriptor.Calculate(ac, 0, 25);

            var retval = descriptorValue.Values;
            int nheavy = 20;

            Assert.AreEqual(75, retval.Count);
            foreach (var v in retval)
            {
                Assert.IsTrue(v != double.NaN);
            }
            for (int i = nheavy; i < nheavy + 5; i++)
            {
                Assert.IsTrue(double.IsNaN(retval[i]), "Extra eigenvalue should have been NaN");
            }
        }
Exemplo n.º 2
0
        public void TestAlign()
        {
            {
                IAtomContainer          ac;
                var                     filename = "NCDK.Data.HIN.gravindex.hin";
                var                     ins      = ResourceLoader.GetAsStream(filename);
                ISimpleChemObjectReader reader   = new HINReader(ins);
                ChemFile                content  = (ChemFile)reader.Read((ChemObject) new ChemFile());
                var                     cList    = ChemFileManipulator.GetAllAtomContainers(content);
                ac = cList.First();

                KabschAlignment ka = new KabschAlignment(ac, ac);
                Assert.IsNotNull(ka);
                ka.Align();
                double rmsd = ka.RMSD;
                Assert.IsTrue(1e-8 > rmsd);
                Assert.IsNotNull(ka.RotationMatrix);
            }

            {
                double[][] p1 = new[] { new[] { 16.754, 20.462, 45.049 }, new[] { 19.609, 18.145, 46.011 }, new[] { 17.101, 17.256, 48.707 },
                                        new[] { 13.963, 18.314, 46.820 }, new[] { 14.151, 15.343, 44.482 }, new[] { 14.959, 12.459, 46.880 }, new[] { 11.987, 13.842, 48.862 },
                                        new[] { 9.586, 12.770, 46.123 }, new[] { 11.006, 9.245, 46.116 }, new[] { 10.755, 9.090, 49.885 } };
                double[][] p2 = new[] { new[] { 70.246, 317.510, 188.263 }, new[] { 73.457, 317.369, 190.340 }, new[] { 71.257, 318.976, 193.018 },
                                        new[] { 68.053, 317.543, 191.651 }, new[] { 68.786, 313.954, 192.637 }, new[] { 70.248, 314.486, 196.151 },
                                        new[] { 67.115, 316.584, 196.561 }, new[] { 64.806, 313.610, 196.423 }, new[] { 66.804, 311.735, 199.035 },
                                        new[] { 66.863, 314.832, 201.113 } };
                Atom[] a1 = new Atom[10];
                Atom[] a2 = new Atom[10];
                for (int i = 0; i < 10; i++)
                {
                    a1[i] = new Atom("C");
                    Vector3 newCoord = new Vector3
                    {
                        X = p1[i][0],
                        Y = p1[i][1],
                        Z = p1[i][2]
                    };
                    a1[i].Point3D = newCoord;
                    a2[i]         = new Atom("C");
                    newCoord      = new Vector3
                    {
                        X = p2[i][0],
                        Y = p2[i][1],
                        Z = p2[i][2]
                    };
                    a2[i].Point3D = newCoord;
                }
                var ka = new KabschAlignment(a1, a2);
                ka.Align();
                var rmsd = ka.RMSD;
                Assert.AreEqual(0.13479726, rmsd, 0.00000001);
            }
        }
Exemplo n.º 3
0
        public void TestIsConnectedFromHINFile()
        {
            var filename = "NCDK.Data.HIN.connectivity1.hin";
            var ins      = ResourceLoader.GetAsStream(filename);
            ISimpleChemObjectReader reader = new HINReader(ins);
            ChemFile       content         = (ChemFile)reader.Read((ChemObject) new ChemFile());
            var            cList           = ChemFileManipulator.GetAllAtomContainers(content);
            IAtomContainer ac = cList.First();

            Assert.IsTrue(ConnectivityChecker.IsConnected(ac), "Molecule appears not to be connected");
        }
Exemplo n.º 4
0
        public void TestBCUT()
        {
            var       filename = "NCDK.Data.HIN.gravindex.hin";
            IChemFile content;

            using (var reader = new HINReader(ResourceLoader.GetAsStream(filename)))
            {
                content = reader.Read(CDK.Builder.NewChemFile());
            }
            var cList = ChemFileManipulator.GetAllAtomContainers(content).ToReadOnlyList();
            var ac    = cList[0];

            var descriptor      = CreateDescriptor(true);
            var descriptorValue = descriptor.Calculate(ac, 2, 2);

            var retval = descriptorValue.Values;

            Assert.IsNotNull(retval);
            foreach (var v in retval)
            {
                Assert.IsTrue(Math.Abs(0.0 - v) > 0.0000001, "The returned value must be non-zero");
            }

            var names = descriptorValue.Keys;

            foreach (var name in names)
            {
                Assert.IsNotNull(name);
            }

            // Assert.AreEqual(1756.5060703860984,
            // ((Double)retval[0]).Value, 0.00000001);
            // Assert.AreEqual(41.91069159994975,
            // ((Double)retval[1]).Value, 0.00000001);
            // Assert.AreEqual(12.06562671430088,
            // ((Double)retval[2]).Value, 0.00000001);
            // Assert.AreEqual(1976.6432599699767,
            // ((Double)retval[3]).Value, 0.00000001);
            // Assert.AreEqual(44.45945636161082,
            // ((Double)retval[4]).Value, 0.00000001);
            // Assert.AreEqual(12.549972243701887,
            // ((Double)retval[5]).Value, 0.00000001);
            // Assert.AreEqual(4333.097373073368,
            // ((Double)retval[6]).Value, 0.00000001);
            // Assert.AreEqual(65.82626658920714,
            // ((Double)retval[7]).Value, 0.00000001);
            // Assert.AreEqual(16.302948232909483,
            // ((Double)retval[8]).Value, 0.00000001);
        }
Exemplo n.º 5
0
        public void TestEhccentricConnectivityIndex()
        {
            var       filename = "NCDK.Data.HIN.gravindex.hin";
            IChemFile content;

            using (var reader = new HINReader(ResourceLoader.GetAsStream(filename)))
            {
                content = reader.Read(builder.NewChemFile());
            }
            var cList = ChemFileManipulator.GetAllAtomContainers(content).ToReadOnlyList();
            var ac    = cList[0];

            AddImplicitHydrogens(ac);

            var retval = CreateDescriptor().Calculate(ac).Value;

            Assert.AreEqual(254, retval, 0);
        }
Exemplo n.º 6
0
        public void TestCPSA()
        {
            var       filename = "NCDK.Data.HIN.benzene.hin";
            IChemFile content;

            using (var reader = new HINReader(ResourceLoader.GetAsStream(filename)))
            {
                content = reader.Read(builder.NewChemFile());
            }
            var cList = ChemFileManipulator.GetAllAtomContainers(content).ToReadOnlyList();
            var ac    = cList[0];

            var retval = CreateDescriptor().Calculate(ac).Values;

            Assert.AreEqual(0, retval[28], 0.0001);
            Assert.AreEqual(1, retval[27], 0.0001);
            Assert.AreEqual(0, retval[26], 0.0001);
            Assert.AreEqual(356.8849, retval[25], 0.0001);
        }
        public void TestMomentOfInertia2()
        {
            var       filename = "NCDK.Data.HIN.momi2.hin";
            IChemFile content;

            using (var reader = new HINReader(ResourceLoader.GetAsStream(filename)))
            {
                content = reader.Read(CDK.Builder.NewChemFile());
            }
            var cList = ChemFileManipulator.GetAllAtomContainers(content).ToReadOnlyList();
            var ac    = cList[0];

            var retval = CreateDescriptor().Calculate(ac).Values;

            Assert.AreEqual(10068.419360, retval[0], 0.00001);
            Assert.AreEqual(9731.078356, retval[1], 0.00001);
            Assert.AreEqual(773.612799, retval[2], 0.00001);
            Assert.AreEqual(1.034666, retval[3], 0.00001);
            Assert.AreEqual(13.014804, retval[4], 0.00001);
            Assert.AreEqual(12.578745, retval[5], 0.00001);
            Assert.AreEqual(8.2966226, retval[6], 0.00001);
        }
        public void TestMomentOfInertia1()
        {
            var       filename = "NCDK.Data.HIN.gravindex.hin";
            IChemFile content;

            using (var reader = new HINReader(ResourceLoader.GetAsStream(filename)))
            {
                content = reader.Read(CDK.Builder.NewChemFile());
            }
            var cList = ChemFileManipulator.GetAllAtomContainers(content).ToReadOnlyList();
            var ac    = cList[0];

            var retval = CreateDescriptor().Calculate(ac).Values;

            Assert.AreEqual(1820.692519, retval[0], 0.00001);
            Assert.AreEqual(1274.532522, retval[1], 0.00001);
            Assert.AreEqual(979.210423, retval[2], 0.00001);
            Assert.AreEqual(1.428517, retval[3], 0.00001);
            Assert.AreEqual(1.859347, retval[4], 0.00001);
            Assert.AreEqual(1.301592, retval[5], 0.00001);
            Assert.AreEqual(5.411195, retval[6], 0.00001);
        }
        public void TestGravitationalIndex()
        {
            var       filename = "NCDK.Data.HIN.gravindex.hin";
            IChemFile content;

            using (var reader = new HINReader(ResourceLoader.GetAsStream(filename)))
            {
                content = reader.Read(builder.NewChemFile());
            }
            var cList = ChemFileManipulator.GetAllAtomContainers(content).ToReadOnlyList();
            var ac    = cList[0];

            var retval = CreateDescriptor().Calculate(ac).Values;

            Assert.AreEqual(1756.5060703860984, retval[0], 0.00000001);
            Assert.AreEqual(41.91069159994975, retval[1], 0.00000001);
            Assert.AreEqual(12.06562671430088, retval[2], 0.00000001);
            Assert.AreEqual(1976.6432599699767, retval[3], 0.00000001);
            Assert.AreEqual(44.45945636161082, retval[4], 0.00000001);
            Assert.AreEqual(12.549972243701887, retval[5], 0.00000001);
            Assert.AreEqual(4333.097373073368, retval[6], 0.00000001);
            Assert.AreEqual(65.82626658920714, retval[7], 0.00000001);
            Assert.AreEqual(16.302948232909483, retval[8], 0.00000001);
        }