public void TestInvalidPcoreXML() { var filename = "NCDK.Data.PCore.invalid1.xml"; var ins = ResourceLoader.GetAsStream(filename); PharmacophoreUtils.ReadPharmacophoreDefinitions(ins); }
void Main() { #region ReadPharmacophoreDefinitions using (var srm = new FileStream("mydefs.xml", FileMode.Open)) { IList <PharmacophoreQuery> defs = PharmacophoreUtils.ReadPharmacophoreDefinitions(srm); Console.Out.WriteLine("Number of definitions = " + defs.Count); for (int i = 0; i < defs.Count; i++) { Console.Out.WriteLine($"Desc: {defs[i].GetProperty<string>("description")}"); } } #endregion }
public void TestPCoreWrite() { var filename = "NCDK.Data.PCore.pcore.xml"; var ins = ResourceLoader.GetAsStream(filename); var defs = PharmacophoreUtils.ReadPharmacophoreDefinitions(ins); PharmacophoreQuery[] defarray = defs.ToArray(); var baos = new MemoryStream(); PharmacophoreUtils.WritePharmacophoreDefinition(defarray, baos); Assert.IsTrue(baos.ToArray().Length > 0); string[] lines; using (var sr = new StreamReader(new MemoryStream(baos.ToArray()), true)) { var list = new List <string>(); string line; while ((line = sr.ReadLine()) != null) { list.Add(line); } lines = list.ToArray(); } Assert.AreEqual("<?xml version=\"1.0\" encoding=\"utf-8\"?>", lines[0].Trim()); int ndef = 0; int ndist = 0; int nangle = 0; foreach (var line in lines) { if (line.IndexOf("</pharmacophore>") != -1) { ndef++; } if (line.IndexOf("</distanceConstraint>") != -1) { ndist++; } if (line.IndexOf("</angleConstraint>") != -1) { nangle++; } } Assert.AreEqual(2, ndef); Assert.AreEqual(5, ndist); Assert.AreEqual(0, nangle); }
public void TestReadPcoreAngleDef() { var filename = "NCDK.Data.PCore.pcoreangle.xml"; var ins = ResourceLoader.GetAsStream(filename); var defs = PharmacophoreUtils.ReadPharmacophoreDefinitions(ins); Assert.AreEqual(1, defs.Count); var def1 = defs[0]; Assert.AreEqual(3, def1.Atoms.Count); Assert.AreEqual(2, def1.Bonds.Count); Assert.AreEqual("A modified definition for the D1 receptor", def1.GetProperty <string>("description")); string[] ids = { "Aromatic", "Hydroxyl", "BasicAmine" }; foreach (var atom in def1.Atoms) { string sym = atom.Symbol; bool found = false; foreach (var s in ids) { if (sym.Equals(s)) { found = true; break; } } Assert.IsTrue(found, "'" + sym + "' in pcore.xml is invalid"); } foreach (var bond in def1.Bonds) { IAtom[] a; switch (bond) { case PharmacophoreQueryBond cons: a = GetAtoms(cons); Assert.AreEqual(2, a.Length); break; case PharmacophoreQueryAngleBond cons: a = GetAtoms(cons); Assert.AreEqual(3, a.Length); break; } } }
public void TestReadPcoreDef() { var filename = "NCDK.Data.PCore.pcore.xml"; var ins = ResourceLoader.GetAsStream(filename); var defs = PharmacophoreUtils.ReadPharmacophoreDefinitions(ins); Assert.AreEqual(2, defs.Count); var def1 = defs[0]; Assert.AreEqual(4, def1.Atoms.Count); Assert.AreEqual(2, def1.Bonds.Count); Assert.AreEqual("An imaginary pharmacophore definition", def1.GetProperty <string>("description")); Assert.AreEqual("Imaginary", def1.Title); var def2 = defs[1]; Assert.AreEqual(3, def2.Atoms.Count); Assert.AreEqual(3, def2.Bonds.Count); Assert.IsNull(def2.Title); string[] ids = { "Aromatic", "Hydroxyl", "BasicAmine" }; foreach (var atom in def2.Atoms) { string sym = atom.Symbol; bool found = false; foreach (var s in ids) { if (sym.Equals(s)) { found = true; break; } } Assert.IsTrue(found, "'" + sym + "' in pcore.xml is invalid"); } }