Chemical Data Processing Library C++ API - Version 1.1.1
Chem/MolecularGraphFunctions.hpp
Go to the documentation of this file.
1 /*
2  * MolecularGraphFunctions.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_MOLECULARGRAPHFUNCTIONS_HPP
30 #define CDPL_CHEM_MOLECULARGRAPHFUNCTIONS_HPP
31 
32 #include <string>
33 #include <cstddef>
34 #include <cstdint>
35 #include <ctime>
36 
37 #include "CDPL/Chem/APIPrefix.hpp"
38 #include "CDPL/Chem/Fragment.hpp"
47 #include "CDPL/Math/Matrix.hpp"
48 #include "CDPL/Math/Vector.hpp"
50 #include "CDPL/Util/BitSet.hpp"
51 
52 
53 namespace CDPL
54 {
55 
56  namespace Chem
57  {
58 
59  CDPL_CHEM_API const std::string& getName(const MolecularGraph& molgraph);
60 
61  CDPL_CHEM_API void setName(MolecularGraph& molgraph, const std::string& name);
62 
64 
65  CDPL_CHEM_API bool hasName(const MolecularGraph& molgraph);
66 
67 
68  CDPL_CHEM_API std::time_t getTimestamp(const MolecularGraph& molgraph);
69 
70  CDPL_CHEM_API void setTimestamp(MolecularGraph& molgraph, std::time_t time);
71 
73 
74  CDPL_CHEM_API bool hasTimestamp(const MolecularGraph& molgraph);
75 
76 
77  CDPL_CHEM_API const std::string& getComment(const MolecularGraph& molgraph);
78 
79  CDPL_CHEM_API void setComment(MolecularGraph& molgraph, const std::string& comment);
80 
82 
83  CDPL_CHEM_API bool hasComment(const MolecularGraph& molgraph);
84 
85 
87 
89 
91 
93 
94 
96 
98 
100 
102 
104 
106 
107 
109 
111 
113 
114  CDPL_CHEM_API bool hasRings(const MolecularGraph& molgraph);
115 
117 
119 
120 
122 
124 
126 
127  CDPL_CHEM_API bool hasSSSR(const MolecularGraph& molgraph);
128 
130 
132 
134 
135  CDPL_CHEM_API FragmentList::SharedPointer extractSSSRSubset(const MolecularGraph& src_molgraph, MolecularGraph& tgt_molgraph, bool overwrite);
136 
137 
139 
141 
143 
145 
147 
149 
150 
152 
154 
156 
158 
160 
162 
163 
165 
167 
169 
171 
173 
175 
176 
177  CDPL_CHEM_API std::size_t getConformationIndex(const MolecularGraph& molgraph);
178 
179  CDPL_CHEM_API void setConformationIndex(MolecularGraph& molgraph, std::size_t index);
180 
182 
184 
185 
186  CDPL_CHEM_API const Util::DArray::SharedPointer& getConformerEnergies(const MolecularGraph& molgraph);
187 
188  CDPL_CHEM_API void setConformerEnergies(MolecularGraph& molgraph, const Util::DArray::SharedPointer& energies);
189 
191 
193 
194 
195  CDPL_CHEM_API void setConformation(MolecularGraph& molgraph, std::size_t conf_idx, const Math::Vector3DArray& coords, double energy);
196 
197  CDPL_CHEM_API void addConformation(MolecularGraph& molgraph, const Math::Vector3DArray& coords, double energy);
198 
199  CDPL_CHEM_API double getConformationEnergy(const MolecularGraph& molgraph, std::size_t conf_idx);
200 
201 
202  CDPL_CHEM_API std::uint64_t getHashCode(const MolecularGraph& molgraph);
203 
204  CDPL_CHEM_API void setHashCode(MolecularGraph& molgraph, std::uint64_t hash_code);
205 
207 
208  CDPL_CHEM_API bool hasHashCode(const MolecularGraph& molgraph);
209 
210  CDPL_CHEM_API std::uint64_t calcHashCode(const MolecularGraph& molgraph, unsigned int atom_flags = AtomPropertyFlag::DEFAULT,
211  unsigned int bond_flags = BondPropertyFlag::DEFAULT, bool ord_h_deplete = true);
212 
213 
214  CDPL_CHEM_API void extractReactionCenter(const MolecularGraph& molgraph, Fragment& rxn_center);
215 
216 
218 
220 
222 
224 
225 
226  CDPL_CHEM_API const std::string& getMDLUserInitials(const MolecularGraph& molgraph);
227 
228  CDPL_CHEM_API void setMDLUserInitials(MolecularGraph& molgraph, const std::string& initials);
229 
231 
233 
234 
235  CDPL_CHEM_API const std::string& getMDLProgramName(const MolecularGraph& molgraph);
236 
237  CDPL_CHEM_API void setMDLProgramName(MolecularGraph& molgraph, const std::string& name);
238 
240 
242 
243 
244  CDPL_CHEM_API std::size_t getMDLRegistryNumber(const MolecularGraph& molgraph);
245 
246  CDPL_CHEM_API void setMDLRegistryNumber(MolecularGraph& molgraph, std::size_t reg_no);
247 
249 
251 
252 
253  CDPL_CHEM_API unsigned int getMDLCTABVersion(const MolecularGraph& molgraph);
254 
255  CDPL_CHEM_API void setMDLCTABVersion(MolecularGraph& molgraph, unsigned int version);
256 
258 
260 
261 
263 
265 
267 
269 
270 
271  CDPL_CHEM_API std::size_t getMDLDimensionality(const MolecularGraph& molgraph);
272 
273  CDPL_CHEM_API void setMDLDimensionality(MolecularGraph& molgraph, std::size_t dim);
274 
276 
278 
279 
281 
282  CDPL_CHEM_API void setMDLScalingFactor1(MolecularGraph& molgraph, long factor);
283 
285 
287 
288 
290 
291  CDPL_CHEM_API void setMDLScalingFactor2(MolecularGraph& molgraph, double factor);
292 
294 
296 
297 
298  CDPL_CHEM_API double getMDLEnergy(const MolecularGraph& molgraph);
299 
300  CDPL_CHEM_API void setMDLEnergy(MolecularGraph& molgraph, double energy);
301 
303 
305 
306 
308 
309  CDPL_CHEM_API void setMDLChiralFlag(MolecularGraph& molgraph, bool flag);
310 
312 
314 
315 
316  CDPL_CHEM_API unsigned int getMOL2MoleculeType(const MolecularGraph& molgraph);
317 
318  CDPL_CHEM_API void setMOL2MoleculeType(MolecularGraph& molgraph, unsigned int type);
319 
321 
323 
324 
325  CDPL_CHEM_API unsigned int getMOL2ChargeType(const MolecularGraph& molgraph);
326 
327  CDPL_CHEM_API void setMOL2ChargeType(MolecularGraph& molgraph, unsigned int type);
328 
330 
332 
333 
335 
337 
339 
341 
343 
344 
346 
348 
350 
352 
354 
356 
358 
360 
361 
363 
365 
367 
369 
371 
372 
374 
376 
378 
380 
382 
384 
385 
387 
389 
391 
393 
395 
397 
398 
399  CDPL_CHEM_API bool generateSMILES(const MolecularGraph& molgraph, std::string& smiles, bool canonical = false,
400  bool ord_h_deplete = true, unsigned int atom_flags = AtomPropertyFlag::DEFAULT,
401  unsigned int bond_flags = BondPropertyFlag::DEFAULT);
402 
403  CDPL_CHEM_API int generateINCHI(const MolecularGraph& molgraph, std::string& inchi,
404  const std::string& options = ControlParameterDefault::INCHI_OUTPUT_OPTIONS,
405  std::size_t dim = 0);
406 
407  CDPL_CHEM_API int generateINCHIKey(const MolecularGraph& molgraph, std::string& inchi_key);
408 
409  CDPL_CHEM_API void canonicalize(MolecularGraph& molgraph, const AtomCompareFunction& func, bool atoms = true,
410  bool atom_nbrs = true, bool bonds = true, bool bond_atoms = false);
411 
412  CDPL_CHEM_API void canonicalize(MolecularGraph& molgraph, bool atoms = true, bool atom_nbrs = true,
413  bool bonds = true, bool bond_atoms = false);
414 
415  CDPL_CHEM_API void calc2DCoordinates(MolecularGraph& molgraph, bool overwrite);
416 
417  CDPL_CHEM_API void calcHydrogen3DCoordinates(MolecularGraph& molgraph, bool undef_only = true);
418 
419  CDPL_CHEM_API void calcBond2DStereoFlags(MolecularGraph& molgraph, bool overwrite);
420 
421  CDPL_CHEM_API void calcCIPPriorities(MolecularGraph& molgraph, bool overwrite);
422 
423  CDPL_CHEM_API void perceiveSymmetryClasses(MolecularGraph& molgraph, bool overwrite,
424  unsigned int atom_flags = AtomPropertyFlag::DEFAULT,
425  unsigned int bond_flags = BondPropertyFlag::DEFAULT, bool inc_impl_h = true);
426 
427  CDPL_CHEM_API void calcCanonicalNumbering(MolecularGraph& molgraph, bool overwrite,
428  unsigned int atom_flags = AtomPropertyFlag::DEFAULT,
429  unsigned int bond_flags = BondPropertyFlag::DEFAULT);
430 
431  CDPL_CHEM_API void calcMorganNumbering(MolecularGraph& molgraph, bool overwrite);
432 
433  CDPL_CHEM_API void calcImplicitHydrogenCounts(MolecularGraph& molgraph, bool overwrite);
434 
435  CDPL_CHEM_API void calcFormalCharges(MolecularGraph& molgraph, bool overwrite);
436 
438 
439  CDPL_CHEM_API void perceiveBondOrders(MolecularGraph& molgraph, bool overwrite);
440 
442 
443  CDPL_CHEM_API void perceiveAtomStereoCenters(MolecularGraph& molgraph, bool overwrite, bool check_asym = true,
444  bool check_inv_n = true, bool check_quart_n = true, bool check_plan_n = true,
445  bool check_amide_n = true, bool check_res_ctrs = true);
446 
447  CDPL_CHEM_API void perceiveBondStereoCenters(MolecularGraph& molgraph, bool overwrite, bool check_asym = true,
448  bool check_term_n = true, bool check_order = true, std::size_t min_ring_size = 8);
449 
450  CDPL_CHEM_API void calcMDLParities(MolecularGraph& molgraph, bool overwrite);
451 
452  CDPL_CHEM_API void calcAtomStereoDescriptors(MolecularGraph& molgraph, bool overwrite, std::size_t dim = 1, bool check_stc_flag = true);
453 
455 
456  CDPL_CHEM_API void calcBondStereoDescriptors(MolecularGraph& molgraph, bool overwrite, std::size_t dim = 1,
457  bool check_stc_flag = true);
458 
459  CDPL_CHEM_API void calcAtomCIPConfigurations(MolecularGraph& molgraph, bool overwrite);
460 
461  CDPL_CHEM_API void calcBondCIPConfigurations(MolecularGraph& molgraph, bool overwrite);
462 
464  bool overwrite);
465 
467  bool overwrite);
468 
469  CDPL_CHEM_API void generateMatchExpressions(MolecularGraph& molgraph, bool overwrite);
470 
472 
474 
476 
477  CDPL_CHEM_API void setAromaticityFlags(MolecularGraph& molgraph, bool overwrite);
478 
479  CDPL_CHEM_API void setRingFlags(MolecularGraph& molgraph, bool overwrite);
480 
481  CDPL_CHEM_API void setAtomTypesFromSymbols(MolecularGraph& molgraph, bool overwrite);
482 
483  CDPL_CHEM_API void setAtomSymbolsFromTypes(MolecularGraph& molgraph, bool overwrite);
484 
485  CDPL_CHEM_API void perceiveSybylAtomTypes(MolecularGraph& molgraph, bool overwrite);
486 
488 
490 
491  CDPL_CHEM_API bool containsMolecularGraph(const MolecularGraph& molgraph, const MolecularGraph& sub_molgraph,
492  bool atoms = true, bool bonds = true);
493 
494  CDPL_CHEM_API void getContainedFragments(const MolecularGraph& molgraph, const FragmentList& frag_list,
495  FragmentList& cont_frag_list, bool append = false, bool atoms = true,
496  bool bonds = true);
497 
498  CDPL_CHEM_API void getContainingFragments(const MolecularGraph& molgraph, const FragmentList& frag_list,
499  FragmentList& cont_frag_list, bool append = false, bool atoms = true,
500  bool bonds = true);
501 
502  CDPL_CHEM_API void translateFragment(const MolecularGraph& src_molgraph, const Fragment& src_frag,
503  const MolecularGraph& tgt_molgraph, Fragment& tgt_frag, bool append = false);
504 
505  CDPL_CHEM_API void translateFragments(const MolecularGraph& src_molgraph, const FragmentList& src_frag_list,
506  const MolecularGraph& tgt_molgraph, FragmentList& tgt_frag_list, bool append = false);
507 
509  const Util::BitSet& split_bond_mask, bool append = false);
510 
511  CDPL_CHEM_API std::size_t getCompleteBondCount(const MolecularGraph& molgraph);
512 
516  CDPL_CHEM_API void calcBasicProperties(MolecularGraph& molgraph, bool overwrite);
517 
518  } // namespace Chem
519 } // namespace CDPL
520 
521 #endif // CDPL_CHEM_MOLECULARGRAPHFUNCTIONS_HPP
CDPL::Chem::getMOL2MoleculeType
CDPL_CHEM_API unsigned int getMOL2MoleculeType(const MolecularGraph &molgraph)
CDPL::Chem::hasConformerEnergies
CDPL_CHEM_API bool hasConformerEnergies(const MolecularGraph &molgraph)
CDPL::Chem::calcImplicitHydrogenCounts
CDPL_CHEM_API void calcImplicitHydrogenCounts(MolecularGraph &molgraph, bool overwrite)
CDPL::Chem::perceiveCyclicSubstructure
CDPL_CHEM_API Fragment::SharedPointer perceiveCyclicSubstructure(const MolecularGraph &molgraph)
CDPL::Chem::AtomCompareFunction
std::function< bool(const Chem::Atom &, const Chem::Atom &)> AtomCompareFunction
A generic wrapper class used to store a user-defined atom compare function.
Definition: AtomCompareFunction.hpp:41
CDPL::Chem::setGeometricalDistanceMatrix
CDPL_CHEM_API void setGeometricalDistanceMatrix(MolecularGraph &molgraph, const Math::DMatrix::SharedPointer &mtx)
CDPL::Chem::hasMOL2MoleculeType
CDPL_CHEM_API bool hasMOL2MoleculeType(const MolecularGraph &molgraph)
CDPL::Chem::generateBondMatrix
CDPL_CHEM_API void generateBondMatrix(const MolecularGraph &molgraph, Math::SparseULMatrix &mtx)
APIPrefix.hpp
Definition of the preprocessor macro CDPL_CHEM_API.
CDPL::Chem::hasConformationIndex
CDPL_CHEM_API bool hasConformationIndex(const MolecularGraph &molgraph)
CDPL::Chem::getContainedFragments
CDPL_CHEM_API void getContainedFragments(const MolecularGraph &molgraph, const FragmentList &frag_list, FragmentList &cont_frag_list, bool append=false, bool atoms=true, bool bonds=true)
CDPL::Chem::hasStructureData
CDPL_CHEM_API bool hasStructureData(const MolecularGraph &molgraph)
CDPL::Chem::generateINCHI
CDPL_CHEM_API int generateINCHI(const MolecularGraph &molgraph, std::string &inchi, const std::string &options=ControlParameterDefault::INCHI_OUTPUT_OPTIONS, std::size_t dim=0)
CDPL::Chem::clearMOL2ChargeType
CDPL_CHEM_API void clearMOL2ChargeType(MolecularGraph &molgraph)
VectorArray.hpp
Definition of the class CDPL::Math::VectorArray.
CDPL::Chem::getMDLUserInitials
CDPL_CHEM_API const std::string & getMDLUserInitials(const MolecularGraph &molgraph)
CDPL::Chem::setConformerEnergies
CDPL_CHEM_API void setConformerEnergies(MolecularGraph &molgraph, const Util::DArray::SharedPointer &energies)
CDPL::Chem::hasTimestamp
CDPL_CHEM_API bool hasTimestamp(const MolecularGraph &molgraph)
CDPL::Chem::hasMDLRegistryNumber
CDPL_CHEM_API bool hasMDLRegistryNumber(const MolecularGraph &molgraph)
CDPL::Chem::clearGeometricalDistanceMatrix
CDPL_CHEM_API void clearGeometricalDistanceMatrix(MolecularGraph &molgraph)
CDPL::Chem::setMDLRegistryNumber
CDPL_CHEM_API void setMDLRegistryNumber(MolecularGraph &molgraph, std::size_t reg_no)
CDPL::Chem::getConformationIndex
CDPL_CHEM_API std::size_t getConformationIndex(const MolecularGraph &molgraph)
CDPL::Chem::getGeometricalDistanceMatrix
CDPL_CHEM_API const Math::DMatrix::SharedPointer & getGeometricalDistanceMatrix(const MolecularGraph &molgraph)
CDPL::Chem::setCyclicSubstructure
CDPL_CHEM_API void setCyclicSubstructure(MolecularGraph &molgraph, const Fragment::SharedPointer &substruct)
CDPL::Chem::calcBondStereoDescriptors
CDPL_CHEM_API void calcBondStereoDescriptors(MolecularGraph &molgraph, bool overwrite, std::size_t dim=1, bool check_stc_flag=true)
CDPL::Chem::getRings
CDPL_CHEM_API const FragmentList::SharedPointer & getRings(const MolecularGraph &molgraph)
CDPL::Chem::setStoichiometricNumber
CDPL_CHEM_API void setStoichiometricNumber(MolecularGraph &molgraph, double num)
CDPL_CHEM_API
#define CDPL_CHEM_API
Tells the compiler/linker which classes, functions and variables are part of the library API.
CDPL::Chem::getAromaticSubstructure
CDPL_CHEM_API const Fragment::SharedPointer & getAromaticSubstructure(const MolecularGraph &molgraph)
CDPL::Chem::translateFragments
CDPL_CHEM_API void translateFragments(const MolecularGraph &src_molgraph, const FragmentList &src_frag_list, const MolecularGraph &tgt_molgraph, FragmentList &tgt_frag_list, bool append=false)
CDPL::Chem::generateMatchExpressions
CDPL_CHEM_API void generateMatchExpressions(MolecularGraph &molgraph, bool overwrite)
CDPL::Chem::clearTimestamp
CDPL_CHEM_API void clearTimestamp(MolecularGraph &molgraph)
CDPL::Chem::clearSSSR
CDPL_CHEM_API void clearSSSR(MolecularGraph &molgraph)
CDPL::Chem::hasStoichiometricNumber
CDPL_CHEM_API bool hasStoichiometricNumber(const MolecularGraph &molgraph)
CDPL::Chem::clearRings
CDPL_CHEM_API void clearRings(MolecularGraph &molgraph)
CDPL::Chem::setRingFlags
CDPL_CHEM_API void setRingFlags(MolecularGraph &molgraph, bool overwrite)
CDPL::Chem::initSubstructureSearchQuery
CDPL_CHEM_API void initSubstructureSearchQuery(MolecularGraph &molgraph, bool overwrite)
CDPL::Chem::getMDLProgramName
CDPL_CHEM_API const std::string & getMDLProgramName(const MolecularGraph &molgraph)
CDPL::Chem::hasHashCode
CDPL_CHEM_API bool hasHashCode(const MolecularGraph &molgraph)
CDPL::Chem::clearCyclicSubstructure
CDPL_CHEM_API void clearCyclicSubstructure(MolecularGraph &molgraph)
CDPL::Chem::hasSSSR
CDPL_CHEM_API bool hasSSSR(const MolecularGraph &molgraph)
CDPL::Chem::clearPiElectronSystems
CDPL_CHEM_API void clearPiElectronSystems(MolecularGraph &molgraph)
CDPL::Chem::setMatchExpression
CDPL_CHEM_API void setMatchExpression(Atom &atom, const MatchExpression< Atom, MolecularGraph >::SharedPointer &expr)
CDPL::Chem::calcHashCode
CDPL_CHEM_API std::uint64_t calcHashCode(const MolecularGraph &molgraph, unsigned int atom_flags=AtomPropertyFlag::DEFAULT, unsigned int bond_flags=BondPropertyFlag::DEFAULT, bool ord_h_deplete=true)
CDPL::Chem::getConformerEnergies
CDPL_CHEM_API const Util::DArray::SharedPointer & getConformerEnergies(const MolecularGraph &molgraph)
CDPL::Chem::perceiveRings
CDPL_CHEM_API FragmentList::SharedPointer perceiveRings(const MolecularGraph &molgraph)
CDPL::Chem::setAtomMatchConstraints
CDPL_CHEM_API void setAtomMatchConstraints(MolecularGraph &molgraph, const MatchConstraintList::SharedPointer &constr, bool overwrite)
CDPL::Chem::extractTopologicalDistanceSubMatrix
CDPL_CHEM_API Math::ULMatrix::SharedPointer extractTopologicalDistanceSubMatrix(const MolecularGraph &src_molgraph, MolecularGraph &tgt_molgraph, bool overwrite)
CDPL::Chem::getContainingFragments
CDPL_CHEM_API void getContainingFragments(const Atom &atom, const FragmentList &frag_list, FragmentList &cont_frag_list, bool append=false)
CDPL::Chem::calcCIPPriorities
CDPL_CHEM_API void calcCIPPriorities(MolecularGraph &molgraph, bool overwrite)
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::getSSSR
CDPL_CHEM_API const FragmentList::SharedPointer & getSSSR(const MolecularGraph &molgraph)
CDPL::Chem::generateBondAtomTypeMatrix
CDPL_CHEM_API void generateBondAtomTypeMatrix(const MolecularGraph &molgraph, Math::SparseULMatrix &mtx)
CDPL::Chem::StringDataBlock::SharedPointer
std::shared_ptr< StringDataBlock > SharedPointer
Definition: StringDataBlock.hpp:128
CDPL::Chem::clearMatchExpression
CDPL_CHEM_API void clearMatchExpression(Atom &atom)
CDPL::Chem::perceiveComponents
CDPL_CHEM_API FragmentList::SharedPointer perceiveComponents(const MolecularGraph &molgraph)
CDPL::Chem::extractSSSRSubset
CDPL_CHEM_API FragmentList::SharedPointer extractSSSRSubset(const MolecularGraph &src_molgraph, const MolecularGraph &tgt_molgraph)
CDPL::Chem::hasMDLEnergy
CDPL_CHEM_API bool hasMDLEnergy(const MolecularGraph &molgraph)
CDPL::Chem::perceiveAtomStereoCenters
CDPL_CHEM_API void perceiveAtomStereoCenters(MolecularGraph &molgraph, bool overwrite, bool check_asym=true, bool check_inv_n=true, bool check_quart_n=true, bool check_plan_n=true, bool check_amide_n=true, bool check_res_ctrs=true)
CDPL::Chem::hasMatchExpression
CDPL_CHEM_API bool hasMatchExpression(const Atom &atom)
CDPL::Chem::perceiveBondOrders
CDPL_CHEM_API void perceiveBondOrders(MolecularGraph &molgraph, bool overwrite)
CDPL::Chem::generateIncidenceMatrix
CDPL_CHEM_API void generateIncidenceMatrix(const MolecularGraph &molgraph, Math::SparseULMatrix &mtx)
CDPL::Chem::Fragment
Fragment.
Definition: Fragment.hpp:52
CDPL::Chem::getMDLScalingFactor1
CDPL_CHEM_API long getMDLScalingFactor1(const MolecularGraph &molgraph)
CDPL::Chem::hasMDLCTABVersion
CDPL_CHEM_API bool hasMDLCTABVersion(const MolecularGraph &molgraph)
CDPL::Chem::addConformation
CDPL_CHEM_API void addConformation(AtomContainer &cntnr, const Math::Vector3DArray &coords)
CDPL::Chem::setBondMatchConstraints
CDPL_CHEM_API void setBondMatchConstraints(MolecularGraph &molgraph, const MatchConstraintList::SharedPointer &constr, bool overwrite)
CDPL::Chem::calcAtomStereoDescriptorsFromMDLParities
CDPL_CHEM_API void calcAtomStereoDescriptorsFromMDLParities(MolecularGraph &molgraph, bool overwrite)
CDPL::Chem::getPiElectronSystems
CDPL_CHEM_API const ElectronSystemList::SharedPointer & getPiElectronSystems(const MolecularGraph &molgraph)
CDPL::Chem::kekulizeBonds
CDPL_CHEM_API void kekulizeBonds(MolecularGraph &molgraph)
CDPL::Chem::ControlParameterDefault::INCHI_OUTPUT_OPTIONS
CDPL_CHEM_API const std::string INCHI_OUTPUT_OPTIONS
Default setting (= "/WarnOnEmptyStructure /AuxNone /NEWPSOFF") for the control-parameter Chem::Contro...
CDPL::Chem::clearComponentGroups
CDPL_CHEM_API void clearComponentGroups(MolecularGraph &molgraph)
CDPL::Chem::generateMatchExpression
CDPL_CHEM_API MatchExpression< Atom, MolecularGraph >::SharedPointer generateMatchExpression(const Atom &atom, const MolecularGraph &molgraph)
CDPL::Chem::perceiveSybylAtomTypes
CDPL_CHEM_API void perceiveSybylAtomTypes(MolecularGraph &molgraph, bool overwrite)
CDPL::Chem::hasComponentGroups
CDPL_CHEM_API bool hasComponentGroups(const MolecularGraph &molgraph)
ControlParameterDefault.hpp
Definition of constants in namespace CDPL::Chem::ControlParameterDefault.
CDPL::Chem::clearName
CDPL_CHEM_API void clearName(Atom &atom)
CDPL::Chem::FragmentList::SharedPointer
std::shared_ptr< FragmentList > SharedPointer
Definition: FragmentList.hpp:52
CDPL::Chem::perceiveSSSR
CDPL_CHEM_API FragmentList::SharedPointer perceiveSSSR(const MolecularGraph &molgraph)
CDPL::Chem::setComponentGroups
CDPL_CHEM_API void setComponentGroups(MolecularGraph &molgraph, const FragmentList::SharedPointer &comp_groups)
CDPL::Chem::setConformationIndex
CDPL_CHEM_API void setConformationIndex(MolecularGraph &molgraph, std::size_t index)
CDPL::Chem::getMDLCTABVersion
CDPL_CHEM_API unsigned int getMDLCTABVersion(const MolecularGraph &molgraph)
CDPL::Chem::calcHydrogen3DCoordinates
CDPL_CHEM_API void calcHydrogen3DCoordinates(MolecularGraph &molgraph, bool undef_only=true)
VectorArray< Vector3D >
CDPL::Chem::MolecularGraph
MolecularGraph.
Definition: MolecularGraph.hpp:52
BitSet.hpp
Definition of the type CDPL::Util::BitSet.
CDPL::Chem::getAromaticSSSRSubset
CDPL_CHEM_API FragmentList::SharedPointer getAromaticSSSRSubset(const MolecularGraph &molgraph)
CDPL::Chem::getMDLEnergy
CDPL_CHEM_API double getMDLEnergy(const MolecularGraph &molgraph)
CDPL::Chem::setAtomSymbolsFromTypes
CDPL_CHEM_API void setAtomSymbolsFromTypes(MolecularGraph &molgraph, bool overwrite)
CDPL::Chem::setHashCode
CDPL_CHEM_API void setHashCode(MolecularGraph &molgraph, std::uint64_t hash_code)
CDPL::Chem::setComment
CDPL_CHEM_API void setComment(MolecularGraph &molgraph, const std::string &comment)
AtomPropertyFlag.hpp
Definition of constants in namespace CDPL::Chem::AtomPropertyFlag.
CDPL::Chem::getComponents
CDPL_CHEM_API const FragmentList::SharedPointer & getComponents(const MolecularGraph &molgraph)
CDPL::Chem::perceiveComponentGroups
CDPL_CHEM_API FragmentList::SharedPointer perceiveComponentGroups(const MolecularGraph &molgraph)
CDPL::Chem::getName
CDPL_CHEM_API const std::string & getName(const Atom &atom)
CDPL::Chem::hasComment
CDPL_CHEM_API bool hasComment(const MolecularGraph &molgraph)
CDPL::Chem::setMDLChiralFlag
CDPL_CHEM_API void setMDLChiralFlag(MolecularGraph &molgraph, bool flag)
CDPL::Chem::clearMDLRegistryNumber
CDPL_CHEM_API void clearMDLRegistryNumber(MolecularGraph &molgraph)
CDPL::Chem::getMDLChiralFlag
CDPL_CHEM_API bool getMDLChiralFlag(const MolecularGraph &molgraph)
CDPL::Chem::perceiveBondStereoCenters
CDPL_CHEM_API void perceiveBondStereoCenters(MolecularGraph &molgraph, bool overwrite, bool check_asym=true, bool check_term_n=true, bool check_order=true, std::size_t min_ring_size=8)
CDPL::Chem::calcBasicProperties
CDPL_CHEM_API void calcBasicProperties(MolecularGraph &molgraph, bool overwrite)
CDPL::Chem::perceiveHybridizationStates
CDPL_CHEM_API void perceiveHybridizationStates(MolecularGraph &molgraph, bool overwrite)
CDPL::Chem::hasCyclicSubstructure
CDPL_CHEM_API bool hasCyclicSubstructure(const MolecularGraph &molgraph)
CDPL::Chem::setMDLUserInitials
CDPL_CHEM_API void setMDLUserInitials(MolecularGraph &molgraph, const std::string &initials)
CDPL::Chem::setTopologicalDistanceMatrix
CDPL_CHEM_API void setTopologicalDistanceMatrix(MolecularGraph &molgraph, const Math::ULMatrix::SharedPointer &mtx)
CDPL::Chem::hasPiElectronSystems
CDPL_CHEM_API bool hasPiElectronSystems(const MolecularGraph &molgraph)
CDPL::Chem::getAromaticRings
CDPL_CHEM_API FragmentList::SharedPointer getAromaticRings(const MolecularGraph &molgraph)
CDPL::Chem::clearMDLCTABVersion
CDPL_CHEM_API void clearMDLCTABVersion(MolecularGraph &molgraph)
CDPL::Chem::clearComment
CDPL_CHEM_API void clearComment(MolecularGraph &molgraph)
CDPL::Chem::hasGeometricalDistanceMatrix
CDPL_CHEM_API bool hasGeometricalDistanceMatrix(const MolecularGraph &molgraph)
CDPL::Chem::setComponents
CDPL_CHEM_API void setComponents(MolecularGraph &molgraph, const FragmentList::SharedPointer &comps)
CDPL::Chem::clearStoichiometricNumber
CDPL_CHEM_API void clearStoichiometricNumber(MolecularGraph &molgraph)
CDPL::Chem::initSubstructureSearchTarget
CDPL_CHEM_API void initSubstructureSearchTarget(MolecularGraph &molgraph, bool overwrite)
CDPL::Chem::getCompleteBondCount
CDPL_CHEM_API std::size_t getCompleteBondCount(const MolecularGraph &molgraph)
CDPL::Chem::setMDLEnergy
CDPL_CHEM_API void setMDLEnergy(MolecularGraph &molgraph, double energy)
CDPL::Chem::calcTopologicalDistanceMatrix
CDPL_CHEM_API Math::ULMatrix::SharedPointer calcTopologicalDistanceMatrix(MolecularGraph &molgraph, bool overwrite)
CDPL::Chem::calcFormalCharges
CDPL_CHEM_API void calcFormalCharges(MolecularGraph &molgraph, bool overwrite)
CDPL::Chem::calcBondCIPConfigurations
CDPL_CHEM_API void calcBondCIPConfigurations(MolecularGraph &molgraph, bool overwrite)
CDPL::Chem::setConformation
CDPL_CHEM_API void setConformation(AtomContainer &cntnr, std::size_t conf_idx, const Math::Vector3DArray &coords)
ElectronSystemList.hpp
Definition of the class CDPL::Chem::ElectronSystemList.
CDPL::Chem::calcMorganNumbering
CDPL_CHEM_API void calcMorganNumbering(MolecularGraph &molgraph, bool overwrite)
CDPL::Chem::getStoichiometricNumber
CDPL_CHEM_API double getStoichiometricNumber(const MolecularGraph &molgraph)
CDPL::Chem::setStructureData
CDPL_CHEM_API void setStructureData(MolecularGraph &molgraph, const StringDataBlock::SharedPointer &data)
CDPL::Chem::clearConformationIndex
CDPL_CHEM_API void clearConformationIndex(MolecularGraph &molgraph)
CDPL::Chem::Fragment::SharedPointer
std::shared_ptr< Fragment > SharedPointer
A reference-counted smart pointer [SHPTR] for dynamically allocated Fragment instances.
Definition: Fragment.hpp:61
CDPL::Chem::hasMDLUserInitials
CDPL_CHEM_API bool hasMDLUserInitials(const MolecularGraph &molgraph)
CDPL::Chem::clearMatchConstraints
CDPL_CHEM_API void clearMatchConstraints(Atom &atom)
CDPL::Chem::hasAromaticSubstructure
CDPL_CHEM_API bool hasAromaticSubstructure(const MolecularGraph &molgraph)
CDPL::Chem::clearConformerEnergies
CDPL_CHEM_API void clearConformerEnergies(MolecularGraph &molgraph)
CDPL::Chem::AtomPropertyFlag::DEFAULT
const unsigned int DEFAULT
Represents the default set of atom properties.
Definition: Chem/AtomPropertyFlag.hpp:53
CDPL::Chem::clearMDLEnergy
CDPL_CHEM_API void clearMDLEnergy(MolecularGraph &molgraph)
Fragment.hpp
Definition of the class CDPL::Chem::Fragment.
CDPL::Chem::clearComponents
CDPL_CHEM_API void clearComponents(MolecularGraph &molgraph)
CDPL::Chem::getCyclicSubstructure
CDPL_CHEM_API const Fragment::SharedPointer & getCyclicSubstructure(const MolecularGraph &molgraph)
CDPL::Chem::hasMDLProgramName
CDPL_CHEM_API bool hasMDLProgramName(const MolecularGraph &molgraph)
CDPL::Chem::FragmentList
A data type for the storage of Chem::Fragment objects.
Definition: FragmentList.hpp:49
CDPL::Chem::clearStructureData
CDPL_CHEM_API void clearStructureData(MolecularGraph &molgraph)
CDPL::Chem::calcCanonicalNumbering
CDPL_CHEM_API void calcCanonicalNumbering(MolecularGraph &molgraph, bool overwrite, unsigned int atom_flags=AtomPropertyFlag::DEFAULT, unsigned int bond_flags=BondPropertyFlag::DEFAULT)
CDPL::Chem::splitIntoFragments
CDPL_CHEM_API void splitIntoFragments(const MolecularGraph &molgraph, FragmentList &frag_list, const Util::BitSet &split_bond_mask, bool append=false)
CDPL::Chem::MatchExpression
A generic boolean expression interface for the implementation of query/target object equivalence test...
Definition: MatchExpression.hpp:75
CDPL::Chem::getComment
CDPL_CHEM_API const std::string & getComment(const MolecularGraph &molgraph)
CDPL::Chem::hasMDLScalingFactor2
CDPL_CHEM_API bool hasMDLScalingFactor2(const MolecularGraph &molgraph)
CDPL::Chem::generateSMILES
CDPL_CHEM_API bool generateSMILES(const MolecularGraph &molgraph, std::string &smiles, bool canonical=false, bool ord_h_deplete=true, unsigned int atom_flags=AtomPropertyFlag::DEFAULT, unsigned int bond_flags=BondPropertyFlag::DEFAULT)
CDPL::Chem::generateBondElectronMatrix
CDPL_CHEM_API void generateBondElectronMatrix(const MolecularGraph &molgraph, Math::SparseULMatrix &mtx)
CDPL::Chem::getTimestamp
CDPL_CHEM_API std::time_t getTimestamp(const MolecularGraph &molgraph)
CDPL::Chem::setSSSR
CDPL_CHEM_API void setSSSR(MolecularGraph &molgraph, const FragmentList::SharedPointer &sssr)
CDPL::Chem::hasTopologicalDistanceMatrix
CDPL_CHEM_API bool hasTopologicalDistanceMatrix(const MolecularGraph &molgraph)
CDPL::Math::Matrix
Definition: Matrix.hpp:280
CDPL::Chem::calcAtomCIPConfigurations
CDPL_CHEM_API void calcAtomCIPConfigurations(MolecularGraph &molgraph, bool overwrite)
MatchExpression.hpp
Definition of the class CDPL::Chem::MatchExpression.
CDPL::Chem::clearMDLDimensionality
CDPL_CHEM_API void clearMDLDimensionality(MolecularGraph &molgraph)
CDPL
The namespace of the Chemical Data Processing Library.
CDPL::Chem::setMDLProgramName
CDPL_CHEM_API void setMDLProgramName(MolecularGraph &molgraph, const std::string &name)
CDPL::Chem::perceiveAromaticSubstructure
CDPL_CHEM_API Fragment::SharedPointer perceiveAromaticSubstructure(const MolecularGraph &molgraph)
CDPL::Chem::hasMDLChiralFlag
CDPL_CHEM_API bool hasMDLChiralFlag(const MolecularGraph &molgraph)
CDPL::Chem::getMDLRegistryNumber
CDPL_CHEM_API std::size_t getMDLRegistryNumber(const MolecularGraph &molgraph)
CDPL::Chem::setTimestamp
CDPL_CHEM_API void setTimestamp(MolecularGraph &molgraph, std::time_t time)
CDPL::Chem::clearMDLChiralFlag
CDPL_CHEM_API void clearMDLChiralFlag(MolecularGraph &molgraph)
CDPL::Chem::extractReactionCenter
CDPL_CHEM_API void extractReactionCenter(const MolecularGraph &molgraph, Fragment &rxn_center)
CDPL::Chem::hasComponents
CDPL_CHEM_API bool hasComponents(const MolecularGraph &molgraph)
CDPL::Chem::calc2DCoordinates
CDPL_CHEM_API void calc2DCoordinates(MolecularGraph &molgraph, bool overwrite)
CDPL::Chem::hasName
CDPL_CHEM_API bool hasName(const Atom &atom)
CDPL::Chem::hasMOL2ChargeType
CDPL_CHEM_API bool hasMOL2ChargeType(const MolecularGraph &molgraph)
CDPL::Chem::getMatchExpression
CDPL_CHEM_API const MatchExpression< Atom, MolecularGraph >::SharedPointer & getMatchExpression(const Atom &atom)
CDPL::Chem::setMDLScalingFactor2
CDPL_CHEM_API void setMDLScalingFactor2(MolecularGraph &molgraph, double factor)
CDPL::Chem::clearMOL2MoleculeType
CDPL_CHEM_API void clearMOL2MoleculeType(MolecularGraph &molgraph)
CDPL::Chem::getHashCode
CDPL_CHEM_API std::uint64_t getHashCode(const MolecularGraph &molgraph)
CDPL::Chem::getMDLScalingFactor2
CDPL_CHEM_API double getMDLScalingFactor2(const MolecularGraph &molgraph)
CDPL::Chem::generateMatchExpressionStrings
CDPL_CHEM_API void generateMatchExpressionStrings(MolecularGraph &molgraph, bool overwrite)
CDPL::Chem::clearMDLScalingFactor1
CDPL_CHEM_API void clearMDLScalingFactor1(MolecularGraph &molgraph)
CDPL::Chem::clearMDLUserInitials
CDPL_CHEM_API void clearMDLUserInitials(MolecularGraph &molgraph)
CDPL::Chem::getMDLDimensionality
CDPL_CHEM_API std::size_t getMDLDimensionality(const MolecularGraph &molgraph)
CDPL::Chem::setName
CDPL_CHEM_API void setName(Atom &atom, const std::string &name)
CDPL::Chem::clearMDLProgramName
CDPL_CHEM_API void clearMDLProgramName(MolecularGraph &molgraph)
CDPL::Chem::calcBond2DStereoFlags
CDPL_CHEM_API void calcBond2DStereoFlags(MolecularGraph &molgraph, bool overwrite)
CDPL::Chem::clearHashCode
CDPL_CHEM_API void clearHashCode(MolecularGraph &molgraph)
CDPL::Chem::setMDLScalingFactor1
CDPL_CHEM_API void setMDLScalingFactor1(MolecularGraph &molgraph, long factor)
CDPL::Chem::getStructureData
CDPL_CHEM_API const StringDataBlock::SharedPointer & getStructureData(const MolecularGraph &molgraph)
CDPL::Chem::clearAromaticSubstructure
CDPL_CHEM_API void clearAromaticSubstructure(MolecularGraph &molgraph)
CDPL::Chem::setMatchConstraints
CDPL_CHEM_API void setMatchConstraints(Atom &atom, const MatchConstraintList::SharedPointer &constr)
CDPL::Chem::hasMDLScalingFactor1
CDPL_CHEM_API bool hasMDLScalingFactor1(const MolecularGraph &molgraph)
Matrix.hpp
Definition of matrix data types.
CDPL::Chem::calcGeometricalDistanceMatrix
CDPL_CHEM_API void calcGeometricalDistanceMatrix(const Entity3DContainer &cntnr, Math::DMatrix &mtx)
CDPL::Chem::setMDLDimensionality
CDPL_CHEM_API void setMDLDimensionality(MolecularGraph &molgraph, std::size_t dim)
CDPL::Chem::getMOL2ChargeType
CDPL_CHEM_API unsigned int getMOL2ChargeType(const MolecularGraph &molgraph)
CDPL::Chem::perceivePiElectronSystems
CDPL_CHEM_API ElectronSystemList::SharedPointer perceivePiElectronSystems(const MolecularGraph &molgraph)
BondPropertyFlag.hpp
Definition of constants in namespace CDPL::Chem::BondPropertyFlag.
CDPL::Chem::hasRings
CDPL_CHEM_API bool hasRings(const MolecularGraph &molgraph)
CDPL::Chem::ElectronSystemList::SharedPointer
std::shared_ptr< ElectronSystemList > SharedPointer
Definition: ElectronSystemList.hpp:52
CDPL::Chem::generateAdjacencyMatrix
CDPL_CHEM_API void generateAdjacencyMatrix(const MolecularGraph &molgraph, Math::SparseULMatrix &mtx)
CDPL::Chem::calcMDLParities
CDPL_CHEM_API void calcMDLParities(MolecularGraph &molgraph, bool overwrite)
CDPL::Chem::perceiveSymmetryClasses
CDPL_CHEM_API void perceiveSymmetryClasses(MolecularGraph &molgraph, bool overwrite, unsigned int atom_flags=AtomPropertyFlag::DEFAULT, unsigned int bond_flags=BondPropertyFlag::DEFAULT, bool inc_impl_h=true)
CDPL::Chem::setRings
CDPL_CHEM_API void setRings(MolecularGraph &molgraph, const FragmentList::SharedPointer &rings)
CDPL::Chem::setMDLCTABVersion
CDPL_CHEM_API void setMDLCTABVersion(MolecularGraph &molgraph, unsigned int version)
CDPL::Math::Matrix::SharedPointer
std::shared_ptr< SelfType > SharedPointer
Definition: Matrix.hpp:297
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::getConformationEnergy
CDPL_CHEM_API double getConformationEnergy(const MolecularGraph &molgraph, std::size_t conf_idx)
CDPL::Chem::setMOL2MoleculeType
CDPL_CHEM_API void setMOL2MoleculeType(MolecularGraph &molgraph, unsigned int type)
CDPL::Chem::setAromaticityFlags
CDPL_CHEM_API void setAromaticityFlags(MolecularGraph &molgraph, bool overwrite)
CDPL::Chem::generateINCHIKey
CDPL_CHEM_API int generateINCHIKey(const MolecularGraph &molgraph, std::string &inchi_key)
CDPL::Chem::setAromaticSubstructure
CDPL_CHEM_API void setAromaticSubstructure(MolecularGraph &molgraph, const Fragment::SharedPointer &substruct)
CDPL::Chem::clearTopologicalDistanceMatrix
CDPL_CHEM_API void clearTopologicalDistanceMatrix(MolecularGraph &molgraph)
CDPL::Chem::setPiElectronSystems
CDPL_CHEM_API void setPiElectronSystems(MolecularGraph &molgraph, const ElectronSystemList::SharedPointer &pi_systems)
CDPL::Chem::setAtomTypesFromSymbols
CDPL_CHEM_API void setAtomTypesFromSymbols(MolecularGraph &molgraph, bool overwrite)
CDPL::Chem::hasMDLDimensionality
CDPL_CHEM_API bool hasMDLDimensionality(const MolecularGraph &molgraph)
CDPL::Chem::setMOL2ChargeType
CDPL_CHEM_API void setMOL2ChargeType(MolecularGraph &molgraph, unsigned int type)
StringDataBlock.hpp
Definition of the class CDPL::Chem::StringDataBlockItem and the type CDPL::Chem::StringDataBlock.
CDPL::Math::SparseULMatrix
SparseMatrix< unsigned long > SparseULMatrix
An unbounded sparse matrix holding unsigned integers of type unsigned long.
Definition: Matrix.hpp:1904
CDPL::Chem::getMatchConstraints
CDPL_CHEM_API const MatchConstraintList::SharedPointer & getMatchConstraints(const Atom &atom)
Vector.hpp
Definition of vector data types.
CDPL::Chem::translateFragment
CDPL_CHEM_API void translateFragment(const MolecularGraph &src_molgraph, const Fragment &src_frag, const MolecularGraph &tgt_molgraph, Fragment &tgt_frag, bool append=false)
CDPL::Chem::canonicalize
CDPL_CHEM_API void canonicalize(MolecularGraph &molgraph, const AtomCompareFunction &func, bool atoms=true, bool atom_nbrs=true, bool bonds=true, bool bond_atoms=false)
CDPL::Chem::getComponentGroups
CDPL_CHEM_API const FragmentList::SharedPointer & getComponentGroups(const MolecularGraph &molgraph)
CDPL::Chem::BondPropertyFlag::DEFAULT
const unsigned int DEFAULT
Represents the default set of bond properties.
Definition: BondPropertyFlag.hpp:53
CDPL::Chem::getTopologicalDistanceMatrix
CDPL_CHEM_API const Math::ULMatrix::SharedPointer & getTopologicalDistanceMatrix(const MolecularGraph &molgraph)
CDPL::Chem::containsMolecularGraph
CDPL_CHEM_API bool containsMolecularGraph(const MolecularGraph &molgraph, const MolecularGraph &sub_molgraph, bool atoms=true, bool bonds=true)
CDPL::Chem::calcAtomStereoDescriptors
CDPL_CHEM_API void calcAtomStereoDescriptors(MolecularGraph &molgraph, bool overwrite, std::size_t dim=1, bool check_stc_flag=true)
CDPL::Chem::clearMDLScalingFactor2
CDPL_CHEM_API void clearMDLScalingFactor2(MolecularGraph &molgraph)