BALL::Kekuliser Class Reference
[Miscellaneous]

#include <BALL/STRUCTURE/kekulizer.h>

List of all members.


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

Constructor & Destructor Documentation

BALL::Kekuliser::Kekuliser (  ) 
virtual BALL::Kekuliser::~Kekuliser (  )  [inline, virtual]

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 
) [protected, virtual]
const std::vector<Bond*>& BALL::Kekuliser::getUnassignedBonds (  )  const [inline]
bool BALL::Kekuliser::hasAromaticBonds_ ( Atom atom  )  [protected]
void BALL::Kekuliser::setAromaticRings ( const std::vector< std::set< Atom * > > &  rings  )  [inline]
void BALL::Kekuliser::setRings ( const std::vector< std::set< Atom * > > &  rings  )  [inline]
bool BALL::Kekuliser::setup ( Molecule ac  ) 
void BALL::Kekuliser::setUseFormalCharges ( bool  state  )  [inline]
bool BALL::Kekuliser::useFormalCharges (  )  const [inline]

Member Data Documentation

std::set<const Atom*> BALL::Kekuliser::all_aromatic_atoms_ [protected]
std::set<const Atom*> BALL::Kekuliser::aromatic_atoms_ [protected]
std::vector<std::set<Atom*> > BALL::Kekuliser::aromatic_rings_ [protected]
std::vector<std::set<Atom*> > BALL::Kekuliser::aromatic_systems_ [protected]
std::vector<AtomInfo> BALL::Kekuliser::atom_infos_ [protected]
std::vector<std::set<Atom*> > BALL::Kekuliser::rings_ [protected]
std::vector<std::vector<AtomInfo> > BALL::Kekuliser::solutions_ [protected]
std::vector<Bond*> BALL::Kekuliser::unassigned_bonds_ [protected]