/** * Get the total number of atoms inside an IChemSequence. * * @param sequence The IChemSequence object. * @return The number of Atom objects inside. */ public static int getAtomCount(IChemSequence sequence) { int count = 0; for (int i = 0; i < sequence.getChemModelCount(); i++) { count += ChemModelManipulator.getAtomCount(sequence.getChemModel(i)); } return count; }
/** * Get the total number of bonds inside an IChemSequence. * * @param sequence The IChemSequence object. * @return The number of Bond objects inside. */ public static int getBondCount(IChemSequence sequence) { int count = 0; for (int i = 0; i < sequence.getChemModelCount(); i++) { count += ChemModelManipulator.getBondCount(sequence.getChemModel(i)); } return count; }
public static List<String> getAllIDs(IChemSequence sequence) { ArrayList<String> list = new ArrayList<String>(); if (sequence.getID() != null) list.add(sequence.getID()); for (int i = 0; i < sequence.getChemModelCount(); i++) { list.addAll(ChemModelManipulator.getAllIDs(sequence.getChemModel(i))); } return list; } }
private void writeChemSequence(IChemSequence cs) throws UnsupportedChemObjectException { int count = cs.getChemModelCount(); for (int i = 0; i < count; i++) { writeln("frame: " + (i + 1)); writeCrystal(cs.getChemModel(i).getCrystal()); } }
private CMLList cdkChemSequenceToCMLList(IChemSequence sequence, boolean setIDs) { CMLList cmlList = new CMLList(); cmlList.setConvention("cdk:sequence"); if (useCMLIDs && setIDs) { IDCreator.createIDs(sequence); } if (sequence.getID() != null && !sequence.getID().equals("")) cmlList.setId(sequence.getID()); if (sequence.getChemModelCount() > 0) { for (int i = 0; i < sequence.getChemModelCount(); i++) { cmlList.appendChild(cdkChemModelToCMLList(sequence.getChemModel(i))); } } return cmlList; }
private CMLList cdkChemSequenceToCMLList(IChemSequence sequence, boolean setIDs) { CMLList cmlList = new CMLList(); cmlList.setConvention("cdk:sequence"); if (useCMLIDs && setIDs) { IDCreator.createIDs(sequence); } if (sequence.getID() != null && !sequence.getID().equals("")) cmlList.setId(sequence.getID()); if (sequence.getChemModelCount() > 0) { for (int i = 0; i < sequence.getChemModelCount(); i++) { cmlList.appendChild(cdkChemModelToCMLList(sequence.getChemModel(i))); } } return cmlList; }
private ValidationReport validateChemSequenceNulls(IChemSequence sequence) { ValidationReport report = new ValidationReport(); ValidationTest hasNulls = new ValidationTest(sequence, "ChemSequence contains a null ChemModel."); for (int i = 0; i < sequence.getChemModelCount(); i++) { // DIRTY !!!! FIXME !!!!! // but it does not seem to work on 1.4.2 otherwise.... if (sequence.getChemModel(i) == null) { report.addError(hasNulls); } else { report.addOK(hasNulls); } } return report; }
@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 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 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)); } }
/** * Ensure a CIF file from the crystallography open database can be read. * Example input <a href="http://www.crystallography.net/1100784.cif">1100784</a>. */ @Test public void cod1100784() throws IOException, CDKException { InputStream in = getClass().getResourceAsStream("1100784.cif"); CIFReader cifReader = new CIFReader(in); // try { IChemFile chemFile = cifReader.read(new ChemFile()); Assert.assertThat(chemFile.getChemSequenceCount(), is(1)); Assert.assertThat(chemFile.getChemSequence(0).getChemModelCount(), is(1)); Assert.assertNotNull(chemFile.getChemSequence(0).getChemModel(0).getCrystal()); // } finally { cifReader.close(); // } }
@Test public void testRemoveChemModel_int() { IChemSequence cs = (IChemSequence) newChemObject(); cs.addChemModel(cs.getBuilder().newInstance(IChemModel.class)); cs.addChemModel(cs.getBuilder().newInstance(IChemModel.class)); cs.addChemModel(cs.getBuilder().newInstance(IChemModel.class)); Assert.assertEquals(3, cs.getChemModelCount()); cs.removeChemModel(1); Assert.assertEquals(2, cs.getChemModelCount()); }
@Test public void testChemModels() { IChemSequence cs = (IChemSequence) newChemObject(); cs.addChemModel(cs.getBuilder().newInstance(IChemModel.class)); cs.addChemModel(cs.getBuilder().newInstance(IChemModel.class)); cs.addChemModel(cs.getBuilder().newInstance(IChemModel.class)); Assert.assertEquals(3, cs.getChemModelCount()); Iterator<IChemModel> models = cs.chemModels().iterator(); int count = 0; while (models.hasNext()) { Assert.assertNotNull(models.next()); ++count; } Assert.assertEquals(3, count); }
public static IChemModel roundTripChemModel(Convertor convertor, IChemModel model) throws Exception { String cmlString = "<!-- failed -->"; Element cmlDOM = convertor.cdkChemModelToCMLList(model); cmlString = cmlDOM.toXML(); logger.debug("CML string: ", cmlString); CMLReader reader = new CMLReader(new ByteArrayInputStream(cmlString.getBytes())); reader.close(); IChemFile file = (IChemFile) reader.read(model.getBuilder().newInstance(IChemFile.class)); Assert.assertNotNull(file); Assert.assertEquals(1, file.getChemSequenceCount()); IChemSequence sequence = file.getChemSequence(0); Assert.assertNotNull(sequence); Assert.assertEquals(1, sequence.getChemModelCount()); IChemModel chemModel = sequence.getChemModel(0); Assert.assertNotNull(chemModel); return chemModel; }
private void checkMol(StringBuilder buf) throws Exception { StringReader sr = new StringReader(buf.toString()); Mol2Reader reader = new Mol2Reader(sr); IChemFile mol = (IChemFile) reader.read(SilentChemObjectBuilder.getInstance().newInstance(IChemFile.class)); reader.close(); Assert.assertTrue(mol.getChemSequenceCount() > 0); Assert.assertTrue(mol.getChemSequence(0).getChemModelCount() > 0); Assert.assertTrue(mol.getChemSequence(0).getChemModel(0).getMoleculeSet().getAtomContainerCount() > 0); Assert.assertTrue(mol.getChemSequence(0).getChemModel(0).getMoleculeSet().getAtomContainer(0).getAtomCount() > 0); }
@Test public void testGrowChemModelArray() { IChemSequence cs = (IChemSequence) newChemObject(); cs.addChemModel(cs.getBuilder().newInstance(IChemModel.class)); cs.addChemModel(cs.getBuilder().newInstance(IChemModel.class)); cs.addChemModel(cs.getBuilder().newInstance(IChemModel.class)); Assert.assertEquals(3, cs.getChemModelCount()); cs.addChemModel(cs.getBuilder().newInstance(IChemModel.class)); cs.addChemModel(cs.getBuilder().newInstance(IChemModel.class)); cs.addChemModel(cs.getBuilder().newInstance(IChemModel.class)); // this one should enfore array grow Assert.assertEquals(6, cs.getChemModelCount()); }
@Test public void testAddChemModel_IChemModel() { IChemSequence cs = (IChemSequence) newChemObject(); cs.addChemModel(cs.getBuilder().newInstance(IChemModel.class)); cs.addChemModel(cs.getBuilder().newInstance(IChemModel.class)); cs.addChemModel(cs.getBuilder().newInstance(IChemModel.class)); Assert.assertEquals(3, cs.getChemModelCount()); }
@Test public void testGetChemModelCount() { IChemSequence cs = (IChemSequence) newChemObject(); cs.addChemModel(cs.getBuilder().newInstance(IChemModel.class)); cs.addChemModel(cs.getBuilder().newInstance(IChemModel.class)); cs.addChemModel(cs.getBuilder().newInstance(IChemModel.class)); Assert.assertEquals(3, cs.getChemModelCount()); }
public IAtomContainer getFirstAtomContainer(IChemFile chemFile, int chemSequenceCount, int chemModelCount, int moleculeCount) { Assert.assertNotNull(chemFile); Assert.assertEquals(chemSequenceCount, chemFile.getChemSequenceCount()); org.openscience.cdk.interfaces.IChemSequence seq = chemFile.getChemSequence(0); Assert.assertNotNull(seq); Assert.assertEquals(chemModelCount, seq.getChemModelCount()); IChemModel model = seq.getChemModel(0); Assert.assertNotNull(model); Assert.assertEquals(moleculeCount, model.getMoleculeSet().getAtomContainerCount()); return model.getMoleculeSet().getAtomContainer(0); }