Chemical Data Processing Library C++ API - Version 1.3.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  class Molecule;
60  class AtomMapping;
61 
62  CDPL_CHEM_API const std::string& getName(const MolecularGraph& molgraph);
63 
64  CDPL_CHEM_API void setName(MolecularGraph& molgraph, const std::string& name);
65 
67 
68  CDPL_CHEM_API bool hasName(const MolecularGraph& molgraph);
69 
70 
71  CDPL_CHEM_API std::time_t getTimestamp(const MolecularGraph& molgraph);
72 
73  CDPL_CHEM_API void setTimestamp(MolecularGraph& molgraph, std::time_t time);
74 
76 
77  CDPL_CHEM_API bool hasTimestamp(const MolecularGraph& molgraph);
78 
79 
80  CDPL_CHEM_API const std::string& getComment(const MolecularGraph& molgraph);
81 
82  CDPL_CHEM_API void setComment(MolecularGraph& molgraph, const std::string& comment);
83 
85 
86  CDPL_CHEM_API bool hasComment(const MolecularGraph& molgraph);
87 
88 
90 
92 
94 
96 
97 
99 
101 
103 
105 
107 
109 
110 
112 
114 
116 
117  CDPL_CHEM_API bool hasRings(const MolecularGraph& molgraph);
118 
120 
122 
123 
125 
127 
129 
130  CDPL_CHEM_API bool hasSSSR(const MolecularGraph& molgraph);
131 
133 
135 
137 
138  CDPL_CHEM_API FragmentList::SharedPointer extractSSSRSubset(const MolecularGraph& src_molgraph, MolecularGraph& tgt_molgraph, bool overwrite);
139 
140 
142 
144 
146 
148 
150 
152 
153 
155 
157 
159 
161 
163 
165 
166 
168 
170 
172 
174 
176 
178 
179 
180  CDPL_CHEM_API std::size_t getConformationIndex(const MolecularGraph& molgraph);
181 
182  CDPL_CHEM_API void setConformationIndex(MolecularGraph& molgraph, std::size_t index);
183 
185 
187 
188 
189  CDPL_CHEM_API const Util::DArray::SharedPointer& getConformerEnergies(const MolecularGraph& molgraph);
190 
191  CDPL_CHEM_API void setConformerEnergies(MolecularGraph& molgraph, const Util::DArray::SharedPointer& energies);
192 
194 
196 
197 
198  CDPL_CHEM_API void setConformation(MolecularGraph& molgraph, std::size_t conf_idx, const Math::Vector3DArray& coords, double energy);
199 
200  CDPL_CHEM_API void addConformation(MolecularGraph& molgraph, const Math::Vector3DArray& coords, double energy);
201 
202  CDPL_CHEM_API double getConformationEnergy(const MolecularGraph& molgraph, std::size_t conf_idx);
203 
204 
205  CDPL_CHEM_API std::uint64_t getHashCode(const MolecularGraph& molgraph);
206 
207  CDPL_CHEM_API void setHashCode(MolecularGraph& molgraph, std::uint64_t hash_code);
208 
210 
211  CDPL_CHEM_API bool hasHashCode(const MolecularGraph& molgraph);
212 
213  CDPL_CHEM_API std::uint64_t calcHashCode(const MolecularGraph& molgraph, unsigned int atom_flags = AtomPropertyFlag::DEFAULT,
214  unsigned int bond_flags = BondPropertyFlag::DEFAULT, bool ord_h_deplete = true);
215 
216 
217  CDPL_CHEM_API void extractReactionCenter(const MolecularGraph& molgraph, Fragment& rxn_center);
218 
219 
221 
223 
225 
227 
228 
229  CDPL_CHEM_API const std::string& getMDLUserInitials(const MolecularGraph& molgraph);
230 
231  CDPL_CHEM_API void setMDLUserInitials(MolecularGraph& molgraph, const std::string& initials);
232 
234 
236 
237 
238  CDPL_CHEM_API const std::string& getMDLProgramName(const MolecularGraph& molgraph);
239 
240  CDPL_CHEM_API void setMDLProgramName(MolecularGraph& molgraph, const std::string& name);
241 
243 
245 
246 
247  CDPL_CHEM_API std::size_t getMDLRegistryNumber(const MolecularGraph& molgraph);
248 
249  CDPL_CHEM_API void setMDLRegistryNumber(MolecularGraph& molgraph, std::size_t reg_no);
250 
252 
254 
255 
256  CDPL_CHEM_API unsigned int getMDLCTABVersion(const MolecularGraph& molgraph);
257 
258  CDPL_CHEM_API void setMDLCTABVersion(MolecularGraph& molgraph, unsigned int version);
259 
261 
263 
264 
266 
268 
270 
272 
273 
274  CDPL_CHEM_API std::size_t getMDLDimensionality(const MolecularGraph& molgraph);
275 
276  CDPL_CHEM_API void setMDLDimensionality(MolecularGraph& molgraph, std::size_t dim);
277 
279 
281 
282 
284 
285  CDPL_CHEM_API void setMDLScalingFactor1(MolecularGraph& molgraph, long factor);
286 
288 
290 
291 
293 
294  CDPL_CHEM_API void setMDLScalingFactor2(MolecularGraph& molgraph, double factor);
295 
297 
299 
300 
301  CDPL_CHEM_API double getMDLEnergy(const MolecularGraph& molgraph);
302 
303  CDPL_CHEM_API void setMDLEnergy(MolecularGraph& molgraph, double energy);
304 
306 
308 
309 
311 
312  CDPL_CHEM_API void setMDLChiralFlag(MolecularGraph& molgraph, bool flag);
313 
315 
317 
318 
319  CDPL_CHEM_API unsigned int getMOL2MoleculeType(const MolecularGraph& molgraph);
320 
321  CDPL_CHEM_API void setMOL2MoleculeType(MolecularGraph& molgraph, unsigned int type);
322 
324 
326 
327 
328  CDPL_CHEM_API unsigned int getMOL2ChargeType(const MolecularGraph& molgraph);
329 
330  CDPL_CHEM_API void setMOL2ChargeType(MolecularGraph& molgraph, unsigned int type);
331 
333 
335 
336 
338 
340 
342 
344 
346 
347 
348  CDPL_CHEM_API const Math::ULMatrix::SharedPointer& getTopologicalDistanceMatrix(const MolecularGraph& molgraph);
349 
350  CDPL_CHEM_API void setTopologicalDistanceMatrix(MolecularGraph& molgraph, const Math::ULMatrix::SharedPointer& mtx);
351 
353 
355 
356  CDPL_CHEM_API Math::ULMatrix::SharedPointer calcTopologicalDistanceMatrix(MolecularGraph& molgraph, bool overwrite);
357 
359 
360  CDPL_CHEM_API Math::ULMatrix::SharedPointer extractTopologicalDistanceSubMatrix(const MolecularGraph& src_molgraph, MolecularGraph& tgt_molgraph, bool overwrite);
361 
363 
364 
366 
368 
370 
372 
374 
375 
377 
379 
381 
383 
385 
387 
388 
390 
392 
394 
396 
398 
400 
401 
402  CDPL_CHEM_API bool generateSMILES(const MolecularGraph& molgraph, std::string& smiles, bool canonical = false,
403  bool ord_h_deplete = true, unsigned int atom_flags = AtomPropertyFlag::DEFAULT,
404  unsigned int bond_flags = BondPropertyFlag::DEFAULT);
405 
406  CDPL_CHEM_API int generateINCHI(const MolecularGraph& molgraph, std::string& inchi,
407  const std::string& options = ControlParameterDefault::INCHI_OUTPUT_OPTIONS,
408  std::size_t dim = 0);
409 
410  CDPL_CHEM_API int generateINCHIKey(const MolecularGraph& molgraph, std::string& inchi_key);
411 
412  CDPL_CHEM_API void canonicalize(MolecularGraph& molgraph, const AtomCompareFunction& func, bool atoms = true,
413  bool atom_nbrs = true, bool bonds = true, bool bond_atoms = false);
414 
415  CDPL_CHEM_API void canonicalize(MolecularGraph& molgraph, bool atoms = true, bool atom_nbrs = true,
416  bool bonds = true, bool bond_atoms = false);
417 
418  CDPL_CHEM_API void calc2DCoordinates(MolecularGraph& molgraph, bool overwrite);
419 
423  CDPL_CHEM_API bool align2DCoordinates(MolecularGraph& molgraph, const AtomContainer& atoms, const Math::Vector2DArray& ref_coords, bool fix_bond_stereo = true);
424 
428  CDPL_CHEM_API bool align2DCoordinates(MolecularGraph& molgraph, const AtomMapping& ref_atom_mpg, bool fix_bond_stereo = true);
429 
433  CDPL_CHEM_API bool align2DCoordinates(MolecularGraph& molgraph, const MolecularGraph& ref_molgraph, bool use_mcss, bool fix_bond_stereo = true);
434 
438  CDPL_CHEM_API bool align2DCoordinates(MolecularGraph& molgraph, const MolecularGraph& ref_molgraph, const MolecularGraph& substr_ptn, bool fix_bond_stereo = true);
439 
440 
441  CDPL_CHEM_API void calcHydrogen3DCoordinates(MolecularGraph& molgraph, bool undef_only = true);
442 
443  CDPL_CHEM_API void calcBond2DStereoFlags(MolecularGraph& molgraph, bool overwrite);
444 
445  CDPL_CHEM_API void calcCIPPriorities(MolecularGraph& molgraph, bool overwrite);
446 
447  CDPL_CHEM_API void perceiveSymmetryClasses(MolecularGraph& molgraph, bool overwrite,
448  unsigned int atom_flags = AtomPropertyFlag::DEFAULT,
449  unsigned int bond_flags = BondPropertyFlag::DEFAULT, bool inc_impl_h = true);
450 
451  CDPL_CHEM_API void calcCanonicalNumbering(MolecularGraph& molgraph, bool overwrite,
452  unsigned int atom_flags = AtomPropertyFlag::DEFAULT,
453  unsigned int bond_flags = BondPropertyFlag::DEFAULT);
454 
455  CDPL_CHEM_API void calcMorganNumbering(MolecularGraph& molgraph, bool overwrite);
456 
457  CDPL_CHEM_API void calcImplicitHydrogenCounts(MolecularGraph& molgraph, bool overwrite);
458 
459  CDPL_CHEM_API void calcFormalCharges(MolecularGraph& molgraph, bool overwrite);
460 
462 
463  CDPL_CHEM_API void perceiveBondOrders(MolecularGraph& molgraph, bool overwrite);
464 
466 
467  CDPL_CHEM_API void perceiveAtomStereoCenters(MolecularGraph& molgraph, bool overwrite, bool check_asym = true,
468  bool check_inv_n = true, bool check_quart_n = true, bool check_plan_n = true,
469  bool check_amide_n = true, bool check_res_ctrs = true);
470 
471  CDPL_CHEM_API void perceiveBondStereoCenters(MolecularGraph& molgraph, bool overwrite, bool check_asym = true,
472  bool check_term_n = true, bool check_order = true, std::size_t min_ring_size = 8);
473 
474  CDPL_CHEM_API void calcMDLParities(MolecularGraph& molgraph, bool overwrite);
475 
476  CDPL_CHEM_API void calcAtomStereoDescriptors(MolecularGraph& molgraph, bool overwrite, std::size_t dim = 1, bool check_stc_flag = true);
477 
479 
480  CDPL_CHEM_API void calcBondStereoDescriptors(MolecularGraph& molgraph, bool overwrite, std::size_t dim = 1,
481  bool check_stc_flag = true);
482 
483  CDPL_CHEM_API void calcAtomCIPConfigurations(MolecularGraph& molgraph, bool overwrite);
484 
485  CDPL_CHEM_API void calcBondCIPConfigurations(MolecularGraph& molgraph, bool overwrite);
486 
488  bool overwrite);
489 
491  bool overwrite);
492 
493  CDPL_CHEM_API void generateMatchExpressions(MolecularGraph& molgraph, bool overwrite);
494 
496 
498 
500 
501  CDPL_CHEM_API void setAromaticityFlags(MolecularGraph& molgraph, bool overwrite);
502 
503  CDPL_CHEM_API void setRingFlags(MolecularGraph& molgraph, bool overwrite);
504 
505  CDPL_CHEM_API void setAtomTypesFromSymbols(MolecularGraph& molgraph, bool overwrite);
506 
507  CDPL_CHEM_API void setAtomSymbolsFromTypes(MolecularGraph& molgraph, bool overwrite);
508 
509  CDPL_CHEM_API void perceiveSybylAtomTypes(MolecularGraph& molgraph, bool overwrite);
510 
512 
514 
515  CDPL_CHEM_API bool containsMolecularGraph(const MolecularGraph& molgraph, const MolecularGraph& sub_molgraph,
516  bool atoms = true, bool bonds = true);
517 
518  CDPL_CHEM_API void getContainedFragments(const MolecularGraph& molgraph, const FragmentList& frag_list,
519  FragmentList& cont_frag_list, bool append = false, bool atoms = true,
520  bool bonds = true);
521 
522  CDPL_CHEM_API void getContainingFragments(const MolecularGraph& molgraph, const FragmentList& frag_list,
523  FragmentList& cont_frag_list, bool append = false, bool atoms = true,
524  bool bonds = true);
525 
526  CDPL_CHEM_API void translateFragment(const MolecularGraph& src_molgraph, const Fragment& src_frag,
527  const MolecularGraph& tgt_molgraph, Fragment& tgt_frag, bool append = false);
528 
529  CDPL_CHEM_API void translateFragments(const MolecularGraph& src_molgraph, const FragmentList& src_frag_list,
530  const MolecularGraph& tgt_molgraph, FragmentList& tgt_frag_list, bool append = false);
531 
533  const Util::BitSet& split_bond_mask, bool append = false);
534 
535  CDPL_CHEM_API std::size_t getCompleteBondCount(const MolecularGraph& molgraph);
536 
540  CDPL_CHEM_API void calcBasicProperties(MolecularGraph& molgraph, bool overwrite);
541 
545  CDPL_CHEM_API std::size_t editSubstructures(const MolecularGraph& molgraph, Molecule& result_mol, const std::string& search_ptns,
546  const std::string& result_ptn, const std::string& exclude_ptns = std::string());
547 
548  } // namespace Chem
549 } // namespace CDPL
550 
551 #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.
A common interface for data-structures that support a random access to stored Chem::Atom instances.
Definition: AtomContainer.hpp:55
A data type for the storage and lookup of arbitrary atom to atom mappings.
Definition: AtomMapping.hpp:54
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
Molecule.
Definition: Molecule.hpp:49
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 bool align2DCoordinates(MolecularGraph &molgraph, const AtomContainer &atoms, const Math::Vector2DArray &ref_coords, bool fix_bond_stereo=true)
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 std::size_t editSubstructures(const MolecularGraph &molgraph, Molecule &result_mol, const std::string &search_ptns, const std::string &result_ptn, const std::string &exclude_ptns=std::string())
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
VectorArray< Vector2D > Vector2DArray
An array of Math::Vector2D objects.
Definition: VectorArray.hpp:79
boost::dynamic_bitset BitSet
A dynamic bitset class.
Definition: BitSet.hpp:46
The namespace of the Chemical Data Processing Library.