BALL 1.5.0
GAFFTypeProcessor.h
Go to the documentation of this file.
1// -*- Mode: C++; tab-width: 2; -*-
2// vi: set ts=2:
3//
4
5#ifndef BALL_MOLMEC_AMBER_GAFFTYPEPROCESSOR_H
6#define BALL_MOLMEC_AMBER_GAFFTYPEPROCESSOR_H
7
8#ifndef BALL_CONCEPT_COMPOSITE_H
10#endif
11
12#ifndef BALL_CONCEPT_PROCESSOR_H
14#endif
15
16#ifndef BALL_MOLMEC_AMBER_GAFFCESPARSER_H
18#endif
19
20#ifndef BALL_DATATYPE_OPTIONS_H
22#endif
23
24#ifndef BALL_COMMON_EXCEPTION_H
26#endif
27
28#ifndef BALL_KERNEL_MOLECULE_H
29# include <BALL/KERNEL/molecule.h>
30#endif
31
32#include <vector>
33#include <map>
34
35namespace BALL
36{
38 {
39 public:
42 {
50 };
51
53 {
56
59 };
60
62 {
65
68 };
69
70 enum BALL_EXPORT BOND_TYPES
71 {
78 AB
79 };
80
82 GAFFTypeProcessor(const Options& new_options);
84 virtual Processor::Result operator() (Composite &composite);
85
86 std::set<String> getTypeNames() const;
87
89
90 protected:
91 // helper functions used in identifying the correct atom type
92 std::vector<TypeDefinition> getCarbonTypes_() { return atom_types_[6]; }
93 std::vector<TypeDefinition> getHydrogenTypes_() { return atom_types_[1]; }
94 std::vector<TypeDefinition> getNitrogenTypes_() { return atom_types_[7]; }
95 std::vector<TypeDefinition> getOxygenTypes_() { return atom_types_[8]; }
96 std::vector<TypeDefinition> getSulfurTypes_() { return atom_types_[16]; }
97
106
109
114
117
122 bool planarAtom_(const Atom& atom);
123
127
131
132 //for every CESstring in atomtable store the "predicate tree"
133 //built by GAFFCESParser
135
136 // stores the vectors of atom types indexed by atomic number for fast retrieval
137 std::map<Position, std::vector<TypeDefinition> > atom_types_;
138
139 // smallest set of smallest rings used for atomic environment strings
140 std::vector<std::vector<Atom*> > sssr_;
141
144 };
145}
146
147#endif
Definition: constants.h:13
GAFFTypeProcessor(const Options &new_options)
std::vector< std::vector< Atom * > > sssr_
StringHashMap< GAFFCESParser * > ces_parsers_
std::vector< TypeDefinition > getCarbonTypes_()
void precomputeAtomProperties_(Molecule *molecule)
std::vector< TypeDefinition > getSulfurTypes_()
void annotateBondTypes_()
Helper for precomputeBondProperties.
bool planarAtom_(const Atom &atom)
void annotateRingSizes_()
Helper for precomputeAtomProperties.
std::vector< TypeDefinition > getOxygenTypes_()
std::vector< TypeDefinition > getHydrogenTypes_()
std::vector< TypeDefinition > getNitrogenTypes_()
void precomputeBondProperties_(Molecule *molecule)
compute aromaticity, ring memberships, GAFF bond typization, ...
void annotateAliphaticAndAromaticRingAtoms_()
void postProcessAtomTypes_(Molecule *molecule)
std::map< Position, std::vector< TypeDefinition > > atom_types_
std::set< String > getTypeNames() const
bool assignAtomtype_(Atom &atom)
static const String ATOMTYPE_FILENAME
path to the file containing the atom type definitions
static const String GAFF_ATOMTYPE_POSTPROCESSING
switch cleanup of GAFF types (cc=>cd, ...) on or off
static const String ATOMTYPE_FILENAME
path to the file containing the atom type definitions
static const bool GAFF_ATOMTYPE_POSTPROCESSING
switch cleanup of GAFF types (cc=>cd, ...) on or off
#define BALL_EXPORT
Definition: COMMON/global.h:50