private IAtomContainer getAllInOneContainer(IRingSet ringSet) { IAtomContainer resultContainer = ringSet.getBuilder().newInstance(IAtomContainer.class); Iterator<IAtomContainer> containers = RingSetManipulator.getAllAtomContainers(ringSet).iterator(); while (containers.hasNext()) { resultContainer.add((IAtomContainer) containers.next()); } return resultContainer; }
private double getRingMatchScore(List<Object> list) { double lScore = 0; List<IAtom> listMap = (List<IAtom>) list.get(0); IAtomContainer ac = (IAtomContainer) list.get(1); HanserRingFinder ringFinder = new HanserRingFinder(); IRingSet rRings = null; try { rRings = ringFinder.getRingSet(ac); } catch (CDKException ex) { Logger.getLogger(ChemicalFilters.class.getName()).log(Level.SEVERE, null, ex); } RingSetManipulator.sort(rRings); // System.out.println("Ring length " + ); lScore = getRingMatch(rRings, listMap); return lScore; }
/** * Returns the largest (number of atoms) ring set in a molecule * *@param ringSystems RingSystems of a molecule *@return The largestRingSet */ public static IRingSet getLargestRingSet(List<IRingSet> ringSystems) { IRingSet largestRingSet = null; int atomNumber = 0; IAtomContainer container = null; for (int i = 0; i < ringSystems.size(); i++) { container = RingSetManipulator.getAllInOneContainer(ringSystems.get(i)); if (atomNumber < container.getAtomCount()) { atomNumber = container.getAtomCount(); largestRingSet = ringSystems.get(i); } } return largestRingSet; }
atom.setFlag(CDKConstants.ISALIPHATIC, false); ringSetA = ringSetMolecule.getRings(atom); RingSetManipulator.sort(ringSetA); IRing sring = (IRing) ringSetA.getAtomContainer(ringSetA.getAtomContainerCount() - 1); atom.setProperty("RING_SIZE", Integer.valueOf(sring.getRingSize())); isInHeteroRing = false; Iterator<IAtomContainer> containers = RingSetManipulator.getAllAtomContainers(ringSetA).iterator(); while (!isInHeteroRing && containers.hasNext()) { isInHeteroRing = isHeteroRingSystem(containers.next());
@Test public void testMapTemplates_IAtomContainer_double() throws Exception { IAtomContainer ac = TestMoleculeFactory.makeBicycloRings(); TemplateHandler3D th3d = TemplateHandler3D.getInstance(); ForceFieldConfigurator ffc = new ForceFieldConfigurator(); ffc.setForceFieldConfigurator("mm2", ac.getBuilder()); IRingSet ringSetMolecule = ffc.assignAtomTyps(ac); List<IRingSet> ringSystems = RingPartitioner.partitionRings(ringSetMolecule); IRingSet largestRingSet = RingSetManipulator.getLargestRingSet(ringSystems); IAtomContainer largestRingSetContainer = RingSetManipulator.getAllInOneContainer(largestRingSet); th3d.mapTemplates(largestRingSetContainer, largestRingSetContainer.getAtomCount()); for (int i = 0; i < ac.getAtomCount(); i++) { Assert.assertNotNull(ac.getAtom(i).getPoint3d()); } ModelBuilder3DTest.checkAverageBondLength(ac); }
RingSetManipulator.markAromaticRings(allRings);
RingSetManipulator.sort(rs); final IRing first = RingSetManipulator.getMostComplexRing(rs);
@Test public void testGetLargestRingSet_List_IRingSet() throws Exception { List<IRingSet> list = new Vector<IRingSet>(); list.add(ringset); IAtomContainer mol = TestMoleculeFactory.makeBiphenyl(); AllRingsFinder arf = new AllRingsFinder(); IRingSet ringSet = arf.findAllRings(mol); list.add(ringSet); Assert.assertEquals(2, RingSetManipulator.getLargestRingSet(list).getAtomContainerCount()); } }
/** * Generate rendering element(s) for the current bond, including ring * elements if this bond is part of a ring. * * @param currentBond the bond to use when generating elements * @param model the renderer model * @return one or more rendering elements */ public IRenderingElement generate(IBond currentBond, RendererModel model) { IRing ring = RingSetManipulator.getHeaviestRing(ringSet, currentBond); if (ring != null) { return generateRingElements(currentBond, ring, model); } else { return generateBond(currentBond, model); } }
@Test public void testGetMostComplexRing_IRingSet() { IRing ring = RingSetManipulator.getMostComplexRing(ringset); Assert.assertEquals(ring3, ring); }
atom.setFlag(CDKConstants.ISALIPHATIC, false); ringSetA = ringSetMolecule.getRings(atom); RingSetManipulator.sort(ringSetA); IRing sring = (IRing) ringSetA.getAtomContainer(ringSetA.getAtomContainerCount() - 1); atom.setProperty("RING_SIZE", Integer.valueOf(sring.getRingSize())); isInHeteroRing = false; Iterator<IAtomContainer> containers = RingSetManipulator.getAllAtomContainers(ringSetA).iterator(); while (!isInHeteroRing && containers.hasNext()) { isInHeteroRing = isHeteroRingSystem(containers.next());
@Test public void testMapTemplates_cyclicMol1() throws Exception { TemplateHandler3D tmphandler3d = TemplateHandler3D.getInstance(); String cyclicMolSmi = "O(CC(O)CN1CCN(CC1)CC(=O)Nc1c(cccc1C)C)c1c(cccc1)OC"; IChemObjectBuilder builder = DefaultChemObjectBuilder.getInstance(); SmilesParser smiparser = new SmilesParser(builder); IAtomContainer molecule = smiparser.parseSmiles(cyclicMolSmi); ForceFieldConfigurator forcefconf = new ForceFieldConfigurator(); forcefconf.setForceFieldConfigurator("mmff94", builder); IRingSet rings = forcefconf.assignAtomTyps(molecule); List<IRingSet> ringSystems = RingPartitioner.partitionRings(rings); IRingSet largestRingSet = RingSetManipulator.getLargestRingSet(ringSystems); IAtomContainer allAtomsInOneContainer = RingSetManipulator.getAllInOneContainer(largestRingSet); tmphandler3d.mapTemplates(allAtomsInOneContainer, allAtomsInOneContainer.getAtomCount()); for (int j = 0; j < allAtomsInOneContainer.getAtomCount(); j++) { assertNotNull(allAtomsInOneContainer.getAtom(j).getPoint3d()); } }
Aromaticity.cdkLegacy().apply(m); RingSetManipulator.markAromaticRings(rs);
RingSetManipulator.sort(rs); final IRing first = RingSetManipulator.getMostComplexRing(rs);
@Test public void testGetHeaviestRing_IRingSet_IBond() { IRing ring = RingSetManipulator.getHeaviestRing(ringset, bondRing2Ring3); Assert.assertEquals(ring2, ring); }
/** * Puts all rings of a ringSet in a single atomContainer * * @param ringSet The ringSet to use * @return The produced atomContainer */ public static IAtomContainer getAllInOneContainer(IRingSet ringSet) { IAtomContainer resultContainer = ringSet.getBuilder().newInstance(IAtomContainer.class); Iterator<IAtomContainer> containers = RingSetManipulator.getAllAtomContainers(ringSet).iterator(); while (containers.hasNext()) { resultContainer.add(containers.next()); } return resultContainer; }
@Test public void testMapTemplates_cyclicMol2() throws Exception { TemplateHandler3D tmphandler3d = TemplateHandler3D.getInstance(); String cyclicMolSmi = "CC(C)(C)NC(=O)C1CN(CCN1CC(CC(Cc1ccccc1)C(=O)NC1c2ccccc2CC1O)O)Cc1cccnc1"; IChemObjectBuilder builder = DefaultChemObjectBuilder.getInstance(); SmilesParser smiparser = new SmilesParser(builder); IAtomContainer molecule = smiparser.parseSmiles(cyclicMolSmi); ForceFieldConfigurator forcefconf = new ForceFieldConfigurator(); forcefconf.setForceFieldConfigurator("mmff94", builder); IRingSet rings = forcefconf.assignAtomTyps(molecule); List<IRingSet> ringSystems = RingPartitioner.partitionRings(rings); IRingSet largestRingSet = RingSetManipulator.getLargestRingSet(ringSystems); IAtomContainer allAtomsInOneContainer = RingSetManipulator.getAllInOneContainer(largestRingSet); tmphandler3d.mapTemplates(allAtomsInOneContainer, allAtomsInOneContainer.getAtomCount()); for (int j = 0; j < allAtomsInOneContainer.getAtomCount(); j++) { assertNotNull(allAtomsInOneContainer.getAtom(j).getPoint3d()); } }
AllRingsFinder arf = new AllRingsFinder(); ringSet = arf.findAllRings(mol); RingSetManipulator.markAromaticRings(ringSet); } catch (CDKException e) { logger.log(Level.WARNING, "Error in find and assigning rings in the molecule. ", mol.getID());
@Test public void testGetAllInOneContainer_IRingSet() { IAtomContainer ac = RingSetManipulator.getAllInOneContainer(ringset); Assert.assertEquals(10, ac.getAtomCount()); }
RingSetManipulator.sort(sssr); for (Iterator<IAtomContainer> it = sssr.atomContainers().iterator(); it.hasNext();) { IAtomContainer ring = it.next();