示例#1
0
        public void TestExampleFile_SupportColumns()
        {
            var filename            = "NCDK.Data.MoSS.TKO.mossoutput";
            var ins                 = ResourceLoader.GetAsStream(filename);
            MoSSOutputReader reader = new MoSSOutputReader(ins);
            var moleculeSet         = new ChemObjectSet <IAtomContainer>();

            moleculeSet = reader.Read(moleculeSet);
            Assert.AreEqual(5.06, double.Parse(moleculeSet[0].GetProperty <string>("focusSupport").ToString()), 0.01);
            Assert.AreEqual(1.74, double.Parse(moleculeSet[0].GetProperty <string>("complementSupport").ToString()), 0.01);
        }
示例#2
0
        public void TestCallingTwice()
        {
            var  molSet = new ChemObjectSet <IAtomContainer>();
            var  mol    = new AtomContainer();
            Atom atom0  = new Atom("C")
            {
                Id = "a1"
            };
            Atom atom2 = new Atom("C");

            mol.Atoms.Add(atom2);
            mol.Atoms.Add(atom0);
            molSet.Add(mol);

            IDCreator.CreateIDs(molSet);
            var ids = MoleculeSetManipulator.GetAllIDs(molSet);

            Assert.AreEqual(4, ids.Count());

            mol = new AtomContainer();
            Atom atom1 = new Atom("C")
            {
                Id = "a2"
            };

            atom2 = new Atom("C");
            mol.Atoms.Add(atom2);
            mol.Atoms.Add(atom1);
            molSet.Add(mol);

            IDCreator.CreateIDs(molSet);
            ids = MoleculeSetManipulator.GetAllIDs(molSet);
            Assert.AreEqual(7, ids.Count());

            mol   = new AtomContainer();
            atom1 = new Atom("C");
            atom2 = new Atom("C");
            mol.Atoms.Add(atom2);
            mol.Atoms.Add(atom1);
            molSet.Add(mol);

            atom0.Id = "atomX";
            ids      = MoleculeSetManipulator.GetAllIDs(molSet);
            Assert.IsFalse(ids.Contains("a1"));

            IDCreator.CreateIDs(molSet);
            var idsAfter = MoleculeSetManipulator.GetAllIDs(molSet);

            Assert.IsTrue(idsAfter.Contains("a1"));
            Assert.AreEqual(10, idsAfter.Count());
        }
示例#3
0
        public void TestWrite_IAtomContainerSet_SingleMolecule()
        {
            StringWriter writer = new StringWriter();
            IChemObjectSet <IAtomContainer> molSet = new ChemObjectSet <IAtomContainer>();
            var molecule = builder.NewAtomContainer();

            molecule.Atoms.Add(new Atom("C"));
            molSet.Add(molecule);

            SDFWriter sdfWriter = new SDFWriter(writer);

            sdfWriter.Write(molSet);
            sdfWriter.Close();
            Assert.IsTrue(writer.ToString().IndexOf("$$$$") != -1);
        }
示例#4
0
        public void TestExampleFile_MolReading()
        {
            var filename            = "NCDK.Data.MoSS.TKO.mossoutput";
            var ins                 = ResourceLoader.GetAsStream(filename);
            MoSSOutputReader reader = new MoSSOutputReader(ins);
            var moleculeSet         = new ChemObjectSet <IAtomContainer>();

            moleculeSet = reader.Read(moleculeSet);
            Assert.AreEqual(19, moleculeSet.Count);
            foreach (var mol in moleculeSet)
            {
                Assert.AreEqual(int.Parse(mol.GetProperty <string>("atomCount").ToString()), mol.Atoms.Count);
                Assert.AreEqual(int.Parse(mol.GetProperty <string>("bondCount").ToString()), mol.Bonds.Count);
            }
        }
示例#5
0
        public void TestWrite_IAtomContainerSet_CDKProperties()
        {
            StringWriter writer = new StringWriter();
            IChemObjectSet <IAtomContainer> molSet = new ChemObjectSet <IAtomContainer>();
            var molecule = builder.NewAtomContainer();

            molecule.Atoms.Add(new Atom("C"));
            molecule.SetProperty(InvPair.CanonicalLabelPropertyKey, "bar");
            molSet.Add(molecule);

            SDFWriter sdfWriter = new SDFWriter(writer);

            sdfWriter.Write(molSet);
            sdfWriter.Close();
            Assert.IsTrue(writer.ToString().IndexOf(InvPair.CanonicalLabelPropertyKey) == -1);
        }
