/** * Returns all the AtomContainer's of a ChemSequence. */ public static List<IAtomContainer> getAllAtomContainers(IChemSequence sequence) { List<IAtomContainer> acList = new ArrayList<IAtomContainer>(); for (IChemModel model : sequence.chemModels()) { acList.addAll(ChemModelManipulator.getAllAtomContainers(model)); } return acList; }
/** * 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; }
@Override protected IChemObject processContent() throws CDKException { /* * return chemObjectReader.read(builder.newInstance(IAtomContainer.class)); */ //read(IAtomContainer) doesn't read properties ... IChemObject co = chemObjectReader.read(builder.newInstance(IChemFile.class)); if (co instanceof IChemFile) { int c = ((IChemFile) co).getChemSequenceCount(); for (int i = 0; i < c; i++) { Iterator<IChemModel> cm = ((IChemFile) co).getChemSequence(i).chemModels().iterator(); while (cm.hasNext()) { Iterator<IAtomContainer> sm = (cm.next()).getMoleculeSet().atomContainers().iterator(); while (sm.hasNext()) { co = sm.next(); break; } break; } cm = null; break; } //cs = null; } return co; }
private static void createIDsForChemSequence(IChemSequence sequence, List<String> tabuList) { if (tabuList == null) tabuList = ChemSequenceManipulator.getAllIDs(sequence); if (null == sequence.getID()) { chemSequenceCount = setID(CHEMSEQUENCE_PREFIX, chemSequenceCount, sequence, tabuList); } if (policy == OBJECT_UNIQUE_POLICY) { // start indices within a chem file always from 1 chemSequenceCount = 0; } for (IChemModel chemModel : sequence.chemModels()) { createIDsForChemModel(chemModel, tabuList); } }
@Override public ValidationReport validateChemSequence(IChemSequence subject) { logger.info("Validating org.openscience.cdk.ChemSequence"); ValidationReport report = new ValidationReport(); // apply validators for (IValidator test : validators.values()) { report.addReport(test.validateChemSequence(subject)); } // traverse into super class report.addReport(validateChemObject(subject)); // traverse into hierarchy Iterator<IChemModel> models = subject.chemModels().iterator(); while (models.hasNext()) { report.addReport(validateChemModel(models.next())); } return report; }
@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); }