Main Page | Modules | Namespace List | Class Hierarchy | Class List | Namespace Members | Class Members

Kekuliser Class Reference
[Miscellaneous]

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

#include <kekulizer.h>

List of all members.

Public Member Functions

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();