Chemical Data Processing Library C++ API - Version 1.2.0
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 
345  CDPL_CHEM_API const Math::ULMatrix::SharedPointer& getTopologicalDistanceMatrix(const MolecularGraph& molgraph);
346 
347  CDPL_CHEM_API void setTopologicalDistanceMatrix(MolecularGraph& molgraph, const Math::ULMatrix::SharedPointer& mtx);
348 
350 
352 
353  CDPL_CHEM_API Math::ULMatrix::SharedPointer calcTopologicalDistanceMatrix(MolecularGraph& molgraph, bool overwrite);
354 
356 
357  CDPL_CHEM_API Math::ULMatrix::SharedPointer extractTopologicalDistanceSubMatrix(const MolecularGraph& src_molgraph, MolecularGraph& tgt_molgraph, bool overwrite);
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
Definition of the type CDPL::Util::BitSet.
Definition of constants in namespace CDPL::Chem::BondPropertyFlag.
Definition of the preprocessor macro CDPL_CHEM_API.
#define CDPL_CHEM_API
Tells the compiler/linker which classes, functions and variables are part of the library API.
Definition of constants in namespace CDPL::Chem::AtomPropertyFlag.
Definition of constants in namespace CDPL::Chem::ControlParameterDefault.
Definition of the class CDPL::Chem::ElectronSystemList.
Definition of the class CDPL::Chem::FragmentList.
Definition of the class CDPL::Chem::Fragment.
Definition of the class CDPL::Chem::MatchConstraintList.
Definition of the class CDPL::Chem::MatchExpression.
Definition of matrix data types.
Definition of the class CDPL::Chem::StringDataBlockItem and the type CDPL::Chem::StringDataBlock.
Definition of the class CDPL::Math::VectorArray.
Definition of vector data types.
std::shared_ptr< ElectronSystemList > SharedPointer
Definition: ElectronSystemList.hpp:52
A data type for the storage of Chem::Fragment objects.
Definition: FragmentList.hpp:49
std::shared_ptr< FragmentList > SharedPointer
Definition: FragmentList.hpp:52
Fragment.
Definition: Fragment.hpp:52
std::shared_ptr< Fragment > SharedPointer
A reference-counted smart pointer [SHPTR] for dynamically allocated Fragment instances.
Definition: Fragment.hpp:61
std::shared_ptr< MatchConstraintList > SharedPointer
A reference-counted smart pointer [SHPTR] for dynamically allocated MatchConstraintList instances.
Definition: MatchConstraintList.hpp:197
A generic boolean expression interface for the implementation of query/target object equivalence test...
Definition: MatchExpression.hpp:75
MolecularGraph.
Definition: MolecularGraph.hpp:52
std::shared_ptr< StringDataBlock > SharedPointer
Definition: StringDataBlock.hpp:128
std::shared_ptr< SelfType > SharedPointer
Definition: Matrix.hpp:297
constexpr unsigned int DEFAULT
Represents the default set of atom properties.
Definition: Chem/AtomPropertyFlag.hpp:53
constexpr unsigned int DEFAULT
Represents the default set of bond properties.
Definition: BondPropertyFlag.hpp:53
CDPL_CHEM_API const std::string INCHI_OUTPUT_OPTIONS
Default setting (= "/WarnOnEmptyStructure /AuxNone /NEWPSOFF") for the control-parameter Chem::Contro...
CDPL_CHEM_API void setConformation(AtomContainer &cntnr, std::size_t conf_idx, const Math::Vector3DArray &coords)
CDPL_CHEM_API void setCyclicSubstructure(MolecularGraph &molgraph, const Fragment::SharedPointer &substruct)
CDPL_CHEM_API void setMOL2MoleculeType(MolecularGraph &molgraph, unsigned int type)
CDPL_CHEM_API void setAtomTypesFromSymbols(MolecularGraph &molgraph, bool overwrite)
CDPL_CHEM_API Math::ULMatrix::SharedPointer calcTopologicalDistanceMatrix(MolecularGraph &molgraph, bool overwrite)
CDPL_CHEM_API void calcImplicitHydrogenCounts(MolecularGraph &molgraph, bool overwrite)
CDPL_CHEM_API void setMDLUserInitials(MolecularGraph &molgraph, const std::string &initials)
CDPL_CHEM_API const Fragment::SharedPointer & getAromaticSubstructure(const MolecularGraph &molgraph)
CDPL_CHEM_API Fragment::SharedPointer perceiveAromaticSubstructure(const MolecularGraph &molgraph)
CDPL_CHEM_API unsigned int getMOL2ChargeType(const MolecularGraph &molgraph)
CDPL_CHEM_API FragmentList::SharedPointer perceiveComponents(const MolecularGraph &molgraph)
CDPL_CHEM_API void calc2DCoordinates(MolecularGraph &molgraph, bool overwrite)
CDPL_CHEM_API void setStructureData(MolecularGraph &molgraph, const StringDataBlock::SharedPointer &data)
CDPL_CHEM_API bool hasConformerEnergies(const MolecularGraph &molgraph)
CDPL_CHEM_API void setHashCode(MolecularGraph &molgraph, std::uint64_t hash_code)
CDPL_CHEM_API int generateINCHIKey(const MolecularGraph &molgraph, std::string &inchi_key)
CDPL_CHEM_API const std::string & getComment(const MolecularGraph &molgraph)
CDPL_CHEM_API FragmentList::SharedPointer getAromaticSSSRSubset(const MolecularGraph &molgraph)
CDPL_CHEM_API void calcMorganNumbering(MolecularGraph &molgraph, bool overwrite)
CDPL_CHEM_API void setAromaticityFlags(MolecularGraph &molgraph, bool overwrite)
CDPL_CHEM_API void calcBondStereoDescriptors(MolecularGraph &molgraph, bool overwrite, std::size_t dim=1, bool check_stc_flag=true)
CDPL_CHEM_API bool hasAromaticSubstructure(const MolecularGraph &molgraph)
CDPL_CHEM_API void clearMatchExpression(Atom &atom)
CDPL_CHEM_API void clearCyclicSubstructure(MolecularGraph &molgraph)
CDPL_CHEM_API void setMOL2ChargeType(MolecularGraph &molgraph, unsigned int type)
CDPL_CHEM_API void calcCanonicalNumbering(MolecularGraph &molgraph, bool overwrite, unsigned int atom_flags=AtomPropertyFlag::DEFAULT, unsigned int bond_flags=BondPropertyFlag::DEFAULT)
CDPL_CHEM_API void getContainingFragments(const Atom &atom, const FragmentList &frag_list, FragmentList &cont_frag_list, bool append=false)
CDPL_CHEM_API bool hasTimestamp(const MolecularGraph &molgraph)
CDPL_CHEM_API void setTimestamp(MolecularGraph &molgraph, std::time_t time)
CDPL_CHEM_API std::size_t getConformationIndex(const MolecularGraph &molgraph)
CDPL_CHEM_API bool hasMDLUserInitials(const MolecularGraph &molgraph)
CDPL_CHEM_API bool hasMDLCTABVersion(const MolecularGraph &molgraph)
CDPL_CHEM_API bool hasMDLChiralFlag(const MolecularGraph &molgraph)
CDPL_CHEM_API void clearHashCode(MolecularGraph &molgraph)
CDPL_CHEM_API void calcAtomStereoDescriptors(MolecularGraph &molgraph, bool overwrite, std::size_t dim=1, bool check_stc_flag=true)
CDPL_CHEM_API bool hasSSSR(const MolecularGraph &molgraph)
CDPL_CHEM_API void initSubstructureSearchQuery(MolecularGraph &molgraph, bool overwrite)
CDPL_CHEM_API void clearMOL2ChargeType(MolecularGraph &molgraph)
CDPL_CHEM_API void setSSSR(MolecularGraph &molgraph, const FragmentList::SharedPointer &sssr)
CDPL_CHEM_API const MatchConstraintList::SharedPointer & getMatchConstraints(const Atom &atom)
CDPL_CHEM_API void generateMatchExpressions(MolecularGraph &molgraph, bool overwrite)
CDPL_CHEM_API bool hasRings(const MolecularGraph &molgraph)
CDPL_CHEM_API void addConformation(AtomContainer &cntnr, const Math::Vector3DArray &coords)
CDPL_CHEM_API bool hasName(const Atom &atom)
CDPL_CHEM_API const std::string & getMDLUserInitials(const MolecularGraph &molgraph)
CDPL_CHEM_API void clearMDLRegistryNumber(MolecularGraph &molgraph)
CDPL_CHEM_API void setAtomSymbolsFromTypes(MolecularGraph &molgraph, bool overwrite)
CDPL_CHEM_API void generateIncidenceMatrix(const MolecularGraph &molgraph, Math::SparseULMatrix &mtx)
CDPL_CHEM_API double getMDLEnergy(const MolecularGraph &molgraph)
CDPL_CHEM_API bool hasMDLEnergy(const MolecularGraph &molgraph)
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_API void setComponents(MolecularGraph &molgraph, const FragmentList::SharedPointer &comps)
CDPL_CHEM_API const std::string & getName(const Atom &atom)
CDPL_CHEM_API const FragmentList::SharedPointer & getSSSR(const MolecularGraph &molgraph)
CDPL_CHEM_API void setMDLChiralFlag(MolecularGraph &molgraph, bool flag)
CDPL_CHEM_API bool hasConformationIndex(const MolecularGraph &molgraph)
CDPL_CHEM_API FragmentList::SharedPointer perceiveRings(const MolecularGraph &molgraph)
CDPL_CHEM_API bool hasTopologicalDistanceMatrix(const MolecularGraph &molgraph)
CDPL_CHEM_API void perceiveHybridizationStates(MolecularGraph &molgraph, bool overwrite)
CDPL_CHEM_API void clearMOL2MoleculeType(MolecularGraph &molgraph)
CDPL_CHEM_API void clearConformationIndex(MolecularGraph &molgraph)
CDPL_CHEM_API void clearGeometricalDistanceMatrix(MolecularGraph &molgraph)
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_API void clearMDLChiralFlag(MolecularGraph &molgraph)
CDPL_CHEM_API void setMatchExpression(Atom &atom, const MatchExpression< Atom, MolecularGraph >::SharedPointer &expr)
CDPL_CHEM_API void clearStructureData(MolecularGraph &molgraph)
CDPL_CHEM_API const StringDataBlock::SharedPointer & getStructureData(const MolecularGraph &molgraph)
CDPL_CHEM_API void clearTimestamp(MolecularGraph &molgraph)
CDPL_CHEM_API bool hasMDLRegistryNumber(const MolecularGraph &molgraph)
CDPL_CHEM_API void setMDLEnergy(MolecularGraph &molgraph, double energy)
CDPL_CHEM_API bool hasMDLScalingFactor2(const MolecularGraph &molgraph)
CDPL_CHEM_API bool hasStoichiometricNumber(const MolecularGraph &molgraph)
CDPL_CHEM_API const Util::DArray::SharedPointer & getConformerEnergies(const MolecularGraph &molgraph)
CDPL_CHEM_API FragmentList::SharedPointer perceiveSSSR(const MolecularGraph &molgraph)
CDPL_CHEM_API void clearTopologicalDistanceMatrix(MolecularGraph &molgraph)
CDPL_CHEM_API MatchExpression< Atom, MolecularGraph >::SharedPointer generateMatchExpression(const Atom &atom, const MolecularGraph &molgraph)
CDPL_CHEM_API const MatchExpression< Atom, MolecularGraph >::SharedPointer & getMatchExpression(const Atom &atom)
CDPL_CHEM_API void setComment(MolecularGraph &molgraph, const std::string &comment)
CDPL_CHEM_API ElectronSystemList::SharedPointer perceivePiElectronSystems(const MolecularGraph &molgraph)
CDPL_CHEM_API void clearComponents(MolecularGraph &molgraph)
CDPL_CHEM_API void perceiveBondOrders(MolecularGraph &molgraph, bool overwrite)
CDPL_CHEM_API void setGeometricalDistanceMatrix(MolecularGraph &molgraph, const Math::DMatrix::SharedPointer &mtx)
CDPL_CHEM_API void clearRings(MolecularGraph &molgraph)
CDPL_CHEM_API bool hasMOL2ChargeType(const MolecularGraph &molgraph)
CDPL_CHEM_API void setMDLScalingFactor1(MolecularGraph &molgraph, long factor)
CDPL_CHEM_API const Math::DMatrix::SharedPointer & getGeometricalDistanceMatrix(const MolecularGraph &molgraph)
CDPL_CHEM_API unsigned int getMOL2MoleculeType(const MolecularGraph &molgraph)
CDPL_CHEM_API void setStoichiometricNumber(MolecularGraph &molgraph, double num)
CDPL_CHEM_API std::size_t getMDLDimensionality(const MolecularGraph &molgraph)
CDPL_CHEM_API void setRingFlags(MolecularGraph &molgraph, bool overwrite)
CDPL_CHEM_API void setAromaticSubstructure(MolecularGraph &molgraph, const Fragment::SharedPointer &substruct)
CDPL_CHEM_API Fragment::SharedPointer perceiveCyclicSubstructure(const MolecularGraph &molgraph)
CDPL_CHEM_API bool containsMolecularGraph(const MolecularGraph &molgraph, const MolecularGraph &sub_molgraph, bool atoms=true, bool bonds=true)
CDPL_CHEM_API void setComponentGroups(MolecularGraph &molgraph, const FragmentList::SharedPointer &comp_groups)
CDPL_CHEM_API void clearMDLProgramName(MolecularGraph &molgraph)
CDPL_CHEM_API void clearMDLCTABVersion(MolecularGraph &molgraph)
CDPL_CHEM_API FragmentList::SharedPointer getAromaticRings(const MolecularGraph &molgraph)
CDPL_CHEM_API void generateBondMatrix(const MolecularGraph &molgraph, Math::SparseULMatrix &mtx)
CDPL_CHEM_API void extractReactionCenter(const MolecularGraph &molgraph, Fragment &rxn_center)
CDPL_CHEM_API const FragmentList::SharedPointer & getComponentGroups(const MolecularGraph &molgraph)
CDPL_CHEM_API long getMDLScalingFactor1(const MolecularGraph &molgraph)
CDPL_CHEM_API void setMDLCTABVersion(MolecularGraph &molgraph, unsigned int version)
CDPL_CHEM_API void initSubstructureSearchTarget(MolecularGraph &molgraph, bool overwrite)
CDPL_CHEM_API FragmentList::SharedPointer perceiveComponentGroups(const MolecularGraph &molgraph)
CDPL_CHEM_API void generateMatchExpressionStrings(MolecularGraph &molgraph, bool overwrite)
CDPL_CHEM_API void setMDLDimensionality(MolecularGraph &molgraph, std::size_t dim)
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_API void clearConformerEnergies(MolecularGraph &molgraph)
CDPL_CHEM_API void calcBond2DStereoFlags(MolecularGraph &molgraph, bool overwrite)
CDPL_CHEM_API void setMatchConstraints(Atom &atom, const MatchConstraintList::SharedPointer &constr)
CDPL_CHEM_API std::size_t getCompleteBondCount(const MolecularGraph &molgraph)
CDPL_CHEM_API bool hasMOL2MoleculeType(const MolecularGraph &molgraph)
CDPL_CHEM_API void clearMDLEnergy(MolecularGraph &molgraph)
CDPL_CHEM_API const FragmentList::SharedPointer & getComponents(const MolecularGraph &molgraph)
CDPL_CHEM_API double getStoichiometricNumber(const MolecularGraph &molgraph)
CDPL_CHEM_API std::uint64_t getHashCode(const MolecularGraph &molgraph)
CDPL_CHEM_API void calcHydrogen3DCoordinates(MolecularGraph &molgraph, bool undef_only=true)
CDPL_CHEM_API std::time_t getTimestamp(const MolecularGraph &molgraph)
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_API void setTopologicalDistanceMatrix(MolecularGraph &molgraph, const Math::ULMatrix::SharedPointer &mtx)
CDPL_CHEM_API void generateBondElectronMatrix(const MolecularGraph &molgraph, Math::SparseULMatrix &mtx)
CDPL_CHEM_API double getConformationEnergy(const MolecularGraph &molgraph, std::size_t conf_idx)
CDPL_CHEM_API Math::ULMatrix::SharedPointer extractTopologicalDistanceSubMatrix(const MolecularGraph &src_molgraph, MolecularGraph &tgt_molgraph, bool overwrite)
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_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_API bool hasMatchExpression(const Atom &atom)
CDPL_CHEM_API void calcAtomCIPConfigurations(MolecularGraph &molgraph, bool overwrite)
CDPL_CHEM_API void setConformerEnergies(MolecularGraph &molgraph, const Util::DArray::SharedPointer &energies)
CDPL_CHEM_API void clearComment(MolecularGraph &molgraph)
CDPL_CHEM_API void clearComponentGroups(MolecularGraph &molgraph)
CDPL_CHEM_API unsigned int getMDLCTABVersion(const MolecularGraph &molgraph)
CDPL_CHEM_API bool hasStructureData(const MolecularGraph &molgraph)
CDPL_CHEM_API void perceiveSybylAtomTypes(MolecularGraph &molgraph, bool overwrite)
CDPL_CHEM_API void setConformationIndex(MolecularGraph &molgraph, std::size_t index)
CDPL_CHEM_API bool hasComponents(const MolecularGraph &molgraph)
CDPL_CHEM_API bool hasMDLScalingFactor1(const MolecularGraph &molgraph)
CDPL_CHEM_API void kekulizeBonds(MolecularGraph &molgraph)
CDPL_CHEM_API void clearAromaticSubstructure(MolecularGraph &molgraph)
CDPL_CHEM_API bool hasHashCode(const MolecularGraph &molgraph)
CDPL_CHEM_API const ElectronSystemList::SharedPointer & getPiElectronSystems(const MolecularGraph &molgraph)
CDPL_CHEM_API const std::string & getMDLProgramName(const MolecularGraph &molgraph)
CDPL_CHEM_API void clearName(Atom &atom)
CDPL_CHEM_API void calcAtomStereoDescriptorsFromMDLParities(MolecularGraph &molgraph, bool overwrite)
CDPL_CHEM_API bool hasComponentGroups(const MolecularGraph &molgraph)
CDPL_CHEM_API bool hasCyclicSubstructure(const MolecularGraph &molgraph)
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_API void setAtomMatchConstraints(MolecularGraph &molgraph, const MatchConstraintList::SharedPointer &constr, bool overwrite)
CDPL_CHEM_API void calcCIPPriorities(MolecularGraph &molgraph, bool overwrite)
CDPL_CHEM_API void clearMDLScalingFactor1(MolecularGraph &molgraph)
CDPL_CHEM_API void calcMDLParities(MolecularGraph &molgraph, bool overwrite)
CDPL_CHEM_API void clearPiElectronSystems(MolecularGraph &molgraph)
CDPL_CHEM_API void setMDLRegistryNumber(MolecularGraph &molgraph, std::size_t reg_no)
CDPL_CHEM_API const FragmentList::SharedPointer & getRings(const MolecularGraph &molgraph)
CDPL_CHEM_API std::size_t getMDLRegistryNumber(const MolecularGraph &molgraph)
CDPL_CHEM_API void clearMatchConstraints(Atom &atom)
CDPL_CHEM_API void clearMDLUserInitials(MolecularGraph &molgraph)
CDPL_CHEM_API void setMDLScalingFactor2(MolecularGraph &molgraph, double factor)
CDPL_CHEM_API double getMDLScalingFactor2(const MolecularGraph &molgraph)
CDPL_CHEM_API void generateAdjacencyMatrix(const MolecularGraph &molgraph, Math::SparseULMatrix &mtx)
CDPL_CHEM_API bool hasMatchConstraints(const Atom &atom)
CDPL_CHEM_API void calcBasicProperties(MolecularGraph &molgraph, bool overwrite)
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_API void calcGeometricalDistanceMatrix(const Entity3DContainer &cntnr, Math::DMatrix &mtx)
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_API void setRings(MolecularGraph &molgraph, const FragmentList::SharedPointer &rings)
CDPL_CHEM_API bool hasMDLDimensionality(const MolecularGraph &molgraph)
CDPL_CHEM_API void clearStoichiometricNumber(MolecularGraph &molgraph)
CDPL_CHEM_API FragmentList::SharedPointer extractSSSRSubset(const MolecularGraph &src_molgraph, const MolecularGraph &tgt_molgraph)
CDPL_CHEM_API void calcBondCIPConfigurations(MolecularGraph &molgraph, bool overwrite)
CDPL_CHEM_API void clearMDLScalingFactor2(MolecularGraph &molgraph)
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_API bool hasGeometricalDistanceMatrix(const MolecularGraph &molgraph)
CDPL_CHEM_API bool hasComment(const MolecularGraph &molgraph)
CDPL_CHEM_API void clearSSSR(MolecularGraph &molgraph)
CDPL_CHEM_API void setMDLProgramName(MolecularGraph &molgraph, const std::string &name)
CDPL_CHEM_API void splitIntoFragments(const MolecularGraph &molgraph, FragmentList &frag_list, const Util::BitSet &split_bond_mask, bool append=false)
CDPL_CHEM_API const Fragment::SharedPointer & getCyclicSubstructure(const MolecularGraph &molgraph)
CDPL_CHEM_API void setPiElectronSystems(MolecularGraph &molgraph, const ElectronSystemList::SharedPointer &pi_systems)
CDPL_CHEM_API void setBondMatchConstraints(MolecularGraph &molgraph, const MatchConstraintList::SharedPointer &constr, bool overwrite)
CDPL_CHEM_API bool hasPiElectronSystems(const MolecularGraph &molgraph)
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_API bool getMDLChiralFlag(const MolecularGraph &molgraph)
CDPL_CHEM_API void calcFormalCharges(MolecularGraph &molgraph, bool overwrite)
CDPL_CHEM_API const Math::ULMatrix::SharedPointer & getTopologicalDistanceMatrix(const MolecularGraph &molgraph)
CDPL_CHEM_API void generateBondAtomTypeMatrix(const MolecularGraph &molgraph, Math::SparseULMatrix &mtx)
CDPL_CHEM_API void clearMDLDimensionality(MolecularGraph &molgraph)
CDPL_CHEM_API bool hasMDLProgramName(const MolecularGraph &molgraph)
CDPL_CHEM_API void setName(Atom &atom, const std::string &name)
SparseMatrix< unsigned long > SparseULMatrix
An unbounded sparse matrix holding unsigned integers of type unsigned long.
Definition: Matrix.hpp:1904
VectorArray< Vector3D > Vector3DArray
An array of Math::Vector3D objects.
Definition: VectorArray.hpp:84
Matrix< unsigned long > ULMatrix
An unbounded dense matrix holding unsigned integers of type unsigned long.
Definition: Matrix.hpp:1824
boost::dynamic_bitset BitSet
A dynamic bitset class.
Definition: BitSet.hpp:46
The namespace of the Chemical Data Processing Library.