/** * Get a list of all ChemModels inside an IChemFile. * * @param file The IChemFile object. * @return The List of IChemModel objects inside. */ public static List<IChemModel> getAllChemModels(IChemFile file) { List<IChemModel> modelsList = new ArrayList<IChemModel>(); for (int f = 0; f < file.getChemSequenceCount(); f++) { for (IChemModel model : file.getChemSequence(f).chemModels()) { modelsList.add(model); } } return modelsList; }
/** * Returns a List of all IChemObject inside a ChemFile. * * @return A list of all ChemObjects */ public static List<IChemObject> getAllChemObjects(IChemFile file) { List<IChemObject> list = new ArrayList<IChemObject>(); //list.add(file); // should not add the original file for (int i = 0; i < file.getChemSequenceCount(); i++) { list.add(file.getChemSequence(i)); list.addAll(ChemSequenceManipulator.getAllChemObjects(file.getChemSequence(i))); } return list; }
/** * Get the total number of bonds inside an IChemFile. * * @param file The IChemFile object. * @return The number of Bond object inside. */ public static int getBondCount(IChemFile file) { int count = 0; for (int i = 0; i < file.getChemSequenceCount(); i++) { count += ChemSequenceManipulator.getBondCount(file.getChemSequence(i)); } return count; }
/** * Get the total number of atoms inside an IChemFile. * * @param file The IChemFile object. * @return The number of Atom object inside. */ public static int getAtomCount(IChemFile file) { int count = 0; for (int i = 0; i < file.getChemSequenceCount(); i++) { count += ChemSequenceManipulator.getAtomCount(file.getChemSequence(i)); } return count; }
public static List<String> getAllIDs(IChemFile file) { List<String> list = new ArrayList<String>(); if (file.getID() != null) list.add(file.getID()); for (int i = 0; i < file.getChemSequenceCount(); i++) { list.addAll(ChemSequenceManipulator.getAllIDs(file.getChemSequence(i))); } return list; }
private CMLCml cdkChemFileToCMLList(IChemFile file, boolean setIDs) { CMLCml cmlList = new CMLCml(); cmlList.setConvention("cdk:document"); if (useCMLIDs && setIDs) { IDCreator.createIDs(file); } if (file.getID() != null && !file.getID().equals("")) cmlList.setId(file.getID()); if (file.getChemSequenceCount() > 0) { Iterator<IChemSequence> sequences = file.chemSequences().iterator(); while (sequences.hasNext()) { cmlList.appendChild(cdkChemSequenceToCMLList(sequences.next())); } } return cmlList; }
private CMLCml cdkChemFileToCMLList(IChemFile file, boolean setIDs) { CMLCml cmlList = new CMLCml(); cmlList.setConvention("cdk:document"); if (useCMLIDs && setIDs) { IDCreator.createIDs(file); } if (file.getID() != null && !file.getID().equals("")) cmlList.setId(file.getID()); if (file.getChemSequenceCount() > 0) { Iterator<IChemSequence> sequences = file.chemSequences().iterator(); while (sequences.hasNext()) { cmlList.appendChild(cdkChemSequenceToCMLList(sequences.next())); } } return cmlList; }
private ValidationReport validateChemFileNulls(IChemFile chemFile) { ValidationReport report = new ValidationReport(); ValidationTest hasNulls = new ValidationTest(chemFile, "ChemFile contains a null ChemSequence."); for (int i = 0; i < chemFile.getChemSequenceCount(); i++) { // DIRTY !!!! FIXME !!!!! // but it does not seem to work on 1.4.2 otherwise.... if (chemFile.getChemSequence(i) == null) { report.addError(hasNulls); } else { report.addOK(hasNulls); } } return report; }
@Override public ValidationReport validateChemFile(IChemFile subject) { logger.info("Validating org.openscience.cdk.ChemFile"); ValidationReport report = new ValidationReport(); // apply validators for (IValidator test : validators.values()) { report.addReport(test.validateChemFile(subject)); } // traverse into super class report.addReport(validateChemObject(subject)); // traverse into hierarchy for (int i = 0; i < subject.getChemSequenceCount(); i++) { report.addReport(validateChemSequence(subject.getChemSequence(i))); } return report; }
/** * 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 testRemoveChemSequence_int() { IChemFile cs = (IChemFile) newChemObject(); cs.addChemSequence(cs.getBuilder().newInstance(IChemSequence.class)); cs.addChemSequence(cs.getBuilder().newInstance(IChemSequence.class)); cs.addChemSequence(cs.getBuilder().newInstance(IChemSequence.class)); Assert.assertEquals(3, cs.getChemSequenceCount()); cs.removeChemSequence(1); Assert.assertEquals(2, cs.getChemSequenceCount()); }
@Test public void testClone_ChemSequence() throws Exception { IChemFile file = (IChemFile) newChemObject(); file.addChemSequence(file.getBuilder().newInstance(IChemSequence.class)); // 1 file.addChemSequence(file.getBuilder().newInstance(IChemSequence.class)); // 2 file.addChemSequence(file.getBuilder().newInstance(IChemSequence.class)); // 3 file.addChemSequence(file.getBuilder().newInstance(IChemSequence.class)); // 4 IChemFile clone = (IChemFile) file.clone(); Assert.assertEquals(file.getChemSequenceCount(), clone.getChemSequenceCount()); for (int f = 0; f < file.getChemSequenceCount(); f++) { for (int g = 0; g < clone.getChemSequenceCount(); g++) { Assert.assertNotNull(file.getChemSequence(f)); Assert.assertNotNull(clone.getChemSequence(g)); Assert.assertNotSame(file.getChemSequence(f), clone.getChemSequence(g)); } } } }
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 testGrowChemSequenceArray() { IChemFile cs = (IChemFile) newChemObject(); cs.addChemSequence(cs.getBuilder().newInstance(IChemSequence.class)); cs.addChemSequence(cs.getBuilder().newInstance(IChemSequence.class)); cs.addChemSequence(cs.getBuilder().newInstance(IChemSequence.class)); Assert.assertEquals(3, cs.getChemSequenceCount()); cs.addChemSequence(cs.getBuilder().newInstance(IChemSequence.class)); cs.addChemSequence(cs.getBuilder().newInstance(IChemSequence.class)); cs.addChemSequence(cs.getBuilder().newInstance(IChemSequence.class)); // this one should enfore array grow Assert.assertEquals(6, cs.getChemSequenceCount()); }
@Test public void testAddChemSequence_IChemSequence() { IChemFile cs = (IChemFile) newChemObject(); cs.addChemSequence(cs.getBuilder().newInstance(IChemSequence.class)); cs.addChemSequence(cs.getBuilder().newInstance(IChemSequence.class)); cs.addChemSequence(cs.getBuilder().newInstance(IChemSequence.class)); Assert.assertEquals(3, cs.getChemSequenceCount()); }
@Test public void testGetChemSequenceCount() { IChemFile cs = (IChemFile) newChemObject(); cs.addChemSequence(cs.getBuilder().newInstance(IChemSequence.class)); cs.addChemSequence(cs.getBuilder().newInstance(IChemSequence.class)); cs.addChemSequence(cs.getBuilder().newInstance(IChemSequence.class)); Assert.assertEquals(3, cs.getChemSequenceCount()); }
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); }
@Test public void testChemSequences() { IChemFile cs = (IChemFile) newChemObject(); cs.addChemSequence(cs.getBuilder().newInstance(IChemSequence.class)); cs.addChemSequence(cs.getBuilder().newInstance(IChemSequence.class)); cs.addChemSequence(cs.getBuilder().newInstance(IChemSequence.class)); Assert.assertNotNull(cs.chemSequences()); Assert.assertEquals(3, cs.getChemSequenceCount()); }
private IAtomContainer checkForXMoleculeFile(IChemFile chemFile, int numberOfMolecules) { Assert.assertNotNull(chemFile); Assert.assertEquals(chemFile.getChemSequenceCount(), 1); org.openscience.cdk.interfaces.IChemSequence seq = chemFile.getChemSequence(0); Assert.assertNotNull(seq); Assert.assertEquals(seq.getChemModelCount(), 1); org.openscience.cdk.interfaces.IChemModel model = seq.getChemModel(0); Assert.assertNotNull(model); IAtomContainerSet moleculeSet = model.getMoleculeSet(); Assert.assertNotNull(moleculeSet); Assert.assertEquals(moleculeSet.getAtomContainerCount(), numberOfMolecules); IAtomContainer mol = null; for (int i = 0; i < numberOfMolecules; i++) { mol = moleculeSet.getAtomContainer(i); Assert.assertNotNull(mol); } return mol; }