BALL  1.5.0
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.

BALL::Constants::k
BALL_EXTERN_VARIABLE const double k
Definition: constants.h:93