public static IAtomContainer getRelevantAtomContainer(IReaction reaction, IAtom atom) { IAtomContainer result = MoleculeSetManipulator.getRelevantAtomContainer(reaction.getReactants(), atom); if (result != null) { return result; } return MoleculeSetManipulator.getRelevantAtomContainer(reaction.getProducts(), atom); }
public static IAtomContainer getRelevantAtomContainer(IReaction reaction, IBond bond) { IAtomContainer result = MoleculeSetManipulator.getRelevantAtomContainer(reaction.getReactants(), bond); if (result != null) { return result; } return MoleculeSetManipulator.getRelevantAtomContainer(reaction.getProducts(), bond); }
/** * * @param reaction * @return */ public static List<WedgeStereoComparisonResult> compare(IReaction reaction) { List<WedgeStereoComparisonResult> results = new ArrayList<>(); WedgeStereoLifter lifter = new WedgeStereoLifter(); IAtomContainerSet reactants = reaction.getReactants(); IAtomContainerSet products = reaction.getProducts(); for (IMapping mapping : reaction.mappings()) { IAtom atomA = (IAtom) mapping.getChemObject(0); IAtom atomB = (IAtom) mapping.getChemObject(1); IAtomContainer atomContainerA = getRelevantAtomContainer(reactants, atomA); IAtomContainer atomContainerB = getRelevantAtomContainer(products, atomB); results.add(compare(atomA, atomContainerA, atomB, atomContainerB, lifter)); } return results; }
@Test public void testGetRelevantAtomContainer_IAtomContainerSet_IAtom() { IAtomContainer ac1 = MoleculeSetManipulator.getRelevantAtomContainer(som, atomInMol1); Assert.assertEquals(mol1, ac1); IAtomContainer ac2 = MoleculeSetManipulator.getRelevantAtomContainer(som, atomInMol2); Assert.assertEquals(mol2, ac2); }
@Test public void testGetRelevantAtomContainer_IAtomContainerSet_IBond() { IAtomContainer ac1 = MoleculeSetManipulator.getRelevantAtomContainer(som, bondInMol1); Assert.assertEquals(mol1, ac1); }
/** * Retrieves the first IAtomContainer containing a given IBond from an * IChemModel. * * @param chemModel The IChemModel object. * @param bond The IBond object to search. * @return The IAtomContainer object found, null if none is found. */ public static IAtomContainer getRelevantAtomContainer(IChemModel chemModel, IBond bond) { IAtomContainer result = null; if (chemModel.getMoleculeSet() != null) { IAtomContainerSet moleculeSet = chemModel.getMoleculeSet(); result = MoleculeSetManipulator.getRelevantAtomContainer(moleculeSet, bond); if (result != null) { return result; } } if (chemModel.getReactionSet() != null) { IReactionSet reactionSet = chemModel.getReactionSet(); return ReactionSetManipulator.getRelevantAtomContainer(reactionSet, bond); } // This should never happen. return null; }
/** * This badly named methods tries to determine which AtomContainer in the * ChemModel is best suited to contain added Atom's and Bond's. */ public static IAtomContainer getRelevantAtomContainer(IChemModel chemModel, IAtom atom) { IAtomContainer result = null; if (chemModel.getMoleculeSet() != null) { IAtomContainerSet moleculeSet = chemModel.getMoleculeSet(); result = MoleculeSetManipulator.getRelevantAtomContainer(moleculeSet, atom); if (result != null) { return result; } } if (chemModel.getReactionSet() != null) { IReactionSet reactionSet = chemModel.getReactionSet(); return ReactionSetManipulator.getRelevantAtomContainer(reactionSet, atom); } if (chemModel.getCrystal() != null && chemModel.getCrystal().contains(atom)) { return chemModel.getCrystal(); } if (chemModel.getRingSet() != null) { return AtomContainerSetManipulator.getRelevantAtomContainer(chemModel.getRingSet(), atom); } throw new IllegalArgumentException("The provided atom is not part of this IChemModel."); }