Chemical Data Processing Library C++ API - Version 1.1.1
MolProp/AtomFunctions.hpp
Go to the documentation of this file.
1 /*
2  * AtomFunctions.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_MOLPROP_ATOMFUNCTIONS_HPP
30 #define CDPL_MOLPROP_ATOMFUNCTIONS_HPP
31 
32 #include <cstddef>
33 #include <string>
34 
37 
38 
39 namespace CDPL
40 {
41 
42  namespace Chem
43  {
44 
45  class Atom;
46  class MolecularGraph;
47  } // namespace Chem
48 
49  namespace MolProp
50  {
51 
53 
55 
57 
59 
60 
62 
63  CDPL_MOLPROP_API void setPEOESigmaCharge(Chem::Atom& atom, double charge);
64 
66 
68 
69 
71 
73 
75 
77 
78 
80 
81  CDPL_MOLPROP_API void setMHMOPiCharge(Chem::Atom& atom, double charge);
82 
84 
86 
87 
88  CDPL_MOLPROP_API unsigned int getHBondDonorType(const Chem::Atom& atom);
89 
90  CDPL_MOLPROP_API void setHBondDonorType(Chem::Atom& atom, unsigned int type);
91 
93 
95 
96 
98 
99  CDPL_MOLPROP_API void setHBondAcceptorType(Chem::Atom& atom, unsigned int type);
100 
102 
104 
105 
106  CDPL_MOLPROP_API bool isInRing(const Chem::Atom& atom, const Chem::MolecularGraph& molgraph);
107 
108  CDPL_MOLPROP_API bool isInRingOfSize(const Chem::Atom& atom, const Chem::MolecularGraph& molgraph, std::size_t size);
109 
111 
112 
114 
115  CDPL_MOLPROP_API std::size_t getIUPACGroup(const Chem::Atom& atom);
116 
117  CDPL_MOLPROP_API std::size_t getPeriod(const Chem::Atom& atom);
118 
120 
121  CDPL_MOLPROP_API double getCovalentRadius(const Chem::Atom& atom, std::size_t order);
122 
124 
125  CDPL_MOLPROP_API const std::string& getElementName(const Chem::Atom& atom);
126 
128 
130 
132 
134 
136 
138 
140 
142 
144 
145 
147  unsigned int flags = Chem::AtomPropertyFlag::DEFAULT);
148 
150 
151  CDPL_MOLPROP_API bool isUnsaturated(const Chem::Atom& atom, const Chem::MolecularGraph& molgraph);
152 
154 
155  CDPL_MOLPROP_API bool isHBondDonor(const Chem::Atom& atom, const Chem::MolecularGraph& molgraph);
156 
157  CDPL_MOLPROP_API bool isCarbonylLikeAtom(const Chem::Atom& atom, const Chem::MolecularGraph& molgraph, bool c_only = false, bool db_o_only = false);
158 
159  CDPL_MOLPROP_API bool isAmideCenterAtom(const Chem::Atom& atom, const Chem::MolecularGraph& molgraph, bool c_only = false, bool db_o_only = false);
160 
161  CDPL_MOLPROP_API bool isAmideNitrogen(const Chem::Atom& atom, const Chem::MolecularGraph& molgraph, bool c_only = false, bool db_o_only = false);
162 
164 
166 
167 
169  unsigned int flags = Chem::AtomPropertyFlag::DEFAULT);
170 
171  CDPL_MOLPROP_API std::size_t getExplicitAtomCount(const Chem::Atom& atom, const Chem::MolecularGraph& molgraph, unsigned int type, bool strict = true);
172 
173  CDPL_MOLPROP_API std::size_t getAtomCount(const Chem::Atom& atom, const Chem::MolecularGraph& molgraph, unsigned int type, bool strict = true);
174 
176 
177  CDPL_MOLPROP_API std::size_t getChainAtomCount(const Chem::Atom& atom, const Chem::MolecularGraph& molgraph);
178 
179  CDPL_MOLPROP_API std::size_t getRingAtomCount(const Chem::Atom& atom, const Chem::MolecularGraph& molgraph);
180 
181  CDPL_MOLPROP_API std::size_t getAromaticAtomCount(const Chem::Atom& atom, const Chem::MolecularGraph& molgraph);
182 
183  CDPL_MOLPROP_API std::size_t getHeavyAtomCount(const Chem::Atom& atom, const Chem::MolecularGraph& molgraph);
184 
185 
186  CDPL_MOLPROP_API std::size_t getExplicitBondCount(const Chem::Atom& atom, const Chem::MolecularGraph& molgraph);
187 
188  CDPL_MOLPROP_API std::size_t getExplicitBondCount(const Chem::Atom& atom, const Chem::MolecularGraph& molgraph, std::size_t order);
189 
190  CDPL_MOLPROP_API std::size_t getExplicitBondCount(const Chem::Atom& atom, const Chem::MolecularGraph& molgraph, std::size_t order, unsigned int type, bool strict = true);
191 
192  CDPL_MOLPROP_API std::size_t getBondCount(const Chem::Atom& atom, const Chem::MolecularGraph& molgraph);
193 
194  CDPL_MOLPROP_API std::size_t getBondCount(const Chem::Atom& atom, const Chem::MolecularGraph& molgraph, std::size_t order);
195 
196  CDPL_MOLPROP_API std::size_t getBondCount(const Chem::Atom& atom, const Chem::MolecularGraph& molgraph, std::size_t order, unsigned int type, bool strict = true);
197 
199 
200  CDPL_MOLPROP_API std::size_t getChainBondCount(const Chem::Atom& atom, const Chem::MolecularGraph& molgraph);
201 
202  CDPL_MOLPROP_API std::size_t getRingBondCount(const Chem::Atom& atom, const Chem::MolecularGraph& molgraph);
203 
204  CDPL_MOLPROP_API std::size_t getAromaticBondCount(const Chem::Atom& atom, const Chem::MolecularGraph& molgraph);
205 
206  CDPL_MOLPROP_API std::size_t getHeavyBondCount(const Chem::Atom& atom, const Chem::MolecularGraph& molgraph);
207 
208  CDPL_MOLPROP_API std::size_t getRotatableBondCount(const Chem::Atom& atom, const Chem::MolecularGraph& molgraph, bool h_rotors = false, bool ring_bonds = false, bool amide_bonds = false);
209 
210 
211  CDPL_MOLPROP_API std::size_t calcExplicitValence(const Chem::Atom& atom, const Chem::MolecularGraph& molgraph);
212 
213  CDPL_MOLPROP_API std::size_t calcValence(const Chem::Atom& atom, const Chem::MolecularGraph& molgraph);
214 
215 
217 
219 
220 
221  CDPL_MOLPROP_API std::size_t calcStericNumber(const Chem::Atom& atom, const Chem::MolecularGraph& molgraph);
222 
223  CDPL_MOLPROP_API unsigned int getVSEPRCoordinationGeometry(const Chem::Atom& atom, const Chem::MolecularGraph& molgraph, std::size_t steric_num);
224 
226 
227 
229 
230  CDPL_MOLPROP_API double calcEffectivePolarizability(const Chem::Atom& atom, const Chem::MolecularGraph& molgraph, double damping = 0.75);
231 
233 
235 
237 
238  CDPL_MOLPROP_API double calcInductiveEffect(const Chem::Atom& atom, const Chem::MolecularGraph& molgraph, std::size_t num_bonds = 10);
239  } // namespace MolProp
240 } // namespace CDPL
241 
242 #endif // CDPL_MOLPROP_ATOMFUNCTIONS_HPP
CDPL::MolProp::isAmideCenterAtom
CDPL_MOLPROP_API bool isAmideCenterAtom(const Chem::Atom &atom, const Chem::MolecularGraph &molgraph, bool c_only=false, bool db_o_only=false)
CDPL::MolProp::getRingAtomCount
CDPL_MOLPROP_API std::size_t getRingAtomCount(const Chem::AtomContainer &cntnr)
CDPL::MolProp::isNobleGas
CDPL_MOLPROP_API bool isNobleGas(const Chem::Atom &atom)
CDPL::MolProp::calcInductiveEffect
CDPL_MOLPROP_API double calcInductiveEffect(const Chem::Atom &atom, const Chem::MolecularGraph &molgraph, std::size_t num_bonds=10)
CDPL::MolProp::calcTotalPartialCharge
CDPL_MOLPROP_API double calcTotalPartialCharge(const Chem::Atom &atom)
CDPL::MolProp::isHBondDonor
CDPL_MOLPROP_API bool isHBondDonor(const Chem::Atom &atom, const Chem::MolecularGraph &molgraph)
CDPL::MolProp::isMainGroupElement
CDPL_MOLPROP_API bool isMainGroupElement(const Chem::Atom &atom)
CDPL::MolProp::calcStericNumber
CDPL_MOLPROP_API std::size_t calcStericNumber(const Chem::Atom &atom, const Chem::MolecularGraph &molgraph)
CDPL::MolProp::getOrdinaryHydrogenCount
CDPL_MOLPROP_API std::size_t getOrdinaryHydrogenCount(const Chem::Atom &atom, const Chem::MolecularGraph &molgraph, unsigned int flags=Chem::AtomPropertyFlag::DEFAULT)
CDPL::MolProp::isHBondAcceptor
CDPL_MOLPROP_API bool isHBondAcceptor(const Chem::Atom &atom, const Chem::MolecularGraph &molgraph)
CDPL::MolProp::calcValenceElectronCount
CDPL_MOLPROP_API std::size_t calcValenceElectronCount(const Chem::Atom &atom)
CDPL::MolProp::clearPEOESigmaElectronegativity
CDPL_MOLPROP_API void clearPEOESigmaElectronegativity(Chem::Atom &atom)
CDPL::MolProp::getPeriod
CDPL_MOLPROP_API std::size_t getPeriod(const Chem::Atom &atom)
CDPL::MolProp::calcLonePairElectronegativity
CDPL_MOLPROP_API double calcLonePairElectronegativity(const Chem::Atom &atom, const Chem::MolecularGraph &molgraph)
CDPL::MolProp::getHybridPolarizability
CDPL_MOLPROP_API double getHybridPolarizability(const Chem::Atom &atom, const Chem::MolecularGraph &molgraph)
CDPL::MolProp::getExplicitAtomCount
CDPL_MOLPROP_API std::size_t getExplicitAtomCount(const Chem::AtomContainer &cntnr)
CDPL::MolProp::clearHydrophobicity
CDPL_MOLPROP_API void clearHydrophobicity(Chem::Atom &atom)
CDPL::MolProp::getAromaticBondCount
CDPL_MOLPROP_API std::size_t getAromaticBondCount(const Chem::Atom &atom, const Chem::MolecularGraph &molgraph)
CDPL::MolProp::getHydrophobicity
CDPL_MOLPROP_API double getHydrophobicity(const Chem::Atom &atom)
CDPL::Chem::Atom
Atom.
Definition: Atom.hpp:52
CDPL::MolProp::isMetal
CDPL_MOLPROP_API bool isMetal(const Chem::Atom &atom)
CDPL::MolProp::getMHMOPiCharge
CDPL_MOLPROP_API double getMHMOPiCharge(const Chem::Atom &atom)
CDPL::MolProp::getRotatableBondCount
CDPL_MOLPROP_API std::size_t getRotatableBondCount(const Chem::Atom &atom, const Chem::MolecularGraph &molgraph, bool h_rotors=false, bool ring_bonds=false, bool amide_bonds=false)
CDPL::MolProp::isInRing
CDPL_MOLPROP_API bool isInRing(const Chem::Atom &atom, const Chem::MolecularGraph &molgraph)
CDPL::MolProp::calcExplicitValence
CDPL_MOLPROP_API std::size_t calcExplicitValence(const Chem::Atom &atom, const Chem::MolecularGraph &molgraph)
CDPL::MolProp::isTransitionMetal
CDPL_MOLPROP_API bool isTransitionMetal(const Chem::Atom &atom)
CDPL::Chem::MolecularGraph
MolecularGraph.
Definition: MolecularGraph.hpp:52
CDPL::MolProp::isInvertibleNitrogen
CDPL_MOLPROP_API bool isInvertibleNitrogen(const Chem::Atom &atom, const Chem::MolecularGraph &molgraph)
CDPL::MolProp::hasMHMOPiCharge
CDPL_MOLPROP_API bool hasMHMOPiCharge(const Chem::Atom &atom)
CDPL::MolProp::setHydrophobicity
CDPL_MOLPROP_API void setHydrophobicity(Chem::Atom &atom, double hyd)
CDPL::MolProp::calcEffectivePolarizability
CDPL_MOLPROP_API double calcEffectivePolarizability(const Chem::Atom &atom, const Chem::MolecularGraph &molgraph, double damping=0.75)
AtomPropertyFlag.hpp
Definition of constants in namespace CDPL::Chem::AtomPropertyFlag.
CDPL::MolProp::clearPEOESigmaCharge
CDPL_MOLPROP_API void clearPEOESigmaCharge(Chem::Atom &atom)
CDPL::MolProp::getElementName
CDPL_MOLPROP_API const std::string & getElementName(const Chem::Atom &atom)
CDPL::MolProp::getChainAtomCount
CDPL_MOLPROP_API std::size_t getChainAtomCount(const Chem::Atom &atom, const Chem::MolecularGraph &molgraph)
CDPL::MolProp::isUnsaturated
CDPL_MOLPROP_API bool isUnsaturated(const Chem::Atom &atom, const Chem::MolecularGraph &molgraph)
CDPL::MolProp::setHBondDonorType
CDPL_MOLPROP_API void setHBondDonorType(Chem::Atom &atom, unsigned int type)
CDPL::MolProp::setMHMOPiCharge
CDPL_MOLPROP_API void setMHMOPiCharge(Chem::Atom &atom, double charge)
CDPL::MolProp::clearMHMOPiCharge
CDPL_MOLPROP_API void clearMHMOPiCharge(Chem::Atom &atom)
CDPL::MolProp::isOrdinaryHydrogen
CDPL_MOLPROP_API bool isOrdinaryHydrogen(const Chem::Atom &atom, const Chem::MolecularGraph &molgraph, unsigned int flags=Chem::AtomPropertyFlag::DEFAULT)
CDPL::MolProp::isInRingOfSize
CDPL_MOLPROP_API bool isInRingOfSize(const Chem::Atom &atom, const Chem::MolecularGraph &molgraph, std::size_t size)
CDPL::MolProp::getIUPACGroup
CDPL_MOLPROP_API std::size_t getIUPACGroup(const Chem::Atom &atom)
CDPL::MolProp::isHeavy
CDPL_MOLPROP_API bool isHeavy(const Chem::Atom &atom)
CDPL::MolProp::getHeavyBondCount
CDPL_MOLPROP_API std::size_t getHeavyBondCount(const Chem::Atom &atom, const Chem::MolecularGraph &molgraph)
CDPL::MolProp::getExplicitChainAtomCount
CDPL_MOLPROP_API std::size_t getExplicitChainAtomCount(const Chem::AtomContainer &cntnr)
CDPL::MolProp::getChainBondCount
CDPL_MOLPROP_API std::size_t getChainBondCount(const Chem::Atom &atom, const Chem::MolecularGraph &molgraph)
CDPL::MolProp::hasPEOESigmaElectronegativity
CDPL_MOLPROP_API bool hasPEOESigmaElectronegativity(const Chem::Atom &atom)
CDPL::MolProp::getHeavyAtomCount
CDPL_MOLPROP_API std::size_t getHeavyAtomCount(const Chem::AtomContainer &cntnr)
CDPL::MolProp::isCarbonylLikeAtom
CDPL_MOLPROP_API bool isCarbonylLikeAtom(const Chem::Atom &atom, const Chem::MolecularGraph &molgraph, bool c_only=false, bool db_o_only=false)
CDPL::MolProp::isSemiMetal
CDPL_MOLPROP_API bool isSemiMetal(const Chem::Atom &atom)
CDPL::MolProp::getHBondDonorType
CDPL_MOLPROP_API unsigned int getHBondDonorType(const Chem::Atom &atom)
CDPL::MolProp::setHBondAcceptorType
CDPL_MOLPROP_API void setHBondAcceptorType(Chem::Atom &atom, unsigned int type)
CDPL::MolProp::getVSEPRCoordinationGeometry
CDPL_MOLPROP_API unsigned int getVSEPRCoordinationGeometry(const Chem::Atom &atom, const Chem::MolecularGraph &molgraph, std::size_t steric_num)
CDPL::Chem::AtomPropertyFlag::DEFAULT
const unsigned int DEFAULT
Represents the default set of atom properties.
Definition: Chem/AtomPropertyFlag.hpp:53
CDPL::MolProp::calcPiElectronegativity
CDPL_MOLPROP_API double calcPiElectronegativity(const Chem::Atom &atom, const Chem::MolecularGraph &molgraph)
CDPL::MolProp::getAtomCount
CDPL_MOLPROP_API std::size_t getAtomCount(const Chem::Atom &atom, const Chem::MolecularGraph &molgraph, unsigned int type, bool strict=true)
CDPL::MolProp::hasHBondDonorType
CDPL_MOLPROP_API bool hasHBondDonorType(const Chem::Atom &atom)
CDPL::MolProp::getNumContainingSSSRRings
CDPL_MOLPROP_API std::size_t getNumContainingSSSRRings(const Chem::Atom &atom, const Chem::MolecularGraph &molgraph)
CDPL::MolProp::isAmideNitrogen
CDPL_MOLPROP_API bool isAmideNitrogen(const Chem::Atom &atom, const Chem::MolecularGraph &molgraph, bool c_only=false, bool db_o_only=false)
CDPL::MolProp::getAtomicWeight
CDPL_MOLPROP_API double getAtomicWeight(const Chem::Atom &atom)
CDPL::MolProp::setPEOESigmaElectronegativity
CDPL_MOLPROP_API void setPEOESigmaElectronegativity(Chem::Atom &atom, double e_neg)
CDPL::MolProp::getHBondAcceptorType
CDPL_MOLPROP_API unsigned int getHBondAcceptorType(const Chem::Atom &atom)
CDPL::MolProp::isHalogen
CDPL_MOLPROP_API bool isHalogen(const Chem::Atom &atom)
CDPL
The namespace of the Chemical Data Processing Library.
CDPL::MolProp::getVdWRadius
CDPL_MOLPROP_API double getVdWRadius(const Chem::Atom &atom)
CDPL::MolProp::getAllredRochowElectronegativity
CDPL_MOLPROP_API double getAllredRochowElectronegativity(const Chem::Atom &atom)
CDPL::MolProp::calcValence
CDPL_MOLPROP_API std::size_t calcValence(const Chem::Atom &atom, const Chem::MolecularGraph &molgraph)
CDPL::MolProp::getRingBondCount
CDPL_MOLPROP_API std::size_t getRingBondCount(const Chem::Atom &atom, const Chem::MolecularGraph &molgraph)
CDPL::MolProp::getPEOESigmaCharge
CDPL_MOLPROP_API double getPEOESigmaCharge(const Chem::Atom &atom)
APIPrefix.hpp
Definition of the preprocessor macro CDPL_MOLPROP_API.
CDPL::MolProp::hasHydrophobicity
CDPL_MOLPROP_API bool hasHydrophobicity(const Chem::Atom &atom)
CDPL_MOLPROP_API
#define CDPL_MOLPROP_API
Tells the compiler/linker which classes, functions and variables are part of the library API.
CDPL::MolProp::getBondCount
CDPL_MOLPROP_API std::size_t getBondCount(const Chem::Atom &atom, const Chem::MolecularGraph &molgraph)
CDPL::MolProp::getPEOESigmaElectronegativity
CDPL_MOLPROP_API double getPEOESigmaElectronegativity(const Chem::Atom &atom)
CDPL::MolProp::clearHBondAcceptorType
CDPL_MOLPROP_API void clearHBondAcceptorType(Chem::Atom &atom)
CDPL::MolProp::getExplicitChainBondCount
CDPL_MOLPROP_API std::size_t getExplicitChainBondCount(const Chem::Atom &atom, const Chem::MolecularGraph &molgraph)
CDPL::MolProp::isChemicalElement
CDPL_MOLPROP_API bool isChemicalElement(const Chem::Atom &atom)
CDPL::MolProp::getCovalentRadius
CDPL_MOLPROP_API double getCovalentRadius(const Chem::Atom &atom, std::size_t order)
CDPL::MolProp::setPEOESigmaCharge
CDPL_MOLPROP_API void setPEOESigmaCharge(Chem::Atom &atom, double charge)
CDPL::MolProp::hasHBondAcceptorType
CDPL_MOLPROP_API bool hasHBondAcceptorType(const Chem::Atom &atom)
CDPL::MolProp::calcFreeValenceElectronCount
CDPL_MOLPROP_API std::size_t calcFreeValenceElectronCount(const Chem::Atom &atom, const Chem::MolecularGraph &molgraph)
CDPL::MolProp::getAromaticAtomCount
CDPL_MOLPROP_API std::size_t getAromaticAtomCount(const Chem::AtomContainer &cntnr)
CDPL::MolProp::isNonMetal
CDPL_MOLPROP_API bool isNonMetal(const Chem::Atom &atom)
CDPL::MolProp::isPlanarNitrogen
CDPL_MOLPROP_API bool isPlanarNitrogen(const Chem::Atom &atom, const Chem::MolecularGraph &molgraph)
CDPL::MolProp::getExplicitBondCount
CDPL_MOLPROP_API std::size_t getExplicitBondCount(const Chem::Atom &atom, const Chem::MolecularGraph &molgraph)
CDPL::MolProp::clearHBondDonorType
CDPL_MOLPROP_API void clearHBondDonorType(Chem::Atom &atom)
CDPL::MolProp::hasPEOESigmaCharge
CDPL_MOLPROP_API bool hasPEOESigmaCharge(const Chem::Atom &atom)
CDPL::MolProp::getElementValenceElectronCount
CDPL_MOLPROP_API std::size_t getElementValenceElectronCount(const Chem::Atom &atom)