BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
BALL::Kekuliser Class Reference

#include <BALL/STRUCTURE/kekulizer.h>

Classes

struct  AtomInfo
 

Public Member Functions

 Kekuliser ()
 
virtual ~Kekuliser ()
 
bool setup (Molecule &ac)
 
void setAromaticRings (const std::vector< std::set< Atom * > > &rings)
 
void setRings (const std::vector< std::set< Atom * > > &rings)
 
const std::vector< Bond * > & getUnassignedBonds () const
 
void clear ()
 
void dump ()
 
void setUseFormalCharges (bool state)
 
bool useFormalCharges () const
 

Protected Member Functions

bool fixAromaticRings_ ()
 
void fixAromaticSystem_ (Position it)
 
virtual Size getPenalty_ (Atom &atom, Index charge)
 
void getMaximumValence_ ()
 
void calculateAromaticSystems_ ()
 
void collectSystems_ (Atom &atom)
 
void collectAromaticAtoms_ ()
 
bool hasAromaticBonds_ (Atom &atom)
 
void applySolution_ (Position pos)
 
Position calculateDistanceScores_ ()
 

Protected Attributes

bool use_formal_charges_
 
std::vector< std::set< Atom * > > aromatic_systems_
 
std::vector< std::set< Atom * > > aromatic_rings_
 
std::vector< std::set< Atom * > > rings_
 
std::vector< Bond * > unassigned_bonds_
 
std::set< const Atom * > aromatic_atoms_
 
std::set< const Atom * > all_aromatic_atoms_
 
HashMap< Atom *, Indexmax_valence_
 
std::set< Atom * > current_aromatic_system_
 
std::vector< AtomInfoatom_infos_
 
Moleculemolecule_
 
Size lowest_penalty_
 
Size current_penalty_
 
std::vector< std::vector
< AtomInfo > > 
solutions_
 

Detailed Description

Class to transform bonds with type "aromatic" to conjugated single and double bonds.
Useage:

Kekulizer k;
k.setAromaticRings(...);
k.setRings(...);
k.setup(Molecule& m);
k.clear();

Definition at line 37 of file kekulizer.h.

Constructor & Destructor Documentation

BALL::Kekuliser::Kekuliser ( )
virtual BALL::Kekuliser::~Kekuliser ( )
inlinevirtual

Definition at line 79 of file kekulizer.h.

Member Function Documentation

void BALL::Kekuliser::applySolution_ ( Position  pos)
protected
void BALL::Kekuliser::calculateAromaticSystems_ ( )
protected
Position BALL::Kekuliser::calculateDistanceScores_ ( )
protected
void BALL::Kekuliser::clear ( )
void BALL::Kekuliser::collectAromaticAtoms_ ( )
protected
void BALL::Kekuliser::collectSystems_ ( Atom atom)
protected
void BALL::Kekuliser::dump ( )
bool BALL::Kekuliser::fixAromaticRings_ ( )
protected
void BALL::Kekuliser::fixAromaticSystem_ ( Position  it)
protected
void BALL::Kekuliser::getMaximumValence_ ( )
protected
virtual Size BALL::Kekuliser::getPenalty_ ( Atom atom,
Index  charge 
)
protectedvirtual
const std::vector<Bond*>& BALL::Kekuliser::getUnassignedBonds ( ) const
inline

Definition at line 91 of file kekulizer.h.

bool BALL::Kekuliser::hasAromaticBonds_ ( Atom atom)
protected
void BALL::Kekuliser::setAromaticRings ( const std::vector< std::set< Atom * > > &  rings)
inline

Definition at line 85 of file kekulizer.h.

void BALL::Kekuliser::setRings ( const std::vector< std::set< Atom * > > &  rings)
inline

Definition at line 88 of file kekulizer.h.

bool BALL::Kekuliser::setup ( Molecule ac)
void BALL::Kekuliser::setUseFormalCharges ( bool  state)
inline

Definition at line 100 of file kekulizer.h.

bool BALL::Kekuliser::useFormalCharges ( ) const
inline

Definition at line 103 of file kekulizer.h.

Member Data Documentation

std::set<const Atom*> BALL::Kekuliser::all_aromatic_atoms_
protected

Definition at line 130 of file kekulizer.h.

std::set<const Atom*> BALL::Kekuliser::aromatic_atoms_
protected

Definition at line 129 of file kekulizer.h.

std::vector<std::set<Atom*> > BALL::Kekuliser::aromatic_rings_
protected

Definition at line 124 of file kekulizer.h.

std::vector<std::set<Atom*> > BALL::Kekuliser::aromatic_systems_
protected

Definition at line 123 of file kekulizer.h.

std::vector<AtomInfo> BALL::Kekuliser::atom_infos_
protected

Definition at line 136 of file kekulizer.h.

std::set<Atom*> BALL::Kekuliser::current_aromatic_system_
protected

Definition at line 133 of file kekulizer.h.

Size BALL::Kekuliser::current_penalty_
protected

Definition at line 139 of file kekulizer.h.

Size BALL::Kekuliser::lowest_penalty_
protected

Definition at line 138 of file kekulizer.h.

HashMap<Atom*, Index> BALL::Kekuliser::max_valence_
protected

Definition at line 131 of file kekulizer.h.

Molecule* BALL::Kekuliser::molecule_
protected

Definition at line 137 of file kekulizer.h.

std::vector<std::set<Atom*> > BALL::Kekuliser::rings_
protected

Definition at line 125 of file kekulizer.h.

std::vector<std::vector<AtomInfo> > BALL::Kekuliser::solutions_
protected

Definition at line 141 of file kekulizer.h.

std::vector<Bond*> BALL::Kekuliser::unassigned_bonds_
protected

Definition at line 126 of file kekulizer.h.

bool BALL::Kekuliser::use_formal_charges_
protected

Definition at line 121 of file kekulizer.h.