Пример #1
0
 private void WriteChemFile(IChemFile file)
 {
     foreach (var container in ChemFileManipulator.GetAllAtomContainers(file))
     {
         WriteMolecule(container);
     }
 }
Пример #2
0
        public void Test2Dvs3D()
        {
            var sp  = CDK.SmilesParser;
            var mol = sp.ParseSmiles("O1C2C34C(C(C1O)CCCc1cc(cc(c1)C(F)(F)F)C(F)(F)F)CCC(C3CCC(O2)(OO4)C)C");

            AddExplicitHydrogens(mol);
            AtomContainerManipulator.PercieveAtomTypesAndConfigureAtoms(mol);
            Aromaticity.CDKLegacy.Apply(mol);

            double value2D = CreateDescriptor().Calculate(mol).Value;

            var       filename = "NCDK.Data.MDL.cpsa-uncharged.sdf";
            IChemFile content;

            using (var reader = new MDLV2000Reader(ResourceLoader.GetAsStream(filename)))
            {
                content = reader.Read(CDK.Builder.NewChemFile());
            }
            var cList = ChemFileManipulator.GetAllAtomContainers(content).ToReadOnlyList();

            mol = cList[0];
            AtomContainerManipulator.PercieveAtomTypesAndConfigureAtoms(mol);
            Aromaticity.CDKLegacy.Apply(mol);

            var value3D = CreateDescriptor().Calculate(mol).Value;

            Assert.AreEqual(value2D, value3D, 0.001);
        }
Пример #3
0
        public void TestSulfurCompound_ImplicitHydrogens()
        {
            var filename       = "NCDK.Data.MDL.sulfurCompound.mol";
            var ins            = ResourceLoader.GetAsStream(filename);
            var reader         = new MDLV2000Reader(ins);
            var chemFile       = reader.Read(builder.NewChemFile());
            var containersList = ChemFileManipulator.GetAllAtomContainers(chemFile).ToReadOnlyList();

            Assert.AreEqual(1, containersList.Count);

            var atomContainer_0 = (IAtomContainer)containersList[0];

            Assert.AreEqual(10, atomContainer_0.Atoms.Count);
            var sulfur = atomContainer_0.Atoms[1];

            FindAndConfigureAtomTypesForAllAtoms(atomContainer_0);
            adder.AddImplicitHydrogens(atomContainer_0);
            Assert.AreEqual("S", sulfur.Symbol);
            Assert.IsNotNull(sulfur.ImplicitHydrogenCount);
            Assert.AreEqual(0, sulfur.ImplicitHydrogenCount.Value);
            Assert.AreEqual(3, atomContainer_0.GetConnectedBonds(sulfur).Count());
            Assert.AreEqual(10, atomContainer_0.Atoms.Count);
            Assert.IsNotNull(sulfur.ImplicitHydrogenCount);
            Assert.AreEqual(0, sulfur.ImplicitHydrogenCount.Value);
            Assert.AreEqual(3, atomContainer_0.GetConnectedBonds(sulfur).Count());
        }
Пример #4
0
        public void TestBug1274()
        {
            var ins    = ResourceLoader.GetAsStream("NCDK.Data.CML.(1R)-1-aminoethan-1-ol-multipleBondStereo.cml");
            var reader = new CMLReader(ins);

            try
            {
                IChemFile cfile = reader.Read(ChemObjectBuilder.Instance.NewChemFile());

                Assert.IsNotNull(cfile, "ChemFile was Null");

                var containers = ChemFileManipulator.GetAllAtomContainers(cfile);

                Assert.AreEqual(1, containers.Count(), "Expected a single atom container");

                IAtomContainer container = containers.First();

                Assert.IsNotNull(container, "Null atom container read");

                // we check here that the charContent is not used and also that more then
                // one stereo isn't set
                Assert.AreEqual(BondStereo.None, container.Bonds[0].Stereo, "expected non-stereo bond");
                Assert.AreEqual(BondStereo.Down, container.Bonds[1].Stereo, "expected Hatch (Down) Bond");
                Assert.AreEqual(BondStereo.None, container.Bonds[2].Stereo, "expected non-stereo bond");
            }
            finally
            {
                reader.Close();
            }
        }
