Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

joelib.algo.morgan
Class Morgan  view Morgan download Morgan.java

java.lang.Object
  extended byjoelib.algo.morgan.Morgan

public class Morgan
extends java.lang.Object

Morgan number generation and unique molecule numbering.


Field Summary
private static org.apache.log4j.Category logger
           
private  int newNumberCounter
           
private  AtomDouble[] newNumbers
           
private  TieResolver tieResolver
           
private  boolean tieResolvingProblem
           
 
Constructor Summary
Morgan(TieResolver _tieResolver)
          Constructor for the Morgan object
 
Method Summary
private  void buildDeques(joelib.molecule.JOEMol mol, joelib.algo.BFSResult bfs, wsi.ra.tool.Deque[] deques, int maxBFSnumber)
          Build the sorted BFS spheres stored in deques.
private  joelib.molecule.JOEMol buildNewMolecule(joelib.molecule.JOEMol mol)
          Build a new molecule and use the morgan numbers to get the new numbers.
 boolean calculate(joelib.molecule.JOEMol mol)
          Calculate the morgan numbers of a molecule.
private  joelib.algo.BFSResult getBFS(joelib.molecule.JOEMol mol, joelib.molecule.JOEAtom startAtom)
          Get the result of a breath first search of the given molecule after starting from the given start atom.
private  boolean getNewNumbers(joelib.molecule.JOEMol mol, wsi.ra.tool.Deque deque)
          Recalculate the given numbers of the morgan algorithm.
private  void initNewNumbers(joelib.molecule.JOEMol mol)
          Initialize morgan numbers.
 joelib.molecule.JOEMol renumber(joelib.molecule.JOEMol mol)
          Renumber a molecule and use the calulated morgan numbers and try to resolve renumbering ties.
private  void showDeque(wsi.ra.tool.Deque deque)
          Show deque.
private  void sortNewNumbers()
          Sort morgan numbers.
 boolean tieResolvingProblem()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

private static org.apache.log4j.Category logger

tieResolver

private TieResolver tieResolver

newNumbers

private AtomDouble[] newNumbers

tieResolvingProblem

private boolean tieResolvingProblem

newNumberCounter

private int newNumberCounter
Constructor Detail

Morgan

public Morgan(TieResolver _tieResolver)
Constructor for the Morgan object

Method Detail

calculate

public boolean calculate(joelib.molecule.JOEMol mol)
Calculate the morgan numbers of a molecule.


renumber

public joelib.molecule.JOEMol renumber(joelib.molecule.JOEMol mol)
Renumber a molecule and use the calulated morgan numbers and try to resolve renumbering ties.


tieResolvingProblem

public boolean tieResolvingProblem()

getBFS

private joelib.algo.BFSResult getBFS(joelib.molecule.JOEMol mol,
                                     joelib.molecule.JOEAtom startAtom)
Get the result of a breath first search of the given molecule after starting from the given start atom. The start atom should be the atom with the highest morgan number.


getNewNumbers

private boolean getNewNumbers(joelib.molecule.JOEMol mol,
                              wsi.ra.tool.Deque deque)
Recalculate the given numbers of the morgan algorithm. The first number begins at index 1. All index numbers have after recalculation a difference of 1. If renumbering ties occur in the same BFS sphere, they are tried to be resolved by bond orders or atomic numbers.


buildDeques

private void buildDeques(joelib.molecule.JOEMol mol,
                         joelib.algo.BFSResult bfs,
                         wsi.ra.tool.Deque[] deques,
                         int maxBFSnumber)
Build the sorted BFS spheres stored in deques. The deques are sorted upwards to set the 'renumbering tie'-flags.


buildNewMolecule

private joelib.molecule.JOEMol buildNewMolecule(joelib.molecule.JOEMol mol)
Build a new molecule and use the morgan numbers to get the new numbers. Be carefull: Data elements like descriptors (JOEPairdata) or comment data will not be copied !!!! Data elements like SSSR and all typers should not be copied !!!


initNewNumbers

private void initNewNumbers(joelib.molecule.JOEMol mol)
Initialize morgan numbers.


showDeque

private void showDeque(wsi.ra.tool.Deque deque)
Show deque.


sortNewNumbers

private void sortNewNumbers()
Sort morgan numbers.