BALL::AromaticityProcessor Class Reference

#include <BALL/QSAR/aromaticityProcessor.h>

Inheritance diagram for BALL::AromaticityProcessor:
BALL::UnaryProcessor< AtomContainer > BALL::UnaryFunctor< AtomContainer, Processor::Result >

List of all members.


Classes

struct  Default
 

Default values for options.

More...
struct  Option
 

Option names.

More...

Public Member Functions

Constructors and Destructors
 AromaticityProcessor ()
 AromaticityProcessor (const AromaticityProcessor &aro)
virtual ~AromaticityProcessor ()
Assignment
AromaticityProcessoroperator= (const AromaticityProcessor &aro)
Accessors
void aromatize (const vector< vector< Atom * > > &sssr, AtomContainer &ac)
void aromatizeSimple (vector< vector< Atom * > > &sssr)
Processor-related methods
Processor::Result operator() (AtomContainer &ac)
virtual bool start ()

Protected Member Functions

Predicates
bool isValid_ (const AtomContainer &ac)

Private Member Functions

bool simpleCanBeAromatic_ (const HashSet< Atom * > &ring)
bool simpleCanBeAromaticWeaker_ (const HashSet< Atom * > &ring)
void extendAromaticSystem_ (vector< HashSet< Atom * > > &sssr, HashSet< Atom * > ring)
bool hasConjugatedDoubleBonds_ (HashSet< Atom * > ring)
Size countPiElectrons_ (HashSet< Atom * > &ring)

Private Attributes

bool overwrite_bond_orders_

Public Attributes

Options options
 

options


void setDefaultOptions ()

Detailed Description

Processor method to detect aromaticity of AtomContainers. If it is called as a processor with the operator (), the RingPerceptionProcessor is called before, to calculate a ring set. It can be called explicitely with aromatize with a ringset as parameter.


Constructor & Destructor Documentation

BALL::AromaticityProcessor::AromaticityProcessor (  ) 

Default constructor

BALL::AromaticityProcessor::AromaticityProcessor ( const AromaticityProcessor aro  ) 

Copy constructor

virtual BALL::AromaticityProcessor::~AromaticityProcessor (  )  [virtual]

Destrcutor


Member Function Documentation

void BALL::AromaticityProcessor::aromatize ( const vector< vector< Atom * > > &  sssr,
AtomContainer ac 
)

Calculated the aromaticity of the molcule and sets the properties "IsAromatic" for aromatic atoms, and Bond::ORDER__AROMATIC for bonds which are aromatic.

Parameters:
SSSR ring set as vector<vector<Atom*> >, (vector of rings in vector<Atom*>) after the processing this variable holds all aromatic systems, which are not necessarily single rings!
void BALL::AromaticityProcessor::aromatizeSimple ( vector< vector< Atom * > > &  sssr  ) 

Method to set aromaticity with the use of simple rules. Each ring from the given SSSR set (which needs just to be a set of rings) is examined for itself. (needed for the implementation of the MMFF94 force field which does not agree with the advanced araomtaticity definition of the default method.).

It does not set any aromaticity flags, neither at the atoms nor bonds to bond order aromatic! sssr is the set to be examined, only aromatic rings will stay
Size BALL::AromaticityProcessor::countPiElectrons_ ( HashSet< Atom * > &  ring  )  [private]
void BALL::AromaticityProcessor::extendAromaticSystem_ ( vector< HashSet< Atom * > > &  sssr,
HashSet< Atom * >  ring 
) [private]
bool BALL::AromaticityProcessor::hasConjugatedDoubleBonds_ ( HashSet< Atom * >  ring  )  [private]
bool BALL::AromaticityProcessor::isValid_ ( const AtomContainer ac  )  [protected]
Processor::Result BALL::AromaticityProcessor::operator() ( AtomContainer  )  [virtual]

operator ()

Reimplemented from BALL::UnaryProcessor< AtomContainer >.

AromaticityProcessor& BALL::AromaticityProcessor::operator= ( const AromaticityProcessor aro  ) 

Assignment operator

void BALL::AromaticityProcessor::setDefaultOptions (  ) 

reset the options to default values

bool BALL::AromaticityProcessor::simpleCanBeAromatic_ ( const HashSet< Atom * > &  ring  )  [private]
bool BALL::AromaticityProcessor::simpleCanBeAromaticWeaker_ ( const HashSet< Atom * > &  ring  )  [private]
virtual bool BALL::AromaticityProcessor::start (  )  [virtual]

start method

Reimplemented from BALL::UnaryProcessor< AtomContainer >.


Member Data Documentation

Should we set the bond orders to aromatic or merely store the information as a property of the bond? This value depends on the value of the option OVERWRITE_BOND_ORDERS