Chemical Data Processing Library C++ API - Version 1.1.1
MMFF94InteractionParameterizer.hpp
Go to the documentation of this file.
1 /*
2  * MMFF94InteractionParameterizer.hpp
3  *
4  * This file is part of the Chemical Data Processing Toolkit
5  *
6  * Copyright (C) 2003 Thomas Seidel <thomas.seidel@univie.ac.at>
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2 of the License, or (at your option) any later version.
12  *
13  * This library is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public License
19  * along with this library; see the file COPYING. If not, write to
20  * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21  * Boston, MA 02111-1307, USA.
22  */
23 
29 #ifndef CDPL_FORCEFIELD_MMFF94INTERACTIONPARAMETERIZER_HPP
30 #define CDPL_FORCEFIELD_MMFF94INTERACTIONPARAMETERIZER_HPP
31 
32 #include <string>
33 #include <cstddef>
34 #include <memory>
35 
68 #include "CDPL/Util/Array.hpp"
69 #include "CDPL/Math/Matrix.hpp"
70 
71 
72 namespace CDPL
73 {
74 
75  namespace Chem
76  {
77 
78  class Atom;
79  class Bond;
80  } // namespace Chem
81 
82  namespace ForceField
83  {
84 
85  class MMFF94InteractionData;
86 
88  {
89 
90  public:
91  typedef std::shared_ptr<MMFF94InteractionParameterizer> SharedPointer;
92 
94 
96 
98 
100 
102 
104 
106 
108 
110 
112 
114 
116 
118 
120 
122 
124 
126 
128 
130 
132 
134 
136 
138 
140 
142 
144 
146 
147  void setDielectricConstant(double de_const);
148 
149  void setDistanceExponent(double dist_expo);
150 
151  void setParameterSet(unsigned int param_set);
152 
154 
156  unsigned int ia_types = InteractionType::ALL, bool strict = true);
157 
158  private:
159  void setPropertyFunctions();
160 
161  unsigned int getBondTypeIndex(const Chem::Bond& bond) const;
162 
163  unsigned int getNumericAtomType(const Chem::Atom& atom) const;
164 
165  const std::string& getSymbolicAtomType(const Chem::Atom& atom) const;
166 
167  double getAtomCharge(const Chem::Atom& atom) const;
168 
170 
171  std::size_t getTopologicalDistance(const Chem::Atom& atom1, const Chem::Atom& atom2,
172  const Chem::MolecularGraph& molgraph) const;
173 
174  void setup(const Chem::MolecularGraph& molgraph, unsigned int ia_types, bool strict);
175 
176  void setupAromaticRingSet();
177  void setupAtomTypes(bool strict);
178  void setupBondTypeIndices(bool strict);
179  void setupAtomCharges(bool strict);
180  void setupTopDistances();
181 
182  MMFF94BondStretchingInteractionParameterizer bondStretchingParameterizer;
183  MMFF94AngleBendingInteractionParameterizer angleBendingParameterizer;
184  MMFF94StretchBendInteractionParameterizer stretchBendParameterizer;
185  MMFF94OutOfPlaneBendingInteractionParameterizer outOfPlaneParameterizer;
186  MMFF94TorsionInteractionParameterizer torsionParameterizer;
187  MMFF94VanDerWaalsInteractionParameterizer vanDerWaalsParameterizer;
188  MMFF94ElectrostaticInteractionParameterizer electrostaticParameterizer;
189  MMFF94AtomTyper atomTyper;
190  MMFF94BondTyper bondTyper;
191  MMFF94ChargeCalculator chargeCalculator;
193  Chem::FragmentList::SharedPointer usedAromRings;
194  Math::ULMatrix::SharedPointer topDistMatrix;
195  Math::ULMatrix::SharedPointer usedTopDistMatrix;
196  Util::UIArray numAtomTypes;
197  Util::SArray symAtomTypes;
198  Util::UIArray bondTypeIndices;
199  Util::DArray atomCharges;
200  const Chem::MolecularGraph* molGraph;
201  };
202  } // namespace ForceField
203 } // namespace CDPL
204 
205 #endif // CDPL_FORCEFIELD_MMFF94INTERACTIONPARAMETERIZER_HPP
MMFF94BondChargeIncrementTable.hpp
Definition of the class CDPL::ForceField::MMFF94BondChargeIncrementTable.
CDPL::ForceField::MMFF94BondStretchingInteractionParameterizer
Definition: MMFF94BondStretchingInteractionParameterizer.hpp:57
CDPL::ForceField::MMFF94PrimaryToParameterAtomTypeMap::SharedPointer
std::shared_ptr< MMFF94PrimaryToParameterAtomTypeMap > SharedPointer
Definition: MMFF94PrimaryToParameterAtomTypeMap.hpp:59
CDPL::ForceField::MMFF94InteractionParameterizer::setBondStretchingRuleParameterTable
void setBondStretchingRuleParameterTable(const MMFF94BondStretchingRuleParameterTable::SharedPointer &table)
CDPL::ForceField::MMFF94InteractionParameterizer::setAtomTypePropertyTable
void setAtomTypePropertyTable(const MMFF94AtomTypePropertyTable::SharedPointer &table)
APIPrefix.hpp
Definition of the preprocessor macro CDPL_FORCEFIELD_API.
CDPL::ForceField::MMFF94InteractionParameterizer::setVanDerWaalsParameterTable
void setVanDerWaalsParameterTable(const MMFF94VanDerWaalsParameterTable::SharedPointer &table)
CDPL::Util::SArray
Array< std::string > SArray
An array of std::string objects.
Definition: Array.hpp:592
CDPL::ForceField::MMFF94InteractionData
Definition: MMFF94InteractionData.hpp:51
CDPL::ForceField::MMFF94InteractionParameterizer::setSymbolicAtomTypePatternTable
void setSymbolicAtomTypePatternTable(const MMFF94SymbolicAtomTypePatternTable::SharedPointer &table)
CDPL::ForceField::InteractionType::ALL
const unsigned int ALL
Definition: InteractionType.hpp:53
CDPL::Chem::getTopologicalDistance
CDPL_CHEM_API std::size_t getTopologicalDistance(const Atom &atom1, const Atom &atom2, const MolecularGraph &molgraph)
CDPL::ForceField::MMFF94FormalAtomChargeDefinitionTable::SharedPointer
std::shared_ptr< MMFF94FormalAtomChargeDefinitionTable > SharedPointer
Definition: MMFF94FormalAtomChargeDefinitionTable.hpp:61
CDPL::ForceField::MMFF94ParameterSet::STATIC
const unsigned int STATIC
Definition: MMFF94ParameterSet.hpp:46
CDPL::ForceField::MMFF94InteractionParameterizer::setAngleBendingParameterTable
void setAngleBendingParameterTable(const MMFF94AngleBendingParameterTable::SharedPointer &table)
MMFF94BondStretchingRuleParameterTable.hpp
Definition of the class CDPL::ForceField::MMFF94BondStretchingRuleParameterTable.
CDPL::Chem::Bond
Bond.
Definition: Bond.hpp:50
MMFF94ElectrostaticInteractionParameterizer.hpp
Definition of the class CDPL::ForceField::MMFF94ElectrostaticInteractionParameterizer.
MMFF94VanDerWaalsParameterTable.hpp
Definition of the class CDPL::ForceField::MMFF94VanDerWaalsParameterTable.
MMFF94DefaultStretchBendParameterTable.hpp
Definition of the class CDPL::ForceField::MMFF94DefaultStretchBendParameterTable.
CDPL::ForceField::MMFF94InteractionParameterizer::setPartialBondChargeIncrementTable
void setPartialBondChargeIncrementTable(const MMFF94PartialBondChargeIncrementTable::SharedPointer &table)
CDPL::ForceField::MMFF94InteractionParameterizer::operator=
MMFF94InteractionParameterizer & operator=(const MMFF94InteractionParameterizer &parameterizer)
CDPL::ForceField::MMFF94InteractionParameterizer::setDistanceExponent
void setDistanceExponent(double dist_expo)
CDPL::ForceField::MMFF94AromaticAtomTypeDefinitionTable::SharedPointer
std::shared_ptr< MMFF94AromaticAtomTypeDefinitionTable > SharedPointer
Definition: MMFF94AromaticAtomTypeDefinitionTable.hpp:57
MMFF94SymbolicToNumericAtomTypeMap.hpp
Definition of the class CDPL::ForceField::MMFF94SymbolicToNumericAtomTypeMap.
CDPL::ForceField::MMFF94InteractionParameterizer::SharedPointer
std::shared_ptr< MMFF94InteractionParameterizer > SharedPointer
Definition: MMFF94InteractionParameterizer.hpp:91
MMFF94ChargeCalculator.hpp
Definition of the class CDPL::ForceField::MMFF94ChargeCalculator.
MMFF94VanDerWaalsInteractionParameterizer.hpp
Definition of the class CDPL::ForceField::MMFF94VanDerWaalsInteractionParameterizer.
CDPL::ForceField::MMFF94InteractionParameterizer::clearFilterFunctions
void clearFilterFunctions()
CDPL::ForceField::MMFF94OutOfPlaneBendingInteractionParameterizer
Definition: MMFF94OutOfPlaneBendingInteractionParameterizer.hpp:58
InteractionFilterFunctions.hpp
Type definition of generic wrapper classes for storing user-defined interaction filtering functions.
CDPL::ForceField::MMFF94InteractionParameterizer::setElectrostaticFilterFunction
void setElectrostaticFilterFunction(const InteractionFilterFunction2 &func)
CDPL::ForceField::MMFF94InteractionParameterizer::setStretchBendParameterTable
void setStretchBendParameterTable(const MMFF94StretchBendParameterTable::SharedPointer &table)
MMFF94HeavyToHydrogenAtomTypeMap.hpp
Definition of the class CDPL::ForceField::MMFF94HeavyToHydrogenAtomTypeMap.
MMFF94OutOfPlaneBendingParameterTable.hpp
Definition of the class CDPL::ForceField::MMFF94OutOfPlaneBendingParameterTable.
CDPL::ForceField::MMFF94AtomTyper
Definition: MMFF94AtomTyper.hpp:61
CDPL::Chem::Atom
Atom.
Definition: Atom.hpp:52
CDPL::ForceField::MMFF94InteractionParameterizer::setAngleBendingFilterFunction
void setAngleBendingFilterFunction(const InteractionFilterFunction3 &func)
CDPL::ForceField::MMFF94InteractionParameterizer::setTorsionFilterFunction
void setTorsionFilterFunction(const InteractionFilterFunction4 &func)
CDPL::ForceField::MMFF94BondStretchingParameterTable::SharedPointer
std::shared_ptr< MMFF94BondStretchingParameterTable > SharedPointer
Definition: MMFF94BondStretchingParameterTable.hpp:60
CDPL::ForceField::MMFF94InteractionParameterizer::MMFF94InteractionParameterizer
MMFF94InteractionParameterizer(unsigned int param_set=MMFF94ParameterSet::STATIC)
CDPL::ForceField::MMFF94AtomTypePropertyTable::SharedPointer
std::shared_ptr< MMFF94AtomTypePropertyTable > SharedPointer
Definition: MMFF94AtomTypePropertyTable.hpp:59
CDPL::ForceField::MMFF94InteractionParameterizer::setTorsionParameterTable
void setTorsionParameterTable(const MMFF94TorsionParameterTable::SharedPointer &table)
MMFF94ParameterSet.hpp
Definition of constants in namespace CDPL::ForceField::MMFF94ParameterSet.
CDPL::ForceField::MMFF94SymbolicToNumericAtomTypeMap::SharedPointer
std::shared_ptr< MMFF94SymbolicToNumericAtomTypeMap > SharedPointer
Definition: MMFF94SymbolicToNumericAtomTypeMap.hpp:53
CDPL::ForceField::MMFF94VanDerWaalsInteractionParameterizer
Definition: MMFF94VanDerWaalsInteractionParameterizer.hpp:55
MMFF94SymbolicAtomTypePatternTable.hpp
Pattern of the class CDPL::ForceField::MMFF94SymbolicAtomTypePatternTable.
CDPL::ForceField::MMFF94DefaultStretchBendParameterTable::SharedPointer
std::shared_ptr< MMFF94DefaultStretchBendParameterTable > SharedPointer
Definition: MMFF94DefaultStretchBendParameterTable.hpp:60
CDPL::Chem::FragmentList::SharedPointer
std::shared_ptr< FragmentList > SharedPointer
Definition: FragmentList.hpp:52
CDPL::ForceField::InteractionFilterFunction4
std::function< bool(const Chem::Atom &, const Chem::Atom &, const Chem::Atom &, const Chem::Atom &)> InteractionFilterFunction4
Definition: InteractionFilterFunctions.hpp:52
CDPL::ForceField::MMFF94InteractionParameterizer::setPrimaryToParameterAtomTypeMap
void setPrimaryToParameterAtomTypeMap(const MMFF94PrimaryToParameterAtomTypeMap::SharedPointer &map)
CDPL::ForceField::MMFF94StretchBendInteractionParameterizer
Definition: MMFF94StretchBendInteractionParameterizer.hpp:64
CDPL::ForceField::MMFF94AngleBendingParameterTable::SharedPointer
std::shared_ptr< MMFF94AngleBendingParameterTable > SharedPointer
Definition: MMFF94AngleBendingParameterTable.hpp:60
CDPL::Chem::MolecularGraph
MolecularGraph.
Definition: MolecularGraph.hpp:52
CDPL::ForceField::MMFF94BondChargeIncrementTable::SharedPointer
std::shared_ptr< MMFF94BondChargeIncrementTable > SharedPointer
Definition: MMFF94BondChargeIncrementTable.hpp:60
MMFF94OutOfPlaneBendingInteractionParameterizer.hpp
Definition of the class CDPL::ForceField::MMFF94OutOfPlaneBendingInteractionParameterizer.
Array.hpp
Definition of the class CDPL::Util::Array.
MMFF94TorsionInteractionParameterizer.hpp
Definition of the class CDPL::ForceField::MMFF94TorsionInteractionParameterizer.
MMFF94BondStretchingInteractionParameterizer.hpp
Definition of the class CDPL::ForceField::MMFF94BondStretchingInteractionParameterizer.
MMFF94BondTyper.hpp
Definition of the class CDPL::ForceField::MMFF94BondTyper.
MMFF94PrimaryToParameterAtomTypeMap.hpp
Definition of the class CDPL::ForceField::MMFF94PrimaryToParameterAtomTypeMap.
MMFF94AngleBendingParameterTable.hpp
Definition of the class CDPL::ForceField::MMFF94AngleBendingParameterTable.
CDPL::ForceField::MMFF94InteractionParameterizer::setStretchBendFilterFunction
void setStretchBendFilterFunction(const InteractionFilterFunction3 &func)
MMFF94BondStretchingParameterTable.hpp
Definition of the class CDPL::ForceField::MMFF94BondStretchingParameterTable.
CDPL::ForceField::MMFF94TorsionInteractionParameterizer
Definition: MMFF94TorsionInteractionParameterizer.hpp:59
CDPL::ForceField::MMFF94BondStretchingRuleParameterTable::SharedPointer
std::shared_ptr< MMFF94BondStretchingRuleParameterTable > SharedPointer
Definition: MMFF94BondStretchingRuleParameterTable.hpp:60
CDPL::ForceField::MMFF94InteractionParameterizer::setSymbolicToNumericAtomTypeMap
void setSymbolicToNumericAtomTypeMap(const MMFF94SymbolicToNumericAtomTypeMap::SharedPointer &map)
CDPL::ForceField::MMFF94SymbolicAtomTypePatternTable::SharedPointer
std::shared_ptr< MMFF94SymbolicAtomTypePatternTable > SharedPointer
Definition: MMFF94SymbolicAtomTypePatternTable.hpp:58
CDPL::ForceField::MMFF94InteractionParameterizer::setFormalAtomChargeDefinitionTable
void setFormalAtomChargeDefinitionTable(const MMFF94FormalAtomChargeDefinitionTable::SharedPointer &table)
CDPL::Chem::getAromaticRings
CDPL_CHEM_API FragmentList::SharedPointer getAromaticRings(const MolecularGraph &molgraph)
MMFF94AromaticAtomTypeDefinitionTable.hpp
Definition of the class CDPL::ForceField::MMFF94AromaticAtomTypeDefinitionTable.
MMFF94StretchBendInteractionParameterizer.hpp
Definition of the class CDPL::ForceField::MMFF94StretchBendInteractionParameterizer.
CDPL::ForceField::MMFF94InteractionParameterizer::setVanDerWaalsFilterFunction
void setVanDerWaalsFilterFunction(const InteractionFilterFunction2 &func)
CDPL::ForceField::MMFF94InteractionParameterizer::setHeavyToHydrogenAtomTypeMap
void setHeavyToHydrogenAtomTypeMap(const MMFF94HeavyToHydrogenAtomTypeMap::SharedPointer &map)
MMFF94PartialBondChargeIncrementTable.hpp
Definition of the class CDPL::ForceField::MMFF94PartialBondChargeIncrementTable.
CDPL::ForceField::MMFF94InteractionParameterizer::setOutOfPlaneBendingParameterTable
void setOutOfPlaneBendingParameterTable(const MMFF94OutOfPlaneBendingParameterTable::SharedPointer &table)
CDPL::ForceField::MMFF94AromaticSSSRSubset::SharedPointer
std::shared_ptr< MMFF94AromaticSSSRSubset > SharedPointer
A reference-counted smart pointer [SHPTR] for dynamically allocated MMFF94AromaticSSSRSubset instance...
Definition: MMFF94AromaticSSSRSubset.hpp:64
MMFF94AromaticSSSRSubset.hpp
Definition of the class CDPL::ForceField::MMFF94AromaticSSSRSubset.
CDPL::ForceField::MMFF94PartialBondChargeIncrementTable::SharedPointer
std::shared_ptr< MMFF94PartialBondChargeIncrementTable > SharedPointer
Definition: MMFF94PartialBondChargeIncrementTable.hpp:59
MMFF94StretchBendParameterTable.hpp
Definition of the class CDPL::ForceField::MMFF94StretchBendParameterTable.
CDPL
The namespace of the Chemical Data Processing Library.
CDPL::ForceField::MMFF94InteractionParameterizer::setParameterSet
void setParameterSet(unsigned int param_set)
CDPL::ForceField::MMFF94InteractionParameterizer::setBondChargeIncrementTable
void setBondChargeIncrementTable(const MMFF94BondChargeIncrementTable::SharedPointer &table)
CDPL::ForceField::MMFF94InteractionParameterizer::setDielectricConstant
void setDielectricConstant(double de_const)
CDPL::ForceField::MMFF94InteractionParameterizer::setDefaultStretchBendParameterTable
void setDefaultStretchBendParameterTable(const MMFF94DefaultStretchBendParameterTable::SharedPointer &table)
MMFF94AtomTyper.hpp
Definition of the class CDPL::ForceField::MMFF94AtomTyper.
CDPL::ForceField::MMFF94ChargeCalculator
Definition: MMFF94ChargeCalculator.hpp:59
MMFF94AtomTypePropertyTable.hpp
Definition of the class CDPL::ForceField::MMFF94AtomTypePropertyTable.
MMFF94AngleBendingInteractionParameterizer.hpp
Definition of the class CDPL::ForceField::MMFF94AngleBendingInteractionParameterizer.
MMFF94TorsionParameterTable.hpp
Definition of the class CDPL::ForceField::MMFF94TorsionParameterTable.
CDPL::ForceField::MMFF94HeavyToHydrogenAtomTypeMap::SharedPointer
std::shared_ptr< MMFF94HeavyToHydrogenAtomTypeMap > SharedPointer
Definition: MMFF94HeavyToHydrogenAtomTypeMap.hpp:53
CDPL::ForceField::MMFF94VanDerWaalsParameterTable::SharedPointer
std::shared_ptr< MMFF94VanDerWaalsParameterTable > SharedPointer
Definition: MMFF94VanDerWaalsParameterTable.hpp:60
CDPL::ForceField::MMFF94ElectrostaticInteractionParameterizer
Definition: MMFF94ElectrostaticInteractionParameterizer.hpp:54
CDPL::Util::DArray
Array< double > DArray
An array of double precision floating-point numbers.
Definition: Array.hpp:587
Matrix.hpp
Definition of matrix data types.
CDPL_FORCEFIELD_API
#define CDPL_FORCEFIELD_API
Tells the compiler/linker which classes, functions and variables are part of the library API.
CDPL::ForceField::MMFF94InteractionParameterizer::setBondStretchingFilterFunction
void setBondStretchingFilterFunction(const InteractionFilterFunction2 &func)
InteractionType.hpp
Definition of constants in namespace CDPL::ForceField::InteractionType.
CDPL::Util::UIArray
Array< unsigned int > UIArray
An array of unsigned integers.
Definition: Array.hpp:562
CDPL::ForceField::MMFF94InteractionParameterizer::setBondStretchingParameterTable
void setBondStretchingParameterTable(const MMFF94BondStretchingParameterTable::SharedPointer &table)
CDPL::ForceField::MMFF94AngleBendingInteractionParameterizer
Definition: MMFF94AngleBendingInteractionParameterizer.hpp:63
CDPL::Math::Matrix::SharedPointer
std::shared_ptr< SelfType > SharedPointer
Definition: Matrix.hpp:297
CDPL::ForceField::MMFF94StretchBendParameterTable::SharedPointer
std::shared_ptr< MMFF94StretchBendParameterTable > SharedPointer
Definition: MMFF94StretchBendParameterTable.hpp:60
CDPL::ForceField::MMFF94TorsionParameterTable::SharedPointer
std::shared_ptr< MMFF94TorsionParameterTable > SharedPointer
Definition: MMFF94TorsionParameterTable.hpp:60
CDPL::ForceField::MMFF94InteractionParameterizer
Definition: MMFF94InteractionParameterizer.hpp:88
CDPL::ForceField::MMFF94BondTyper
Definition: MMFF94BondTyper.hpp:51
CDPL::ForceField::InteractionFilterFunction3
std::function< bool(const Chem::Atom &, const Chem::Atom &, const Chem::Atom &)> InteractionFilterFunction3
Definition: InteractionFilterFunctions.hpp:50
CDPL::ForceField::MMFF94InteractionParameterizer::MMFF94InteractionParameterizer
MMFF94InteractionParameterizer(const MMFF94InteractionParameterizer &parameterizer)
CDPL::ForceField::MMFF94OutOfPlaneBendingParameterTable::SharedPointer
std::shared_ptr< MMFF94OutOfPlaneBendingParameterTable > SharedPointer
Definition: MMFF94OutOfPlaneBendingParameterTable.hpp:60
MMFF94FormalAtomChargeDefinitionTable.hpp
Definition of the class CDPL::ForceField::MMFF94FormalAtomChargeDefinitionTable.
CDPL::ForceField::MMFF94InteractionParameterizer::parameterize
void parameterize(const Chem::MolecularGraph &molgraph, MMFF94InteractionData &ia_data, unsigned int ia_types=InteractionType::ALL, bool strict=true)
CDPL::ForceField::MMFF94InteractionParameterizer::setOutOfPlaneBendingFilterFunction
void setOutOfPlaneBendingFilterFunction(const InteractionFilterFunction4 &func)
CDPL::ForceField::MMFF94InteractionParameterizer::setAromaticAtomTypeDefinitionTable
void setAromaticAtomTypeDefinitionTable(const MMFF94AromaticAtomTypeDefinitionTable::SharedPointer &table)
CDPL::ForceField::InteractionFilterFunction2
std::function< bool(const Chem::Atom &, const Chem::Atom &)> InteractionFilterFunction2
Definition: InteractionFilterFunctions.hpp:48