BALL 1.5.0
MMFF94Processors.h
Go to the documentation of this file.
1// -*- Mode: C++; tab-width: 2; -*-
2// vi: set ts=2:
3//
4// $Id: MMFF94Processors.h,v 1.1.8.1 2007/03/25 21:25:18 oliver Exp $
5//
6
7#ifndef BALL_MOLMEC_MMFF94_PROCESSORS_H
8#define BALL_MOLMEC_MMFF94_PROCESSORS_H
9
10#ifndef BALL_MOLMEC_MMFF94_MMFF94PARAMETERS_H
12#endif
13
14#ifndef BALL_DATATYPE_HASHSET_H
16#endif
17
18#ifndef BALL_DATATYPE_STRINGHASHMAP_H
20#endif
21
22#ifndef BALL_KERNEL_BOND_H
23# include <BALL/KERNEL/bond.h>
24#endif
25
26#ifndef BALL_STRUCTURE_ATOMTYPER_H
28#endif
29
30#include <vector>
31
32namespace BALL
33{
34 using std::vector;
35
36 class MMFF94ESParameters;
37 class Molecule;
38 class System;
39
42 : public AtomTyper
43 {
44 public:
45
47 {
50 bool cation;
51 bool anion;
52 };
53
55
56
58
61
63 virtual ~MMFF94AtomTyper() {};
64
66 virtual void assignTo(System& s);
67
69 virtual bool setupHydrogenTypes(Parameters& p, const String& section);
70
72 virtual bool setupSymbolsToTypes(Parameters& p, const String& section);
73
75 virtual bool setupAromaticTypes(Parameters& p, const String& section);
76
78 void collectHeteroAtomTypes(const MMFF94AtomTypes& atom_types);
79
80 protected:
81
82 bool assignAromaticType_5_(Atom& atom, Position L5, bool anion, bool cation);
83
90 };
91
92
97 : public UnaryProcessor<Atom>
98 {
99 public:
100
102
103
105
108
111
113 const MMFF94ChargeProcessor& operator = (const MMFF94ChargeProcessor& cp)
114 ;
115
117 virtual void clear()
118 ;
119
121 virtual bool start();
122
124 virtual bool finish();
125
127 virtual Processor::Result operator () (Atom& atom);
128
131
133 const HashSet<Atom*>& getUnassignedAtoms() { return unassigned_atoms_;}
134
136 void setESParameters(const MMFF94ESParameters& es) { es_parameters_ = &es; }
137
139 void setup(const String& filename);
140
142 void setAromaticRings(const vector<HashSet<Atom*> >& rings) { aromatic_rings_ = rings;}
143
144 protected:
145
147
148 vector<Atom*> atoms_;
153 vector<HashSet<Atom*> > aromatic_rings_;
154 };
155
156} // namespace BALL
157
158#endif // BALL_MOLMEC_MMFF94_PROCESSORS_H
#define BALL_CREATE(name)
Definition: create.h:62
Definition: constants.h:13
HashMap class based on the STL map (containing serveral convenience functions)
Definition: hashMap.h:74
StringHashMap< Position > id_to_type_
HashSet< Position > hetero_atom_types_
virtual bool setupSymbolsToTypes(Parameters &p, const String &section)
Read the matching from ID to numerical type from MFFSYMB.PAR.
bool assignAromaticType_5_(Atom &atom, Position L5, bool anion, bool cation)
HashMap< String, AromaticType > aromatic_types_5_map_
MMFF94AtomTypes * atom_types_
HashSet< String > cation_atoms_
virtual bool setupHydrogenTypes(Parameters &p, const String &section)
Read the hydrogen matching from MMFFHDEF.PAR.
void collectHeteroAtomTypes(const MMFF94AtomTypes &atom_types)
virtual void assignTo(System &s)
StringHashMap< String > partner_type_to_htype_
virtual bool setupAromaticTypes(Parameters &p, const String &section)
Read the matching from general ID to ID in aromatic rings.
void setAromaticRings(const vector< HashSet< Atom * > > &rings)
HashSet< Atom * > unassigned_atoms_
vector< HashSet< Atom * > > aromatic_rings_
const MMFF94ESParameters * es_parameters_
void setup(const String &filename)
const HashSet< Atom * > & getUnassignedAtoms()
void setESParameters(const MMFF94ESParameters &es)
void assignFormalCharge(Atom &atom)
HashMap< String, float > types_to_charges_
#define BALL_EXPORT
Definition: COMMON/global.h:50