Skip to content

Commit

Permalink
Makes the reaction module independent from the data module
Browse files Browse the repository at this point in the history
Signed-off-by: ngn <jeliazkova.nina@gmail.com>
  • Loading branch information
egonw committed Apr 15, 2012
1 parent eb90ed7 commit a21ccc2
Show file tree
Hide file tree
Showing 43 changed files with 90 additions and 124 deletions.
1 change: 0 additions & 1 deletion src/META-INF/reaction.cdkdepends
@@ -1,6 +1,5 @@
cdk-annotation.jar
cdk-interfaces.jar
cdk-data.jar
cdk-core.jar
cdk-standard.jar
cdk-libiocml.jar
Expand Down
2 changes: 1 addition & 1 deletion src/main/org/openscience/cdk/reaction/ReactionChain.java
Expand Up @@ -43,7 +43,7 @@
* in a step of the chain.
*
* @author miguelrojasch <miguelrojasch@yahoo.es>
* @cdk.module reaction
* @cdk.module extra
*/
@TestClass(value="org.openscience.cdk.reaction.ReactionChainTest")
public class ReactionChain extends ReactionSet{
Expand Down
Expand Up @@ -20,7 +20,6 @@
*/
package org.openscience.cdk.reaction.mechanism;

import org.openscience.cdk.DefaultChemObjectBuilder;
import org.openscience.cdk.annotations.TestClass;
import org.openscience.cdk.annotations.TestMethod;
import org.openscience.cdk.atomtype.CDKAtomTypeMatcher;
Expand Down Expand Up @@ -111,18 +110,18 @@ public IReaction initiate(IAtomContainerSet atomContainerSet, ArrayList<IAtom> a
type = atMatcher.findMatchingAtomType(reactantCloned, atom2C);
if (type == null) return null;

IReaction reaction = DefaultChemObjectBuilder.getInstance().newInstance(IReaction.class);
IReaction reaction = atom1C.getBuilder().newInstance(IReaction.class);
reaction.addReactant(molecule1);

/* mapping */
for(IAtom atom:molecule1.atoms()){
IMapping mapping = DefaultChemObjectBuilder.getInstance().newInstance(
IMapping mapping = atom1C.getBuilder().newInstance(
IMapping.class,
atom, reactantCloned.getAtom(molecule1.getAtomNumber(atom)));
reaction.addMapping(mapping);
}
for(IAtom atom:molecule2.atoms()){
IMapping mapping = DefaultChemObjectBuilder.getInstance().newInstance(
IMapping mapping = atom1C.getBuilder().newInstance(
IMapping.class,
atom, reactantCloned.getAtom(molecule2.getAtomNumber(atom)));
reaction.addMapping(mapping);
Expand Down
Expand Up @@ -20,7 +20,6 @@
*/
package org.openscience.cdk.reaction.mechanism;

import org.openscience.cdk.DefaultChemObjectBuilder;
import org.openscience.cdk.annotations.TestClass;
import org.openscience.cdk.annotations.TestMethod;
import org.openscience.cdk.atomtype.CDKAtomTypeMatcher;
Expand Down Expand Up @@ -119,16 +118,16 @@ public IReaction initiate(IAtomContainerSet atomContainerSet, ArrayList<IAtom> a
type = atMatcher.findMatchingAtomType(reactantCloned, atom3C);
if (type == null) return null;

IReaction reaction = DefaultChemObjectBuilder.getInstance().newInstance(IReaction.class);
IReaction reaction = atom1C.getBuilder().newInstance(IReaction.class);
reaction.addReactant(molecule1);

/* mapping */
for(IAtom atom:molecule1.atoms()){
IMapping mapping = DefaultChemObjectBuilder.getInstance().newInstance(IMapping.class,atom, reactantCloned.getAtom(molecule1.getAtomNumber(atom)));
IMapping mapping = atom1C.getBuilder().newInstance(IMapping.class,atom, reactantCloned.getAtom(molecule1.getAtomNumber(atom)));
reaction.addMapping(mapping);
}
for(IAtom atom:molecule2.atoms()){
IMapping mapping = DefaultChemObjectBuilder.getInstance().newInstance(IMapping.class,atom, reactantCloned.getAtom(molecule2.getAtomNumber(atom)));
IMapping mapping = atom1C.getBuilder().newInstance(IMapping.class,atom, reactantCloned.getAtom(molecule2.getAtomNumber(atom)));
reaction.addMapping(mapping);
}

Expand Down
Expand Up @@ -20,8 +20,6 @@
*/
package org.openscience.cdk.reaction.mechanism;

import org.openscience.cdk.DefaultChemObjectBuilder;
import org.openscience.cdk.LonePair;
import org.openscience.cdk.annotations.TestClass;
import org.openscience.cdk.annotations.TestMethod;
import org.openscience.cdk.atomtype.CDKAtomTypeMatcher;
Expand All @@ -32,6 +30,7 @@
import org.openscience.cdk.interfaces.IAtomContainerSet;
import org.openscience.cdk.interfaces.IAtomType;
import org.openscience.cdk.interfaces.IBond;
import org.openscience.cdk.interfaces.ILonePair;
import org.openscience.cdk.interfaces.IMapping;
import org.openscience.cdk.interfaces.IReaction;
import org.openscience.cdk.reaction.IReactionMechanism;
Expand Down Expand Up @@ -107,19 +106,19 @@ public IReaction initiate(IAtomContainerSet atomContainerSet, ArrayList<IAtom> a

charge = atom2C.getFormalCharge();
atom2C.setFormalCharge(charge-1);
reactantCloned.addLonePair(new LonePair(atom2C));
reactantCloned.addLonePair(atom1C.getBuilder().newInstance(ILonePair.class, atom2C));
// check if resulting atom type is reasonable: an acceptor atom cannot be charged positive*/
atom2C.setHybridization(null);
AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(reactantCloned);
type = atMatcher.findMatchingAtomType(reactantCloned, atom2C);
if (type == null) return null;

IReaction reaction = DefaultChemObjectBuilder.getInstance().newInstance(IReaction.class);
IReaction reaction = atom1C.getBuilder().newInstance(IReaction.class);
reaction.addReactant(molecule);

/* mapping */
for(IAtom atom:molecule.atoms()){
IMapping mapping = DefaultChemObjectBuilder.getInstance().newInstance(IMapping.class,atom, reactantCloned.getAtom(molecule.getAtomNumber(atom)));
IMapping mapping = atom1C.getBuilder().newInstance(IMapping.class,atom, reactantCloned.getAtom(molecule.getAtomNumber(atom)));
reaction.addMapping(mapping);
}
if(bond1.getOrder() != IBond.Order.SINGLE) {
Expand Down
Expand Up @@ -20,8 +20,6 @@
*/
package org.openscience.cdk.reaction.mechanism;

import org.openscience.cdk.DefaultChemObjectBuilder;
import org.openscience.cdk.SingleElectron;
import org.openscience.cdk.annotations.TestClass;
import org.openscience.cdk.annotations.TestMethod;
import org.openscience.cdk.atomtype.CDKAtomTypeMatcher;
Expand All @@ -34,6 +32,7 @@
import org.openscience.cdk.interfaces.IBond;
import org.openscience.cdk.interfaces.IMapping;
import org.openscience.cdk.interfaces.IReaction;
import org.openscience.cdk.interfaces.ISingleElectron;
import org.openscience.cdk.reaction.IReactionMechanism;
import org.openscience.cdk.tools.manipulator.AtomContainerManipulator;
import org.openscience.cdk.tools.manipulator.BondManipulator;
Expand Down Expand Up @@ -96,8 +95,8 @@ public IReaction initiate(IAtomContainerSet atomContainerSet, ArrayList<IAtom> a
else
BondManipulator.decreaseBondOrder(reactantCloned.getBond(posBond1));

reactantCloned.addSingleElectron(new SingleElectron(atom1C));
reactantCloned.addSingleElectron(new SingleElectron(atom2C));
reactantCloned.addSingleElectron(bond1.getBuilder().newInstance(ISingleElectron.class, atom1C));
reactantCloned.addSingleElectron(bond1.getBuilder().newInstance(ISingleElectron.class, atom2C));
AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(reactantCloned);

// check if resulting atom type is reasonable
Expand All @@ -110,12 +109,12 @@ public IReaction initiate(IAtomContainerSet atomContainerSet, ArrayList<IAtom> a
type = atMatcher.findMatchingAtomType(reactantCloned, atom2C);
if (type == null) return null;

IReaction reaction = DefaultChemObjectBuilder.getInstance().newInstance(IReaction.class);
IReaction reaction = atom2C.getBuilder().newInstance(IReaction.class);
reaction.addReactant(molecule);

/* mapping */
for(IAtom atom:molecule.atoms()){
IMapping mapping = DefaultChemObjectBuilder.getInstance().newInstance(IMapping.class,atom, reactantCloned.getAtom(molecule.getAtomNumber(atom)));
IMapping mapping = atom2C.getBuilder().newInstance(IMapping.class,atom, reactantCloned.getAtom(molecule.getAtomNumber(atom)));
reaction.addMapping(mapping);
}
if(bond1.getOrder() != IBond.Order.SINGLE) {
Expand Down
Expand Up @@ -20,8 +20,6 @@
*/
package org.openscience.cdk.reaction.mechanism;

import org.openscience.cdk.DefaultChemObjectBuilder;
import org.openscience.cdk.SingleElectron;
import org.openscience.cdk.annotations.TestClass;
import org.openscience.cdk.annotations.TestMethod;
import org.openscience.cdk.atomtype.CDKAtomTypeMatcher;
Expand Down Expand Up @@ -115,18 +113,18 @@ public IReaction initiate(IAtomContainerSet atomContainerSet, ArrayList<IAtom> a
type = atMatcher.findMatchingAtomType(reactantCloned, atom2C);
if (type == null) return null;

reactantCloned.addSingleElectron(new SingleElectron(atom3C));
reactantCloned.addSingleElectron(atom2C.getBuilder().newInstance(ISingleElectron.class, atom3C));
atom3C.setHybridization(null);
AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(reactantCloned);
type = atMatcher.findMatchingAtomType(reactantCloned, atom3C);
if (type == null) return null;

IReaction reaction = DefaultChemObjectBuilder.getInstance().newInstance(IReaction.class);
IReaction reaction = atom2C.getBuilder().newInstance(IReaction.class);
reaction.addReactant(molecule);

/* mapping */
for(IAtom atom:molecule.atoms()){
IMapping mapping = DefaultChemObjectBuilder.getInstance().newInstance(IMapping.class,atom, reactantCloned.getAtom(molecule.getAtomNumber(atom)));
IMapping mapping = atom2C.getBuilder().newInstance(IMapping.class,atom, reactantCloned.getAtom(molecule.getAtomNumber(atom)));
reaction.addMapping(mapping);
}

Expand Down
Expand Up @@ -20,8 +20,6 @@
*/
package org.openscience.cdk.reaction.mechanism;

import org.openscience.cdk.DefaultChemObjectBuilder;
import org.openscience.cdk.SingleElectron;
import org.openscience.cdk.annotations.TestClass;
import org.openscience.cdk.annotations.TestMethod;
import org.openscience.cdk.atomtype.CDKAtomTypeMatcher;
Expand Down Expand Up @@ -109,18 +107,18 @@ public IReaction initiate(IAtomContainerSet atomContainerSet, ArrayList<IAtom> a
IAtomType type = atMatcher.findMatchingAtomType(reactantCloned, atom2C);
if (type == null) return null;

reactantCloned.addSingleElectron(new SingleElectron(atom3C));
reactantCloned.addSingleElectron(atom2C.getBuilder().newInstance(ISingleElectron.class, atom3C));
atom3C.setHybridization(null);
AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(reactantCloned);
type = atMatcher.findMatchingAtomType(reactantCloned, atom3C);
if (type == null) return null;

IReaction reaction = DefaultChemObjectBuilder.getInstance().newInstance(IReaction.class);
IReaction reaction = atom2C.getBuilder().newInstance(IReaction.class);
reaction.addReactant(molecule);

/* mapping */
for(IAtom atom:molecule.atoms()){
IMapping mapping = DefaultChemObjectBuilder.getInstance().newInstance(IMapping.class,atom, reactantCloned.getAtom(molecule.getAtomNumber(atom)));
IMapping mapping = atom2C.getBuilder().newInstance(IMapping.class,atom, reactantCloned.getAtom(molecule.getAtomNumber(atom)));
reaction.addMapping(mapping);
}

Expand Down
Expand Up @@ -24,9 +24,6 @@
import java.util.List;

import org.openscience.cdk.CDKConstants;
import org.openscience.cdk.DefaultChemObjectBuilder;
import org.openscience.cdk.LonePair;
import org.openscience.cdk.SingleElectron;
import org.openscience.cdk.annotations.TestClass;
import org.openscience.cdk.annotations.TestMethod;
import org.openscience.cdk.atomtype.CDKAtomTypeMatcher;
Expand Down Expand Up @@ -116,7 +113,7 @@ public IReaction initiate(IAtomContainerSet atomContainerSet, ArrayList<IAtom> a
List<ISingleElectron> selectron = reactantCloned.getConnectedSingleElectronsList(atom1C);
reactantCloned.removeSingleElectron(selectron.get(selectron.size() -1));

reactantCloned.addSingleElectron(new SingleElectron(atom3C));
reactantCloned.addSingleElectron(bond2.getBuilder().newInstance(ISingleElectron.class, atom3C));

}else if(atom1C.getFormalCharge() > 0){
int charge = atom1C.getFormalCharge();
Expand All @@ -134,7 +131,7 @@ public IReaction initiate(IAtomContainerSet atomContainerSet, ArrayList<IAtom> a

charge = atom3C.getFormalCharge();
atom3C.setFormalCharge(charge-1);
reactantCloned.addLonePair(new LonePair(atom3C));
reactantCloned.addLonePair(bond2.getBuilder().newInstance(ILonePair.class, atom3C));
atom3C.setFlag(CDKConstants.ISAROMATIC,false);
}else
return null;
Expand All @@ -149,12 +146,12 @@ public IReaction initiate(IAtomContainerSet atomContainerSet, ArrayList<IAtom> a
type = atMatcher.findMatchingAtomType(reactantCloned, atom3C);
if (type == null) return null;

IReaction reaction = DefaultChemObjectBuilder.getInstance().newInstance(IReaction.class);
IReaction reaction = bond2.getBuilder().newInstance(IReaction.class);
reaction.addReactant(molecule);

/* mapping */
for(IAtom atom:molecule.atoms()){
IMapping mapping = DefaultChemObjectBuilder.getInstance().newInstance(IMapping.class,atom, reactantCloned.getAtom(molecule.getAtomNumber(atom)));
IMapping mapping = bond2.getBuilder().newInstance(IMapping.class,atom, reactantCloned.getAtom(molecule.getAtomNumber(atom)));
reaction.addMapping(mapping);
}
if(bond2.getOrder() != IBond.Order.SINGLE) {
Expand Down
Expand Up @@ -20,8 +20,6 @@
*/
package org.openscience.cdk.reaction.mechanism;

import org.openscience.cdk.DefaultChemObjectBuilder;
import org.openscience.cdk.SingleElectron;
import org.openscience.cdk.annotations.TestClass;
import org.openscience.cdk.annotations.TestMethod;
import org.openscience.cdk.atomtype.CDKAtomTypeMatcher;
Expand All @@ -34,6 +32,7 @@
import org.openscience.cdk.interfaces.IBond;
import org.openscience.cdk.interfaces.IMapping;
import org.openscience.cdk.interfaces.IReaction;
import org.openscience.cdk.interfaces.ISingleElectron;
import org.openscience.cdk.reaction.IReactionMechanism;
import org.openscience.cdk.tools.manipulator.AtomContainerManipulator;
import org.openscience.cdk.tools.manipulator.BondManipulator;
Expand Down Expand Up @@ -100,7 +99,7 @@ public IReaction initiate(IAtomContainerSet atomContainerSet, ArrayList<IAtom> a

int charge = atom1C.getFormalCharge();
atom1C.setFormalCharge(charge+1);
reactantCloned.addSingleElectron(new SingleElectron(atom2C));
reactantCloned.addSingleElectron(atom1C.getBuilder().newInstance(ISingleElectron.class, atom2C));

// check if resulting atom type is reasonable
atom1C.setHybridization(null);
Expand All @@ -112,12 +111,12 @@ public IReaction initiate(IAtomContainerSet atomContainerSet, ArrayList<IAtom> a
type = atMatcher.findMatchingAtomType(reactantCloned, atom2C);
if (type == null)return null;

IReaction reaction = DefaultChemObjectBuilder.getInstance().newInstance(IReaction.class);
IReaction reaction = atom1C.getBuilder().newInstance(IReaction.class);
reaction.addReactant(molecule);

/* mapping */
for(IAtom atom:molecule.atoms()){
IMapping mapping = DefaultChemObjectBuilder.getInstance().newInstance(IMapping.class,atom, reactantCloned.getAtom(molecule.getAtomNumber(atom)));
IMapping mapping = atom1C.getBuilder().newInstance(IMapping.class,atom, reactantCloned.getAtom(molecule.getAtomNumber(atom)));
reaction.addMapping(mapping);
}
if(bond1.getOrder() != IBond.Order.SINGLE) {
Expand Down
Expand Up @@ -20,8 +20,6 @@
*/
package org.openscience.cdk.reaction.mechanism;

import org.openscience.cdk.DefaultChemObjectBuilder;
import org.openscience.cdk.SingleElectron;
import org.openscience.cdk.annotations.TestClass;
import org.openscience.cdk.annotations.TestMethod;
import org.openscience.cdk.atomtype.CDKAtomTypeMatcher;
Expand All @@ -34,6 +32,7 @@
import org.openscience.cdk.interfaces.ILonePair;
import org.openscience.cdk.interfaces.IMapping;
import org.openscience.cdk.interfaces.IReaction;
import org.openscience.cdk.interfaces.ISingleElectron;
import org.openscience.cdk.reaction.IReactionMechanism;
import org.openscience.cdk.tools.manipulator.AtomContainerManipulator;

Expand Down Expand Up @@ -89,7 +88,7 @@ public IReaction initiate(IAtomContainerSet atomContainerSet, ArrayList<IAtom> a
List<ILonePair> lps = reactantCloned.getConnectedLonePairsList(reactantCloned.getAtom(posAtom));
reactantCloned.removeLonePair(lps.get(lps.size() - 1));

reactantCloned.addSingleElectron(new SingleElectron(reactantCloned.getAtom(posAtom)));
reactantCloned.addSingleElectron(molecule.getBuilder().newInstance(ISingleElectron.class, reactantCloned.getAtom(posAtom)));
int charge = reactantCloned.getAtom(posAtom).getFormalCharge();
reactantCloned.getAtom(posAtom).setFormalCharge(charge+1);

Expand All @@ -100,12 +99,12 @@ public IReaction initiate(IAtomContainerSet atomContainerSet, ArrayList<IAtom> a
if (type == null)
return null;

IReaction reaction = DefaultChemObjectBuilder.getInstance().newInstance(IReaction.class);
IReaction reaction = molecule.getBuilder().newInstance(IReaction.class);
reaction.addReactant(molecule);

/* mapping */
for(IAtom atom:molecule.atoms()){
IMapping mapping = DefaultChemObjectBuilder.getInstance().newInstance(IMapping.class,atom, reactantCloned.getAtom(molecule.getAtomNumber(atom)));
IMapping mapping = molecule.getBuilder().newInstance(IMapping.class,atom, reactantCloned.getAtom(molecule.getAtomNumber(atom)));
reaction.addMapping(mapping);
}
reaction.addProduct(reactantCloned);
Expand Down
Expand Up @@ -20,7 +20,6 @@
*/
package org.openscience.cdk.reaction.mechanism;

import org.openscience.cdk.DefaultChemObjectBuilder;
import org.openscience.cdk.annotations.TestClass;
import org.openscience.cdk.annotations.TestMethod;
import org.openscience.cdk.atomtype.CDKAtomTypeMatcher;
Expand Down Expand Up @@ -112,12 +111,12 @@ public IReaction initiate(IAtomContainerSet atomContainerSet, ArrayList<IAtom> a
type = atMatcher.findMatchingAtomType(reactantCloned, atom2C);
if (type == null) return null;

IReaction reaction = DefaultChemObjectBuilder.getInstance().newInstance(IReaction.class);
IReaction reaction = atom2C.getBuilder().newInstance(IReaction.class);
reaction.addReactant(molecule);

/* mapping */
for(IAtom atom:molecule.atoms()){
IMapping mapping = DefaultChemObjectBuilder.getInstance().newInstance(IMapping.class,atom, reactantCloned.getAtom(molecule.getAtomNumber(atom)));
IMapping mapping = atom2C.getBuilder().newInstance(IMapping.class,atom, reactantCloned.getAtom(molecule.getAtomNumber(atom)));
reaction.addMapping(mapping);
}
reaction.addProduct(reactantCloned);
Expand Down
Expand Up @@ -20,7 +20,6 @@
*/
package org.openscience.cdk.reaction.mechanism;

import org.openscience.cdk.DefaultChemObjectBuilder;
import org.openscience.cdk.annotations.TestClass;
import org.openscience.cdk.annotations.TestMethod;
import org.openscience.cdk.atomtype.CDKAtomTypeMatcher;
Expand Down Expand Up @@ -115,12 +114,12 @@ public IReaction initiate(IAtomContainerSet atomContainerSet, ArrayList<IAtom> a
type = atMatcher.findMatchingAtomType(reactantCloned, atom3C);
if (type == null) return null;

IReaction reaction = DefaultChemObjectBuilder.getInstance().newInstance(IReaction.class);
IReaction reaction = atom2C.getBuilder().newInstance(IReaction.class);
reaction.addReactant(molecule);

/* mapping */
for(IAtom atom:molecule.atoms()){
IMapping mapping = DefaultChemObjectBuilder.getInstance().newInstance(IMapping.class,atom, reactantCloned.getAtom(molecule.getAtomNumber(atom)));
IMapping mapping = atom2C.getBuilder().newInstance(IMapping.class,atom, reactantCloned.getAtom(molecule.getAtomNumber(atom)));
reaction.addMapping(mapping);
}

Expand Down

0 comments on commit a21ccc2

Please sign in to comment.