BALL
1.4.2
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
include
BALL
MOLMEC
MMFF94
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
11
# include <
BALL/MOLMEC/MMFF94/MMFF94Parameters.h
>
12
#endif
13
14
#ifndef BALL_DATATYPE_HASHSET_H
15
# include <
BALL/DATATYPE/hashSet.h
>
16
#endif
17
18
#ifndef BALL_DATATYPE_STRINGHASHMAP_H
19
# include <
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
27
# include <
BALL/STRUCTURE/atomTyper.h
>
28
#endif
29
30
#include <vector>
31
32
namespace
BALL
33
{
34
using
std::vector;
35
36
class
MMFF94ESParameters;
37
class
Molecule;
38
class
System;
39
41
class
BALL_EXPORT
MMFF94AtomTyper
42
:
public
AtomTyper
43
{
44
public
:
45
46
struct
AromaticType
47
{
48
String
new_type
;
49
Position
atomic_number
;
50
bool
cation
;
51
bool
anion
;
52
};
53
54
BALL_CREATE
(
MMFF94AtomTyper
)
55
56
57
MMFF94AtomTyper
();
58
60
MMFF94AtomTyper(const MMFF94AtomTyper& t);
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
84
StringHashMap<String>
partner_type_to_htype_
;
85
StringHashMap<Position>
id_to_type_
;
86
HashMap<String, AromaticType>
aromatic_types_5_map_
;
87
HashSet<String>
cation_atoms_
;
88
MMFF94AtomTypes
*
atom_types_
;
89
HashSet<Position>
hetero_atom_types_
;
90
};
91
92
96
class
BALL_EXPORT
MMFF94ChargeProcessor
97
:
public
UnaryProcessor
<Atom>
98
{
99
public
:
100
101
BALL_CREATE
(
MMFF94ChargeProcessor
)
102
103
104
MMFF94ChargeProcessor
();
105
107
MMFF94ChargeProcessor
(
const
MMFF94ChargeProcessor
& cp);
108
110
virtual
~MMFF94ChargeProcessor
() {};
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
130
void
assignFormalCharge(
Atom
& atom);
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
146
void
assignPartialCharges_();
147
148
vector<Atom*>
atoms_
;
149
HashSet<Atom*>
unassigned_atoms_
;
150
const
MMFF94ESParameters
*
es_parameters_
;
151
HashMap<String, float>
types_to_charges_
;
152
HashSet<String>
rule_types_
;
153
vector<HashSet<Atom*> >
aromatic_rings_
;
154
};
155
156
}
// namespace BALL
157
158
#endif // BALL_MOLMEC_MMFF94_PROCESSORS_H
Generated by
1.8.3.1