Пример #5
0
        public void TestBug1245()
        {
            var ins    = ResourceLoader.GetAsStream("NCDK.Data.CML.(1R)-1-aminoethan-1-ol.cml");
            var reader = new CMLReader(ins);

            try
            {
                IChemFile cfile = reader.Read(ChemObjectBuilder.Instance.NewChemFile());

                Assert.IsNotNull(cfile, "ChemFile was Null");

                var containers = ChemFileManipulator.GetAllAtomContainers(cfile);

                Assert.AreEqual(1, containers.Count(), "Expected a single atom container");

                IAtomContainer container = containers.First();

                Assert.IsNotNull(container, "Null atom container read");

                foreach (var atom in container.Atoms)
                {
                    Assert.AreEqual(
                        PeriodicTable.GetAtomicNumber(atom.Symbol),
                        atom.AtomicNumber,
                        "Incorrect atomic number");
                }
            }
            finally
            {
                reader.Close();
            }
        }
Пример #6
0
        public void TestBug1275()
        {
            var ins    = ResourceLoader.GetAsStream("NCDK.Data.CML.(1R)-1-aminoethan-1-ol-malformedDictRef.cml");
            var reader = new CMLReader(ins);

            try
            {
                IChemFile cfile = reader.Read(ChemObjectBuilder.Instance.NewChemFile());

                Assert.IsNotNull(cfile, "ChemFile was Null");

                var containers = ChemFileManipulator.GetAllAtomContainers(cfile);

                Assert.AreEqual(1, containers.Count(), "Expected a single atom container");

                IAtomContainer container = containers.First();

                Assert.IsNotNull(container, "Null atom container read");

                // we check here that the malformed dictRef doesn't throw an exception
                Assert.AreEqual(BondStereo.None, container.Bonds[0].Stereo, "expected non-stereo bond");
                Assert.AreEqual(BondStereo.Up, container.Bonds[1].Stereo, "expected Wedge (Up) Bond");
                Assert.AreEqual(BondStereo.None, container.Bonds[2].Stereo, "expected non-stereo bond");
            }
            finally
            {
                reader.Close();
            }
        }
Пример #7
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");
            }
        }
Пример #8
0
        public void TestBug1248()
        {
            var ins    = ResourceLoader.GetAsStream("NCDK.Data.CML.(1R)-1-aminoethan-1-ol.cml");
            var reader = new CMLReader(ins);

            try
            {
                IChemFile cfile = reader.Read(ChemObjectBuilder.Instance.NewChemFile());

                Assert.IsNotNull(cfile, "ChemFile was Null");

                var containers = ChemFileManipulator.GetAllAtomContainers(cfile);

                Assert.AreEqual(1, containers.Count(), "Expected a single atom container");

                IAtomContainer container = containers.First();

                Assert.IsNotNull(container, "Null atom container read");

                IBond bond = container.Bonds[2];

                Assert.IsNotNull(bond, "Null bond");

                Assert.AreEqual(BondStereo.Up, bond.Stereo, "Expected Wedge (Up) Bond");
            }
            finally
            {
                reader.Close();
            }
        }
Пример #9
0
        public void TestSmilesFiles()
        {
            var atomTypeMatcher = CDK.AtomTypeMatcher;

            // Read the first file
            var filename = "NCDK.Data.CML.smiles1.cml";
            var ins      = ResourceLoader.GetAsStream(filename);
            var reader   = new CMLReader(ins);
            var chemFile = reader.Read(builder.NewChemFile());

            Assert.IsNotNull(chemFile);
            IAtomContainer mol1 = ChemFileManipulator.GetAllAtomContainers(chemFile).First();

            // Read the second file
            filename = "NCDK.Data.CML.smiles2.cml";
            ins      = ResourceLoader.GetAsStream(filename);
            reader   = new CMLReader(ins);
            chemFile = reader.Read(builder.NewChemFile());
            Assert.IsNotNull(chemFile);
            IAtomContainer mol2 = ChemFileManipulator.GetAllAtomContainers(chemFile).First();

            var types1 = atomTypeMatcher.FindMatchingAtomTypes(mol1).ToReadOnlyList();
            var types2 = atomTypeMatcher.FindMatchingAtomTypes(mol2).ToReadOnlyList();

            for (int i = 0; i < mol1.Atoms.Count; i++)
            {
                Assert.IsNotNull(types1[i], "Atom typing in mol1 failed for atom " + (i + 1));
                Assert.IsNotNull(types2[i], "Atom typing in mol2 failed for atom " + (i + 1));
                Assert.AreEqual(types1[i].AtomTypeName, types2[i].AtomTypeName,
                                "Atom type mismatch for the " + (i + 1) + " atom");
            }
        }
