Chemical Data Processing Library C++ API - Version 1.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Chem/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_CHEM_ATOMFUNCTIONS_HPP
30 #define CDPL_CHEM_ATOMFUNCTIONS_HPP
31 
32 #include <cstddef>
33 #include <string>
34 #include <type_traits>
35 
36 #include "CDPL/Chem/APIPrefix.hpp"
42 #include "CDPL/Math/Vector.hpp"
44 #include "CDPL/Util/BitSet.hpp"
45 
46 
47 namespace CDPL
48 {
49 
50  namespace Chem
51  {
52 
53  class StereoDescriptor;
54 
55 
56  CDPL_CHEM_API const std::string& getName(const Atom& atom);
57 
58  CDPL_CHEM_API void setName(Atom& atom, const std::string& name);
59 
61 
62  CDPL_CHEM_API bool hasName(const Atom& atom);
63 
64 
65  CDPL_CHEM_API const std::string& getSymbol(const Atom& atom);
66 
67  CDPL_CHEM_API void setSymbol(Atom& atom, const std::string& symbol);
68 
70 
71  CDPL_CHEM_API bool hasSymbol(const Atom& atom);
72 
73  CDPL_CHEM_API const std::string& getSymbolForType(const Atom& atom);
74 
75 
76  CDPL_CHEM_API unsigned int getType(const Atom& atom);
77 
78  CDPL_CHEM_API void setType(Atom& atom, unsigned int type);
79 
81 
82  CDPL_CHEM_API bool hasType(const Atom& atom);
83 
84  CDPL_CHEM_API unsigned int getTypeForSymbol(const Atom& atom);
85 
86  CDPL_CHEM_API unsigned int getGenericType(const Atom& atom); //move
87 
88 
89  CDPL_CHEM_API long getFormalCharge(const Atom& atom);
90 
91  CDPL_CHEM_API void setFormalCharge(Atom& atom, long charge);
92 
94 
95  CDPL_CHEM_API bool hasFormalCharge(const Atom& atom);
96 
97  CDPL_CHEM_API long calcFormalCharge(const Atom& atom, const MolecularGraph& molgraph);
98 
99 
100  CDPL_CHEM_API std::size_t getIsotope(const Atom& atom);
101 
102  CDPL_CHEM_API void setIsotope(Atom& atom, std::size_t isotope);
103 
105 
106  CDPL_CHEM_API bool hasIsotope(const Atom& atom);
107 
108 
109  CDPL_CHEM_API unsigned int getRadicalType(const Atom& atom);
110 
111  CDPL_CHEM_API void setRadicalType(Atom& atom, unsigned int type);
112 
114 
115  CDPL_CHEM_API bool hasRadicalType(const Atom& atom);
116 
117 
118  CDPL_CHEM_API unsigned int getHybridizationState(const Atom& atom);
119 
120  CDPL_CHEM_API void setHybridizationState(Atom& atom, unsigned int state);
121 
123 
125 
126  CDPL_CHEM_API unsigned int perceiveHybridizationState(const Atom& atom, const MolecularGraph& molgraph);
127 
128 
129  CDPL_CHEM_API bool getRingFlag(const Atom& atom);
130 
131  CDPL_CHEM_API void setRingFlag(Atom& atom, bool in_ring);
132 
134 
135  CDPL_CHEM_API bool hasRingFlag(const Atom& atom);
136 
137 
138  CDPL_CHEM_API bool isInFragmentOfSize(const Atom& atom, const FragmentList& frag_list, std::size_t size);
139 
140  CDPL_CHEM_API std::size_t getSizeOfSmallestContainingFragment(const Atom& atom, const FragmentList& frag_list);
141 
142  CDPL_CHEM_API std::size_t getSizeOfLargestContainingFragment(const Atom& atom, const FragmentList& frag_list);
143 
144  CDPL_CHEM_API std::size_t getNumContainingFragments(const Atom& atom, const FragmentList& frag_list);
145 
146  CDPL_CHEM_API void getContainingFragments(const Atom& atom, const FragmentList& frag_list, FragmentList& cont_frag_list, bool append = false);
147 
148 
150 
151  CDPL_CHEM_API void setAromaticityFlag(Atom& atom, bool aromatic);
152 
154 
156 
157 
158  CDPL_CHEM_API std::size_t getUnpairedElectronCount(const Atom& atom);
159 
160  CDPL_CHEM_API void setUnpairedElectronCount(Atom& atom, std::size_t count);
161 
163 
165 
166 
167  CDPL_CHEM_API std::size_t getImplicitHydrogenCount(const Atom& atom);
168 
169  CDPL_CHEM_API void setImplicitHydrogenCount(Atom& atom, std::size_t count);
170 
172 
174 
175  CDPL_CHEM_API std::size_t calcImplicitHydrogenCount(const Atom& atom, const MolecularGraph& molgraph);
176 
177 
179 
180  CDPL_CHEM_API void set2DCoordinates(Atom& atom, const Math::Vector2D& coords);
181 
183 
185 
186 
187  CDPL_CHEM_API const Math::Vector3D& getConformer3DCoordinates(const Atom& atom, std::size_t conf_idx);
188 
189 
190  CDPL_CHEM_API const Math::Vector3DArray::SharedPointer& get3DCoordinatesArray(const Atom& atom);
191 
192  CDPL_CHEM_API void set3DCoordinatesArray(Atom& atom, const Math::Vector3DArray::SharedPointer& coords_array);
193 
195 
197 
198 
199  CDPL_CHEM_API std::size_t getMorganNumber(const Atom& atom);
200 
201  CDPL_CHEM_API void setMorganNumber(Atom& atom, std::size_t num);
202 
204 
205  CDPL_CHEM_API bool hasMorganNumber(const Atom& atom);
206 
207 
208  CDPL_CHEM_API std::size_t getCanonicalNumber(const Atom& atom);
209 
210  CDPL_CHEM_API void setCanonicalNumber(Atom& atom, std::size_t num);
211 
213 
215 
216 
217  CDPL_CHEM_API std::size_t getCIPPriority(const Atom& atom);
218 
219  CDPL_CHEM_API void setCIPPriority(Atom& atom, std::size_t priority);
220 
222 
223  CDPL_CHEM_API bool hasCIPPriority(const Atom& atom);
224 
225 
226  CDPL_CHEM_API std::size_t getSymmetryClass(const Atom& atom);
227 
228  CDPL_CHEM_API void setSymmetryClass(Atom& atom, std::size_t class_id);
229 
231 
233 
234 
235  CDPL_CHEM_API unsigned int getCIPConfiguration(const Atom& atom);
236 
237  CDPL_CHEM_API void setCIPConfiguration(Atom& atom, unsigned int config);
238 
240 
242 
243  CDPL_CHEM_API unsigned int calcCIPConfiguration(const Atom& atom, const MolecularGraph& molgraph);
244 
245  CDPL_CHEM_API unsigned int calcCIPConfiguration(const Atom& atom, const MolecularGraph& molgraph, const AtomPriorityFunction& cip_pri_func);
246 
247 
249 
251 
253 
255 
256  CDPL_CHEM_API StereoDescriptor calcStereoDescriptor(const Atom& atom, const MolecularGraph& molgraph, std::size_t dim = 1);
257 
259 
260  CDPL_CHEM_API unsigned int calcAtomConfiguration(const Atom& atom, const MolecularGraph& molgraph, const StereoDescriptor& descr,
261  const Math::Vector3DArray& coords);
262 
263 
265 
266  CDPL_CHEM_API void setStereoCenterFlag(Atom& atom, bool is_center);
267 
269 
271 
272  CDPL_CHEM_API bool isStereoCenter(const Atom& atom, const MolecularGraph& molgraph,
273  bool check_cip_sym = true, bool check_acyclic_subst_sym_only = false);
274 
275 
276  CDPL_CHEM_API unsigned int getSybylType(const Atom& atom);
277 
278  CDPL_CHEM_API void setSybylType(Atom& atom, unsigned int type);
279 
281 
282  CDPL_CHEM_API bool hasSybylType(const Atom& atom);
283 
284  CDPL_CHEM_API unsigned int perceiveSybylType(const Atom& atom, const MolecularGraph& molgraph);
285 
286 
287  CDPL_CHEM_API const std::string& getMOL2Name(const Atom& atom);
288 
289  CDPL_CHEM_API void setMOL2Name(Atom& atom, const std::string& name);
290 
292 
293  CDPL_CHEM_API bool hasMOL2Name(const Atom& atom);
294 
295 
296  CDPL_CHEM_API double getMOL2Charge(const Atom& atom);
297 
298  CDPL_CHEM_API void setMOL2Charge(Atom& atom, double charge);
299 
301 
302  CDPL_CHEM_API bool hasMOL2Charge(const Atom& atom);
303 
304 
305  CDPL_CHEM_API std::size_t getMOL2SubstructureID(const Atom& atom);
306 
307  CDPL_CHEM_API void setMOL2SubstructureID(Atom& atom, std::size_t id);
308 
310 
312 
313 
314  CDPL_CHEM_API const std::string& getMOL2SubstructureName(const Atom& atom);
315 
316  CDPL_CHEM_API void setMOL2SubstructureName(Atom& atom, const std::string& id);
317 
319 
321 
322 
323  CDPL_CHEM_API const std::string& getMOL2SubstructureSubtype(const Atom& atom);
324 
325  CDPL_CHEM_API void setMOL2SubstructureSubtype(Atom& atom, const std::string& subtype);
326 
328 
330 
331 
332  CDPL_CHEM_API const std::string& getMOL2SubstructureChain(const Atom& atom);
333 
334  CDPL_CHEM_API void setMOL2SubstructureChain(Atom& atom, const std::string& chain);
335 
337 
339 
340 
341  CDPL_CHEM_API unsigned int getMDLParity(const Atom& atom);
342 
343  CDPL_CHEM_API void setMDLParity(Atom& atom, unsigned int parity);
344 
346 
347  CDPL_CHEM_API bool hasMDLParity(const Atom& atom);
348 
349  CDPL_CHEM_API unsigned int calcMDLParity(const Atom& atom, const MolecularGraph& molgraph);
350 
351 
353 
354  CDPL_CHEM_API void setMDLStereoCareFlag(Atom& atom, bool flag);
355 
357 
359 
360 
361  CDPL_CHEM_API unsigned int getReactionCenterStatus(const Atom& atom);
362 
363  CDPL_CHEM_API void setReactionCenterStatus(Atom& atom, unsigned int status);
364 
366 
368 
369 
370  CDPL_CHEM_API std::size_t getAtomMappingID(const Atom& atom);
371 
372  CDPL_CHEM_API void setAtomMappingID(Atom& atom, std::size_t id);
373 
375 
377 
378 
379  CDPL_CHEM_API std::size_t getComponentGroupID(const Atom& atom);
380 
381  CDPL_CHEM_API void setComponentGroupID(Atom& atom, std::size_t id);
382 
384 
386 
387 
389 
391 
393 
395 
396 
398 
400 
402 
404 
406 
407 
408  CDPL_CHEM_API const std::string& getMatchExpressionString(const Atom& atom);
409 
410  CDPL_CHEM_API void setMatchExpressionString(Atom& atom, const std::string& expr_str);
411 
413 
415 
416  CDPL_CHEM_API void generateMatchExpressionString(const Atom& atom, const MolecularGraph& molgraph, std::string& expr_str);
417 
418 
419  CDPL_CHEM_API void markReachableAtoms(const Atom& atom, const MolecularGraph& molgraph,
420  Util::BitSet& atom_mask, bool reset = true);
421 
422  CDPL_CHEM_API std::size_t getTopologicalDistance(const Atom& atom1, const Atom& atom2, const MolecularGraph& molgraph);
423 
424  CDPL_CHEM_API std::size_t getEnvironment(const Atom& atom, const MolecularGraph& molgraph, std::size_t max_dist, Fragment& env, bool append = false);
425 
426 
427  template <typename AtomType, typename OutputIterator>
428  std::size_t getConnectedAtoms(AtomType& atom, const MolecularGraph& molgraph, OutputIterator it, AtomType* excl_atom = 0)
429  {
430  typedef typename std::conditional<std::is_const<AtomType>::value, typename AtomType::ConstAtomIterator, typename AtomType::AtomIterator>::type AtomIterator;
431 
432  AtomIterator atoms_end = atom.getAtomsEnd();
433  typename AtomType::ConstBondIterator b_it = atom.getBondsBegin();
434  std::size_t count = 0;
435 
436  for (AtomIterator a_it = atom.getAtomsBegin(); a_it != atoms_end; ++a_it, ++b_it) {
437  if (&(*a_it) == excl_atom)
438  continue;
439 
440  if (molgraph.containsAtom(*a_it) && molgraph.containsBond(*b_it)) {
441  *it = &(*a_it);
442  ++it;
443  count++;
444  }
445  }
446 
447  return count;
448  }
449 
450  template <typename AtomType, typename OutputIterator>
451  std::size_t getIncidentBonds(AtomType& atom, const MolecularGraph& molgraph, OutputIterator it, AtomType* excl_atom = 0)
452  {
453  typedef typename std::conditional<std::is_const<AtomType>::value, typename AtomType::ConstBondIterator, typename AtomType::BondIterator>::type BondIterator;
454 
455  BondIterator bonds_end = atom.getBondsEnd();
456  typename AtomType::ConstAtomIterator a_it = atom.getAtomsBegin();
457  std::size_t count = 0;
458 
459  for (BondIterator b_it = atom.getBondsBegin(); b_it != bonds_end; ++a_it, ++b_it) {
460  if (&(*a_it) == excl_atom)
461  continue;
462 
463  if (molgraph.containsAtom(*a_it) && molgraph.containsBond(*b_it)) {
464  *it = &(*b_it);
465  ++it;
466  count++;
467  }
468  }
469 
470  return count;
471  }
472 
473  template <typename AtomType, typename AtomOutputIterator, typename BondOutputIterator>
474  std::size_t getConnectedAtomsAndBonds(AtomType& atom, const MolecularGraph& molgraph, AtomOutputIterator ao_it, BondOutputIterator bo_it, AtomType* excl_atom = 0)
475  {
476  typedef typename std::conditional<std::is_const<AtomType>::value, typename AtomType::ConstAtomIterator, typename AtomType::AtomIterator>::type AtomIterator;
477  typedef typename std::conditional<std::is_const<AtomType>::value, typename AtomType::ConstBondIterator, typename AtomType::BondIterator>::type BondIterator;
478 
479  BondIterator bonds_end = atom.getBondsEnd();
480  AtomIterator a_it = atom.getAtomsBegin();
481  std::size_t count = 0;
482 
483  for (BondIterator b_it = atom.getBondsBegin(); b_it != bonds_end; ++a_it, ++b_it) {
484  if (&(*a_it) == excl_atom)
485  continue;
486 
487  if (molgraph.containsAtom(*a_it) && molgraph.containsBond(*b_it)) {
488  *ao_it = &(*a_it);
489  *bo_it = &(*b_it);
490  ++ao_it;
491  ++bo_it;
492  count++;
493  }
494  }
495 
496  return count;
497  }
498  } // namespace Chem
499 } // namespace CDPL
500 
501 #endif // CDPL_CHEM_ATOMFUNCTIONS_HPP
CDPL::Chem::getStereoDescriptor
CDPL_CHEM_API const StereoDescriptor & getStereoDescriptor(const Atom &atom)
CDPL::Chem::getRingFlag
CDPL_CHEM_API bool getRingFlag(const Atom &atom)
CDPL::Chem::clearHybridizationState
CDPL_CHEM_API void clearHybridizationState(Atom &atom)
CDPL::Chem::getTypeForSymbol
CDPL_CHEM_API unsigned int getTypeForSymbol(const Atom &atom)
CDPL::Chem::hasMOL2SubstructureChain
CDPL_CHEM_API bool hasMOL2SubstructureChain(const Atom &atom)
CDPL::Chem::getSymbol
CDPL_CHEM_API const std::string & getSymbol(const Atom &atom)
CDPL::Chem::BondContainer::containsBond
virtual bool containsBond(const Bond &bond) const =0
Tells whether the specified Chem::Bond instance is stored in this container.
CDPL::Chem::clearStereoDescriptor
CDPL_CHEM_API void clearStereoDescriptor(Atom &atom)
CDPL::Chem::setFormalCharge
CDPL_CHEM_API void setFormalCharge(Atom &atom, long charge)
CDPL::Chem::setCanonicalNumber
CDPL_CHEM_API void setCanonicalNumber(Atom &atom, std::size_t num)
CDPL::Chem::getCanonicalNumber
CDPL_CHEM_API std::size_t getCanonicalNumber(const Atom &atom)
CDPL::Chem::clearMOL2SubstructureID
CDPL_CHEM_API void clearMOL2SubstructureID(Atom &atom)
CDPL::Chem::getConnectedAtomsAndBonds
std::size_t getConnectedAtomsAndBonds(AtomType &atom, const MolecularGraph &molgraph, AtomOutputIterator ao_it, BondOutputIterator bo_it, AtomType *excl_atom=0)
Definition: Chem/AtomFunctions.hpp:474
CDPL::Chem::has2DCoordinates
CDPL_CHEM_API bool has2DCoordinates(const Atom &atom)
APIPrefix.hpp
Definition of the preprocessor macro CDPL_CHEM_API.
CDPL::Chem::getUnpairedElectronCount
CDPL_CHEM_API std::size_t getUnpairedElectronCount(const Atom &atom)
CDPL::Chem::clearIsotope
CDPL_CHEM_API void clearIsotope(Atom &atom)
CDPL::Chem::getGenericType
CDPL_CHEM_API unsigned int getGenericType(const Atom &atom)
VectorArray.hpp
Definition of the class CDPL::Math::VectorArray.
CDPL::Chem::setReactionCenterStatus
CDPL_CHEM_API void setReactionCenterStatus(Atom &atom, unsigned int status)
CDPL::Chem::get3DCoordinatesArray
CDPL_CHEM_API const Math::Vector3DArray::SharedPointer & get3DCoordinatesArray(const Atom &atom)
CDPL::Chem::getTopologicalDistance
CDPL_CHEM_API std::size_t getTopologicalDistance(const Atom &atom1, const Atom &atom2, const MolecularGraph &molgraph)
CDPL::Chem::setHybridizationState
CDPL_CHEM_API void setHybridizationState(Atom &atom, unsigned int state)
CDPL::Chem::hasFormalCharge
CDPL_CHEM_API bool hasFormalCharge(const Atom &atom)
CDPL::Chem::clearStereoCenterFlag
CDPL_CHEM_API void clearStereoCenterFlag(Atom &atom)
CDPL::Chem::getMOL2Name
CDPL_CHEM_API const std::string & getMOL2Name(const Atom &atom)
CDPL_CHEM_API
#define CDPL_CHEM_API
Tells the compiler/linker which classes, functions and variables are part of the library API.
CDPL::Chem::calcCIPConfiguration
CDPL_CHEM_API unsigned int calcCIPConfiguration(const Atom &atom, const MolecularGraph &molgraph)
CDPL::Chem::getIsotope
CDPL_CHEM_API std::size_t getIsotope(const Atom &atom)
CDPL::Chem::setMDLStereoCareFlag
CDPL_CHEM_API void setMDLStereoCareFlag(Atom &atom, bool flag)
CDPL::Math::Vector3D
CVector< double, 3 > Vector3D
A bounded 3 element vector holding floating point values of type double.
Definition: Vector.hpp:1637
CDPL::Chem::isStereoCenter
CDPL_CHEM_API bool isStereoCenter(const Atom &atom, const MolecularGraph &molgraph, bool check_cip_sym=true, bool check_acyclic_subst_sym_only=false)
CDPL::Chem::setSymbol
CDPL_CHEM_API void setSymbol(Atom &atom, const std::string &symbol)
CDPL::Chem::AtomPriorityFunction
std::function< std::size_t(const Chem::Atom &)> AtomPriorityFunction
A generic wrapper class used to store a user-defined atom priority function.
Definition: AtomPriorityFunction.hpp:42
CDPL::Chem::setRadicalType
CDPL_CHEM_API void setRadicalType(Atom &atom, unsigned int type)
CDPL::Chem::setMatchExpression
CDPL_CHEM_API void setMatchExpression(Atom &atom, const MatchExpression< Atom, MolecularGraph >::SharedPointer &expr)
CDPL::Chem::get2DCoordinates
CDPL_CHEM_API void get2DCoordinates(const AtomContainer &cntnr, Math::Vector2DArray &coords, bool append=false)
CDPL::Chem::setMOL2SubstructureName
CDPL_CHEM_API void setMOL2SubstructureName(Atom &atom, const std::string &id)
CDPL::Chem::perceiveSybylType
CDPL_CHEM_API unsigned int perceiveSybylType(const Atom &atom, const MolecularGraph &molgraph)
CDPL::Chem::getContainingFragments
CDPL_CHEM_API void getContainingFragments(const Atom &atom, const FragmentList &frag_list, FragmentList &cont_frag_list, bool append=false)
CDPL::Chem::calcMDLParity
CDPL_CHEM_API unsigned int calcMDLParity(const Atom &atom, const MolecularGraph &molgraph)
CDPL::Util::BitSet
boost::dynamic_bitset BitSet
A dynamic bitset class.
Definition: BitSet.hpp:46
CDPL::Chem::MatchConstraintList::SharedPointer
std::shared_ptr< MatchConstraintList > SharedPointer
A reference-counted smart pointer [SHPTR] for dynamically allocated MatchConstraintList instances.
Definition: MatchConstraintList.hpp:197
CDPL::Chem::clearMatchExpression
CDPL_CHEM_API void clearMatchExpression(Atom &atom)
CDPL::Chem::clearMOL2SubstructureSubtype
CDPL_CHEM_API void clearMOL2SubstructureSubtype(Atom &atom)
CDPL::Chem::getIncidentBonds
std::size_t getIncidentBonds(AtomType &atom, const MolecularGraph &molgraph, OutputIterator it, AtomType *excl_atom=0)
Definition: Chem/AtomFunctions.hpp:451
CDPL::Chem::hasStereoCenterFlag
CDPL_CHEM_API bool hasStereoCenterFlag(const Atom &atom)
CDPL::Chem::hasMatchExpression
CDPL_CHEM_API bool hasMatchExpression(const Atom &atom)
CDPL::Chem::clearMOL2SubstructureName
CDPL_CHEM_API void clearMOL2SubstructureName(Atom &atom)
CDPL::Chem::getAtomMappingID
CDPL_CHEM_API std::size_t getAtomMappingID(const Atom &atom)
CDPL::Chem::hasReactionCenterStatus
CDPL_CHEM_API bool hasReactionCenterStatus(const Atom &atom)
CDPL::Chem::Atom
Atom.
Definition: Atom.hpp:52
CDPL::Chem::Fragment
Fragment.
Definition: Fragment.hpp:52
CDPL::Chem::clearUnpairedElectronCount
CDPL_CHEM_API void clearUnpairedElectronCount(Atom &atom)
CDPL::Chem::getEnvironment
CDPL_CHEM_API std::size_t getEnvironment(const Atom &atom, const MolecularGraph &molgraph, std::size_t max_dist, Fragment &env, bool append=false)
CDPL::Chem::getMatchExpressionString
CDPL_CHEM_API const std::string & getMatchExpressionString(const Atom &atom)
CDPL::Chem::setType
CDPL_CHEM_API void setType(Atom &atom, unsigned int type)
CDPL::Chem::getMOL2SubstructureID
CDPL_CHEM_API std::size_t getMOL2SubstructureID(const Atom &atom)
CDPL::Chem::clearCanonicalNumber
CDPL_CHEM_API void clearCanonicalNumber(Atom &atom)
CDPL::Chem::calcStereoDescriptorFromMDLParity
CDPL_CHEM_API StereoDescriptor calcStereoDescriptorFromMDLParity(const Atom &atom, const MolecularGraph &molgraph)
CDPL::Chem::generateMatchExpression
CDPL_CHEM_API MatchExpression< Atom, MolecularGraph >::SharedPointer generateMatchExpression(const Atom &atom, const MolecularGraph &molgraph)
CDPL::Chem::clearName
CDPL_CHEM_API void clearName(Atom &atom)
CDPL::Chem::setSybylType
CDPL_CHEM_API void setSybylType(Atom &atom, unsigned int type)
CDPL::Chem::hasUnpairedElectronCount
CDPL_CHEM_API bool hasUnpairedElectronCount(const Atom &atom)
CDPL::Chem::clear2DCoordinates
CDPL_CHEM_API void clear2DCoordinates(Atom &atom)
CDPL::Chem::hasRadicalType
CDPL_CHEM_API bool hasRadicalType(const Atom &atom)
CDPL::Chem::hasMDLStereoCareFlag
CDPL_CHEM_API bool hasMDLStereoCareFlag(const Atom &atom)
VectorArray< Vector3D >
CDPL::Chem::setImplicitHydrogenCount
CDPL_CHEM_API void setImplicitHydrogenCount(Atom &atom, std::size_t count)
CDPL::Chem::MolecularGraph
MolecularGraph.
Definition: MolecularGraph.hpp:52
BitSet.hpp
Definition of the type CDPL::Util::BitSet.
CDPL::Chem::clearSymbol
CDPL_CHEM_API void clearSymbol(Atom &atom)
CDPL::Chem::getComponentGroupID
CDPL_CHEM_API std::size_t getComponentGroupID(const Atom &atom)
CDPL::Chem::clearAtomMappingID
CDPL_CHEM_API void clearAtomMappingID(Atom &atom)
CDPL::Chem::clearSybylType
CDPL_CHEM_API void clearSybylType(Atom &atom)
CDPL::Chem::hasImplicitHydrogenCount
CDPL_CHEM_API bool hasImplicitHydrogenCount(const Atom &atom)
AtomPropertyFlag.hpp
Definition of constants in namespace CDPL::Chem::AtomPropertyFlag.
CDPL::Chem::getName
CDPL_CHEM_API const std::string & getName(const Atom &atom)
CDPL::Chem::getMOL2SubstructureChain
CDPL_CHEM_API const std::string & getMOL2SubstructureChain(const Atom &atom)
CDPL::Chem::setRingFlag
CDPL_CHEM_API void setRingFlag(Atom &atom, bool in_ring)
CDPL::Chem::getCIPPriority
CDPL_CHEM_API std::size_t getCIPPriority(const Atom &atom)
CDPL::Chem::getHybridizationState
CDPL_CHEM_API unsigned int getHybridizationState(const Atom &atom)
CDPL::Chem::clearFormalCharge
CDPL_CHEM_API void clearFormalCharge(Atom &atom)
CDPL::Chem::hasAtomMappingID
CDPL_CHEM_API bool hasAtomMappingID(const Atom &atom)
CDPL::Chem::clear3DCoordinatesArray
CDPL_CHEM_API void clear3DCoordinatesArray(Atom &atom)
CDPL::Chem::setIsotope
CDPL_CHEM_API void setIsotope(Atom &atom, std::size_t isotope)
CDPL::Chem::getSybylType
CDPL_CHEM_API unsigned int getSybylType(const Atom &atom)
CDPL::Chem::hasRingFlag
CDPL_CHEM_API bool hasRingFlag(const Atom &atom)
CDPL::Chem::clearMatchExpressionString
CDPL_CHEM_API void clearMatchExpressionString(Atom &atom)
CDPL::Chem::setMOL2Name
CDPL_CHEM_API void setMOL2Name(Atom &atom, const std::string &name)
CDPL::Chem::getCIPConfiguration
CDPL_CHEM_API unsigned int getCIPConfiguration(const Atom &atom)
CDPL::Chem::getConnectedAtoms
std::size_t getConnectedAtoms(AtomType &atom, const MolecularGraph &molgraph, OutputIterator it, AtomType *excl_atom=0)
Definition: Chem/AtomFunctions.hpp:428
CDPL::Chem::clearMOL2Charge
CDPL_CHEM_API void clearMOL2Charge(Atom &atom)
CDPL::Chem::clearMOL2Name
CDPL_CHEM_API void clearMOL2Name(Atom &atom)
CDPL::Chem::hasSybylType
CDPL_CHEM_API bool hasSybylType(const Atom &atom)
CDPL::Chem::has3DCoordinatesArray
CDPL_CHEM_API bool has3DCoordinatesArray(const Atom &atom)
CDPL::Chem::hasMatchExpressionString
CDPL_CHEM_API bool hasMatchExpressionString(const Atom &atom)
CDPL::Chem::getMDLParity
CDPL_CHEM_API unsigned int getMDLParity(const Atom &atom)
CDPL::Chem::setMDLParity
CDPL_CHEM_API void setMDLParity(Atom &atom, unsigned int parity)
CDPL::Chem::getConformer3DCoordinates
CDPL_CHEM_API const Math::Vector3D & getConformer3DCoordinates(const Atom &atom, std::size_t conf_idx)
CDPL::Chem::clearType
CDPL_CHEM_API void clearType(Atom &atom)
CDPL::Chem::getMOL2SubstructureName
CDPL_CHEM_API const std::string & getMOL2SubstructureName(const Atom &atom)
CDPL::Chem::getStereoCenterFlag
CDPL_CHEM_API bool getStereoCenterFlag(const Atom &atom)
CDPL::Chem::clearMatchConstraints
CDPL_CHEM_API void clearMatchConstraints(Atom &atom)
CDPL::Chem::setUnpairedElectronCount
CDPL_CHEM_API void setUnpairedElectronCount(Atom &atom, std::size_t count)
CDPL::Chem::clearSymmetryClass
CDPL_CHEM_API void clearSymmetryClass(Atom &atom)
CDPL::Chem::setMOL2Charge
CDPL_CHEM_API void setMOL2Charge(Atom &atom, double charge)
AtomPriorityFunction.hpp
Type definition of a generic wrapper class for storing user-defined Chem::Atom 3D-coordinates functio...
CDPL::Chem::clearMDLStereoCareFlag
CDPL_CHEM_API void clearMDLStereoCareFlag(Atom &atom)
CDPL::Chem::hasMDLParity
CDPL_CHEM_API bool hasMDLParity(const Atom &atom)
CDPL::Chem::hasSymbol
CDPL_CHEM_API bool hasSymbol(const Atom &atom)
CDPL::Chem::clearRadicalType
CDPL_CHEM_API void clearRadicalType(Atom &atom)
CDPL::Chem::clearReactionCenterStatus
CDPL_CHEM_API void clearReactionCenterStatus(Atom &atom)
CDPL::Chem::setMOL2SubstructureSubtype
CDPL_CHEM_API void setMOL2SubstructureSubtype(Atom &atom, const std::string &subtype)
CDPL::Chem::clearImplicitHydrogenCount
CDPL_CHEM_API void clearImplicitHydrogenCount(Atom &atom)
CDPL::Chem::clearAromaticityFlag
CDPL_CHEM_API void clearAromaticityFlag(Atom &atom)
CDPL::Chem::setStereoCenterFlag
CDPL_CHEM_API void setStereoCenterFlag(Atom &atom, bool is_center)
CDPL::Chem::FragmentList
A data type for the storage of Chem::Fragment objects.
Definition: FragmentList.hpp:49
CDPL::Chem::getNumContainingFragments
CDPL_CHEM_API std::size_t getNumContainingFragments(const Atom &atom, const FragmentList &frag_list)
CDPL::Chem::hasComponentGroupID
CDPL_CHEM_API bool hasComponentGroupID(const Atom &atom)
CDPL::Chem::clearCIPPriority
CDPL_CHEM_API void clearCIPPriority(Atom &atom)
CDPL::Chem::getType
CDPL_CHEM_API unsigned int getType(const Atom &atom)
CDPL::Chem::hasCIPPriority
CDPL_CHEM_API bool hasCIPPriority(const Atom &atom)
CDPL::Chem::hasCIPConfiguration
CDPL_CHEM_API bool hasCIPConfiguration(const Atom &atom)
CDPL::Chem::MatchExpression
A generic boolean expression interface for the implementation of query/target object equivalence test...
Definition: MatchExpression.hpp:75
CDPL::Chem::clearMOL2SubstructureChain
CDPL_CHEM_API void clearMOL2SubstructureChain(Atom &atom)
CDPL::Chem::setCIPPriority
CDPL_CHEM_API void setCIPPriority(Atom &atom, std::size_t priority)
CDPL::Chem::hasMorganNumber
CDPL_CHEM_API bool hasMorganNumber(const Atom &atom)
CDPL::Chem::generateMatchExpressionString
CDPL_CHEM_API void generateMatchExpressionString(const Atom &atom, const MolecularGraph &molgraph, std::string &expr_str)
CDPL::Chem::setMatchExpressionString
CDPL_CHEM_API void setMatchExpressionString(Atom &atom, const std::string &expr_str)
CDPL::Chem::hasMOL2SubstructureName
CDPL_CHEM_API bool hasMOL2SubstructureName(const Atom &atom)
CDPL::Chem::isInFragmentOfSize
CDPL_CHEM_API bool isInFragmentOfSize(const Atom &atom, const FragmentList &frag_list, std::size_t size)
CDPL::Chem::setMOL2SubstructureChain
CDPL_CHEM_API void setMOL2SubstructureChain(Atom &atom, const std::string &chain)
MatchExpression.hpp
Definition of the class CDPL::Chem::MatchExpression.
CDPL
The namespace of the Chemical Data Processing Library.
CDPL::Chem::getAromaticityFlag
CDPL_CHEM_API bool getAromaticityFlag(const Atom &atom)
CDPL::Chem::hasMOL2Charge
CDPL_CHEM_API bool hasMOL2Charge(const Atom &atom)
CDPL::Chem::calcFormalCharge
CDPL_CHEM_API long calcFormalCharge(const Atom &atom, const MolecularGraph &molgraph)
CDPL::Chem::getFormalCharge
CDPL_CHEM_API long getFormalCharge(const Atom &atom)
CDPL::Chem::getImplicitHydrogenCount
CDPL_CHEM_API std::size_t getImplicitHydrogenCount(const Atom &atom)
CDPL::Chem::setAtomMappingID
CDPL_CHEM_API void setAtomMappingID(Atom &atom, std::size_t id)
CDPL::Chem::getMOL2Charge
CDPL_CHEM_API double getMOL2Charge(const Atom &atom)
CDPL::Chem::clearMorganNumber
CDPL_CHEM_API void clearMorganNumber(Atom &atom)
CDPL::Chem::hasName
CDPL_CHEM_API bool hasName(const Atom &atom)
CDPL::Chem::getMorganNumber
CDPL_CHEM_API std::size_t getMorganNumber(const Atom &atom)
CDPL::Chem::setSymmetryClass
CDPL_CHEM_API void setSymmetryClass(Atom &atom, std::size_t class_id)
CDPL::Chem::hasIsotope
CDPL_CHEM_API bool hasIsotope(const Atom &atom)
CDPL::Chem::getMatchExpression
CDPL_CHEM_API const MatchExpression< Atom, MolecularGraph >::SharedPointer & getMatchExpression(const Atom &atom)
CDPL::Chem::hasStereoDescriptor
CDPL_CHEM_API bool hasStereoDescriptor(const Atom &atom)
CDPL::Chem::perceiveHybridizationState
CDPL_CHEM_API unsigned int perceiveHybridizationState(const Atom &atom, const MolecularGraph &molgraph)
CDPL::Chem::setAromaticityFlag
CDPL_CHEM_API void setAromaticityFlag(Atom &atom, bool aromatic)
CDPL::Math::Vector2D
CVector< double, 2 > Vector2D
A bounded 2 element vector holding floating point values of type double.
Definition: Vector.hpp:1632
CDPL::Chem::clearComponentGroupID
CDPL_CHEM_API void clearComponentGroupID(Atom &atom)
CDPL::Chem::getReactionCenterStatus
CDPL_CHEM_API unsigned int getReactionCenterStatus(const Atom &atom)
CDPL::Chem::hasAromaticityFlag
CDPL_CHEM_API bool hasAromaticityFlag(const Atom &atom)
CDPL::Chem::setName
CDPL_CHEM_API void setName(Atom &atom, const std::string &name)
CDPL::Chem::StereoDescriptor
A data structure for the storage and retrieval of stereochemical information about atoms and bonds.
Definition: StereoDescriptor.hpp:102
CDPL::Chem::AtomContainer::containsAtom
virtual bool containsAtom(const Atom &atom) const =0
Tells whether the specified Chem::Atom instance is stored in this container.
CDPL::Chem::hasCanonicalNumber
CDPL_CHEM_API bool hasCanonicalNumber(const Atom &atom)
CDPL::Chem::clearRingFlag
CDPL_CHEM_API void clearRingFlag(Atom &atom)
CDPL::Chem::hasMOL2SubstructureSubtype
CDPL_CHEM_API bool hasMOL2SubstructureSubtype(const Atom &atom)
CDPL::Chem::setMOL2SubstructureID
CDPL_CHEM_API void setMOL2SubstructureID(Atom &atom, std::size_t id)
CDPL::Chem::setMatchConstraints
CDPL_CHEM_API void setMatchConstraints(Atom &atom, const MatchConstraintList::SharedPointer &constr)
CDPL::Chem::calcImplicitHydrogenCount
CDPL_CHEM_API std::size_t calcImplicitHydrogenCount(const Atom &atom, const MolecularGraph &molgraph)
CDPL::Chem::hasMOL2SubstructureID
CDPL_CHEM_API bool hasMOL2SubstructureID(const Atom &atom)
CDPL::Chem::getSymmetryClass
CDPL_CHEM_API std::size_t getSymmetryClass(const Atom &atom)
CDPL::Chem::setCIPConfiguration
CDPL_CHEM_API void setCIPConfiguration(Atom &atom, unsigned int config)
CDPL::Chem::hasType
CDPL_CHEM_API bool hasType(const Atom &atom)
CDPL::Chem::clearCIPConfiguration
CDPL_CHEM_API void clearCIPConfiguration(Atom &atom)
CDPL::Chem::setStereoDescriptor
CDPL_CHEM_API void setStereoDescriptor(Atom &atom, const StereoDescriptor &descr)
CDPL::Chem::hasMatchConstraints
CDPL_CHEM_API bool hasMatchConstraints(const Atom &atom)
MatchConstraintList.hpp
Definition of the class CDPL::Chem::MatchConstraintList.
FragmentList.hpp
Definition of the class CDPL::Chem::FragmentList.
CDPL::Chem::calcStereoDescriptor
CDPL_CHEM_API StereoDescriptor calcStereoDescriptor(const Atom &atom, const MolecularGraph &molgraph, std::size_t dim=1)
CDPL::Chem::hasSymmetryClass
CDPL_CHEM_API bool hasSymmetryClass(const Atom &atom)
CDPL::Chem::markReachableAtoms
CDPL_CHEM_API void markReachableAtoms(const Atom &atom, const MolecularGraph &molgraph, Util::BitSet &atom_mask, bool reset=true)
CDPL::Chem::clearMDLParity
CDPL_CHEM_API void clearMDLParity(Atom &atom)
CDPL::Chem::setMorganNumber
CDPL_CHEM_API void setMorganNumber(Atom &atom, std::size_t num)
CDPL::Chem::getMOL2SubstructureSubtype
CDPL_CHEM_API const std::string & getMOL2SubstructureSubtype(const Atom &atom)
CDPL::Chem::hasHybridizationState
CDPL_CHEM_API bool hasHybridizationState(const Atom &atom)
CDPL::Chem::calcAtomConfiguration
CDPL_CHEM_API unsigned int calcAtomConfiguration(const Atom &atom, const MolecularGraph &molgraph, const StereoDescriptor &descr, const Math::Vector3DArray &coords)
CDPL::Chem::setComponentGroupID
CDPL_CHEM_API void setComponentGroupID(Atom &atom, std::size_t id)
CDPL::Chem::getSymbolForType
CDPL_CHEM_API const std::string & getSymbolForType(const Atom &atom)
CDPL::Chem::getMatchConstraints
CDPL_CHEM_API const MatchConstraintList::SharedPointer & getMatchConstraints(const Atom &atom)
CDPL::Chem::getSizeOfLargestContainingFragment
CDPL_CHEM_API std::size_t getSizeOfLargestContainingFragment(const Atom &atom, const FragmentList &frag_list)
Vector.hpp
Definition of vector data types.
CDPL::Chem::hasMOL2Name
CDPL_CHEM_API bool hasMOL2Name(const Atom &atom)
CDPL::Chem::getMDLStereoCareFlag
CDPL_CHEM_API bool getMDLStereoCareFlag(const Atom &atom)
CDPL::Chem::set2DCoordinates
CDPL_CHEM_API void set2DCoordinates(AtomContainer &cntnr, const Math::Vector2DArray &coords)
CDPL::Chem::getRadicalType
CDPL_CHEM_API unsigned int getRadicalType(const Atom &atom)
CDPL::Chem::getSizeOfSmallestContainingFragment
CDPL_CHEM_API std::size_t getSizeOfSmallestContainingFragment(const Atom &atom, const FragmentList &frag_list)
CDPL::Chem::set3DCoordinatesArray
CDPL_CHEM_API void set3DCoordinatesArray(Atom &atom, const Math::Vector3DArray::SharedPointer &coords_array)