示例#1
0
        public void TestRDFModel()
        {
            var filename = "NCDK.Data.MDL.qsar-reaction-test.rdf";

            Trace.TraceInformation("Testing: " + filename);
            var          ins       = ResourceLoader.GetAsStream(filename);
            MDLRXNReader reader    = new MDLRXNReader(ins);
            IChemModel   chemModel = (IChemModel)reader.Read(builder.NewChemModel());

            reader.Close();
            Assert.IsNotNull(chemModel);

            Assert.AreEqual(2, chemModel.ReactionSet.Count);
            Assert.AreEqual(2, chemModel.ReactionSet[0].Reactants.Count);
            Assert.AreEqual(3, chemModel.ReactionSet[0].Reactants[0]
                            .Atoms.Count);
            Assert.AreEqual(2, chemModel.ReactionSet[0].Reactants[1]
                            .Atoms.Count);
            Assert.AreEqual(2, chemModel.ReactionSet[0].Products.Count);
            Assert.AreEqual(2, chemModel.ReactionSet[0].Products[0]
                            .Atoms.Count);
            Assert.AreEqual(2, chemModel.ReactionSet[0].Products[1]
                            .Atoms.Count);

            Assert.AreEqual(1, chemModel.ReactionSet[1].Reactants.Count);
            Assert.AreEqual(3, chemModel.ReactionSet[1].Reactants[0]
                            .Atoms.Count);
            Assert.AreEqual(1, chemModel.ReactionSet[1].Products.Count);
            Assert.AreEqual(2, chemModel.ReactionSet[1].Products[0]
                            .Atoms.Count);
        }
示例#2
0
 public override void StartDocument()
 {
     ChemFile       = builder.NewChemFile();
     chemSequence   = builder.NewChemSequence();
     chemModel      = builder.NewChemModel();
     setOfMolecules = builder.NewChemObjectSet <IAtomContainer>();
 }
示例#3
0
        public void TestNewChemModel()
        {
            IChemObjectBuilder builder = RootObject.Builder;
            var model = builder.NewChemModel();

            Assert.IsNotNull(model);
        }
示例#4
0
 public void SetUp()
 {
     molecule1  = builder.NewAtomContainer();
     atomInMol1 = builder.NewAtom("Cl");
     molecule1.Atoms.Add(atomInMol1);
     molecule1.Atoms.Add(builder.NewAtom("Cl"));
     bondInMol1 = builder.NewBond(atomInMol1, molecule1.Atoms[1]);
     molecule1.Bonds.Add(bondInMol1);
     molecule2  = builder.NewAtomContainer();
     atomInMol2 = builder.NewAtom("O");
     atomInMol2.ImplicitHydrogenCount = 2;
     molecule2.Atoms.Add(atomInMol2);
     moleculeSet = builder.NewChemObjectSet <IAtomContainer>();
     moleculeSet.Add(molecule1);
     moleculeSet.Add(molecule2);
     reaction = builder.NewReaction();
     reaction.Reactants.Add(molecule1);
     reaction.Products.Add(molecule2);
     reactionSet = builder.NewReactionSet();
     reactionSet.Add(reaction);
     chemModel             = builder.NewChemModel();
     chemModel.MoleculeSet = moleculeSet;
     chemModel.ReactionSet = reactionSet;
     chemSequence1         = builder.NewChemSequence();
     chemSequence1.Add(chemModel);
     chemSequence2 = builder.NewChemSequence();
     chemFile      = builder.NewChemFile();
     chemFile.Add(chemSequence1);
     chemFile.Add(chemSequence2);
 }
示例#5
0
        public void TestExample()
        {
            var testfile = "!Header mm1gp 100\n" + "!Info 1\n" + "!Atoms 6\n" + "0 6 \n" + "1 6 \n" + "2 1 \n"
                           + "3 1 \n" + "4 1 \n" + "5 1 \n" + "!Bonds 5\n" + "1 0 D \n" + "2 0 S \n" + "3 0 S \n" + "4 1 S \n"
                           + "5 1 S \n" + "!Coord\n" + "0 0.06677 -0.00197151 4.968e-07 \n"
                           + "1 -0.0667699 0.00197154 -5.19252e-07 \n" + "2 0.118917 -0.097636 2.03406e-06 \n"
                           + "3 0.124471 0.0904495 -4.84021e-07 \n" + "4 -0.118917 0.0976359 -2.04017e-06 \n"
                           + "5 -0.124471 -0.0904493 5.12591e-07 \n" + "!Charges\n" + "0 -0.2\n" + "1 -0.2\n" + "2 0.1\n"
                           + "3 0.1\n" + "4 0.1\n" + "5 0.1\n" + "!End";
            var stringReader = new StringReader(testfile);
            var reader       = new GhemicalMMReader(stringReader);
            var model        = reader.Read(builder.NewChemModel());

            reader.Close();

            Assert.IsNotNull(model);
            Assert.IsNotNull(model.MoleculeSet);
            var som = model.MoleculeSet;

            Assert.IsNotNull(som);
            Assert.AreEqual(1, som.Count);
            var m = som[0];

            Assert.IsNotNull(m);
            Assert.AreEqual(6, m.Atoms.Count);
            Assert.AreEqual(5, m.Bonds.Count);

            // test reading of formal charges
            var a = m.Atoms[0];

            Assert.IsNotNull(a);
            Assert.AreEqual(6, a.AtomicNumber);
            Assert.AreEqual(-0.2, a.Charge.Value, 0.01);
            Assert.AreEqual(0.06677, a.Point3D.Value.X, 0.01);
        }
示例#6
0
        public void TestChemModeID()
        {
            var writer    = new StringWriter();
            var chemModel = builder.NewChemModel();

            chemModel.Id = "cm0";

            var cmlWriter = new CMLWriter(writer);

            cmlWriter.Write(chemModel);
            cmlWriter.Close();
            string cmlContent = writer.ToString();

            Debug.WriteLine("****************************** TestReactionCustomization()");
            Debug.WriteLine(cmlContent);
            Debug.WriteLine("******************************");
            Assert.IsTrue(cmlContent.IndexOf("<list convention=\"cdk:model\" id=\"cm0") != -1);
        }
示例#7
0
        public IChemModel ParseSubstance(XElement parser)
        {
            IChemModel model = builder.NewChemModel();

            // assume the current element is PC-Compound
            if (!parser.Name.Equals(Name_EL_PCSUBSTANCE))
            {
                return(null);
            }
            foreach (var elm in parser.Descendants(Name_EL_PCCOMPOUNDS))
            {
                var set = ParseCompoundsBlock(elm);
                model.MoleculeSet = set;
            }
            foreach (var elm in parser.Descendants(Name_EL_PCSUBSTANCE_SID))
            {
                string sid = GetSID(elm);
                model.SetProperty(CDKPropertyName.Title, sid);
            }
            return(model);
        }
示例#8
0
 protected static IChemObject[] AcceptableChemObjects()
 {
     return(new IChemObject[] { builder.NewChemFile(), builder.NewChemModel(), builder.NewAtomContainer(), builder.NewReaction(), new RGroupQuery() });
 }