/** * * @param AtomContainer * @return */ protected IAtomContainer layout(IAtomContainer AtomContainer) { try { StructureDiagramGenerator sdg = new StructureDiagramGenerator(); sdg.setMolecule(AtomContainer, true); sdg.generateCoordinates(); return sdg.getMolecule(); } catch (CDKException e) { return AtomContainer; } }
public IAtomContainer layout(IAtomContainer molecule) { sdg.setMolecule(molecule); try { sdg.generateCoordinates(); } catch (Exception e) { System.err.println(e); } return sdg.getMolecule(); }
/** * * @param mol * @return */ public static IAtomContainer getMoleculeWithLayoutCheck(IAtomContainer mol) { if (!has2DCoordinates(mol)) { try { StructureDiagramGenerator sdg = new StructureDiagramGenerator(new AtomContainer(mol)); sdg.generateCoordinates(); mol = sdg.getMolecule(); } catch (Exception e) { e.printStackTrace(); } } return mol; }
/** * Returns moecule with cleaned Layout * * @return cleaned Layout molecule */ public IAtomContainer getMoleculeWithLayoutCheck() { if (!has2DCoordinates(molecule)) { try { StructureDiagramGenerator sdg = new StructureDiagramGenerator(new AtomContainer(molecule)); sdg.generateCoordinates(); molecule = sdg.getMolecule(); } catch (Exception e) { e.printStackTrace(); } } return molecule; }
/** * Helper method to generate 2d coordinates when JChempaint loads a molecule * without 2D coordinates. Typically happens for SMILES strings. * * @param molecules * @throws Exception */ private static void generate2dCoordinates(List<IAtomContainer> molecules) { StructureDiagramGenerator sdg = new StructureDiagramGenerator(); for (int atIdx = 0; atIdx < molecules.size(); atIdx++) { IAtomContainer mol = molecules.get(atIdx); sdg.setMolecule(mol.getBuilder().newInstance(IAtomContainer.class,mol)); try { sdg.generateCoordinates(); } catch (Exception e) { e.printStackTrace(); } IAtomContainer ac = sdg.getMolecule(); for(int i=0;i<ac.getAtomCount();i++){ mol.getAtom(i).setPoint2d(ac.getAtom(i).getPoint2d()); } } }
.getMolecule(), new AWTDrawVisitor(g), new Rectangle2D.Double(0, 0, 400, 400), true); g.dispose(); } catch (Exception e) {
/** * * @param container */ public void perceive(IAtomContainer container) { try { /* Check for 2D co-ordinates for EC-BLAST, must else it will fail! */ if (!has2DCoordinates(container)) { try { /* Clone it else it will loose mol ID */ IAtomContainer clone = container.clone(); StructureDiagramGenerator sdg = new StructureDiagramGenerator(clone); sdg.generateCoordinates(); container = sdg.getMolecule(); } catch (CDKException e) { } } perceive(new CDKCentreProvider(container), new CDKManager(container)); } catch (Exception e) { e.printStackTrace(); LOGGER.error("WARNING: 2D CDK based stereo perception failed! " + e); } } }
/** * * @param mol * @return */ public static IChemModel getChemModelWithMoleculeWithLayoutCheck(IAtomContainer mol) { IChemModel chemModel = new ChemModel(); chemModel.setMoleculeSet(partitionIntoMolecules(mol)); for (IAtomContainer molecule : getAllAtomContainers(chemModel.getMoleculeSet())) { if (has2DCoordinates(molecule)) { try { StructureDiagramGenerator sdg = new StructureDiagramGenerator(new AtomContainer(molecule)); sdg.generateCoordinates(); chemModel = (IChemModel) sdg.getMolecule(); } catch (Exception e) { e.printStackTrace(); } } } return chemModel; }
StructureDiagramGenerator sdg = new StructureDiagramGenerator(clone); sdg.generateCoordinates(); container = sdg.getMolecule(); } catch (CDKException e) {
Logger.getLogger(LinearMoleculeSetLayout.class.getName()).log(Level.SEVERE, null, (Throwable) ex); molecule = sdg.getMolecule();
/** * * @param mol * @return * @throws CDKException */ @Override public synchronized BitSet getFingerprint(IAtomContainer mol) throws CDKException { if (!has2DCoordinates(mol)) { StructureDiagramGenerator structureDiagramGenerator = new StructureDiagramGenerator(); structureDiagramGenerator.setMolecule(mol, true); if (isConnected(mol)) { structureDiagramGenerator.generateCoordinates(); mol = structureDiagramGenerator.getMolecule(); } else { LOGGER.debug("Disconnected components needs to be layout separately"); } } return fingerprinter.getBitFingerprint(mol).asBitSet(); }
str.setMolecule((IAtomContainer) molecules); str.generateCoordinates(); resultList.add(str.getMolecule());
/** * Returns molecule with new layout * * @return cleaned model */ public IChemModel getChemModelWithMoleculeWithLayoutCheck() { IChemModel chemModel = new ChemModel(); chemModel.setMoleculeSet(partitionIntoMolecules(molecule)); for (IAtomContainer ac : getAllAtomContainers(chemModel.getMoleculeSet())) { if (!has2DCoordinates(ac)) { try { IAtomContainer mol = ac.getBuilder().newInstance(IAtomContainer.class, ac); percieveAtomTypesAndConfigureAtoms(mol); StructureDiagramGenerator sdg = new StructureDiagramGenerator(new AtomContainer(mol)); sdg.generateCoordinates(); ac = sdg.getMolecule(); } catch (IllegalArgumentException | CDKException e) { e.printStackTrace(); } } } return chemModel; } }
LOGGER.error(SEVERE, null, ex); molecule = sdg.getMolecule();
public static void generateNewCoordinates(IAtomContainer container) { IChemObjectBuilder builder = DefaultChemObjectBuilder .getInstance(); if (diagramGenerator == null) { diagramGenerator = new StructureDiagramGenerator(); } if (container instanceof IAtomContainer) { diagramGenerator.setMolecule((IAtomContainer) container); } else { diagramGenerator.setMolecule(builder.newInstance(IAtomContainer.class,container)); } try { diagramGenerator.generateCoordinates(); IAtomContainer cleanedMol = diagramGenerator.getMolecule(); // now copy/paste coordinates for (int i = 0; i < cleanedMol.getAtomCount(); i++) { container.getAtom(i).setPoint2d( cleanedMol.getAtom(i).getPoint2d()); } for (int i = 0; i < cleanedMol.getBondCount(); i++) { container.getBond(i).setStereo( cleanedMol.getBond(i).getStereo()); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
/** * A unit test for JUnit * *@exception Exception Description of the Exception */ @Test public void testResolveOverlap5() throws Exception { double overlapScore = 0; logger.debug("Test case with atom clash"); IAtomContainer atomContainer = new SmilesParser(DefaultChemObjectBuilder.getInstance()) .parseSmiles("OC4C(N2C1=C(C(=NC(=N1)SC)SC)C3=C2N=CN=C3N)OC(C4O)CO"); StructureDiagramGenerator sdg = new StructureDiagramGenerator(); sdg.setMolecule(new AtomContainer(atomContainer)); sdg.generateCoordinates(); atomContainer = sdg.getMolecule(); OverlapResolver or = new OverlapResolver(); overlapScore = or.resolveOverlap(atomContainer, null); //MoleculeViewer2D.display(new AtomContainer(atomContainer), true); Assert.assertEquals(0.0, overlapScore, 0.0001); logger.debug("End of test case with atom clash"); }
@Test public void testAddMolecule() throws Exception { logger.debug("***TestAddMolecule***"); boolean itIsInThere = false; TemplateHandler th = new TemplateHandler(DefaultChemObjectBuilder.getInstance()); IAtomContainer mol = TestMoleculeFactory.makeAlphaPinene(); sdg.setMolecule(mol); sdg.generateCoordinates(); mol = sdg.getMolecule(); String smiles = "C1=C(C)C2CC(C1)C2(C)(C)"; IAtomContainer smilesMol = sp.parseSmiles(smiles); itIsInThere = th.mapTemplates(smilesMol); logger.debug("Alpha-Pinene found by templateMapper: " + itIsInThere); Assert.assertFalse(itIsInThere); th.addMolecule(mol); logger.debug("now adding template for alpha-Pinen and trying again."); itIsInThere = th.mapTemplates(smilesMol); logger.debug("Alpha-Pinene found by templateMapper: " + itIsInThere); Assert.assertTrue(itIsInThere); }
sdg.setMolecule(molecule); sdg.generateCoordinates(); molecule = sdg.getMolecule(); } catch (Exception exc) { JOptionPane.showMessageDialog(chemPaintPanel, GT.get("Structure could not be generated"));
@Test public void testRemoveMolecule() throws Exception { logger.debug("***TestRemoveMolecule***"); boolean itIsInThere = false; TemplateHandler th = new TemplateHandler(DefaultChemObjectBuilder.getInstance()); IAtomContainer mol = TestMoleculeFactory.makeAlphaPinene(); sdg.setMolecule(mol); sdg.generateCoordinates(); mol = sdg.getMolecule(); String smiles = "C1=C(C)C2CC(C1)C2(C)(C)"; IAtomContainer smilesMol = sp.parseSmiles(smiles); itIsInThere = th.mapTemplates(smilesMol); logger.debug("Alpha-Pinene found by templateMapper: " + itIsInThere); Assert.assertFalse(itIsInThere); th.addMolecule(mol); logger.debug("now adding template for alpha-Pinen and trying again."); itIsInThere = th.mapTemplates(smilesMol); logger.debug("Alpha-Pinene found by templateMapper: " + itIsInThere); Assert.assertTrue(itIsInThere); logger.debug("now removing template for alpha-Pinen again and trying again."); th.removeMolecule(mol); itIsInThere = th.mapTemplates(smilesMol); logger.debug("Alpha-Pinene found by templateMapper: " + itIsInThere); Assert.assertFalse(itIsInThere); }