chemaxon.reaction
Class Recap

java.lang.Object
  extended bychemaxon.reaction.CutBondReviser
      extended bychemaxon.reaction.Recap

public class Recap
extends CutBondReviser

The RECAP module. Fragments molecules along configurable cut-bond reactions with the application of the following rules:

  1. Never cut a hydrogen-connecting bond.
  2. Never cut a bond connecting a ring-carbon and a hetero atom (optional).
  3. Never cut ring bonds.
  4. Refuse a cut if any of the resulting fragments is on the specified Notlist.
  5. Refuse a cut if the number of open bonds in any of the resulting fragments exceeds the specified limit.
  6. Refuse a cut if the number of atoms in any of the resulting fragments is less than minatomcount.
The cut-bond reactions, the forbidden fragment list (notlist) and the maximum number of open bonds per fragment are given in the configuration XML.

Reference:

RECAP - Retrosynthetic Combinatorial Analysis Procedure: A Powerful New Technique for Identifying Privileged Molecular Fragments with Useful Applications in Combinatorical Chemistry, J. Chem. Inf. Comput. Sci. 1998, 38. 511-522

Since:
JChem 2.0
Author:
Nora Mate

Field Summary
 
Fields inherited from class chemaxon.reaction.CutBondReviser
classifier, fragmenter, mol
 
Constructor Summary
Recap()
          Default constructor.
Recap(Molecule[] notlist, int maxcutcount, int minatomcount, boolean cutRingCHetero)
          Constructor.
 
Method Summary
 void clear(int a1, int a2)
          Clears cut-bond info in arrays.
protected  void init(org.dom4j.Element element, Standardizer standardizer, java.lang.String dir)
          Initializes the reviser.
 boolean revise(int a1, int a2)
          Returns true if the cut-bond is accepted, false otherwise.
 void set(int a1, int a2)
          Sets cut-bond info in arrays.
 void setCutRingCHetero(boolean cutRingCHetero)
          Sets whether cuts between ring carbons and hetero atoms are allowed.
 void setMaxCutCount(int maxcutcount)
          Sets the maximum number of cuts per fragment.
 void setMinAtomCount(int minatomcount)
          Sets the minimum number of atoms per fragment.
protected  void setMolecule(Molecule mol)
          Sets the input molecule.
 void setNotlist(Molecule[] notlist)
          Sets the Notlist array.
 
Methods inherited from class chemaxon.reaction.CutBondReviser
create, getMolecule, setFragmenter
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Recap

public Recap()
Default constructor.


Recap

public Recap(Molecule[] notlist,
             int maxcutcount,
             int minatomcount,
             boolean cutRingCHetero)
Constructor. Sets the searcher objects corresponding to the forbidden fragment queries. Sets the maximum number of open bonds in a fragment.

Parameters:
notlist - is the list of forbidden fragments
maxcutcount - is the maximum number of open bonds in a fragment
minatomcount - is the minimum number of atoms in a fragment
Method Detail

init

protected void init(org.dom4j.Element element,
                    Standardizer standardizer,
                    java.lang.String dir)
             throws java.io.IOException
Initializes the reviser.

Overrides:
init in class CutBondReviser
Parameters:
element - is the configuration DOM element node
standardizer - is the standardizer object
dir - is the root directory
Throws:
java.io.IOException - on configuration error

setNotlist

public void setNotlist(Molecule[] notlist)
Sets the Notlist array.

Parameters:
notlist - is the forbidden block list

setMaxCutCount

public void setMaxCutCount(int maxcutcount)
Sets the maximum number of cuts per fragment.

Parameters:
maxcutcount - is the maximum number of cuts per fragment

setMinAtomCount

public void setMinAtomCount(int minatomcount)
Sets the minimum number of atoms per fragment.

Parameters:
minatomcount - is the minimum number of atoms per fragment

setCutRingCHetero

public void setCutRingCHetero(boolean cutRingCHetero)
Sets whether cuts between ring carbons and hetero atoms are allowed.

Parameters:
cutRingCHetero - is true if cuts between ring carbons and hetero atoms are allowed

setMolecule

protected void setMolecule(Molecule mol)
                    throws chemaxon.sss.search.SearchException
Sets the input molecule. Initializes the map arrays.

Overrides:
setMolecule in class CutBondReviser
Parameters:
mol - is the input molecule
Throws:
chemaxon.sss.search.SearchException - on error

revise

public boolean revise(int a1,
                      int a2)
Returns true if the cut-bond is accepted, false otherwise. Recap refuses a cut precisely in the following cases:

  1. It is a hydrogen-connecting bond.
  2. It is a bond connecting a ring-carbon and a hetero atom (optional).
  3. It is a ring bond.
  4. Any of the resulting fragments is on the specified Notlist.
  5. The number of open bonds in any of the resulting fragments exceeds maxcutcount.
  6. The number of atoms in any of the resulting fragments is less than minatomcount.

Overrides:
revise in class CutBondReviser
Parameters:
a1 - is the first atom index of the cut-bond
a2 - is the second atom index of the cut-bond
Returns:
whether the cut-bond is accepted

set

public void set(int a1,
                int a2)
Sets cut-bond info in arrays. Updates the atom2cutcount, atom2rootdfs, atom2dfs and dfs2atom arrays. Resets acut.

Overrides:
set in class CutBondReviser
Parameters:
a1 - is the first atom of the cut-bond (in DFS order)
a2 - is the second atom of the cut-bond (in DFS order)

clear

public void clear(int a1,
                  int a2)
Clears cut-bond info in arrays. Updates the atom2cutcount, atom2rootdfs, atom2dfs and dfs2atom arrays.

Overrides:
clear in class CutBondReviser
Parameters:
a1 - is the first atom of the cut-bond
a2 - is the second atom of the cut-bond