Пример #10
0
        public void TestFindHeavyAtomsInChain_IAtomContainer_IAtomContainer()
        {
            var filename = "NCDK.Data.MDL.allmol232.mol";
            var ins      = ResourceLoader.GetAsStream(filename);
            // TODO: shk3-cleanuptests: best to use the STRICT IO mode here
            var reader   = new MDLV2000Reader(ins);
            var chemFile = reader.Read(builder.NewChemFile());

            reader.Close();
            var containersList = ChemFileManipulator.GetAllAtomContainers(chemFile);
            var ac             = new Silent.AtomContainer(containersList.First());

            AddExplicitHydrogens(ac);
            var chain = ac.Builder.NewAtomContainer();

            for (int i = 16; i < 25; i++)
            {
                chain.Atoms.Add(ac.Atoms[i]);
            }
            chain.Atoms.Add(ac.Atoms[29]);
            chain.Atoms.Add(ac.Atoms[30]);
            int[] result = new AtomPlacer3D().FindHeavyAtomsInChain(ac, chain);
            Assert.AreEqual(16, result[0]);
            Assert.AreEqual(11, result[1]);
        }
Пример #11
0
        public void TestSFBug1085912_1()
        {
            string cmlContent = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>"
                                + "<molecule convention=\"PDB\" dictRef=\"pdb:model\" xmlns=\"http://www.xml-cml.org/schema\">"
                                + "  <molecule dictRef=\"pdb:sequence\" id=\"ALAA116\">"
                                + "    <atomArray>"
                                + "      <atom id=\"a9794931\" elementType=\"N\" x3=\"-10.311\" y3=\"2.77\" z3=\"-9.837\" formalCharge=\"0\">"
                                + "        <scalar dictRef=\"cdk:partialCharge\" dataType=\"xsd:double\">0.0</scalar>"
                                + "      </atom>"
                                + "      <atom id=\"a5369354\" elementType=\"C\" x3=\"-9.75\" y3=\"4.026\" z3=\"-9.35\" formalCharge=\"0\">"
                                + "        <scalar dictRef=\"cdk:partialCharge\" dataType=\"xsd:double\">0.0</scalar>"
                                + "      </atom>"
                                + "      <atom id=\"a14877152\" elementType=\"C\" x3=\"-10.818\" y3=\"5.095\" z3=\"-9.151\" formalCharge=\"0\">"
                                + "        <scalar dictRef=\"cdk:partialCharge\" dataType=\"xsd:double\">0.0</scalar>"
                                + "      </atom>"
                                + "      <atom id=\"a26221736\" elementType=\"O\" x3=\"-11.558\" y3=\"5.433\" z3=\"-10.074\" formalCharge=\"0\">"
                                + "        <scalar dictRef=\"cdk:partialCharge\" dataType=\"xsd:double\">0.0</scalar>"
                                + "      </atom>"
                                + "      <atom id=\"a4811470\" elementType=\"C\" x3=\"-8.678\" y3=\"4.536\" z3=\"-10.304\" formalCharge=\"0\">"
                                + "        <scalar dictRef=\"cdk:partialCharge\" dataType=\"xsd:double\">0.0</scalar>"
                                + "      </atom>"
                                + "      <atom id=\"a211489\" elementType=\"H\" x3=\"-10.574\" y3=\"2.695\" z3=\"-10.778\" formalCharge=\"0\">"
                                + "        <scalar dictRef=\"cdk:partialCharge\" dataType=\"xsd:double\">0.0</scalar>"
                                + "      </atom>"
                                + "      <atom id=\"a31287617\" elementType=\"H\" x3=\"-9.279\" y3=\"3.829\" z3=\"-8.398\" formalCharge=\"0\">"
                                + "        <scalar dictRef=\"cdk:partialCharge\" dataType=\"xsd:double\">0.0</scalar>"
                                + "      </atom>"
                                + "      <atom id=\"a19487109\" elementType=\"H\" x3=\"-8.523\" y3=\"3.813\" z3=\"-11.09\" formalCharge=\"0\">"
                                + "        <scalar dictRef=\"cdk:partialCharge\" dataType=\"xsd:double\">0.0</scalar>"
                                + "      </atom>"
                                + "      <atom id=\"a28589522\" elementType=\"H\" x3=\"-8.994\" y3=\"5.477\" z3=\"-10.737\" formalCharge=\"0\">"
                                + "        <scalar dictRef=\"cdk:partialCharge\" dataType=\"xsd:double\">0.0</scalar>"
                                + "      </atom>"
                                + "      <atom id=\"a4638116\" elementType=\"H\" x3=\"-7.754\" y3=\"4.682\" z3=\"-9.763\" formalCharge=\"0\">"
                                + "        <scalar dictRef=\"cdk:partialCharge\" dataType=\"xsd:double\">0.0</scalar>"
                                + "      </atom>" + "    </atomArray>" + "  </molecule>" + "</molecule>";
            CMLReader reader = new CMLReader(new MemoryStream(Encoding.UTF8.GetBytes(cmlContent)));

            try
            {
                IChemFile cfile = reader.Read(ChemObjectBuilder.Instance.NewChemFile());
                Assert.IsNotNull(cfile, "ChemFile was Null");
                var containers = ChemFileManipulator.GetAllAtomContainers(cfile);
                Assert.AreEqual(1, containers.Count(), "Expected a single atom container");
                IAtomContainer container = containers.First();
                Assert.IsNotNull(container, "Null atom container read");

                // OK, now test that the residue identifier is properly read
                Assert.AreEqual("ALAA116", container.Id);
            }
            finally
            {
                reader.Close();
            }
        }
