/** {@inheritDoc} */ @Override public int getChemSequenceCount() { logger.debug("Getting chemSequence count: ", super.getChemSequenceCount()); return super.getChemSequenceCount(); }
/** * Allows for getting an clone of this object. * *@return a clone of this object */ @Override public Object clone() throws CloneNotSupportedException { ChemFile clone = (ChemFile) super.clone(); // clone the chemModels clone.chemSequenceCount = getChemSequenceCount(); clone.chemSequences = new ChemSequence[clone.chemSequenceCount]; for (int f = 0; f < clone.chemSequenceCount; f++) { clone.chemSequences[f] = (ChemSequence) ((ChemSequence) chemSequences[f]).clone(); } return clone; }
/** * Allows for getting an clone of this object. * *@return a clone of this object */ @Override public Object clone() throws CloneNotSupportedException { ChemFile clone = (ChemFile) super.clone(); // clone the chemModels clone.chemSequenceCount = getChemSequenceCount(); clone.chemSequences = new ChemSequence[clone.chemSequenceCount]; for (int f = 0; f < clone.chemSequenceCount; f++) { clone.chemSequences[f] = (ChemSequence) ((ChemSequence) chemSequences[f]).clone(); } return clone; }
@Test public void testSDFFile3() throws Exception { String filename = "data/mdl/test3.sdf"; // a multi molecule SDF file InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); MDLV2000Reader reader = new MDLV2000Reader(ins); ChemFile fileContents = (ChemFile) reader.read(new ChemFile()); reader.close(); Assert.assertEquals(1, fileContents.getChemSequenceCount()); org.openscience.cdk.interfaces.IChemSequence sequence = fileContents.getChemSequence(0); Assert.assertNotNull(sequence); Assert.assertEquals(2, sequence.getChemModelCount()); for (int i = 0; i < sequence.getChemModelCount(); i++) { Assert.assertNotNull(sequence.getChemModel(i)); } }
@Test public void testSDFFile() throws Exception { String filename = "data/mdl/test.sdf"; // a multi molecule SDF file InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); MDLV2000Reader reader = new MDLV2000Reader(ins); ChemFile fileContents = (ChemFile) reader.read(new ChemFile()); reader.close(); Assert.assertEquals(1, fileContents.getChemSequenceCount()); org.openscience.cdk.interfaces.IChemSequence sequence = fileContents.getChemSequence(0); Assert.assertNotNull(sequence); Assert.assertEquals(9, sequence.getChemModelCount()); for (int i = 0; i < sequence.getChemModelCount(); i++) { Assert.assertNotNull(sequence.getChemModel(i)); } }
@Test public void testSDFFile5() throws Exception { String filename = "data/mdl/test5.sdf"; // a multi molecule SDF file InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); MDLV2000Reader reader = new MDLV2000Reader(ins); ChemFile fileContents = (ChemFile) reader.read(new ChemFile()); reader.close(); Assert.assertEquals(1, fileContents.getChemSequenceCount()); org.openscience.cdk.interfaces.IChemSequence sequence = fileContents.getChemSequence(0); Assert.assertNotNull(sequence); Assert.assertEquals(2, sequence.getChemModelCount()); for (int i = 0; i < sequence.getChemModelCount(); i++) { Assert.assertNotNull(sequence.getChemModel(i)); } }
@Test public void testSDFFile4() throws Exception { String filename = "data/mdl/test4.sdf"; // a multi molecule SDF file InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); MDLV2000Reader reader = new MDLV2000Reader(ins); ChemFile fileContents = (ChemFile) reader.read(new ChemFile()); reader.close(); Assert.assertEquals(1, fileContents.getChemSequenceCount()); org.openscience.cdk.interfaces.IChemSequence sequence = fileContents.getChemSequence(0); Assert.assertNotNull(sequence); Assert.assertEquals(2, sequence.getChemModelCount()); for (int i = 0; i < sequence.getChemModelCount(); i++) { Assert.assertNotNull(sequence.getChemModel(i)); } }
@Test public void testMultiple() throws Exception { String filename = "data/hin/multiple.hin"; logger.info("Testing: " + filename); InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); HINReader reader = new HINReader(ins); ChemFile chemFile = (ChemFile) reader.read((ChemObject) new ChemFile()); reader.close(); Assert.assertNotNull(chemFile); Assert.assertEquals(1, chemFile.getChemSequenceCount()); org.openscience.cdk.interfaces.IChemSequence seq = chemFile.getChemSequence(0); Assert.assertNotNull(seq); Assert.assertEquals(1, seq.getChemModelCount()); org.openscience.cdk.interfaces.IChemModel model = seq.getChemModel(0); Assert.assertNotNull(model); IAtomContainerSet som = model.getMoleculeSet(); Assert.assertNotNull(som); Assert.assertEquals(3, som.getAtomContainerCount()); }
/** * Test a INChI 1.1Beta file containing the two tautomers * of guanine. */ @Test public void testGuanine() throws Exception { String filename = "data/inchi/guanine.inchi.xml"; logger.info("Testing: ", filename); InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); INChIReader reader = new INChIReader(ins); ChemFile chemFile = (ChemFile) reader.read((ChemObject) new ChemFile()); Assert.assertNotNull(chemFile); Assert.assertEquals(1, chemFile.getChemSequenceCount()); org.openscience.cdk.interfaces.IChemSequence seq = chemFile.getChemSequence(0); Assert.assertNotNull(seq); Assert.assertEquals(1, seq.getChemModelCount()); org.openscience.cdk.interfaces.IChemModel model = seq.getChemModel(0); Assert.assertNotNull(model); IAtomContainerSet moleculeSet = model.getMoleculeSet(); Assert.assertNotNull(moleculeSet); IAtomContainer molecule = moleculeSet.getAtomContainer(0); Assert.assertNotNull(molecule); Assert.assertEquals(11, molecule.getAtomCount()); Assert.assertEquals(12, molecule.getBondCount()); }
@Test public void testEthene() throws Exception { String filename = "data/ghemical/ethene.mm1gp"; InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); GhemicalMMReader reader = new GhemicalMMReader(ins); ChemFile chemFile = (ChemFile) reader.read((ChemObject) new ChemFile()); reader.close(); Assert.assertNotNull(chemFile); Assert.assertEquals(1, chemFile.getChemSequenceCount()); org.openscience.cdk.interfaces.IChemSequence seq = chemFile.getChemSequence(0); Assert.assertNotNull(seq); Assert.assertEquals(1, seq.getChemModelCount()); org.openscience.cdk.interfaces.IChemModel model = seq.getChemModel(0); Assert.assertNotNull(model); IAtomContainerSet som = model.getMoleculeSet(); Assert.assertNotNull(som); Assert.assertEquals(1, som.getAtomContainerCount()); IAtomContainer m = som.getAtomContainer(0); Assert.assertNotNull(m); Assert.assertEquals(6, m.getAtomCount()); Assert.assertEquals(5, m.getBondCount()); } }
@Test public void testDataFromSDFReading() throws Exception { String filename = "data/mdl/test.sdf"; // a multi molecule SDF file InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); MDLV2000Reader reader = new MDLV2000Reader(ins); ChemFile fileContents = (ChemFile) reader.read(new ChemFile()); reader.close(); Assert.assertEquals(1, fileContents.getChemSequenceCount()); org.openscience.cdk.interfaces.IChemSequence sequence = fileContents.getChemSequence(0); Assert.assertNotNull(sequence); Assert.assertEquals(9, sequence.getChemModelCount()); org.openscience.cdk.interfaces.IChemModel model = sequence.getChemModel(0); Assert.assertNotNull(model); IAtomContainerSet som = model.getMoleculeSet(); Assert.assertNotNull(som); Assert.assertEquals(1, som.getAtomContainerCount()); IAtomContainer m = som.getAtomContainer(0); Assert.assertNotNull(m); Assert.assertEquals("1", m.getProperty("E_NSC")); Assert.assertEquals("553-97-9", m.getProperty("E_CAS")); }
@Test public void testBenzene() throws Exception { String filename = "data/hin/benzene.hin"; logger.info("Testing: " + filename); InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); HINReader reader = new HINReader(ins); ChemFile chemFile = (ChemFile) reader.read((ChemObject) new ChemFile()); reader.close(); Assert.assertNotNull(chemFile); Assert.assertEquals(1, chemFile.getChemSequenceCount()); org.openscience.cdk.interfaces.IChemSequence seq = chemFile.getChemSequence(0); Assert.assertNotNull(seq); Assert.assertEquals(1, seq.getChemModelCount()); org.openscience.cdk.interfaces.IChemModel model = seq.getChemModel(0); Assert.assertNotNull(model); IAtomContainerSet som = model.getMoleculeSet(); Assert.assertNotNull(som); Assert.assertEquals(1, som.getAtomContainerCount()); IAtomContainer m = som.getAtomContainer(0); Assert.assertNotNull(m); Assert.assertEquals(12, m.getAtomCount()); // assertEquals(?, m.getBondCount()); }
@Test public void testMoleculeTwo() throws Exception { String filename = "data/hin/molecule2.hin"; logger.info("Testing: " + filename); InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); HINReader reader = new HINReader(ins); ChemFile chemFile = (ChemFile) reader.read((ChemObject) new ChemFile()); reader.close(); Assert.assertNotNull(chemFile); Assert.assertEquals(1, chemFile.getChemSequenceCount()); org.openscience.cdk.interfaces.IChemSequence seq = chemFile.getChemSequence(0); Assert.assertNotNull(seq); Assert.assertEquals(1, seq.getChemModelCount()); org.openscience.cdk.interfaces.IChemModel model = seq.getChemModel(0); Assert.assertNotNull(model); IAtomContainerSet som = model.getMoleculeSet(); Assert.assertNotNull(som); Assert.assertEquals(1, som.getAtomContainerCount()); IAtomContainer m = som.getAtomContainer(0); Assert.assertNotNull(m); Assert.assertEquals(37, m.getAtomCount()); // assertEquals(?, m.getBondCount()); }
/** * Test a INChI 1.12Beta file containing the two tautomers * of guanine. */ @Test public void testGuanine() throws Exception { String filename = "data/inchi/guanine.inchi"; logger.info("Testing: ", filename); InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); INChIPlainTextReader reader = new INChIPlainTextReader(ins); ChemFile chemFile = (ChemFile) reader.read((ChemObject) new ChemFile()); reader.close(); Assert.assertNotNull(chemFile); Assert.assertEquals(1, chemFile.getChemSequenceCount()); org.openscience.cdk.interfaces.IChemSequence seq = chemFile.getChemSequence(0); Assert.assertNotNull(seq); Assert.assertEquals(1, seq.getChemModelCount()); org.openscience.cdk.interfaces.IChemModel model = seq.getChemModel(0); Assert.assertNotNull(model); IAtomContainerSet moleculeSet = model.getMoleculeSet(); Assert.assertNotNull(moleculeSet); IAtomContainer molecule = moleculeSet.getAtomContainer(0); Assert.assertNotNull(molecule); Assert.assertEquals(11, molecule.getAtomCount()); Assert.assertEquals(12, molecule.getBondCount()); }
@Test public void testTwoAceticAcid() throws Exception { String filename = "data/pmp/two_aceticacid.pmp"; InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); PMPReader reader = new PMPReader(ins); ChemFile chemFile = (ChemFile) reader.read((ChemObject) new ChemFile()); reader.close(); Assert.assertNotNull(chemFile); Assert.assertEquals(1, chemFile.getChemSequenceCount()); IChemSequence seq = chemFile.getChemSequence(0); Assert.assertNotNull(seq); Assert.assertEquals(2, seq.getChemModelCount()); IChemModel model = seq.getChemModel(0); Assert.assertNotNull(model); ICrystal crystal = model.getCrystal(); Assert.assertNotNull(crystal); Assert.assertEquals(32, crystal.getAtomCount()); Assert.assertEquals(28, crystal.getBondCount()); model = seq.getChemModel(1); Assert.assertNotNull(model); crystal = model.getCrystal(); Assert.assertNotNull(crystal); Assert.assertEquals(32, crystal.getAtomCount()); Assert.assertEquals(28, crystal.getBondCount()); } }
@Test public void testRoundTrip() throws Exception { StringWriter sWriter = new StringWriter(); PDBWriter writer = new PDBWriter(sWriter); ICrystal crystal = builder.newInstance(ICrystal.class); crystal.setA(new Vector3d(0, 1, 0)); crystal.setB(new Vector3d(1, 0, 0)); crystal.setC(new Vector3d(0, 0, 2)); IAtom atom = builder.newInstance(IAtom.class, "C"); atom.setPoint3d(new Point3d(0.1, 0.1, 0.3)); crystal.addAtom(atom); writer.write(crystal); writer.close(); String output = sWriter.toString(); Assert.assertNotNull(output); Assert.assertTrue(output.length() > 0); PDBReader reader = new PDBReader(); ChemFile chemFile = (ChemFile) reader.read(new ChemFile()); reader.close(); Assert.assertNotNull(chemFile); Assert.assertEquals(1, chemFile.getChemSequenceCount()); IChemSequence sequence = chemFile.getChemSequence(0); Assert.assertEquals(1, sequence.getChemModelCount()); IChemModel chemModel = sequence.getChemModel(0); Assert.assertNotNull(chemModel); // can't do further testing as the PDBReader does not read // Crystal structures :( }
@Test public void testAceticAcid() throws Exception { String filename = "data/pmp/aceticacid.pmp"; InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); PMPReader reader = new PMPReader(ins); ChemFile chemFile = (ChemFile) reader.read((ChemObject) new ChemFile()); reader.close(); Assert.assertNotNull(chemFile); Assert.assertEquals(1, chemFile.getChemSequenceCount()); IChemSequence seq = chemFile.getChemSequence(0); Assert.assertNotNull(seq); Assert.assertEquals(1, seq.getChemModelCount()); IChemModel model = seq.getChemModel(0); Assert.assertNotNull(model); ICrystal crystal = model.getCrystal(); Assert.assertNotNull(crystal); Assert.assertEquals(32, crystal.getAtomCount()); Assert.assertEquals(28, crystal.getBondCount()); Assert.assertEquals("O", crystal.getAtom(6).getSymbol()); Assert.assertEquals(1.4921997, crystal.getAtom(6).getPoint3d().x, 0.00001); Assert.assertEquals("O", crystal.getAtom(7).getSymbol()); Assert.assertEquals(1.4922556, crystal.getAtom(7).getPoint3d().x, 0.00001); }
@Test public void testChebi26120() throws Exception { StringReader ins = new StringReader( "InChI=1/C40H62/c1-33(2)19-13-23-37(7)27-17-31-39(9)29-15-25-35(5)21-11-12-22-36(6)26-16-30-40(10)32-18-28-38(8)24-14-20-34(3)4/h11-12,15,19-22,25,27-30H,13-14,16-18,23-24,26,31-32H2,1-10H3"); INChIPlainTextReader reader = new INChIPlainTextReader(ins); ChemFile chemFile = (ChemFile) reader.read((ChemObject) new ChemFile()); reader.close(); Assert.assertNotNull(chemFile); Assert.assertEquals(1, chemFile.getChemSequenceCount()); org.openscience.cdk.interfaces.IChemSequence seq = chemFile.getChemSequence(0); Assert.assertNotNull(seq); Assert.assertEquals(1, seq.getChemModelCount()); org.openscience.cdk.interfaces.IChemModel model = seq.getChemModel(0); Assert.assertNotNull(model); IAtomContainerSet moleculeSet = model.getMoleculeSet(); Assert.assertNotNull(moleculeSet); IAtomContainer molecule = moleculeSet.getAtomContainer(0); Assert.assertNotNull(molecule); Assert.assertEquals(40, molecule.getAtomCount()); Assert.assertEquals(39, molecule.getBondCount()); }
@Test public void testPlatinum() throws Exception { StringReader ins = new StringReader( "InChI=1S/Pt"); INChIPlainTextReader reader = new INChIPlainTextReader(ins); ChemFile chemFile = (ChemFile) reader.read((ChemObject) new ChemFile()); reader.close(); Assert.assertNotNull(chemFile); Assert.assertEquals(1, chemFile.getChemSequenceCount()); org.openscience.cdk.interfaces.IChemSequence seq = chemFile.getChemSequence(0); Assert.assertNotNull(seq); Assert.assertEquals(1, seq.getChemModelCount()); org.openscience.cdk.interfaces.IChemModel model = seq.getChemModel(0); Assert.assertNotNull(model); IAtomContainerSet moleculeSet = model.getMoleculeSet(); Assert.assertNotNull(moleculeSet); IAtomContainer molecule = moleculeSet.getAtomContainer(0); Assert.assertNotNull(molecule); Assert.assertEquals(1, molecule.getAtomCount()); Assert.assertEquals(0, molecule.getBondCount()); } }
Assert.assertEquals(1, chemFile.getChemSequenceCount()); org.openscience.cdk.interfaces.IChemSequence seq = chemFile.getChemSequence(0); Assert.assertNotNull(seq);