示例#6
0
        public void TestRemoveElectronContainer_IAtomContainerSet_IElectronContainer()
        {
            IChemObjectSet <IAtomContainer> ms = new ChemObjectSet <IAtomContainer>();
            var mol = new AtomContainer();

            mol.Atoms.Add(new Atom("O"));
            mol.Atoms.Add(new Atom("O"));
            mol.AddBond(mol.Atoms[0], mol.Atoms[1], BondOrder.Double);
            IBond bond = mol.Bonds[0];

            ms.Add(mol);
            IBond otherBond = new Bond(new Atom(), new Atom());

            MoleculeSetManipulator.RemoveElectronContainer(ms, otherBond);
            Assert.AreEqual(1, MoleculeSetManipulator.GetBondCount(ms));
            MoleculeSetManipulator.RemoveElectronContainer(ms, bond);
            Assert.AreEqual(0, MoleculeSetManipulator.GetBondCount(ms));
        }
示例#7
0
        public void TestMoleculeSet()
        {
            var list = new ChemObjectSet <IAtomContainer>
            {
                new AtomContainer(),
                new AtomContainer()
            };
            var model = new ChemModel {
                MoleculeSet = list
            };

            IChemModel roundTripped = CMLRoundTripTool.RoundTripChemModel(convertor, model);
            var        newList      = roundTripped.MoleculeSet;

            Assert.IsNotNull(newList);
            Assert.AreEqual(2, newList.Count());
            Assert.IsNotNull(newList[0]);
            Assert.IsNotNull(newList[1]);
        }
示例#8
0
        public void TestRemoveAtomAndConnectedElectronContainers_IAtomContainerSet_IAtom()
        {
            IChemObjectSet <IAtomContainer> ms = new ChemObjectSet <IAtomContainer>();
            var mol = new AtomContainer();

            mol.Atoms.Add(new Atom("O"));
            mol.Atoms.Add(new Atom("O"));
            mol.AddBond(mol.Atoms[0], mol.Atoms[1], BondOrder.Double);
            IAtom atom = mol.Atoms[0];

            ms.Add(mol);
            IAtom otherAtom = new Atom("O");

            MoleculeSetManipulator.RemoveAtomAndConnectedElectronContainers(ms, otherAtom);
            Assert.AreEqual(1, MoleculeSetManipulator.GetBondCount(ms));
            Assert.AreEqual(2, MoleculeSetManipulator.GetAtomCount(ms));
            MoleculeSetManipulator.RemoveAtomAndConnectedElectronContainers(ms, atom);
            Assert.AreEqual(0, MoleculeSetManipulator.GetBondCount(ms));
            Assert.AreEqual(1, MoleculeSetManipulator.GetAtomCount(ms));
        }
示例#9
0
        public void TestChemModel()
        {
            ChemModel  model       = new ChemModel();
            var        moleculeSet = new ChemObjectSet <IAtomContainer>();
            var        mol         = new AtomContainer();
            PseudoAtom atom        = new PseudoAtom("N");

            mol.Atoms.Add(atom);
            moleculeSet.Add(mol);
            model.MoleculeSet = moleculeSet;

            IChemModel roundTrippedModel = CMLRoundTripTool.RoundTripChemModel(convertor, model);

            var roundTrippedMolSet = roundTrippedModel.MoleculeSet;

            Assert.IsNotNull(roundTrippedMolSet);
            Assert.AreEqual(1, roundTrippedMolSet.Count);
            IAtomContainer roundTrippedMolecule = roundTrippedMolSet[0];

            Assert.IsNotNull(roundTrippedMolecule);
            Assert.AreEqual(1, roundTrippedMolecule.Atoms.Count);
        }
示例#10
0
        public void TestWrite_IAtomContainerSet_Properties_Off()
        {
            StringWriter writer = new StringWriter();
            IChemObjectSet <IAtomContainer> molSet = new ChemObjectSet <IAtomContainer>();
            var molecule = builder.NewAtomContainer();

            molecule.Atoms.Add(new Atom("C"));
            molecule.SetProperty("foo", "bar");
            molSet.Add(molecule);

            SDFWriter sdfWriter      = new SDFWriter(writer);
            var       sdfWriterProps = new NameValueCollection();

            sdfWriterProps["writeProperties"] = "false";
            sdfWriter.Listeners.Add(new PropertiesListener(sdfWriterProps));
            sdfWriter.CustomizeJob();
            sdfWriter.Write(molSet);
            sdfWriter.Close();
            string result = writer.ToString();

            Assert.IsFalse(result.Contains("<foo>"));
        }