Пример #12
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);
            }
        }
Пример #13
0
        public void TestBug2846213()
        {
            var            filename = "NCDK.Data.MDL.bug2846213.mol";
            var            ins      = ResourceLoader.GetAsStream(filename);
            var            reader   = new MDLV2000Reader(ins, ChemObjectReaderMode.Strict);
            ChemFile       chemFile = (ChemFile)reader.Read((ChemObject) new ChemFile());
            IAtomContainer ac       = ChemFileManipulator.GetAllAtomContainers(chemFile).First();

            long[] morganNumbers = MorganNumbersTools.GetMorganNumbers(ac);
            Assert.IsFalse(morganNumbers[7] == morganNumbers[8]);
        }
Пример #14
0
        public void TestIsConnectedFromSDFile()
        {
            var filename = "NCDK.Data.MDL.mdeotest.sdf";
            var ins      = ResourceLoader.GetAsStream(filename);
            ISimpleChemObjectReader reader = new MDLV2000Reader(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");
        }
Пример #15
0
        private IAtomContainer LoadMolecule(string path)
        {
            var ins      = ResourceLoader.GetAsStream(path);
            var reader   = new MDLV2000Reader(ins, ChemObjectReaderMode.Strict);
            var chemFile = reader.Read(builder.NewChemFile());

            reader.Close();
            var containersList = ChemFileManipulator.GetAllAtomContainers(chemFile).ToReadOnlyList();

            return((IAtomContainer)containersList[0]);
        }
Пример #16
0
        public void TestIsConnectedFromHINFile()
        {
            var            filename = "NCDK.Data.HIN.connectivity1.hin";
            var            ins      = ResourceLoader.GetAsStream(filename);
            var            reader   = new HINReader(ins);
            var            content  = reader.Read(builder.NewChemFile());
            var            cList    = ChemFileManipulator.GetAllAtomContainers(content);
            IAtomContainer ac       = cList.First();

            Assert.IsTrue(ConnectivityChecker.IsConnected(ac), "Molecule appears not to be connected");
        }
Пример #17
0
        public void TestAromaticRingsLine()
        {
            var filename = "NCDK.Data.HIN.bug2984581.hin";
            var ins      = ResourceLoader.GetAsStream(filename);
            var reader   = new HINReader(ins);
            var content  = reader.Read(builder.NewChemFile());

            reader.Close();
            var cList = ChemFileManipulator.GetAllAtomContainers(content).ToReadOnlyList();

            Assert.AreEqual(1, cList.Count);
        }
Пример #18
0
        public void TestWeightedPathDescriptor()
        {
            var sp = CDK.SmilesParser;
            {
                var mol    = sp.ParseSmiles("CCCC");
                var result = CreateDescriptor().Calculate(mol);
                var values = result.Values;
                Assert.AreEqual(6.871320, values[0], 0.000001);
                Assert.AreEqual(1.717830, values[1], 0.000001);
                Assert.AreEqual(0.0, values[2], 0.000001);
                Assert.AreEqual(0.0, values[3], 0.000001);
                Assert.AreEqual(0.0, values[4], 0.000001);
            }

            {
                var       filename = "NCDK.Data.MDL.wpo.sdf";
                IChemFile content;
                using (var reader = new MDLV2000Reader(ResourceLoader.GetAsStream(filename)))
                {
                    content = reader.Read(CDK.Builder.NewChemFile());
                }
                var cList = ChemFileManipulator.GetAllAtomContainers(content).ToReadOnlyList();
                var mol   = cList[0];
                mol = AtomContainerManipulator.RemoveHydrogens(mol);
                var result = CreateDescriptor().Calculate(mol);
                var values = result.Values;
                Assert.AreEqual(18.42026, values[0], 0.00001);
                Assert.AreEqual(1.842026, values[1], 0.00001);
                Assert.AreEqual(13.45733, values[2], 0.00001);
                Assert.AreEqual(13.45733, values[3], 0.00001);
                Assert.AreEqual(0, values[4], 0.00001);
            }

            {
                var       filename = "NCDK.Data.MDL.wpn.sdf";
                IChemFile content;
                using (var reader = new MDLV2000Reader(ResourceLoader.GetAsStream(filename)))
                {
                    content = reader.Read(CDK.Builder.NewChemFile());
                }
                var cList = ChemFileManipulator.GetAllAtomContainers(content).ToReadOnlyList();
                var mol   = cList[0];
                mol = AtomContainerManipulator.RemoveHydrogens(mol);
                var result = CreateDescriptor().Calculate(mol);
                var values = result.Values;
                Assert.AreEqual(26.14844, values[0], 0.00001);
                Assert.AreEqual(1.867746, values[1], 0.00001);
                Assert.AreEqual(19.02049, values[2], 0.00001);
                Assert.AreEqual(0, values[3], 0.000001);
                Assert.AreEqual(19.02049, values[4], 0.00001);
            }
        }
Пример #19
0
        public void Properties()
        {
            var ins      = ResourceLoader.GetAsStream("NCDK.Data.MDL.bug1356.sdf");
            var reader   = new MDLReader(ins);
            var chemfile = builder.NewChemFile();

            chemfile = reader.Read(chemfile);
            var container = ChemFileManipulator.GetAllAtomContainers(chemfile).First();

            Assert.IsNotNull(container.GetProperty <object>("first"));
            Assert.IsNotNull(container.GetProperty <object>("second"));
            reader.Close();
        }
Пример #20
0
        public void TestIsConnectedFromHINFile()
        {
            var filename = "NCDK.Data.HIN.connectivity1.hin";
            var ins      = ResourceLoader.GetAsStream(filename);
            var reader   = new HINReader(ins);
            var content  = reader.Read(builder.NewChemFile());

            reader.Close();
            var cList = ChemFileManipulator.GetAllAtomContainers(content).ToReadOnlyList();
            var ac    = cList[0];

            Assert.AreEqual(57, ac.Atoms.Count);
            Assert.AreEqual(59, ac.Bonds.Count);
        }
Пример #21
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);
        }
