 |
RDKit
Open-source cheminformatics and machine learning.
|
Go to the documentation of this file.
13 #ifndef _RD_MMFFATOMTYPER_H__
14 #define _RD_MMFFATOMTYPER_H__
30 namespace DefaultParameters {
45 class RingMembershipSize;
50 : mmffAtomType(0), mmffFormalCharge(0.0), mmffPartialCharge(0.0){};
52 std::uint8_t mmffAtomType;
68 std::ostream &oStream = std::cout);
70 unsigned int getMMFFBondType(
const Bond *bond);
71 unsigned int getMMFFAngleType(
const ROMol &mol,
const unsigned int idx1,
72 const unsigned int idx2,
73 const unsigned int idx3);
74 const std::pair<unsigned int, unsigned int> getMMFFTorsionType(
75 const ROMol &mol,
const unsigned int idx1,
const unsigned int idx2,
76 const unsigned int idx3,
const unsigned int idx4);
77 void computeMMFFCharges(
const ROMol &mol);
79 const ROMol &mol,
unsigned int idx2,
unsigned int idx3);
83 URANGE_CHECK(idx, this->d_MMFFAtomPropertiesPtrVect.size());
85 return this->d_MMFFAtomPropertiesPtrVect[idx]->mmffAtomType;
88 URANGE_CHECK(idx, this->d_MMFFAtomPropertiesPtrVect.size());
90 return this->d_MMFFAtomPropertiesPtrVect[idx]->mmffFormalCharge;
93 URANGE_CHECK(idx, this->d_MMFFAtomPropertiesPtrVect.size());
95 return this->d_MMFFAtomPropertiesPtrVect[idx]->mmffPartialCharge;
102 this->d_stretchBendTerm = state;
114 PRECONDITION((mmffVariant ==
"MMFF94") || (mmffVariant ==
"MMFF94s"),
117 this->d_mmffs = ((mmffVariant ==
"MMFF94s") ?
true :
false);
120 return (this->d_mmffs ?
"MMFF94s" :
"MMFF94");
123 PRECONDITION(dielConst > 0.0,
"bad dielectric constant");
125 this->d_dielConst = dielConst;
129 this->d_dielModel = dielModel;
133 this->d_verbosity = verbosity;
139 bool getMMFFBondStretchParams(
const ROMol &mol,
const unsigned int idx1,
140 const unsigned int idx2,
unsigned int &bondType,
142 bool getMMFFAngleBendParams(
const ROMol &mol,
143 const unsigned int idx1,
144 const unsigned int idx2,
const unsigned int idx3,
145 unsigned int &angleType,
147 bool getMMFFStretchBendParams(
const ROMol &mol,
const unsigned int idx1,
148 const unsigned int idx2,
149 const unsigned int idx3,
150 unsigned int &stretchBendType,
154 bool getMMFFTorsionParams(
const ROMol &mol,
const unsigned int idx1,
155 const unsigned int idx2,
const unsigned int idx3,
156 const unsigned int idx4,
unsigned int &torsionType,
158 bool getMMFFOopBendParams(
const ROMol &mol,
const unsigned int idx1,
159 const unsigned int idx2,
const unsigned int idx3,
160 const unsigned int idx4,
162 bool getMMFFVdWParams(
const unsigned int idx1,
const unsigned int idx2,
166 void setMMFFHeavyAtomType(
const RingMembershipSize &rmSize,
const Atom *atom);
167 void setMMFFHydrogenType(
const Atom *atom);
168 void setMMFFFormalCharge(
const unsigned int idx,
const double fChg) {
169 URANGE_CHECK(idx, this->d_MMFFAtomPropertiesPtrVect.size());
171 this->d_MMFFAtomPropertiesPtrVect[idx]->mmffFormalCharge = fChg;
173 void setMMFFPartialCharge(
const unsigned int idx,
const double pChg) {
174 URANGE_CHECK(idx, this->d_MMFFAtomPropertiesPtrVect.size());
176 this->d_MMFFAtomPropertiesPtrVect[idx]->mmffPartialCharge = pChg;
182 bool d_stretchBendTerm;
188 std::uint8_t d_dielModel;
190 std::uint8_t d_verbosity;
191 std::ostream *d_oStream;
192 std::vector<MMFFAtomPropertiesPtr> d_MMFFAtomPropertiesPtrVect;
195 const ROMol &mol,
const unsigned int idx1,
const unsigned int idx2,
196 const unsigned int idx3);
198 const ROMol &mol,
const unsigned int idx1,
const unsigned int idx2,
199 const unsigned int idx3,
const unsigned int idx4);
201 const ROMol &mol,
const INT_VECT &ringIndxVect);
203 const Atom *atom,
const unsigned int ringSize);
206 const ROMol &mol,
const unsigned int idx1,
const unsigned int idx2);
208 const ROMol &mol,
const unsigned int ringSize,
const unsigned int numAtoms,
213 const unsigned int angleType,
const unsigned int bondType1,
214 const unsigned int bondType2);
216 const int atomicNum);
223 unsigned int idx2,
unsigned int idx3);
const std::string getMMFFVariant()
const RDKIT_FORCEFIELDHELPERS_EXPORT ForceFields::MMFF::MMFFPropCollection * getMMFFProp()
RDKIT_FORCEFIELDHELPERS_EXPORT bool isAtomNOxide(const Atom *atom)
RDKIT_FORCEFIELDHELPERS_EXPORT unsigned int getMMFFStretchBendType(const unsigned int angleType, const unsigned int bondType1, const unsigned int bondType2)
const RDKIT_FORCEFIELDHELPERS_EXPORT ForceFields::MMFF::MMFFDefCollection * getMMFFDef()
void setMMFFDielectricModel(std::uint8_t dielModel)
const RDKIT_FORCEFIELDHELPERS_EXPORT ForceFields::MMFF::MMFFVdWCollection * getMMFFVdW()
RDKIT_FORCEFIELDHELPERS_EXPORT bool isAtomInAromaticRingOfSize(const Atom *atom, const unsigned int ringSize)
bool getMMFFStretchBendTerm()
std::vector< int > INT_VECT
const RDKIT_FORCEFIELDHELPERS_EXPORT ForceFields::MMFF::MMFFHerschbachLaurieCollection * getMMFFHerschbachLaurie()
RDKIT_FORCEFIELDHELPERS_EXPORT unsigned int isAngleInRingOfSize3or4(const ROMol &mol, const unsigned int idx1, const unsigned int idx2, const unsigned int idx3)
RDKIT_FORCEFIELDHELPERS_EXPORT unsigned int getPeriodicTableRow(const int atomicNum)
class to store MMFF parameters for bond stretching
class for representing a bond
void setMMFFVerbosity(std::uint8_t verbosity)
class to store MMFF parameters for out-of-plane bending
std::uint8_t getMMFFDielectricModel()
const RDKIT_FORCEFIELDHELPERS_EXPORT ForceFields::MMFF::MMFFDfsbCollection * getMMFFDfsb()
bool getMMFFTorsionTerm()
std::uint8_t getMMFFVerbosity()
const RDKIT_FORCEFIELDHELPERS_EXPORT ForceFields::MMFF::MMFFAngle * getMMFFAngleBendEmpiricalRuleParams(const ROMol &mol, const ForceFields::MMFF::MMFFAngle *oldMMFFAngleParams, const ForceFields::MMFF::MMFFProp *mmffPropParamsCentralAtom, const ForceFields::MMFF::MMFFBond *mmffBondParams1, const ForceFields::MMFF::MMFFBond *mmffBondParams2, unsigned int idx1, unsigned int idx2, unsigned int idx3)
void setMMFFTorsionTerm(const bool state)
const RDKIT_FORCEFIELDHELPERS_EXPORT ForceFields::MMFF::MMFFStbnCollection * getMMFFStbn()
The class for representing atoms.
std::ostream & getMMFFOStream()
const RDKIT_FORCEFIELDHELPERS_EXPORT ForceFields::MMFF::MMFFOopCollection * getMMFFOop(const bool isMMFFs)
class to store MMFF parameters for stretch-bending
void setMMFFStretchBendTerm(const bool state)
std::uint8_t getMMFFAtomType(const unsigned int idx)
void setMMFFBondTerm(const bool state)
const RDKIT_FORCEFIELDHELPERS_EXPORT ForceFields::MMFF::MMFFTorCollection * getMMFFTor(const bool isMMFFs)
RDKIT_FORCEFIELDHELPERS_EXPORT bool isRingAromatic(const ROMol &mol, const INT_VECT &ringIndxVect)
const RDKIT_FORCEFIELDHELPERS_EXPORT ForceFields::MMFF::MMFFAngleCollection * getMMFFAngle()
class to store MMFF Properties
class to store MMFF parameters for torsions
const RDKIT_FORCEFIELDHELPERS_EXPORT ForceFields::MMFF::MMFFAromCollection * getMMFFArom()
void setMMFFOopTerm(const bool state)
double getMMFFFormalCharge(const unsigned int idx)
class to store MMFF parameters for angle bending
double getMMFFPartialCharge(const unsigned int idx)
void setMMFFOStream(std::ostream *oStream)
RDKIT_FORCEFIELDHELPERS_EXPORT unsigned int isTorsionInRingOfSize4or5(const ROMol &mol, const unsigned int idx1, const unsigned int idx2, const unsigned int idx3, const unsigned int idx4)
#define PRECONDITION(expr, mess)
const RDKIT_FORCEFIELDHELPERS_EXPORT ForceFields::MMFF::MMFFPBCICollection * getMMFFPBCI()
double getMMFFDielectricConstant()
#define URANGE_CHECK(x, hi)
#define RDKIT_FORCEFIELDHELPERS_EXPORT
void setMMFFEleTerm(const bool state)
RDKIT_FORCEFIELDHELPERS_EXPORT unsigned int sanitizeMMFFMol(RWMol &mol)
RDKIT_FORCEFIELDHELPERS_EXPORT bool areAtomsInSameAromaticRing(const ROMol &mol, const unsigned int idx1, const unsigned int idx2)
RDKIT_FORCEFIELDHELPERS_EXPORT void setMMFFAromaticity(RWMol &mol)
void setMMFFVdWTerm(const bool state)
void setMMFFVariant(const std::string &mmffVariant)
void setMMFFAngleTerm(const bool state)
void setMMFFDielectricConstant(const double dielConst)
RDKIT_FORCEFIELDHELPERS_EXPORT bool areAtomsInSameRingOfSize(const ROMol &mol, const unsigned int ringSize, const unsigned int numAtoms,...)
boost::shared_ptr< MMFFAtomProperties > MMFFAtomPropertiesPtr