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