Пример #22
0
        public void TestFile3()
        {
            var filename = "NCDK.Data.CML.3.cml";
            var ins      = ResourceLoader.GetAsStream(filename);
            var reader   = new CMLReader(ins);
            var chemFile = reader.Read(builder.NewChemFile());

            // test the resulting ChemFile content
            Assert.IsNotNull(chemFile);
            IAtomContainer mol = ChemFileManipulator.GetAllAtomContainers(chemFile).First();

            string[] expectedTypes = { "C.sp2", "N.sp2", "C.sp2", "N.sp3", "C.sp2", "N.sp2", "O.sp3", "C.sp2", "C.sp2",
                                       "C.sp2" };
            AssertAtomTypes(testedAtomTypes, expectedTypes, mol);
        }
Пример #23
0
        public void TestBug3141611()
        {
            var filename = "NCDK.Data.MDL.error.sdf";
            var ins      = ResourceLoader.GetAsStream(filename);
            var reader   = new MDLV2000Reader(ins);
            var chemFile = reader.Read(builder.NewChemFile());

            // test the resulting ChemFile content
            Assert.IsNotNull(chemFile);
            IAtomContainer mol = ChemFileManipulator.GetAllAtomContainers(chemFile).First();

            string[] expectedTypes = { "C.sp3", "C.sp2", "O.sp2", "C.sp3", "C.sp3", "C.sp3", "C.sp3", "P.ate", "O.sp2",
                                       "O.minus" };
            AssertAtomTypes(testedAtomTypes, expectedTypes, mol);
        }
Пример #24
0
        public void TestModelBuilder3D_bug_1241421()
        {
            var mb3d     = ModelBuilder3D.GetInstance();
            var filename = "NCDK.Data.MDL.bug1241421.mol";
            var ins      = ResourceLoader.GetAsStream(filename);
            var reader   = new MDLV2000Reader(ins);
            var chemFile = reader.Read(builder.NewChemFile());

            reader.Close();
            var            containersList = ChemFileManipulator.GetAllAtomContainers(chemFile).ToReadOnlyList();
            IAtomContainer ac             = new Silent.AtomContainer(containersList[0]);

            ac = mb3d.Generate3DCoordinates(ac, false);
            CheckAverageBondLength(ac);
        }
Пример #25
0
        public void TestMultiMolButSingle()
        {
            var filename = "NCDK.Data.Mol2.fromWebsite.mol2";

            Trace.TraceInformation("Testing: ", filename);
            IChemFile chemFile;

            using (var reader = new Mol2Reader(ResourceLoader.GetAsStream(filename)))
            {
                chemFile = reader.Read(builder.NewChemFile());
            }
            var mols = ChemFileManipulator.GetAllAtomContainers(chemFile).ToReadOnlyList();

            Assert.AreEqual(1, mols.Count);
            Assert.AreEqual(12, mols[0].Atoms.Count);
        }
Пример #26
0
        public void TestCMLTestCase()
        {
            var filename = "NCDK.Data.CML.olaCmlAtomType.cml";
            var ins      = ResourceLoader.GetAsStream(filename);
            var reader   = new CMLReader(ins);
            var chemFile = builder.NewChemFile();

            chemFile = (IChemFile)reader.Read(chemFile);
            reader.Close();
            var container = ChemFileManipulator.GetAllAtomContainers(chemFile).First();

            foreach (var atom in container.Atoms)
            {
                Assert.AreEqual(null, atom.ImplicitHydrogenCount);
            }
        }
Пример #27
0
        public void TestCranbinSurface()
        {
            var       bldr = CDK.Builder;
            IChemFile chemFile;
            var       path = "NCDK.Data.PDB.1CRN.pdb";

            using (var pdbr = new PDBReader(ResourceLoader.GetAsStream(path)))
            {
                chemFile = pdbr.Read(bldr.NewChemFile());
                var mol     = ChemFileManipulator.GetAllAtomContainers(chemFile).ElementAt(0);
                var surface = new NumericalSurface(mol);
                var map     = surface.GetAtomSurfaceMap();
                Assert.AreEqual(222, map.Count);
                Assert.AreEqual(327, mol.Atoms.Count);
            }
        }
Пример #28
0
        public void TestMixedNamespaces()
        {
            var ins    = ResourceLoader.GetAsStream(this.GetType(), "US06358966-20020319-C00001-enr.cml");
            var reader = new CMLReader(ins);

            try
            {
                IChemFile cfile = reader.Read(ChemObjectBuilder.Instance.NewChemFile());
                Assert.AreEqual(34, ChemFileManipulator.GetAtomCount(cfile));
                Assert.AreEqual(39, ChemFileManipulator.GetBondCount(cfile));
            }
            finally
            {
                reader.Close();
            }
        }
Пример #29
0
        public void TestAtomProperties()
        {
            var      filename = "NCDK.Data.CML.custompropertiestest.cml";
            var      ins      = ResourceLoader.GetAsStream(filename);
            var      reader   = new CMLReader(ins);
            ChemFile chemFile = (ChemFile)reader.Read((ChemFile) new ChemFile());

            reader.Close();
            Assert.IsNotNull(chemFile);
            IAtomContainer container = ChemFileManipulator.GetAllAtomContainers(chemFile).First();

            for (int i = 0; i < container.Atoms.Count; i++)
            {
                Assert.AreEqual(2, container.Atoms[i].GetProperties().Count);
            }
        }
Пример #30
0
        public void Testbug2917084()
        {
            string filename1 = "NCDK.Data.MDL.boronBuckyBall.mol";

            Trace.TraceInformation("Testing: " + filename1);
            var ins1     = ResourceLoader.GetAsStream(filename1);
            var reader   = new MDLV2000Reader(ins1, ChemObjectReaderMode.Strict);
            var chemFile = reader.Read(builder.NewChemFile());

            Assert.IsNotNull(chemFile);
            var mol = ChemFileManipulator.GetAllAtomContainers(chemFile).First();

            Fingerprinter fingerprinter = new Fingerprinter(1024, 8);

            Assert.IsNotNull(fingerprinter.GetBitFingerprint(mol));
        }