From: <mig...@us...> - 2008-02-13 12:21:41
|
Revision: 10085 http://cdk.svn.sourceforge.net/cdk/?rev=10085&view=rev Author: miguelrojasch Date: 2008-02-13 04:21:18 -0800 (Wed, 13 Feb 2008) Log Message: ----------- added reverse process of the tautomerization in the test Modified Paths: -------------- branches/miguelrojasch/reaction/src/org/openscience/cdk/test/reaction/type/TautomerizationReactionTest.java Modified: branches/miguelrojasch/reaction/src/org/openscience/cdk/test/reaction/type/TautomerizationReactionTest.java =================================================================== --- branches/miguelrojasch/reaction/src/org/openscience/cdk/test/reaction/type/TautomerizationReactionTest.java 2008-02-13 10:41:47 UTC (rev 10084) +++ branches/miguelrojasch/reaction/src/org/openscience/cdk/test/reaction/type/TautomerizationReactionTest.java 2008-02-13 12:21:18 UTC (rev 10085) @@ -29,6 +29,7 @@ import org.junit.Test; import org.openscience.cdk.CDKConstants; import org.openscience.cdk.DefaultChemObjectBuilder; +import org.openscience.cdk.exception.CDKException; import org.openscience.cdk.interfaces.IAtom; import org.openscience.cdk.interfaces.IBond; import org.openscience.cdk.interfaces.IChemObjectBuilder; @@ -74,23 +75,9 @@ @Test public void testAutomaticCentreActive() throws Exception { IReactionProcess type = new TautomerizationReaction(); + + IMolecule molecule = getAcetaldehyde(); - IMolecule molecule = builder.newMolecule(); - molecule.addAtom(builder.newAtom("O")); - molecule.addAtom(builder.newAtom("C")); - molecule.addBond(0, 1, IBond.Order.DOUBLE); - molecule.addAtom(builder.newAtom("C")); - molecule.addBond(1, 2, IBond.Order.SINGLE); - molecule.addAtom(builder.newAtom("H")); - molecule.addAtom(builder.newAtom("H")); - molecule.addAtom(builder.newAtom("H")); - molecule.addAtom(builder.newAtom("H")); - molecule.addBond(1, 3, IBond.Order.SINGLE); - molecule.addBond(2, 4, IBond.Order.SINGLE); - molecule.addBond(2, 5, IBond.Order.SINGLE); - molecule.addBond(2, 6, IBond.Order.SINGLE); - AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(molecule); - IMoleculeSet setOfReactants = DefaultChemObjectBuilder.getInstance().newMoleculeSet(); setOfReactants.addMolecule(molecule); @@ -104,27 +91,25 @@ IMolecule product = setOfReactions.getReaction(0).getProducts().getMolecule(0); - IMolecule molecule2 = builder.newMolecule(); - molecule2.addAtom(builder.newAtom("O")); - molecule2.addAtom(builder.newAtom("C")); - molecule2.addBond(0, 1, IBond.Order.SINGLE); - molecule2.addAtom(builder.newAtom("C")); - molecule2.addBond(1, 2, IBond.Order.DOUBLE); - molecule2.addAtom(builder.newAtom("H")); - molecule2.addAtom(builder.newAtom("H")); - molecule2.addAtom(builder.newAtom("H")); - molecule2.addAtom(builder.newAtom("H")); - molecule2.addBond(1, 3, IBond.Order.SINGLE); - molecule2.addBond(2, 4, IBond.Order.SINGLE); - molecule2.addBond(2, 5, IBond.Order.SINGLE); - molecule2.addBond(0, 6, IBond.Order.SINGLE); - AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(molecule2); + IMolecule molecule2 = getEthenol(); IQueryAtomContainer queryAtom = QueryAtomContainerCreator.createSymbolAndChargeQueryContainer(product); Assert.assertTrue(UniversalIsomorphismTester.isIsomorph(molecule2,queryAtom)); + + // reverse process + IMoleculeSet setOfReactants2 = DefaultChemObjectBuilder.getInstance().newMoleculeSet(); + setOfReactants2.addMolecule(molecule2); + + IReactionSet setOfReactions2 = type.initiate(setOfReactants2, null); + + Assert.assertEquals(1, setOfReactions2.getReactionCount()); + Assert.assertEquals(1, setOfReactions2.getReaction(0).getProductCount()); + + IMolecule product2 = setOfReactions2.getReaction(0).getProducts().getMolecule(0); + + queryAtom = QueryAtomContainerCreator.createSymbolAndChargeQueryContainer(product2); + Assert.assertTrue(UniversalIsomorphismTester.isIsomorph(molecule,queryAtom)); } - - /** * A unit test suite for JUnit for acetaldehyde. * Reaction: O=C-C-H => O(H)-C=C. @@ -136,22 +121,7 @@ */ @Test public void testManuallyCentreActive() throws Exception { IReactionProcess type = new TautomerizationReaction(); - - IMolecule molecule = builder.newMolecule(); - molecule.addAtom(builder.newAtom("O")); - molecule.addAtom(builder.newAtom("C")); - molecule.addBond(0, 1, IBond.Order.DOUBLE); - molecule.addAtom(builder.newAtom("C")); - molecule.addBond(1, 2, IBond.Order.SINGLE); - molecule.addAtom(builder.newAtom("H")); - molecule.addAtom(builder.newAtom("H")); - molecule.addAtom(builder.newAtom("H")); - molecule.addAtom(builder.newAtom("H")); - molecule.addBond(1, 3, IBond.Order.SINGLE); - molecule.addBond(2, 4, IBond.Order.SINGLE); - molecule.addBond(2, 5, IBond.Order.SINGLE); - molecule.addBond(2, 6, IBond.Order.SINGLE); - AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(molecule); + IMolecule molecule = getAcetaldehyde(); IMoleculeSet setOfReactants = DefaultChemObjectBuilder.getInstance().newMoleculeSet(); setOfReactants.addMolecule(molecule); @@ -174,25 +144,33 @@ Assert.assertEquals(1, setOfReactions.getReaction(0).getProductCount()); IMolecule product = setOfReactions.getReaction(0).getProducts().getMolecule(0); + + IMolecule molecule2 = getEthenol(); - IMolecule molecule2 = builder.newMolecule(); - molecule2.addAtom(builder.newAtom("O")); - molecule2.addAtom(builder.newAtom("C")); - molecule2.addBond(0, 1, IBond.Order.SINGLE); - molecule2.addAtom(builder.newAtom("C")); - molecule2.addBond(1, 2, IBond.Order.DOUBLE); - molecule2.addAtom(builder.newAtom("H")); - molecule2.addAtom(builder.newAtom("H")); - molecule2.addAtom(builder.newAtom("H")); - molecule2.addAtom(builder.newAtom("H")); - molecule2.addBond(1, 3, IBond.Order.SINGLE); - molecule2.addBond(2, 4, IBond.Order.SINGLE); - molecule2.addBond(2, 5, IBond.Order.SINGLE); - molecule2.addBond(0, 6, IBond.Order.SINGLE); - AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(molecule2); - IQueryAtomContainer queryAtom = QueryAtomContainerCreator.createSymbolAndChargeQueryContainer(product); Assert.assertTrue(UniversalIsomorphismTester.isIsomorph(molecule2,queryAtom)); + + // reverse process + /*manually putting the active center*/ + molecule2.getAtom(0).setFlag(CDKConstants.REACTIVE_CENTER,true); + molecule2.getAtom(1).setFlag(CDKConstants.REACTIVE_CENTER,true); + molecule2.getAtom(2).setFlag(CDKConstants.REACTIVE_CENTER,true); + molecule2.getAtom(6).setFlag(CDKConstants.REACTIVE_CENTER,true); + molecule2.getBond(0).setFlag(CDKConstants.REACTIVE_CENTER,true); + molecule2.getBond(1).setFlag(CDKConstants.REACTIVE_CENTER,true); + molecule2.getBond(5).setFlag(CDKConstants.REACTIVE_CENTER,true); + IMoleculeSet setOfReactants2 = DefaultChemObjectBuilder.getInstance().newMoleculeSet(); + setOfReactants2.addMolecule(molecule2); + + IReactionSet setOfReactions2 = type.initiate(setOfReactants2, null); + + Assert.assertEquals(1, setOfReactions2.getReactionCount()); + Assert.assertEquals(1, setOfReactions2.getReaction(0).getProductCount()); + + IMolecule product2 = setOfReactions2.getReaction(0).getProducts().getMolecule(0); + + queryAtom = QueryAtomContainerCreator.createSymbolAndChargeQueryContainer(product2); + Assert.assertTrue(UniversalIsomorphismTester.isIsomorph(molecule,queryAtom)); } /** @@ -221,23 +199,8 @@ @Test public void testCDKConstants_REACTIVE_CENTER() throws Exception { IReactionProcess type = new TautomerizationReaction(); IMoleculeSet setOfReactants = builder.newMoleculeSet(); + IMolecule molecule = getAcetaldehyde(); - IMolecule molecule = builder.newMolecule(); - molecule.addAtom(builder.newAtom("O")); - molecule.addAtom(builder.newAtom("C")); - molecule.addBond(0, 1, IBond.Order.DOUBLE); - molecule.addAtom(builder.newAtom("C")); - molecule.addBond(1, 2, IBond.Order.SINGLE); - molecule.addAtom(builder.newAtom("H")); - molecule.addAtom(builder.newAtom("H")); - molecule.addAtom(builder.newAtom("H")); - molecule.addAtom(builder.newAtom("H")); - molecule.addBond(1, 3, IBond.Order.SINGLE); - molecule.addBond(2, 4, IBond.Order.SINGLE); - molecule.addBond(2, 5, IBond.Order.SINGLE); - molecule.addBond(2, 6, IBond.Order.SINGLE); - AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(molecule); - /*manually putting the active center*/ molecule.getAtom(0).setFlag(CDKConstants.REACTIVE_CENTER,true); molecule.getAtom(1).setFlag(CDKConstants.REACTIVE_CENTER,true); @@ -282,22 +245,7 @@ IReactionProcess type = new TautomerizationReaction(); IMoleculeSet setOfReactants = DefaultChemObjectBuilder.getInstance().newMoleculeSet(); - - IMolecule molecule = builder.newMolecule(); - molecule.addAtom(builder.newAtom("O")); - molecule.addAtom(builder.newAtom("C")); - molecule.addBond(0, 1, IBond.Order.DOUBLE); - molecule.addAtom(builder.newAtom("C")); - molecule.addBond(1, 2, IBond.Order.SINGLE); - molecule.addAtom(builder.newAtom("H")); - molecule.addAtom(builder.newAtom("H")); - molecule.addAtom(builder.newAtom("H")); - molecule.addAtom(builder.newAtom("H")); - molecule.addBond(1, 3, IBond.Order.SINGLE); - molecule.addBond(2, 4, IBond.Order.SINGLE); - molecule.addBond(2, 5, IBond.Order.SINGLE); - molecule.addBond(2, 6, IBond.Order.SINGLE); - AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(molecule); + IMolecule molecule = getAcetaldehyde(); setOfReactants.addMolecule(molecule); @@ -329,4 +277,57 @@ Assert.assertEquals(mappedProductB1, product.getBond(5)); } + /** + * Get the Acetaldehyde structure. + * + * @cdk.inchi InChI=1/C2H4O/c1-2-3/h2H,1H3 + * + * @return The IMolecule + * @throws CDKException + */ + private IMolecule getAcetaldehyde() throws CDKException { + IMolecule molecule = builder.newMolecule(); + molecule.addAtom(builder.newAtom("O")); + molecule.addAtom(builder.newAtom("C")); + molecule.addBond(0, 1, IBond.Order.DOUBLE); + molecule.addAtom(builder.newAtom("C")); + molecule.addBond(1, 2, IBond.Order.SINGLE); + molecule.addAtom(builder.newAtom("H")); + molecule.addAtom(builder.newAtom("H")); + molecule.addAtom(builder.newAtom("H")); + molecule.addAtom(builder.newAtom("H")); + molecule.addBond(1, 3, IBond.Order.SINGLE); + molecule.addBond(2, 4, IBond.Order.SINGLE); + molecule.addBond(2, 5, IBond.Order.SINGLE); + molecule.addBond(2, 6, IBond.Order.SINGLE); + AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(molecule); + return molecule; + } + + /** + * Get the Ethenol structure. + * + * @cdk.inchi InChI=1/C2H4O/c1-2-3/h2-3H,1H2 + * + * @return The IMolecule + * @throws CDKException + */ + private IMolecule getEthenol() throws CDKException { + IMolecule molecule2 = builder.newMolecule(); + molecule2.addAtom(builder.newAtom("O")); + molecule2.addAtom(builder.newAtom("C")); + molecule2.addBond(0, 1, IBond.Order.SINGLE); + molecule2.addAtom(builder.newAtom("C")); + molecule2.addBond(1, 2, IBond.Order.DOUBLE); + molecule2.addAtom(builder.newAtom("H")); + molecule2.addAtom(builder.newAtom("H")); + molecule2.addAtom(builder.newAtom("H")); + molecule2.addAtom(builder.newAtom("H")); + molecule2.addBond(1, 3, IBond.Order.SINGLE); + molecule2.addBond(2, 4, IBond.Order.SINGLE); + molecule2.addBond(2, 5, IBond.Order.SINGLE); + molecule2.addBond(0, 6, IBond.Order.SINGLE); + AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(molecule2); + return molecule2; + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |