/** * {@inheritDoc} */ @Override protected IStereoElement<IBond, IAtom> create(IBond focus, List<IAtom> carriers, int cfg) { return new Atropisomeric(focus, carriers.toArray(new IAtom[4]), cfg); } }
final IBond focus = element.getFocus(); final IAtom beg = focus.getBegin(); final IAtom end = focus.getEnd(); final IAtom[] atoms = element.getCarriers().toArray(new IAtom[0]); final IBond[] bonds = new IBond[4]; switch (element.getConfigOrder()) { case IStereoElement.LEFT: p = +1;
final IBond focus = element.getFocus(); final IAtom beg = focus.getBegin(); final IAtom end = focus.getEnd(); final IAtom[] atoms = element.getCarriers().toArray(new IAtom[0]); final IBond[] bonds = new IBond[4]; switch (element.getConfigOrder()) { case IStereoElement.LEFT: p = +1;
/** * {@inheritDoc} */ @Override protected IStereoElement<IBond, IAtom> create(IBond focus, List<IAtom> carriers, int cfg) { return new Atropisomeric(focus, carriers.toArray(new IAtom[4]), cfg); } }
@Test public void atropisomerWedgeBonds() throws CDKException { SmilesParser smipar = new SmilesParser(SilentChemObjectBuilder.getInstance()); IAtomContainer mol = smipar.parseSmiles("OC1=CC=C2C=CC=CC2=C1C1=C(O)C=CC2=C1C=CC=C2"); IBond focus = mol.getBond(mol.getAtom(10), mol.getAtom(11)); List<IAtom> carriers = new ArrayList<>(); carriers.addAll(mol.getConnectedAtomsList(focus.getBegin())); carriers.addAll(mol.getConnectedAtomsList(focus.getEnd())); carriers.remove(focus.getBegin()); carriers.remove(focus.getEnd()); mol.addStereoElement(new Atropisomeric(focus, carriers.toArray(new IAtom[0]), IStereoElement.LEFT)); StructureDiagramGenerator sdg = new StructureDiagramGenerator(); sdg.generateCoordinates(mol); IBond bond1 = mol.getBond(focus.getBegin(), carriers.get(1)); IBond bond2 = mol.getBond(focus.getEnd(), carriers.get(3)); assertThat(bond1.getOrder(), is(IBond.Order.SINGLE)); assertThat(bond2.getOrder(), is(IBond.Order.SINGLE)); assertTrue("One of the single bonds should have been wedged", bond1.getStereo() == IBond.Stereo.DOWN || bond2.getStereo() == IBond.Stereo.DOWN); }
int cfg = parity > 0 ? IStereoElement.LEFT : IStereoElement.RIGHT; return new Atropisomeric(container.getBond(end1, end2), carriers, cfg);
int cfg = parity > 0 ? IStereoElement.LEFT : IStereoElement.RIGHT; return new Atropisomeric(container.getBond(end1, end2), carriers, cfg);