My work consist of trying to reproduce a mass spectrum. For this, I need reaction tools.
I have implemented a reaction package which I use and I would like submit to cdk and to know what the people think and its opinions about this. I have tried that its input is very simple. And it is like so.

1: Reaction reaction = new Reaction();
2: reaction.addReactant(molecule?);
3: Object[] params = {new Integer(0)};
4: reaction.setParameters(params);
5: reaction.setNameReaction(“NameOfReaction”);
6: reaction.startReaction();
7:               ReactionParameters rp = reaction.getReactionParameters();      
//not necessary for the reaction
8:               ReactionSpecification rs = reaction.getReactionSpecification();   //not necessary for the reaction
9: Molecule fragmentedMolecules = reaction.getProducts().getMolecules();

1: implemented already by cdk
2: also by cdk
3: Its function is to specific a parameter (Temperature or bond to reaction) which has importance in the process.
4: set the parameter.
5: set the name of the reaction
6: starts the reaction
7: get the parameters
8: get the specific specifications of the reactions (title, vendor, reference, etc..)
9: get the products of the reactions.

The structure of this package contains:

link image:

a ReactionsType which is a extends of Reaction and controls the process. It loads the corresponding class, determined according to the name of the reaction.
a ReactionsTools which has some tools for the reactions .
the diverse reactions class extends of ReactionsType. Each reaction contains an Analysator method (determinate if is possible the reaction) and the constructor method (make the process)
a ReactionsFactory which load the reactions.xml file
a ReactionsModel interface of the structure reactions
a reactions.xml which has all imformation of the reactions which is structured so:

<entry id="electronimpactpbd" term="Electron impact for pi-Bond Dissociation">
             <metadata name="dc:creator" content="IUPAC"/>
             <metadata name="dc:identifier" content="COMPENDIUM:E01999"/>
             <metadata name="dc:contributor" content="mrc"/>
             <metadata name="dc:date" content="2005-03-13"/>
     <metadataLocation dictRef="reactions-metadata:Location">
         <metadata dictRef="reactions-metadata:LocationClass" content="org.openscience.massspectra.reaction.ElectronImpactPBD"/>
     <metadataParameters dictRef="reactions-metadata:Parameters">
         <metadata dictRef="parameters:Number" content="1"/>
             <metadata dataType="xsd:Integer" content="Position Bond"/>

         Term used to describe ionization of any species by electrons accelerated between 50 and 150 eV. Usually 70 eV
         electrons are used to produce positive ions. In this case pi-Bond Dissociation.
     <metadataList dictRef="reaction-metadata:Classification">
         <metadata dictRef="reaction-metadata:reactionClass" content="reaction-processor-metadata:electronionization"/>
         <imagedata dictRef="reactions-metadata:CML" content="examples/ElectronImpactPBD1.cml"/>

The first part is used for the reaction package. Id(name of reaction), localization and Parameters which can be define.

The second part has the function to create a web page which is dictionary about reaction. Its contains definition and an example of each reaction and etc...
I think that it should be a good information for the community if they search if a predicted reaction there is possible in cdk like descriptors-qsar .

link webpage: 

If someone hat some suggestion!!


Miuel Rojas Cherto(
Junior Research Group for Applied Bioinformatics(
Cologne University BioInformatics Center (
Zülpicher Str. 47, 50674 Cologne
Tel: +49(0)221-470-7428   Fax: +49 (0) 221-470-7786