Chemical Data Processing Library C++ API - Version 1.0.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 
69 
71 
73 
75 
76 
78 
80 
82 
84 
86 
88 
89 
91 
93 
95 
96  CDPL_CHEM_API bool hasRings(const MolecularGraph& molgraph);
97 
99 
101 
102 
104 
106 
108 
109  CDPL_CHEM_API bool hasSSSR(const MolecularGraph& molgraph);
110 
112 
114 
116 
117  CDPL_CHEM_API FragmentList::SharedPointer extractSSSRSubset(const MolecularGraph& src_molgraph, MolecularGraph& tgt_molgraph, bool overwrite);
118 
120 
121 
123 
125 
127 
129 
131 
133 
134 
136 
138 
140 
142 
144 
146 
147 
149 
151 
153 
155 
157 
159 
160 
161  CDPL_CHEM_API std::size_t getConformationIndex(const MolecularGraph& molgraph);
162 
163  CDPL_CHEM_API void setConformationIndex(MolecularGraph& molgraph, std::size_t index);
164 
166 
168 
169 
170  CDPL_CHEM_API const Util::DArray::SharedPointer& getConformerEnergies(const MolecularGraph& molgraph);
171 
172  CDPL_CHEM_API void setConformerEnergies(MolecularGraph& molgraph, const Util::DArray::SharedPointer& energies);
173 
175 
177 
178 
179  CDPL_CHEM_API void setConformation(MolecularGraph& molgraph, std::size_t conf_idx, const Math::Vector3DArray& coords, double energy);
180 
181  CDPL_CHEM_API void addConformation(MolecularGraph& molgraph, const Math::Vector3DArray& coords, double energy);
182 
183  CDPL_CHEM_API double getConformationEnergy(const MolecularGraph& molgraph, std::size_t conf_idx);
184 
185 
186  CDPL_CHEM_API std::uint64_t getHashCode(const MolecularGraph& molgraph);
187 
188  CDPL_CHEM_API void setHashCode(MolecularGraph& molgraph, std::uint64_t hash_code);
189 
191 
192  CDPL_CHEM_API bool hasHashCode(const MolecularGraph& molgraph);
193 
194  CDPL_CHEM_API std::uint64_t calcHashCode(const MolecularGraph& molgraph, unsigned int atom_flags = AtomPropertyFlag::DEFAULT,
195  unsigned int bond_flags = BondPropertyFlag::DEFAULT,
196  bool global_stereo = true, bool ord_h_deplete = true);
197 
198 
199  CDPL_CHEM_API void extractReactionCenter(const MolecularGraph& molgraph, Fragment& rxn_center);
200 
201 
203 
205 
207 
209 
210 
211  CDPL_CHEM_API const std::string& getMDLUserInitials(const MolecularGraph& molgraph);
212 
213  CDPL_CHEM_API void setMDLUserInitials(MolecularGraph& molgraph, const std::string& initials);
214 
216 
218 
219 
220  CDPL_CHEM_API const std::string& getMDLProgramName(const MolecularGraph& molgraph);
221 
222  CDPL_CHEM_API void setMDLProgramName(MolecularGraph& molgraph, const std::string& name);
223 
225 
227 
228 
229  CDPL_CHEM_API std::time_t getMDLTimestamp(const MolecularGraph& molgraph);
230 
231  CDPL_CHEM_API void setMDLTimestamp(MolecularGraph& molgraph, std::time_t time);
232 
234 
236 
237 
238  CDPL_CHEM_API std::size_t getMDLRegistryNumber(const MolecularGraph& molgraph);
239 
240  CDPL_CHEM_API void setMDLRegistryNumber(MolecularGraph& molgraph, std::size_t reg_no);
241 
243 
245 
246 
247  CDPL_CHEM_API const std::string& getMDLComment(const MolecularGraph& molgraph);
248 
249  CDPL_CHEM_API void setMDLComment(MolecularGraph& molgraph, const std::string& comment);
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 
349 
351 
353 
355 
357 
359 
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 
420  CDPL_CHEM_API void calcHydrogen3DCoordinates(MolecularGraph& molgraph, bool undef_only = true);
421 
422  CDPL_CHEM_API void calcBond2DStereoFlags(MolecularGraph& molgraph, bool overwrite);
423 
424  CDPL_CHEM_API void calcBondDirections(MolecularGraph& molgraph, bool overwrite, bool ring_bonds = true,
425  std::size_t min_ring_size = 8);
426 
427  CDPL_CHEM_API void calcCIPPriorities(MolecularGraph& molgraph, bool overwrite);
428 
429  CDPL_CHEM_API void perceiveSymmetryClasses(MolecularGraph& molgraph, bool overwrite,
430  unsigned int atom_flags = AtomPropertyFlag::DEFAULT,
431  unsigned int bond_flags = BondPropertyFlag::DEFAULT, bool inc_impl_h = true);
432 
433  CDPL_CHEM_API void calcCanonicalNumbering(MolecularGraph& molgraph, bool overwrite,
434  unsigned int atom_flags = AtomPropertyFlag::DEFAULT,
435  unsigned int bond_flags = BondPropertyFlag::DEFAULT);
436 
437  CDPL_CHEM_API void calcMorganNumbering(MolecularGraph& molgraph, bool overwrite);
438 
439  CDPL_CHEM_API void calcImplicitHydrogenCounts(MolecularGraph& molgraph, bool overwrite);
440 
441  CDPL_CHEM_API void calcFormalCharges(MolecularGraph& molgraph, bool overwrite);
442 
444 
445  CDPL_CHEM_API void perceiveBondOrders(MolecularGraph& molgraph, bool overwrite);
446 
448 
450  bool check_cip_sym = true, bool check_acyclic_subst_sym_only = false);
451 
452  CDPL_CHEM_API void perceiveBondStereoCenters(MolecularGraph& molgraph, bool overwrite, bool check_cip_sym = true,
453  std::size_t min_ring_size = 8);
454 
455  CDPL_CHEM_API void calcMDLParities(MolecularGraph& molgraph, bool overwrite);
456 
457  CDPL_CHEM_API void calcAtomStereoDescriptors(MolecularGraph& molgraph, bool overwrite, std::size_t dim = 1);
458 
460 
461  CDPL_CHEM_API void calcBondStereoDescriptors(MolecularGraph& molgraph, bool overwrite, std::size_t dim = 1,
462  std::size_t min_ring_size = 8);
463 
464  CDPL_CHEM_API void calcAtomCIPConfigurations(MolecularGraph& molgraph, bool overwrite);
465 
466  CDPL_CHEM_API void calcBondCIPConfigurations(MolecularGraph& molgraph, bool overwrite);
467 
469  bool overwrite);
470 
472  bool overwrite);
473 
474  CDPL_CHEM_API void generateMatchExpressions(MolecularGraph& molgraph, bool overwrite);
475 
477 
479 
481 
482  CDPL_CHEM_API void setAromaticityFlags(MolecularGraph& molgraph, bool overwrite);
483 
484  CDPL_CHEM_API void setRingFlags(MolecularGraph& molgraph, bool overwrite);
485 
486  CDPL_CHEM_API void setAtomTypesFromSymbols(MolecularGraph& molgraph, bool overwrite);
487 
488  CDPL_CHEM_API void setAtomSymbolsFromTypes(MolecularGraph& molgraph, bool overwrite);
489 
490  CDPL_CHEM_API void perceiveSybylAtomTypes(MolecularGraph& molgraph, bool overwrite);
491 
493 
495 
496  CDPL_CHEM_API bool containsMolecularGraph(const MolecularGraph& molgraph, const MolecularGraph& sub_molgraph,
497  bool atoms = true, bool bonds = true);
498 
499  CDPL_CHEM_API void getContainedFragments(const MolecularGraph& molgraph, const FragmentList& frag_list,
500  FragmentList& cont_frag_list, bool append = false, bool atoms = true,
501  bool bonds = true);
502 
503  CDPL_CHEM_API void getContainingFragments(const MolecularGraph& molgraph, const FragmentList& frag_list,
504  FragmentList& cont_frag_list, bool append = false, bool atoms = true,
505  bool bonds = true);
506 
508  std::size_t atom_idx_offs = 0);
509 
511  std::size_t atom_idx_offs = 0, std::size_t bond_idx_offs = 0);
512 
514  const Util::BitSet& split_bond_mask, bool append = false);
515 
516  CDPL_CHEM_API std::size_t getCompleteBondCount(const MolecularGraph& molgraph);
517  } // namespace Chem
518 } // namespace CDPL
519 
520 #endif // CDPL_CHEM_MOLECULARGRAPHFUNCTIONS_HPP
CDPL::Chem::getMOL2MoleculeType
CDPL_CHEM_API unsigned int getMOL2MoleculeType(const MolecularGraph &molgraph)
CDPL::Chem::setMDLComment
CDPL_CHEM_API void setMDLComment(MolecularGraph &molgraph, const std::string &comment)
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::setMDLTimestamp
CDPL_CHEM_API void setMDLTimestamp(MolecularGraph &molgraph, std::time_t time)
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::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::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::generateMatchExpressions
CDPL_CHEM_API void generateMatchExpressions(MolecularGraph &molgraph, bool overwrite)
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::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::hasMDLComment
CDPL_CHEM_API bool hasMDLComment(const MolecularGraph &molgraph)
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::calcHashCode
CDPL_CHEM_API std::uint64_t calcHashCode(const MolecularGraph &molgraph, unsigned int atom_flags=AtomPropertyFlag::DEFAULT, unsigned int bond_flags=BondPropertyFlag::DEFAULT, bool global_stereo=true, bool ord_h_deplete=true)
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::hasMatchExpression
CDPL_CHEM_API bool hasMatchExpression(const Atom &atom)
CDPL::Chem::copySSSR
CDPL_CHEM_API FragmentList::SharedPointer copySSSR(const MolecularGraph &src_molgraph, MolecularGraph &tgt_molgraph)
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::calcBondDirections
CDPL_CHEM_API void calcBondDirections(MolecularGraph &molgraph, bool overwrite, bool ring_bonds=true, std::size_t min_ring_size=8)
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::copyBondStereoDescriptors
CDPL_CHEM_API void copyBondStereoDescriptors(const MolecularGraph &molgraph, MolecularGraph &tgt_molgraph, std::size_t atom_idx_offs=0, std::size_t bond_idx_offs=0)
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::clearMDLTimestamp
CDPL_CHEM_API void clearMDLTimestamp(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)
CDPL::Chem::perceiveBondStereoCenters
CDPL_CHEM_API void perceiveBondStereoCenters(MolecularGraph &molgraph, bool overwrite, bool check_cip_sym=true, std::size_t min_ring_size=8)
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)
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::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::perceiveHybridizationStates
CDPL_CHEM_API void perceiveHybridizationStates(MolecularGraph &molgraph, bool overwrite)
CDPL::Chem::hasMDLTimestamp
CDPL_CHEM_API bool hasMDLTimestamp(const MolecularGraph &molgraph)
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::calcBondStereoDescriptors
CDPL_CHEM_API void calcBondStereoDescriptors(MolecularGraph &molgraph, bool overwrite, std::size_t dim=1, std::size_t min_ring_size=8)
CDPL::Chem::calcAtomStereoDescriptors
CDPL_CHEM_API void calcAtomStereoDescriptors(MolecularGraph &molgraph, bool overwrite, std::size_t dim=1)
CDPL::Chem::clearMDLCTABVersion
CDPL_CHEM_API void clearMDLCTABVersion(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::getMDLComment
CDPL_CHEM_API const std::string & getMDLComment(const 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::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::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::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::perceiveAtomStereoCenters
CDPL_CHEM_API void perceiveAtomStereoCenters(MolecularGraph &molgraph, bool overwrite, bool check_cip_sym=true, bool check_acyclic_subst_sym_only=false)
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::copyAtomStereoDescriptors
CDPL_CHEM_API void copyAtomStereoDescriptors(const MolecularGraph &molgraph, MolecularGraph &tgt_molgraph, std::size_t atom_idx_offs=0)
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::clearMDLComment
CDPL_CHEM_API void clearMDLComment(MolecularGraph &molgraph)
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)
CDPL::Chem::getMDLTimestamp
CDPL_CHEM_API std::time_t getMDLTimestamp(const MolecularGraph &molgraph)
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::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::clearMDLScalingFactor2
CDPL_CHEM_API void clearMDLScalingFactor2(MolecularGraph &molgraph)