public static IReaction RoundTripReaction(Convertor convertor, IReaction reaction) { string cmlString = "<!-- failed -->"; var cmlDOM = convertor.CDKReactionToCMLReaction(reaction); cmlString = cmlDOM.ToString(); IReaction roundTrippedReaction = null; Debug.WriteLine("CML string: ", cmlString); CMLReader reader = new CMLReader(new MemoryStream(Encoding.UTF8.GetBytes(cmlString))); IChemFile file = (IChemFile)reader.Read(builder.NewChemFile()); reader.Close(); Assert.IsNotNull(file); Assert.AreEqual(1, file.Count); IChemSequence sequence = file[0]; Assert.IsNotNull(sequence); Assert.AreEqual(1, sequence.Count); IChemModel chemModel = sequence[0]; Assert.IsNotNull(chemModel); IReactionSet reactionSet = chemModel.ReactionSet; Assert.IsNotNull(reactionSet); Assert.AreEqual(1, reactionSet.Count); roundTrippedReaction = reactionSet[0]; Assert.IsNotNull(roundTrippedReaction); return(roundTrippedReaction); }
public void TestCMLWithFormula() { var filename = "NCDK.Data.CML.cmlWithFormula.cml"; Trace.TraceInformation("Testing: " + filename); var ins = ResourceLoader.GetAsStream(filename); var reader = new CMLReader(ins); var chemFile = reader.Read(builder.NewChemFile()); reader.Close(); // test the resulting ChemFile content Assert.IsNotNull(chemFile); Assert.AreEqual(chemFile.Count, 1); var seq = chemFile[0]; Assert.IsNotNull(seq); Assert.AreEqual(seq.Count, 1); var model = seq[0]; Assert.IsNotNull(model); var mol = model.MoleculeSet[0]; Assert.IsNotNull(mol); Assert.AreEqual("a", mol.Id); Assert.AreEqual("a1", mol.Atoms[0].Id); Assert.AreEqual(27, mol.Atoms.Count); Assert.AreEqual(32, mol.Bonds.Count); }
public void TestCephNS() { var filename = "NCDK.Data.CML.ceph-ns.xml"; Trace.TraceInformation("Testing: " + filename); var ins = ResourceLoader.GetAsStream(filename); var reader = new CMLReader(ins); var chemFile = reader.Read(builder.NewChemFile()); reader.Close(); // test the resulting ChemFile content Assert.IsNotNull(chemFile); Assert.AreEqual(chemFile.Count, 1); var seq = chemFile[0]; Assert.IsNotNull(seq); Assert.AreEqual(seq.Count, 1); var model = seq[0]; Assert.IsNotNull(model); Assert.AreEqual(model.MoleculeSet.Count, 1); // test the molecule IAtomContainer mol = model.MoleculeSet[0]; Assert.IsNotNull(mol); Assert.AreEqual(mol.Atoms.Count, 15); Assert.AreEqual(mol.Bonds.Count, 16); Assert.IsFalse(GeometryUtil.Has3DCoordinates(mol)); Assert.IsTrue(GeometryUtil.Has2DCoordinates(mol)); }
public void TestCMLConciseFormula2() { var filename = "NCDK.Data.CML.cmlConciseFormula2.cml"; Trace.TraceInformation("Testing: " + filename); var ins = ResourceLoader.GetAsStream(filename); var reader = new CMLReader(ins); var chemFile = reader.Read(builder.NewChemFile()); reader.Close(); // test the resulting ChemFile content Assert.IsNotNull(chemFile); Assert.AreEqual(chemFile.Count, 1); var seq = chemFile[0]; Assert.IsNotNull(seq); Assert.AreEqual(seq.Count, 1); var model = seq[0]; Assert.IsNotNull(model); var mol = model.MoleculeSet[0]; Assert.IsNotNull(mol); // FIXME: REACT: It should return two different formulas Assert.AreEqual("[C 18 H 21 Cl 2 Mn 1 N 5 O 1, C 4 H 10]", Strings.ToJavaString(mol.GetProperty <IList <string> >(CDKPropertyName.Formula))); }
public void TestCMLReactionList() { var filename = "NCDK.Data.CML.reactionList.1.cml"; Trace.TraceInformation("Testing: " + filename); var ins = ResourceLoader.GetAsStream(filename); var reader = new CMLReader(ins); var chemFile = reader.Read(builder.NewChemFile()); reader.Close(); // test the resulting ChemFile content Assert.IsNotNull(chemFile); Assert.AreEqual(chemFile.Count, 1); var seq = chemFile[0]; Assert.IsNotNull(seq); Assert.AreEqual(1, seq.Count); var model = seq[0]; Assert.IsNotNull(model); Assert.AreEqual(2, model.ReactionSet.Count); Assert.AreEqual("1.3.2", model.ReactionSet[0].Id); // test the reaction IReaction reaction = model.ReactionSet[0]; Assert.IsNotNull(reaction); Assert.AreEqual("actey", reaction.Reactants[0].Id); Assert.AreEqual("a14293164", reaction.Reactants[0].Atoms[0].Id); Assert.AreEqual(6, reaction.Products[0].Atoms.Count); Assert.AreEqual(6, reaction.Reactants[0].Atoms.Count); }
public void TestMethanolOne() { var filename = "NCDK.Data.CML.methanol1.cml"; Trace.TraceInformation("Testing: " + filename); var ins = ResourceLoader.GetAsStream(filename); var reader = new CMLReader(ins); var chemFile = reader.Read(builder.NewChemFile()); reader.Close(); // test the resulting ChemFile content Assert.IsNotNull(chemFile); Assert.AreEqual(1, chemFile.Count); //Debug.WriteLine($"NO sequences: {chemFile.Count}"); var seq = chemFile[0]; Assert.IsNotNull(seq); Assert.AreEqual(1, seq.Count); //Debug.WriteLine($"NO models: {seq.Count}"); var model = seq[0]; Assert.IsNotNull(model); var som = model.MoleculeSet; Assert.AreEqual(1, som.Count); // test the molecule IAtomContainer mol = som[0]; Assert.IsNotNull(mol); Assert.AreEqual(mol.Atoms.Count, 6); Assert.IsTrue(GeometryUtil.Has3DCoordinates(mol)); }
public void TestNucleustest() { var filename = "NCDK.Data.CML.nucleustest.xml"; Trace.TraceInformation("Testing: " + filename); var ins = ResourceLoader.GetAsStream(filename); var reader = new CMLReader(ins); var chemFile = reader.Read(builder.NewChemFile()); reader.Close(); // test the resulting ChemFile content Assert.IsNotNull(chemFile); Assert.AreEqual(chemFile.Count, 1); var seq = chemFile[0]; Assert.IsNotNull(seq); Assert.AreEqual(seq.Count, 1); var model = seq[0]; Assert.IsNotNull(model); Assert.AreEqual(model.MoleculeSet.Count, 1); // test the molecule IAtomContainer mol = model.MoleculeSet[0]; Assert.IsNotNull(mol); Assert.AreEqual(11, mol.Atoms.Count, "Incorrect number of atoms"); Assert.AreEqual(12, mol.Bonds.Count, "Incorrect number of bonds"); Assert.IsFalse(GeometryUtil.Has3DCoordinates(mol), "File does not have 3D coordinates"); Assert.IsFalse(GeometryUtil.Has2DCoordinates(mol), "File does not have 2D coordinates"); }
[TestMethod(), Ignore()] // It is broken, but not used, AFAIK public void TestAnimation() { var filename = "NCDK.Data.CML.SN1_reaction.cml"; Trace.TraceInformation("Testing: " + filename); var ins = ResourceLoader.GetAsStream(filename); var reader = new CMLReader(ins); var chemFile = reader.Read(builder.NewChemFile()); reader.Close(); // test the resulting ChemFile content Assert.IsNotNull(chemFile); Assert.AreEqual(1, chemFile.Count); var seq = chemFile[0]; Assert.IsNotNull(seq); Assert.AreEqual(34, seq.Count); var model = seq[0]; Assert.IsNotNull(model); var som = model.MoleculeSet; Assert.IsNotNull(som); Assert.AreEqual(1, som.Count); // test the molecule IAtomContainer mol = som[0]; Assert.IsNotNull(mol); Assert.AreEqual(mol.Atoms.Count, 25); Assert.IsTrue(GeometryUtil.Has3DCoordinates(mol)); }
public void TestSFBug1085912_1() { string filename_pdb = "NCDK.Data.PDB.1CKV.pdb"; var ins1 = ResourceLoader.GetAsStream(this.GetType(), filename_pdb); ISimpleChemObjectReader reader = new PDBReader(ins1); IChemFile chemFile1 = (IChemFile)reader.Read(builder.NewChemFile()); reader.Close(); IChemSequence seq1 = chemFile1[0]; IChemModel model1 = seq1[0]; IAtomContainer container = model1.MoleculeSet[0]; IBioPolymer polymer1 = (IBioPolymer)container; int countchemFile1 = chemFile1.Count; int countmodel1 = model1.MoleculeSet.Count; int countpolymer1 = polymer1.Atoms.Count; StringWriter writer = new StringWriter(); CMLWriter cmlWriter = new CMLWriter(writer); cmlWriter.RegisterCustomizer(new PDBAtomCustomizer()); cmlWriter.Write(polymer1); cmlWriter.Close(); string cmlContent1 = writer.ToString(); CMLReader reader2 = new CMLReader(new MemoryStream(Encoding.UTF8.GetBytes(cmlContent1))); var chemFil2 = reader2.Read(builder.NewChemFile()); reader2.Close(); IChemSequence seq2 = chemFil2[0]; IChemModel model2 = seq2[0]; var polymer2 = (IPDBPolymer)model2.MoleculeSet[0]; int countchemFile2 = chemFil2.Count; int countmodel2 = model2.MoleculeSet.Count; int countpolymer2 = polymer2.Atoms.Count; Assert.AreEqual(countchemFile1, countchemFile2); Assert.AreEqual(countmodel1, countmodel2); Assert.AreEqual(countpolymer1, countpolymer2); writer = new StringWriter(); cmlWriter = new CMLWriter(writer); cmlWriter.RegisterCustomizer(new PDBAtomCustomizer()); cmlWriter.Write(polymer2); cmlWriter.Close(); string cmlContent2 = writer.ToString(); string conte1 = cmlContent1.Substring(0, 1000); string conte2 = cmlContent2.Substring(0, 1000); Assert.AreEqual(conte1, conte2); }
public void TestBug2697568() { var filename = "NCDK.Data.CML.AlanineTreeReverse.cml"; var ins = ResourceLoader.GetAsStream(filename); var reader = new CMLReader(ins); var chemFile = builder.NewChemFile(); chemFile = (IChemFile)reader.Read(chemFile); reader.Close(); Assert.AreSame(chemFile[0][0].MoleculeSet[0], chemFile [0][0].ReactionSet[0].Reactants[0]); }
public void TestReactionProperties() { var filename = "NCDK.Data.CML.reaction.2.cml"; var ins = ResourceLoader.GetAsStream(filename); var reader = new CMLReader(ins); var chemFile = builder.NewChemFile(); chemFile = (IChemFile)reader.Read(chemFile); reader.Close(); IReaction reaction = chemFile[0][0].ReactionSet[0]; Assert.AreEqual("3", reaction.GetProperty <string>("Ka")); }
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); } }
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); } }
public void TestCMLSchemeMoleculeSet() { var filename = "NCDK.Data.CML.reactionSchemeMoleculeSet.cml"; Trace.TraceInformation("Testing: " + filename); var ins = ResourceLoader.GetAsStream(filename); var reader = new CMLReader(ins); var chemFile = reader.Read(builder.NewChemFile()); reader.Close(); // test the resulting ChemFile content Assert.IsNotNull(chemFile); Assert.AreEqual(chemFile.Count, 1); var seq = chemFile[0]; Assert.IsNotNull(seq); Assert.AreEqual(1, seq.Count); var model = seq[0]; Assert.IsNotNull(model); // test reaction Assert.AreEqual(1, model.ReactionSet.Count); string[] idReaction = { "react_1" }; string[] idReactants = { "A" }; string[] idProducts = { "B", "C" }; IReaction reaction = model.ReactionSet[0]; Assert.AreEqual(idReaction[0], reaction.Id); // test molecule Assert.AreEqual(2, reaction.Products.Count()); Assert.AreEqual(idProducts[0], reaction.Products[0].Id); Assert.AreEqual("C 9 H 20 N 1", reaction.Products[0].GetProperty <IList <string> >(CDKPropertyName.Formula)[0]); Assert.AreEqual(idProducts[1], reaction.Products[1].Id); Assert.AreEqual(1, reaction.Reactants.Count()); Assert.AreEqual(idReactants[0], reaction.Reactants[0].Id); Assert.AreEqual("C 28 H 60 N 1", reaction.Reactants[0].GetProperty <IList <string> >(CDKPropertyName.Formula)[0]); }
public void TestCOONa() { var filename = "NCDK.Data.CML.COONa.cml"; Trace.TraceInformation("Testing: " + filename); var ins = ResourceLoader.GetAsStream(filename); var reader = new CMLReader(ins); var chemFile = reader.Read(builder.NewChemFile()); reader.Close(); // test the resulting ChemFile content Assert.IsNotNull(chemFile); Assert.AreEqual(chemFile.Count, 1); var seq = chemFile[0]; Assert.IsNotNull(seq); Assert.AreEqual(seq.Count, 1); var model = seq[0]; Assert.IsNotNull(model); Assert.AreEqual(model.MoleculeSet.Count(), 1); // test the molecule var mol = model.MoleculeSet[0]; Assert.IsNotNull(mol); Assert.AreEqual(4, mol.Atoms.Count); Assert.AreEqual(2, mol.Bonds.Count); Assert.IsTrue(GeometryUtil.Has3DCoordinates(mol)); Assert.IsTrue(!GeometryUtil.Has2DCoordinates(mol)); foreach (var atom in mol.Atoms) { if (atom.Symbol.Equals("Na")) { Assert.AreEqual(+1, atom.FormalCharge.Value); } } }
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()); reader.Close(); // test the resulting ChemFile content Assert.IsNotNull(chemFile); var mol = ChemFileManipulator.GetAllAtomContainers(chemFile).First(); for (int i = 0; i <= 3; i++) { Assert.IsFalse(mol.Bonds[i].IsAromatic, "Bond " + (i + 1) + " is not aromatic in the file"); } for (int i = 4; i <= 9; i++) { Assert.IsTrue(mol.Bonds[i].IsAromatic, "Bond " + (i + 1) + " is aromatic in the file"); } }
public void TestCMLStepList() { var filename = "NCDK.Data.CML.reactionStepList.1.cml"; Trace.TraceInformation("Testing: " + filename); var ins = ResourceLoader.GetAsStream(filename); var reader = new CMLReader(ins); var chemFile = reader.Read(builder.NewChemFile()); reader.Close(); // test the resulting ChemFile content Assert.IsNotNull(chemFile); Assert.AreEqual(chemFile.Count, 1); var seq = chemFile[0]; Assert.IsNotNull(seq); Assert.AreEqual(1, seq.Count); var model = seq[0]; Assert.IsNotNull(model); // test reaction Assert.AreEqual(3, model.ReactionSet.Count); string[] idReaction = { "r1", "r2", "r3" }; string[] idReactants = { "A", "B", "C" }; string[] idProducts = { "B", "C", "D" }; for (int i = 0; i < idReaction.Length; i++) { IReaction reaction = model.ReactionSet[i]; Assert.AreEqual(idReaction[i], reaction.Id); // test molecule Assert.AreEqual(1, reaction.Products.Count()); Assert.AreEqual(idProducts[i], reaction.Products[0].Id); Assert.AreEqual(1, reaction.Reactants.Count()); Assert.AreEqual(idReactants[i], reaction.Reactants[0].Id); } }
public void TestMDMoleculeCustomizationRoundtripping() { StringWriter writer = new StringWriter(); CMLWriter cmlWriter = new CMLWriter(writer); cmlWriter.RegisterCustomizer(new MDMoleculeCustomizer()); MDMolecule molecule = MakeMDBenzene(); cmlWriter.Write(molecule); cmlWriter.Close(); string serializedMol = writer.ToString(); Debug.WriteLine("****************************** TestMDMoleculeCustomizationRoundtripping()"); Debug.WriteLine(serializedMol); Debug.WriteLine("******************************"); Debug.WriteLine("****************************** testMDMoleculeCustomization Write first"); Debug.WriteLine(serializedMol); Debug.WriteLine("******************************"); CMLReader reader = new CMLReader(new MemoryStream(Encoding.UTF8.GetBytes(serializedMol))); reader.RegisterConvention("md:mdMolecule", new MDMoleculeConvention(builder.NewChemFile())); IChemFile file = (IChemFile)reader.Read(builder.NewChemFile()); reader.Close(); var containers = ChemFileManipulator.GetAllAtomContainers(file).ToReadOnlyList(); Assert.AreEqual(1, containers.Count); var molecule2 = containers[0]; Assert.IsTrue(molecule2 is MDMolecule); MDMolecule mdMol = (MDMolecule)molecule2; Assert.AreEqual(6, mdMol.Atoms.Count); Assert.AreEqual(6, mdMol.Bonds.Count); var residues = mdMol.GetResidues(); Assert.AreEqual(2, residues.Count); Assert.AreEqual(3, ((Residue)residues[0]).Atoms.Count); Assert.AreEqual(3, ((Residue)residues[1]).Atoms.Count); Assert.AreEqual("myResidue1", ((Residue)residues[0]).Name); Assert.AreEqual("myResidue2", ((Residue)residues[1]).Name); Assert.AreEqual(0, ((Residue)residues[0]).GetNumber()); Assert.AreEqual(1, ((Residue)residues[1]).GetNumber()); var chargeGroup = mdMol.GetChargeGroups(); Assert.AreEqual(2, chargeGroup.Count); Assert.AreEqual(2, ((ChargeGroup)chargeGroup[0]).Atoms.Count); Assert.AreEqual(4, ((ChargeGroup)chargeGroup[1]).Atoms.Count); Assert.IsNotNull(((ChargeGroup)chargeGroup[0]).GetSwitchingAtom()); Assert.AreEqual("a2", ((ChargeGroup)chargeGroup[0]).GetSwitchingAtom().Id); Assert.IsNotNull(((ChargeGroup)chargeGroup[1]).GetSwitchingAtom()); Assert.AreEqual("a5", ((ChargeGroup)chargeGroup[1]).GetSwitchingAtom().Id); Assert.AreEqual(2, ((ChargeGroup)chargeGroup[0]).GetNumber()); Assert.AreEqual(3, ((ChargeGroup)chargeGroup[1]).GetNumber()); writer = new StringWriter(); cmlWriter = new CMLWriter(writer); cmlWriter.RegisterCustomizer(new MDMoleculeCustomizer()); cmlWriter.Write(mdMol); cmlWriter.Close(); string serializedMDMol = writer.ToString(); Debug.WriteLine("****************************** TestMDMoleculeCustomizationRoundtripping()"); Debug.WriteLine(serializedMol); Debug.WriteLine("******************************"); Debug.WriteLine("****************************** testMDMoleculeCustomization Write second"); Debug.WriteLine(serializedMDMol); Debug.WriteLine("******************************"); Assert.AreEqual(serializedMol, serializedMDMol); }