IBond addBond(IAtom atom, IBond bond) { if (atom.equals(bond.getBegin())) { mol.addBond(bond); bond = mol.getBond(mol.getBondCount() - 1); } LocalNbrs nbrs = local.get(atom); if (nbrs == null) local.put(atom, nbrs = new LocalNbrs(false)); nbrs.bonds.add(bond); return bond; }
private IBond getBond(int i) { if (molecule.getBondCount() <= i) { molecule.addBond(molecule.getBuilder().newInstance(IBond.class)); } return molecule.getBond(i); }
@Override public IAtomContainer apply(Map<IChemObject, IChemObject> map) { final IAtomContainer submol = target.getBuilder() .newInstance(IAtomContainer.class, query.getAtomCount(), target.getBondCount(), 0, 0); for (IAtom atom : query.atoms()) submol.addAtom((IAtom)map.get(atom)); for (IBond bond : query.bonds()) submol.addBond((IBond)map.get(bond)); return submol; } });
protected static IAtomContainer makeAtomContainer(IAtom atom, List<IBond> parts, IAtom excludedAtom) { IAtomContainer partContainer = atom.getBuilder().newInstance(IAtomContainer.class); partContainer.addAtom(atom); for (IBond aBond : parts) { for (IAtom bondedAtom : aBond.atoms()) { if (!bondedAtom.equals(excludedAtom) && !partContainer.contains(bondedAtom)) partContainer.addAtom(bondedAtom); } if (!aBond.contains(excludedAtom)) partContainer.addBond(aBond); } return partContainer; }
static IAtomContainer but2ene() { IAtomContainer container = new AtomContainer(); container.addAtom(atom("C", 1)); container.addAtom(atom("C", 1)); container.addAtom(atom("C", 3)); container.addAtom(atom("C", 3)); container.addBond(0, 1, IBond.Order.DOUBLE); container.addBond(0, 2, IBond.Order.SINGLE); container.addBond(1, 3, IBond.Order.SINGLE); return container; }
static IAtomContainer but2ene() { IAtomContainer container = new AtomContainer(); container.addAtom(atom("C", 1)); container.addAtom(atom("C", 1)); container.addAtom(atom("C", 3)); container.addAtom(atom("C", 3)); container.addBond(0, 1, IBond.Order.DOUBLE); container.addBond(0, 2, IBond.Order.SINGLE); container.addBond(1, 3, IBond.Order.SINGLE); return container; }
private IAtomContainer makeButane() { IAtomContainer container = makeEthane(); container.addAtom(container.getBuilder().newInstance(IAtom.class, Elements.CARBON)); container.addAtom(container.getBuilder().newInstance(IAtom.class, Elements.CARBON)); container.addBond(1, 2, IBond.Order.SINGLE); container.addBond(2, 3, IBond.Order.SINGLE); return container; }
private void addHydrogens(IAtomContainer container, IAtom atom, int numberOfHydrogens) { for (int i = 0; i < numberOfHydrogens; i++) container.addBond(atom.getBuilder().newInstance(IBond.class, atom, atom.getBuilder().newInstance(IAtom.class, "H"))); }
/** InChI=1/C2H6O.H2O/c1-2-3;/h3H,2H2,1H3;1H2 */ static IAtomContainer ethylAlcoholHydrate() { IAtomContainer m = new AtomContainer(); m.addAtom(new Atom("O")); m.addAtom(new Atom("C")); m.addAtom(new Atom("C")); m.addAtom(new Atom("O")); m.addBond(1, 2, IBond.Order.SINGLE); m.addBond(2, 3, IBond.Order.SINGLE); return m; }
@Test(expected = IllegalArgumentException.class) public void nonCumulatedAtomThrowsException() { IAtomContainer ac = new AtomContainer(); ac.addAtom(new Atom("C")); ac.addAtom(new Atom("C")); ac.addAtom(new Atom("C")); ac.addBond(0, 1, IBond.Order.SINGLE); ac.addBond(1, 2, IBond.Order.SINGLE); ExtendedTetrahedral.findTerminalAtoms(ac, ac.getAtom(0)); }
public IAtomContainer makeCCC() { IAtomContainer container = builder.newInstance(IAtomContainer.class); container.addAtom(builder.newInstance(IAtom.class, "C", new Point2d(-1, -1))); container.addAtom(builder.newInstance(IAtom.class, "C", new Point2d(0, 0))); container.addAtom(builder.newInstance(IAtom.class, "C", new Point2d(1, -1))); container.addBond(0, 1, IBond.Order.SINGLE); container.addBond(1, 2, IBond.Order.SINGLE); return container; }
@Test public void testMethylAmine() throws Exception { IAtomContainer mol = new AtomContainer(); IAtom atom = new Atom("N"); IAtom atom2 = new Atom("C"); mol.addAtom(atom); mol.addAtom(atom2); mol.addBond(0, 1, Order.SINGLE); String[] expectedTypes = {"N.3", "C.3"}; assertAtomTypes(testedAtomTypes, expectedTypes, mol); }
@Test public void testMethanol() throws Exception { IAtomContainer mol = new AtomContainer(); IAtom atom = new Atom("O"); IAtom atom2 = new Atom("C"); mol.addAtom(atom); mol.addAtom(atom2); mol.addBond(0, 1, Order.SINGLE); String[] expectedTypes = {"O.3", "C.3"}; assertAtomTypes(testedAtomTypes, expectedTypes, mol); }
private IAtomContainer makeEthane() { IAtomContainer container = new AtomContainer(); container.addAtom(container.getBuilder().newInstance(IAtom.class, Elements.CARBON)); container.addAtom(container.getBuilder().newInstance(IAtom.class, Elements.CARBON)); container.addBond(0, 1, IBond.Order.SINGLE); return container; }
@Test public void testEthyneRadical() throws Exception { IAtomContainer mol = new AtomContainer(); IAtom atom = new Atom("C"); IAtom atom2 = new Atom("C"); mol.addAtom(atom); mol.addAtom(atom2); mol.addSingleElectron(1); mol.addBond(0, 1, Order.TRIPLE); String[] expectedTypes = {"C.sp", "C.radical.sp1"}; assertAtomTypes(testedAtomTypes, expectedTypes, mol); }
@Test public void testMethanolRadical() throws Exception { IAtomContainer mol = new AtomContainer(); IAtom atom = new Atom("C"); IAtom atom2 = new Atom("O"); mol.addAtom(atom); mol.addAtom(atom2); mol.addSingleElectron(1); mol.addBond(0, 1, IBond.Order.SINGLE); String[] expectedTypes = {"C.sp3", "O.sp3.radical"}; assertAtomTypes(testedAtomTypes, expectedTypes, mol); }
@Test public void testGetWarningMessage() throws Exception { IAtomContainer ac = new AtomContainer(); ac.addAtom(new Atom("Cl")); ac.addAtom(new Atom("H")); ac.addBond(0, 1, Order.TRIPLE); InChIGenerator gen = getFactory().getInChIGenerator(ac); Assert.assertNotNull(gen.getMessage()); Assert.assertTrue(gen.getMessage().contains("Accepted unusual valence")); }
private IAtomContainer singleBondMolecule() { IAtomContainer mol = new AtomContainer(); mol.addAtom(new Atom("C", new Point3d(0.0, 0.0, 0.0))); mol.addAtom(new Atom("O", new Point3d(1.0, 1.0, 1.0))); mol.addBond(0, 1, IBond.Order.SINGLE); return mol; }
@Test public void testAtomContainer_int_int_int_int() { // create an empty container with predefined // array lengths IAtomContainer ac = new AtomContainer(5, 6, 1, 2); Assert.assertEquals(0, ac.getAtomCount()); Assert.assertEquals(0, ac.getElectronContainerCount()); // test whether the ElectronContainer is correctly initialized ac.addBond(ac.getBuilder().newInstance(IBond.class, ac.getBuilder().newInstance(IAtom.class, "C"), ac.getBuilder().newInstance(IAtom.class, "C"), IBond.Order.DOUBLE)); ac.addLonePair(ac.getBuilder().newInstance(ILonePair.class, ac.getBuilder().newInstance(IAtom.class, "N"))); }
@Test public void testDebugAtomContainer_int_int_int_int() { // create an empty container with predefined // array lengths IAtomContainer ac = new DebugAtomContainer(5, 6, 1, 2); Assert.assertEquals(0, ac.getAtomCount()); Assert.assertEquals(0, ac.getElectronContainerCount()); // test whether the ElectronContainer is correctly initialized ac.addBond(ac.getBuilder().newInstance(IBond.class, ac.getBuilder().newInstance(IAtom.class, "C"), ac.getBuilder().newInstance(IAtom.class, "C"), IBond.Order.DOUBLE)); ac.addLonePair(ac.getBuilder().newInstance(ILonePair.class, ac.getBuilder().newInstance(IAtom.class, "N"))); }