BALL  1.4.79
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
BALL::Kekuliser Class Reference

#include <BALL/STRUCTURE/kekulizer.h>

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< AtomInfo > atom_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

§ Kekuliser()

BALL::Kekuliser::Kekuliser ( )

§ ~Kekuliser()

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

Definition at line 79 of file kekulizer.h.

Member Function Documentation

§ applySolution_()

void BALL::Kekuliser::applySolution_ ( Position  pos)
protected

§ calculateAromaticSystems_()

void BALL::Kekuliser::calculateAromaticSystems_ ( )
protected

§ calculateDistanceScores_()

Position BALL::Kekuliser::calculateDistanceScores_ ( )
protected

§ clear()

void BALL::Kekuliser::clear ( )

§ collectAromaticAtoms_()

void BALL::Kekuliser::collectAromaticAtoms_ ( )
protected

§ collectSystems_()

void BALL::Kekuliser::collectSystems_ ( Atom atom)
protected

§ dump()

void BALL::Kekuliser::dump ( )

§ fixAromaticRings_()

bool BALL::Kekuliser::fixAromaticRings_ ( )
protected

§ fixAromaticSystem_()

void BALL::Kekuliser::fixAromaticSystem_ ( Position  it)
protected

§ getMaximumValence_()

void BALL::Kekuliser::getMaximumValence_ ( )
protected

§ getPenalty_()

virtual Size BALL::Kekuliser::getPenalty_ ( Atom atom,
Index  charge 
)
protectedvirtual

§ getUnassignedBonds()

const std::vector<Bond*>& BALL::Kekuliser::getUnassignedBonds ( ) const
inline

Definition at line 91 of file kekulizer.h.

§ hasAromaticBonds_()

bool BALL::Kekuliser::hasAromaticBonds_ ( Atom atom)
protected

§ setAromaticRings()

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

Definition at line 85 of file kekulizer.h.

§ setRings()

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

Definition at line 88 of file kekulizer.h.

§ setup()

bool BALL::Kekuliser::setup ( Molecule ac)

§ setUseFormalCharges()

void BALL::Kekuliser::setUseFormalCharges ( bool  state)
inline

Definition at line 100 of file kekulizer.h.

§ useFormalCharges()

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

Definition at line 103 of file kekulizer.h.

Member Data Documentation

§ all_aromatic_atoms_

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

Definition at line 130 of file kekulizer.h.

§ aromatic_atoms_

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

Definition at line 129 of file kekulizer.h.

§ aromatic_rings_

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

Definition at line 124 of file kekulizer.h.

§ aromatic_systems_

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

Definition at line 123 of file kekulizer.h.

§ atom_infos_

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

Definition at line 136 of file kekulizer.h.

§ current_aromatic_system_

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

Definition at line 133 of file kekulizer.h.

§ current_penalty_

Size BALL::Kekuliser::current_penalty_
protected

Definition at line 139 of file kekulizer.h.

§ lowest_penalty_

Size BALL::Kekuliser::lowest_penalty_
protected

Definition at line 138 of file kekulizer.h.

§ max_valence_

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

Definition at line 131 of file kekulizer.h.

§ molecule_

Molecule* BALL::Kekuliser::molecule_
protected

Definition at line 137 of file kekulizer.h.

§ rings_

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

Definition at line 125 of file kekulizer.h.

§ solutions_

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

Definition at line 141 of file kekulizer.h.

§ unassigned_bonds_

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

Definition at line 126 of file kekulizer.h.

§ use_formal_charges_

bool BALL::Kekuliser::use_formal_charges_
protected

Definition at line 121 of file kekulizer.h.