/** * 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; }
@Test public void testGetAllInOneContainer_IRingSet() { IAtomContainer ac = RingSetManipulator.getAllInOneContainer(ringset); Assert.assertEquals(10, ac.getAtomCount()); }
IAtomContainer ringSetAContainer = RingSetManipulator.getAllInOneContainer(ringSetA); templateHandler.mapTemplates(ringSetAContainer, ringSetAContainer.getAtomCount());
@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); }
@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()); } }
@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()); } }
IAtomContainer ringSystem = RingSetManipulator.getAllInOneContainer(nextRingSystem);
IAtomContainer ringSystem = RingSetManipulator.getAllInOneContainer(nextRingSystem);
Point3d centerPlacedMolecule, IAtom atomB, AtomPlacer3D ap3d) { IAtomContainer ac = RingSetManipulator.getAllInOneContainer(ringSet); Point3d newCoord = placedRingAtom.getPoint3d(); Vector3d axis = new Vector3d(atomB.getPoint3d().x - newCoord.x, atomB.getPoint3d().y - newCoord.y,
IAtomContainer largestRingSetContainer = RingSetManipulator.getAllInOneContainer(largestRingSet); numberOfRingAtoms = largestRingSetContainer.getAtomCount(); templateHandler.mapTemplates(largestRingSetContainer, numberOfRingAtoms);