private IRing getRing(IAtomContainer spt, IBond bond) { IRing ring = spt.getBuilder().newInstance(IRing.class); PathTools.resetFlags(spt); ring.addAtom(bond.getBegin()); PathTools.depthFirstTargetSearch(spt, bond.getBegin(), bond.getEnd(), ring); ring.addBond(bond); return ring; }
private IRing getRing(IAtomContainer spt, IBond bond) { IRing ring = spt.getBuilder().newInstance(IRing.class); PathTools.resetFlags(spt); ring.addAtom(bond.getBegin()); PathTools.depthFirstTargetSearch(spt, bond.getBegin(), bond.getEnd(), ring); ring.addBond(bond); return ring; }
private IRing combineRings(IRingSet ringset, int i, int j) { int c = 0; for (int b = 0; b < cb[i].length; b++) { c = cb[i][b] + cb[j][b]; if (c > 1) break; //at least one common bond } if (c < 2) return null; IRing ring = molecule.getBuilder().newInstance(IRing.class); IRing ring1 = (IRing) ringset.getAtomContainer(i); IRing ring2 = (IRing) ringset.getAtomContainer(j); for (int b = 0; b < cb[i].length; b++) { c = cb[i][b] + cb[j][b]; if ((c == 1) && (cb[i][b] == 1)) ring.addBond(molecule.getBond(b)); else if ((c == 1) && (cb[j][b] == 1)) ring.addBond(molecule.getBond(b)); } for (int a = 0; a < ring1.getAtomCount(); a++) ring.addAtom(ring1.getAtom(a)); for (int a = 0; a < ring2.getAtomCount(); a++) ring.addAtom(ring2.getAtom(a)); return ring; }
private IRing combineRings(IRingSet ringset, int i, int j) { int c = 0; for (int b = 0; b < cb[i].length; b++) { c = cb[i][b] + cb[j][b]; if (c > 1) break; //at least one common bond } if (c < 2) return null; IRing ring = molecule.getBuilder().newInstance(IRing.class); IRing ring1 = (IRing) ringset.getAtomContainer(i); IRing ring2 = (IRing) ringset.getAtomContainer(j); for (int b = 0; b < cb[i].length; b++) { c = cb[i][b] + cb[j][b]; if ((c == 1) && (cb[i][b] == 1)) ring.addBond(molecule.getBond(b)); else if ((c == 1) && (cb[j][b] == 1)) ring.addBond(molecule.getBond(b)); } for (int a = 0; a < ring1.getAtomCount(); a++) ring.addAtom(ring1.getAtom(a)); for (int a = 0; a < ring2.getAtomCount(); a++) ring.addAtom(ring2.getAtom(a)); return ring; }
/** * Copy placed atoms/bonds from one container to another. * * @param dest destination container * @param src source container */ static void copyPlaced(IRing dest, IAtomContainer src) { for (IBond bond : src.bonds()) { IAtom beg = bond.getBegin(); IAtom end = bond.getEnd(); if (beg.getFlag(CDKConstants.ISPLACED)) { dest.addAtom(beg); if (end.getFlag(CDKConstants.ISPLACED)) { dest.addAtom(end); dest.addBond(bond); } } else if (end.getFlag(CDKConstants.ISPLACED)) { dest.addAtom(end); } } }
/** * Copy placed atoms/bonds from one container to another. * * @param dest destination container * @param src source container */ static void copyPlaced(IRing dest, IAtomContainer src) { for (IBond bond : src.bonds()) { IAtom beg = bond.getBegin(); IAtom end = bond.getEnd(); if (beg.getFlag(CDKConstants.ISPLACED)) { dest.addAtom(beg); if (end.getFlag(CDKConstants.ISPLACED)) { dest.addAtom(end); dest.addBond(bond); } } else if (end.getFlag(CDKConstants.ISPLACED)) { dest.addAtom(end); } } }
ring1.addAtom(ring1Atom2); ring1.addAtom(ring1Atom3); ring1.addBond(ring1Bond1); ring1.addBond(ring1Bond2); ring1.addBond(ring1Bond3); ring2.addAtom(ring2Atom2); ring2.addAtom(ring2Atom3); ring2.addBond(bondRing2Ring3); ring2.addBond(ring2Bond2); ring2.addBond(ring2Bond3); ring3.addAtom(ring3Atom3); ring3.addAtom(ring3Atom4); ring3.addBond(bondRing2Ring3); ring3.addBond(ring3Bond2); ring3.addBond(bondRing3Ring4); ring3.addBond(ring3Bond4); ring4.addAtom(ring3Atom3); ring4.addAtom(ring3Atom4); ring4.addBond(bondRing3Ring4); ring4.addBond(ring4Bond1); ring4.addBond(ring4Bond2); ring4.addBond(ring4Bond3);
newRing.addBond(bond); for (int i = sharedAtoms.getBondCount(); i < ringSize - 1; i++) { newRing.addBond(sharedAtoms.getBuilder().newInstance(IBond.class,ringAtoms[i], ringAtoms[i + 1], IBond.Order.SINGLE)); newRing.addBond(sharedAtoms.getBuilder().newInstance(IBond.class, ringAtoms[ringSize - 1], ringAtoms[0], IBond.Order.SINGLE)); newRing.setAtoms(ringAtoms);
/** * Recovers a RingSet corresponding to a AtomContainer that has been * stored by storeRingSystem(). * * @param mol The IAtomContainer for which to recover the IRingSet. */ private IRingSet recoverRingSystem(IAtomContainer mol) { IRingSet ringSet = mol.getBuilder().newInstance(IRingSet.class); for (Integer[] bondNumbers : listOfRings) { IRing ring = mol.getBuilder().newInstance(IRing.class, bondNumbers.length); for (int bondNumber : bondNumbers) { IBond bond = mol.getBond(bondNumber); ring.addBond(bond); if (!ring.contains(bond.getBegin())) ring.addAtom(bond.getBegin()); if (!ring.contains(bond.getEnd())) ring.addAtom(bond.getEnd()); } ringSet.addAtomContainer(ring); } return ringSet; }
ring1.addAtom(sharedAtom1); ring1.addAtom(sharedAtom2); ring1.addBond(ring1Bond1); ring1.addBond(ring1Bond2); ring1.addBond(ring1Bond3); ring1.addBond(sharedBond); IRing ring2 = ringset.getBuilder().newInstance(IRing.class); ring2.addAtom(ring2Atom1); ring2.addAtom(sharedAtom1); ring2.addAtom(sharedAtom2); ring2.addBond(ring2Bond1); ring2.addBond(ring2Bond2); ring2.addBond(ring2Bond3); ring2.addBond(sharedBond);
ring1.addAtom(sharedAtom1); ring1.addAtom(sharedAtom2); ring1.addBond(ring1Bond1); ring1.addBond(ring1Bond2); ring1.addBond(ring1Bond3); ring1.addBond(sharedBond); IRing ring2 = ringset.getBuilder().newInstance(IRing.class); ring2.addAtom(ring2Atom1); ring2.addAtom(sharedAtom1); ring2.addAtom(sharedAtom2); ring2.addBond(ring2Bond1); ring2.addBond(ring2Bond2); ring2.addBond(ring2Bond3); ring2.addBond(sharedBond);
ring1.addAtom(sharedAtom1); ring1.addAtom(sharedAtom2); ring1.addBond(ring1Bond1); ring1.addBond(ring1Bond2); ring1.addBond(ring1Bond3); ring1.addBond(sharedBond); IRing ring2 = ringset.getBuilder().newInstance(IRing.class); ring2.addAtom(ring2Atom1); ring2.addAtom(sharedAtom1); ring2.addAtom(sharedAtom2); ring2.addBond(ring2Bond1); ring2.addBond(ring2Bond2); ring2.addBond(ring2Bond3); ring2.addBond(sharedBond);
leftCyclopentane.addAtom(rightCyclopentane.getAtom(3)); leftCyclopentane.addAtom(rightCyclopentane.getAtom(4)); leftCyclopentane.addBond(leftCyclohexane.getBond(leftCyclohexane.getAtom(0), leftCyclohexane.getAtom(1))); leftCyclopentane.addBond(leftCyclohexane1RightCyclopentane2); leftCyclopentane.addBond(rightCyclopentane.getBond(rightCyclopentane.getAtom(2), rightCyclopentane.getAtom(3))); leftCyclopentane.addBond(rightCyclopentane.getBond(rightCyclopentane.getAtom(3), rightCyclopentane.getAtom(4))); leftCyclopentane.addBond(leftCyclohexane0RightCyclopentane4); rightCyclohexane.addAtom(rightCyclopentane.getAtom(0)); rightCyclohexane.addAtom(rightCyclohexaneAtom5); rightCyclohexane.addBond(rightCyclohexaneAtom0Atom1); rightCyclohexane.addBond(rightCyclohexaneAtom1Atom2); rightCyclohexane.addBond(rightCyclohexane2rightCyclopentane1); rightCyclohexane.addBond(rightCyclopentane.getBond(rightCyclopentane.getAtom(0), rightCyclopentane.getAtom(1))); rightCyclohexane.addBond(rightCyclohexane5rightCyclopentane0); rightCyclohexane.addBond(rightCyclohexaneAtom0Atom5);
ring1.addAtom(sharedAtom1); ring1.addAtom(sharedAtom2); ring1.addBond(ring1Bond1); ring1.addBond(ring1Bond2); ring1.addBond(ring1Bond3); ring1.addBond(sharedBond); IRing ring2 = ringset.getBuilder().newInstance(IRing.class); ring2.addAtom(ring2Atom1); ring2.addAtom(sharedAtom1); ring2.addAtom(sharedAtom2); ring2.addBond(ring2Bond1); ring2.addBond(ring2Bond2); ring2.addBond(ring2Bond3); ring2.addBond(sharedBond);
@Test public void testGetNextBond_IBond_IAtom() { IRing ring = (IRing) newChemObject(); IAtom c1 = ring.getBuilder().newInstance(IAtom.class, "C"); IAtom c2 = ring.getBuilder().newInstance(IAtom.class, "C"); IAtom c3 = ring.getBuilder().newInstance(IAtom.class, "C"); IBond b1 = ring.getBuilder().newInstance(IBond.class, c1, c2, IBond.Order.SINGLE); IBond b2 = ring.getBuilder().newInstance(IBond.class, c3, c2, IBond.Order.SINGLE); IBond b3 = ring.getBuilder().newInstance(IBond.class, c1, c3, IBond.Order.SINGLE); ring.addAtom(c1); ring.addAtom(c2); ring.addAtom(c3); ring.addBond(b1); ring.addBond(b2); ring.addBond(b3); Assert.assertEquals(b1, ring.getNextBond(b2, c2)); Assert.assertEquals(b1, ring.getNextBond(b3, c1)); Assert.assertEquals(b2, ring.getNextBond(b1, c2)); Assert.assertEquals(b2, ring.getNextBond(b3, c3)); Assert.assertEquals(b3, ring.getNextBond(b1, c1)); Assert.assertEquals(b3, ring.getNextBond(b2, c3)); }
ring1.addAtom(sharedAtom1); ring1.addAtom(sharedAtom2); ring1.addBond(ring1Bond1); ring1.addBond(ring1Bond2); ring1.addBond(ring1Bond3); ring1.addBond(sharedBond); IRing ring2 = ringset.getBuilder().newInstance(IRing.class); ring2.addAtom(ring2Atom1); ring2.addAtom(sharedAtom1); ring2.addAtom(sharedAtom2); ring2.addBond(ring2Bond1); ring2.addBond(ring2Bond2); ring2.addBond(ring2Bond3); ring2.addBond(sharedBond);