From: <mig...@us...> - 2006-09-13 22:38:47
|
Revision: 6864 http://svn.sourceforge.net/cdk/?rev=6864&view=rev Author: miguelrojasch Date: 2006-09-13 15:38:27 -0700 (Wed, 13 Sep 2006) Log Message: ----------- added mapping of IChemObjects between reactants and products Modified Paths: -------------- trunk/cdk/src/org/openscience/cdk/reaction/type/RadicalSiteInitiationReaction.java trunk/cdk/src/org/openscience/cdk/test/reaction/type/RadicalSiteInitiationReactionTest.java Modified: trunk/cdk/src/org/openscience/cdk/reaction/type/RadicalSiteInitiationReaction.java =================================================================== --- trunk/cdk/src/org/openscience/cdk/reaction/type/RadicalSiteInitiationReaction.java 2006-09-13 17:07:15 UTC (rev 6863) +++ trunk/cdk/src/org/openscience/cdk/reaction/type/RadicalSiteInitiationReaction.java 2006-09-13 22:38:27 UTC (rev 6864) @@ -8,6 +8,7 @@ import org.openscience.cdk.graph.ConnectivityChecker; import org.openscience.cdk.interfaces.IAtom; import org.openscience.cdk.interfaces.IBond; +import org.openscience.cdk.interfaces.IMapping; import org.openscience.cdk.interfaces.IMolecule; import org.openscience.cdk.interfaces.IMoleculeSet; import org.openscience.cdk.interfaces.IReaction; @@ -109,7 +110,6 @@ *@exception CDKException Description of the Exception */ public IReactionSet initiate(IMoleculeSet reactants, IMoleculeSet agents) throws CDKException{ - boolean foundProducts = false; logger.debug("initiate reaction: RadicalSiteInitiationReaction"); if (reactants.getMoleculeCount() != 1) { @@ -172,24 +172,30 @@ acCloned.removeElectronContainer(bond2P); - foundProducts = true; - + /* mapping */ -// IMapping mapping = DefaultChemObjectBuilder.getInstance().newMapping(atoms[i], acCloned.getAtomAt(atom0P)); + IMapping mapping = atom.getBuilder().newMapping(atoms[i], acCloned.getAtom(atom0P)); + reaction.addMapping(mapping); + mapping = atom.getBuilder().newMapping(atom, acCloned.getAtom(atom1P)); + reaction.addMapping(mapping); + mapping = atom.getBuilder().newMapping(atomConn, acCloned.getAtom(atom2P)); + reaction.addMapping(mapping); + mapping = atom.getBuilder().newMapping(bonds[j], acCloned.getBond(bond1P)); + reaction.addMapping(mapping); + /*breaked bond*/ +// mapping = atom.getBuilder().newMapping(bondsI[k], acCloned.getBond(bond2P)); // reaction.addMapping(mapping); -// mapping = DefaultChemObjectBuilder.getInstance().newMapping(atom, acCloned.getAtomAt(atom1P)); -// reaction.addMapping(mapping); -// mapping = DefaultChemObjectBuilder.getInstance().newMapping(bondsI[k].getConnectedAtom(atom), acCloned.getAtomAt(atom2P)); -// reaction.addMapping(mapping); -// mapping = DefaultChemObjectBuilder.getInstance().newMapping(bonds[j], acCloned.getBondAt(bond1P)); -// reaction.addMapping(mapping); -// mapping = DefaultChemObjectBuilder.getInstance().newMapping(bondsI[k], acCloned.getBondAt(bond2P)); -// reaction.addMapping(mapping); - + IMoleculeSet moleculeSet = ConnectivityChecker.partitionIntoMolecules(acCloned); for(int z = 0; z < moleculeSet.getAtomContainerCount() ; z++) reaction.addProduct(moleculeSet.getMolecule(z)); + + + + setOfReactions.addReaction(reaction); + + } } } Modified: trunk/cdk/src/org/openscience/cdk/test/reaction/type/RadicalSiteInitiationReactionTest.java =================================================================== --- trunk/cdk/src/org/openscience/cdk/test/reaction/type/RadicalSiteInitiationReactionTest.java 2006-09-13 17:07:15 UTC (rev 6863) +++ trunk/cdk/src/org/openscience/cdk/test/reaction/type/RadicalSiteInitiationReactionTest.java 2006-09-13 22:38:27 UTC (rev 6864) @@ -10,6 +10,7 @@ import org.openscience.cdk.SingleElectron; import org.openscience.cdk.exception.CDKException; import org.openscience.cdk.interfaces.IAtom; +import org.openscience.cdk.interfaces.IBond; import org.openscience.cdk.interfaces.IMolecule; import org.openscience.cdk.interfaces.IMoleculeSet; import org.openscience.cdk.interfaces.IReactionSet; @@ -18,10 +19,10 @@ import org.openscience.cdk.isomorphism.matchers.QueryAtomContainerCreator; import org.openscience.cdk.reaction.IReactionProcess; import org.openscience.cdk.reaction.type.RadicalSiteInitiationReaction; -import org.openscience.cdk.smiles.SmilesGenerator; import org.openscience.cdk.smiles.SmilesParser; import org.openscience.cdk.test.CDKTestCase; import org.openscience.cdk.tools.HydrogenAdder; +import org.openscience.cdk.tools.manipulator.ReactionManipulator; /** * TestSuite that runs a test for the RearrangementRadical2ReactionTest. @@ -69,26 +70,35 @@ Assert.assertEquals(2, setOfReactions.getReaction(0).getProductCount()); - IMolecule product = setOfReactions.getReaction(0).getProducts().getMolecule(0); - SmilesGenerator sg = new SmilesGenerator(product.getBuilder()); + IMolecule product1 = setOfReactions.getReaction(0).getProducts().getMolecule(0); /*C=C*/ Molecule molecule2 = (new SmilesParser()).parseSmiles("C=C"); adder.addImplicitHydrogensToSatisfyValency(molecule2); - QueryAtomContainer qAC = QueryAtomContainerCreator.createSymbolAndChargeQueryContainer(product); + QueryAtomContainer qAC = QueryAtomContainerCreator.createSymbolAndChargeQueryContainer(product1); Assert.assertTrue(UniversalIsomorphismTester.isIsomorph(molecule2,qAC)); - product = setOfReactions.getReaction(0).getProducts().getMolecule(1); + IMolecule product2 = setOfReactions.getReaction(0).getProducts().getMolecule(1); /*[C*]*/ molecule2 = (new SmilesParser()).parseSmiles("[C+]"); - adder.addImplicitHydrogensToSatisfyValency(molecule); + adder.addImplicitHydrogensToSatisfyValency(molecule2); atom = molecule2.getAtom(0); molecule2.addElectronContainer(new SingleElectron(atom)); atom.setFormalCharge(0); - qAC = QueryAtomContainerCreator.createSymbolAndChargeQueryContainer(product); + + qAC = QueryAtomContainerCreator.createSymbolAndChargeQueryContainer(product2); Assert.assertTrue(UniversalIsomorphismTester.isIsomorph(molecule2,qAC)); - + + Assert.assertEquals(4,setOfReactions.getReaction(0).getMappings().length); + IAtom mappedProductA1 = (IAtom)ReactionManipulator.getMappedChemObject(setOfReactions.getReaction(0), molecule.getAtom(2)); + assertEquals(mappedProductA1, product2.getAtom(0)); + IBond mappedProductB1 = (IBond)ReactionManipulator.getMappedChemObject(setOfReactions.getReaction(0), molecule.getBond(0)); + assertEquals(mappedProductB1, product1.getBond(0)); + IAtom mappedProductA2 = (IAtom)ReactionManipulator.getMappedChemObject(setOfReactions.getReaction(0), molecule.getAtom(0)); + assertEquals(mappedProductA2, product1.getAtom(0)); + IAtom mappedProductA3 = (IAtom)ReactionManipulator.getMappedChemObject(setOfReactions.getReaction(0), molecule.getAtom(1)); + assertEquals(mappedProductA3, product1.getAtom(1)); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |