RDKit: MolStandardize.h Source File

| RDKit Open-source cheminformatics and machine learning.

Loading...
Searching...
No Matches
MolStandardize.h
Go to the documentation of this file.
1//
2// Copyright (C) 2018-2023 Susan H. Leung and other RDKit contributors
3//
4// @@ All Rights Reserved @@
5// This file is part of the RDKit.
6// The contents are covered by the terms of the BSD license
7// which is included in the file license.txt, found at the root
8// of the RDKit source tree.
9//
10/*! \file MolStandardize.h
11
12 \brief Defines the CleanupParameters and some convenience functions.
13
14*/
15#include <RDGeneral/export.h>
16#ifndef RD_MOLSTANDARDIZE_H
17#define RD_MOLSTANDARDIZE_H
18
19#include <string>
20#include <GraphMol/RDKitBase.h>
21#include <GraphMol/MolStandardize/Metal.h>
22
23namespace RDKit {
24class RWMol;
25class ROMol;
26
27namespace MolStandardize {
28
29//! The CleanupParameters structure defines the default parameters for the
30/// cleanup process and also allows the user to customize the process by
31/// changing the parameters.
32/*!
33
34 <b>Notes:</b>
35 - To customize the parameters, the structure must be initialized first.
36 (Another on the TODO list)
37 - For this project, not all the parameters have been revealed.
38 (TODO)
39
40*/
41 struct RDKIT_MOLSTANDARDIZE_EXPORT CleanupParameters {
42 // TODO reveal all parameters
43 private:
44 const char *rdbase_cstr = std::getenv("RDBASE");
45
46 public:
47 std::string rdbase = rdbase_cstr != nullptr ? rdbase_cstr : "";
48 std::string normalizations;
49 std::string acidbaseFile;
50 std::string fragmentFile;
51 std::string tautomerTransforms;
52 int maxRestarts{200}; //!< The maximum number of times to attempt to apply
53 //!< the series of normalizations (default 200).
54 bool preferOrganic{false}; //!< Whether to prioritize organic fragments when
55 //!< choosing fragment parent (default False).
56 bool doCanonical{true}; //!< Whether to apply normalizations in a
57 //!< canonical order
58 int maxTautomers{1000}; //!< The maximum number of tautomers to enumerate
59 //!< (default 1000).
60 int maxTransforms{1000}; //!< The maximum number of tautomer
61 //!< transformations to apply (default 1000).
62 bool tautomerRemoveSp3Stereo{
63 true}; //!< Whether to remove stereochemistry from sp3 centers involved
64 //!< in tautomerism (defaults to true)
65 bool tautomerRemoveBondStereo{
66 true}; //!< Whether to remove stereochemistry from double bonds involved
67 //!< in tautomerism (defaults to true)
68 bool tautomerRemoveIsotopicHs{
69 true}; //!< Whether to remove isotopic Hs from centers involved in
70 //!< tautomerism (defaults to true)
71 bool tautomerReassignStereo{
72 true}; //!< Whether enumerate() should call assignStereochemistry on all
73 //!< generated tautomers (defaults to true)
74 bool largestFragmentChooserUseAtomCount{
75 true}; //!< Whether LargestFragmentChooser should use atom count as main
76 //!< criterion before MW (defaults to true)
77 bool largestFragmentChooserCountHeavyAtomsOnly{
78 false}; //!< Whether LargestFragmentChooser should only count heavy atoms
79 //!< (defaults to false)
80 std::vector<std::pair<std::string, std::string>> normalizationData;
81 std::vector<std::pair<std::string, std::string>> fragmentData;
82 std::vector<std::tuple<std::string, std::string, std::string>> acidbaseData;
83 std::vector<std::tuple<std::string, std::string, std::string, std::string>>
84 tautomerTransformData;
85 CleanupParameters() {}
86};
87
88 RDKIT_MOLSTANDARDIZE_EXPORT extern const CleanupParameters
89 defaultCleanupParameters;
90
91 RDKIT_MOLSTANDARDIZE_EXPORT void updateCleanupParamsFromJSON(
92 CleanupParameters &params, const std::string &json);
93
94//! The cleanup function is equivalent to the
95/// molvs.Standardizer().standardize(mol) function. It calls the same steps,
96/// namely: RemoveHs, RDKit SanitizeMol, MetalDisconnector, Normalizer,
97/// Reionizer, RDKit AssignStereochemistry.
98 RDKIT_MOLSTANDARDIZE_EXPORT RWMol *cleanup(
99 const RWMol *mol,
100 const CleanupParameters &params = defaultCleanupParameters);
101//! \overload
102 inline RWMol *cleanup(const RWMol &mol, const CleanupParameters &params =
103 defaultCleanupParameters) {
104 return cleanup(&mol, params);
105};
106//! Works the same as cleanup(mol)
107 RDKIT_MOLSTANDARDIZE_EXPORT void cleanupInPlace(
108 RWMol &mol, const CleanupParameters &params = defaultCleanupParameters);
109//! Operates on multiple molecules
110 RDKIT_MOLSTANDARDIZE_EXPORT void cleanupInPlace(
111 std::vector<RWMol *> &mols, int numThreads = 1,
112 const CleanupParameters &params = defaultCleanupParameters);
113
114//! Works the same as Normalizer().normalize(mol)
115 RDKIT_MOLSTANDARDIZE_EXPORT RWMol *normalize(
116 const RWMol *mol,
117 const CleanupParameters &params = defaultCleanupParameters);
118//! Works the same as Normalizer().normalizeInPlace(mol)
119 RDKIT_MOLSTANDARDIZE_EXPORT void normalizeInPlace(
120 RWMol &mol, const CleanupParameters &params = defaultCleanupParameters);
121//! Operates on multiple molecules
122 RDKIT_MOLSTANDARDIZE_EXPORT void normalizeInPlace(
123 std::vector<RWMol *> &mols, int numThreads = 1,
124 const CleanupParameters &params = defaultCleanupParameters);
125
126//! Works the same as Reionizer().reionize(mol)
127 RDKIT_MOLSTANDARDIZE_EXPORT RWMol *reionize(
128 const RWMol *mol,
129 const CleanupParameters &params = defaultCleanupParameters);
130//! Works the same as Reionizer().reionizeInPlace(mol)
131 RDKIT_MOLSTANDARDIZE_EXPORT void reionizeInPlace(
132 RWMol &mol, const CleanupParameters &params = defaultCleanupParameters);
133//! Operates on multiple molecules
134 RDKIT_MOLSTANDARDIZE_EXPORT void reionizeInPlace(
135 std::vector<RWMol *> &mols, int numThreads = 1,
136 const CleanupParameters &params = defaultCleanupParameters);
137
138//! Works the same as FragmentRemover().remove(mol)
139 RDKIT_MOLSTANDARDIZE_EXPORT RWMol *removeFragments(
140 const RWMol *mol,
141 const CleanupParameters &params = defaultCleanupParameters);
142//! Works the same as FragmentRemover().removeInPlace(mol)
143 RDKIT_MOLSTANDARDIZE_EXPORT void removeFragmentsInPlace(
144 RWMol &mol, const CleanupParameters &params = defaultCleanupParameters);
145//! Operates on multiple molecules
146 RDKIT_MOLSTANDARDIZE_EXPORT void removeFragmentsInPlace(
147 std::vector<RWMol *> &mols, int numThreads = 1,
148 const CleanupParameters &params = defaultCleanupParameters);
149
150//! Works the same as TautomerEnumerator().canonicalize(mol)
151 RDKIT_MOLSTANDARDIZE_EXPORT RWMol *canonicalTautomer(
152 const RWMol *mol,
153 const CleanupParameters &params = defaultCleanupParameters);
154 RDKIT_MOLSTANDARDIZE_EXPORT void canonicalTautomerInPlace(
155 RWMol &mol, const CleanupParameters &params = defaultCleanupParameters);
156
157//! Returns the tautomer parent of a given molecule. The fragment parent is the
158/// standardized canonical tautomer of the molecule
159 RDKIT_MOLSTANDARDIZE_EXPORT RWMol *tautomerParent(
160 const RWMol &mol,
161 const CleanupParameters &params = defaultCleanupParameters,
162 bool skipStandardize = false);
163 RDKIT_MOLSTANDARDIZE_EXPORT void tautomerParentInPlace(
164 RWMol &mol, const CleanupParameters &params = defaultCleanupParameters,
165 bool skipStandardize = false);
166 RDKIT_MOLSTANDARDIZE_EXPORT void tautomerParentInPlace(
167 std::vector<RWMol *> &mols, int numThreads = 1,
168 const CleanupParameters &params = defaultCleanupParameters,
169 bool skipStandardize = false);
170
171//! Returns the fragment parent of a given molecule. The fragment parent is the
172/// largest organic covalent unit in the molecule.
173 RDKIT_MOLSTANDARDIZE_EXPORT RWMol *fragmentParent(
174 const RWMol &mol,
175 const CleanupParameters &params = defaultCleanupParameters,
176 bool skip_standardize = false);
177 RDKIT_MOLSTANDARDIZE_EXPORT void fragmentParentInPlace(
178 RWMol &mol, const CleanupParameters &params = defaultCleanupParameters,
179 bool skip_standardize = false);
180 RDKIT_MOLSTANDARDIZE_EXPORT void fragmentParentInPlace(
181 std::vector<RWMol *> &mols, int numThreads = 1,
182 const CleanupParameters &params = defaultCleanupParameters,
183 bool skip_standardize = false);
184
185//! calls removeStereochemistry() on the given molecule
186 RDKIT_MOLSTANDARDIZE_EXPORT RWMol *stereoParent(
187 const RWMol &mol,
188 const CleanupParameters &params = defaultCleanupParameters,
189 bool skip_standardize = false);
190 RDKIT_MOLSTANDARDIZE_EXPORT void stereoParentInPlace(
191 RWMol &mol, const CleanupParameters &params = defaultCleanupParameters,
192 bool skip_standardize = false);
193 RDKIT_MOLSTANDARDIZE_EXPORT void stereoParentInPlace(
194 std::vector<RWMol *> &mols, int numThreads = 1,
195 const CleanupParameters &params = defaultCleanupParameters,
196 bool skip_standardize = false);
197
198//! removes all isotopes specifications from the given molecule
199 RDKIT_MOLSTANDARDIZE_EXPORT RWMol *isotopeParent(
200 const RWMol &mol,
201 const CleanupParameters &params = defaultCleanupParameters,
202 bool skip_standardize = false);
203 RDKIT_MOLSTANDARDIZE_EXPORT void isotopeParentInPlace(
204 RWMol &mol, const CleanupParameters &params = defaultCleanupParameters,
205 bool skip_standardize = false);
206 RDKIT_MOLSTANDARDIZE_EXPORT void isotopeParentInPlace(
207 std::vector<RWMol *> &mols, int numThreads = 1,
208 const CleanupParameters &params = defaultCleanupParameters,
209 bool skip_standardize = false);
210
211//! Returns the charge parent of a given molecule. The charge parent is the
212//! uncharged version of the fragment parent.
213 RDKIT_MOLSTANDARDIZE_EXPORT RWMol *chargeParent(
214 const RWMol &mol,
215 const CleanupParameters &params = defaultCleanupParameters,
216 bool skip_standardize = false);
217 RDKIT_MOLSTANDARDIZE_EXPORT void chargeParentInPlace(
218 RWMol &mol, const CleanupParameters &params = defaultCleanupParameters,
219 bool skip_standardize = false);
220//! operates on multiple molecules
221 RDKIT_MOLSTANDARDIZE_EXPORT void chargeParentInPlace(
222 std::vector<RWMol *> &mols, int numThreads = 1,
223 const CleanupParameters &params = defaultCleanupParameters,
224 bool skip_standardize = false);
225
226//! Returns the super parent. The super parent is the fragment, charge,
227//! isotope, stereo, and tautomer parent of the molecule.
228 RDKIT_MOLSTANDARDIZE_EXPORT RWMol *superParent(
229 const RWMol &mol,
230 const CleanupParameters &params = defaultCleanupParameters,
231 bool skip_standardize = false);
232 RDKIT_MOLSTANDARDIZE_EXPORT void superParentInPlace(
233 RWMol &mol, const CleanupParameters &params = defaultCleanupParameters,
234 bool skip_standardize = false);
235 RDKIT_MOLSTANDARDIZE_EXPORT void superParentInPlace(
236 std::vector<RWMol *> &mols, int numThreads = 1,
237 const CleanupParameters &params = defaultCleanupParameters,
238 bool skip_standardize = false);
239
240//! Convenience function for quickly standardizing a single SMILES string.
241/// Returns a standardized canonical SMILES string given a SMILES string.
242/// This is the equivalent of calling cleanup() on each of the molecules
243 RDKIT_MOLSTANDARDIZE_EXPORT std::string standardizeSmiles(
244 const std::string &smiles);
245
246//! Do a disconnection of an organometallic complex according to rules
247//! preferred by Syngenta. All bonds to metals are broken, including
248//! covalent bonds to Group I/II metals (so including Grignards, lithium
249//! complexes etc.). The ligands are left in the charge states they came
250//! in with. If there are haptic bonds defined by a dummy atom bonded to
251//! a metal by a bond that has a _MolFileBondEndPts (which will contain the
252//! indices of the atoms involved in the haptic bond) then the dummy atom
253//! is removed also.
254//! Do the disconnection in place.
255//! The options are splitGrignards, splitAromaticC, adjustCharges and
256//! removeHapticDummies. Roll on C++20 and designated initializers!
257 RDKIT_MOLSTANDARDIZE_EXPORT void disconnectOrganometallics(
258 RWMol &mol, RDKit::MolStandardize::MetalDisconnectorOptions mdo = {
259 true, true, false, true});
260//! As above, but returns new disconnected molecule.
261 RDKIT_MOLSTANDARDIZE_EXPORT ROMol *disconnectOrganometallics(
262 const ROMol &mol, RDKit::MolStandardize::MetalDisconnectorOptions mdo = {
263 true, true, false, true});
264//! As above, included for API consistency.
265 inline void disconnectOrganometallicsInPlace(
266 RWMol &mol, RDKit::MolStandardize::MetalDisconnectorOptions mdo = {
267 true, true, false, true}) {
268 disconnectOrganometallics(mol, mdo);
269};
270
271//! TODO
272 RDKIT_MOLSTANDARDIZE_EXPORT std::vector<std::string> enumerateTautomerSmiles(
273 const std::string &smiles,
274 const CleanupParameters &params = defaultCleanupParameters);
275}; // namespace MolStandardize
276} // namespace RDKit
277#endif
Metal.h
Defines the MetalDisconnector class.
RDKitBase.h
pulls in the core RDKit functionality
RDKit::ROMol
Definition ROMol.h:199
RDKit::RWMol
RWMol is a molecule class that is intended to be edited.
Definition RWMol.h:32
export.h
RDKIT_MOLSTANDARDIZE_EXPORT
#define RDKIT_MOLSTANDARDIZE_EXPORT
Definition export.h:369
RDKit::MolStandardize
Definition AcidBaseCatalogEntry.h:22
RDKit::MolStandardize::fragmentParentInPlace
RDKIT_MOLSTANDARDIZE_EXPORT void fragmentParentInPlace(RWMol &mol, const CleanupParameters &params=defaultCleanupParameters, bool skip_standardize=false)
RDKit::MolStandardize::tautomerParentInPlace
RDKIT_MOLSTANDARDIZE_EXPORT void tautomerParentInPlace(RWMol &mol, const CleanupParameters &params=defaultCleanupParameters, bool skipStandardize=false)
RDKit::MolStandardize::reionize
RDKIT_MOLSTANDARDIZE_EXPORT RWMol * reionize(const RWMol *mol, const CleanupParameters &params=defaultCleanupParameters)
Works the same as Reionizer().reionize(mol)
RDKit::MolStandardize::disconnectOrganometallicsInPlace
void disconnectOrganometallicsInPlace(RWMol &mol, RDKit::MolStandardize::MetalDisconnectorOptions mdo={ true, true, false, true})
As above, included for API consistency.
Definition MolStandardize.h:265
RDKit::MolStandardize::enumerateTautomerSmiles
RDKIT_MOLSTANDARDIZE_EXPORT std::vector< std::string > enumerateTautomerSmiles(const std::string &smiles, const CleanupParameters &params=defaultCleanupParameters)
TODO.
RDKit::MolStandardize::isotopeParent
RDKIT_MOLSTANDARDIZE_EXPORT RWMol * isotopeParent(const RWMol &mol, const CleanupParameters &params=defaultCleanupParameters, bool skip_standardize=false)
removes all isotopes specifications from the given molecule
RDKit::MolStandardize::tautomerParent
RDKIT_MOLSTANDARDIZE_EXPORT RWMol * tautomerParent(const RWMol &mol, const CleanupParameters &params=defaultCleanupParameters, bool skipStandardize=false)
RDKit::MolStandardize::fragmentParent
RDKIT_MOLSTANDARDIZE_EXPORT RWMol * fragmentParent(const RWMol &mol, const CleanupParameters &params=defaultCleanupParameters, bool skip_standardize=false)
RDKit::MolStandardize::normalize
RDKIT_MOLSTANDARDIZE_EXPORT RWMol * normalize(const RWMol *mol, const CleanupParameters &params=defaultCleanupParameters)
Works the same as Normalizer().normalize(mol)
RDKit::MolStandardize::removeFragments
RDKIT_MOLSTANDARDIZE_EXPORT RWMol * removeFragments(const RWMol *mol, const CleanupParameters &params=defaultCleanupParameters)
Works the same as FragmentRemover().remove(mol)
RDKit::MolStandardize::superParentInPlace
RDKIT_MOLSTANDARDIZE_EXPORT void superParentInPlace(RWMol &mol, const CleanupParameters &params=defaultCleanupParameters, bool skip_standardize=false)
RDKit::MolStandardize::canonicalTautomer
RDKIT_MOLSTANDARDIZE_EXPORT RWMol * canonicalTautomer(const RWMol *mol, const CleanupParameters &params=defaultCleanupParameters)
Works the same as TautomerEnumerator().canonicalize(mol)
RDKit::MolStandardize::stereoParent
RDKIT_MOLSTANDARDIZE_EXPORT RWMol * stereoParent(const RWMol &mol, const CleanupParameters &params=defaultCleanupParameters, bool skip_standardize=false)
calls removeStereochemistry() on the given molecule
RDKit::MolStandardize::defaultCleanupParameters
RDKIT_MOLSTANDARDIZE_EXPORT const CleanupParameters defaultCleanupParameters
Definition Fragment.h:25
RDKit::MolStandardize::stereoParentInPlace
RDKIT_MOLSTANDARDIZE_EXPORT void stereoParentInPlace(RWMol &mol, const CleanupParameters &params=defaultCleanupParameters, bool skip_standardize=false)
RDKit::MolStandardize::normalizeInPlace
RDKIT_MOLSTANDARDIZE_EXPORT void normalizeInPlace(RWMol &mol, const CleanupParameters &params=defaultCleanupParameters)
Works the same as Normalizer().normalizeInPlace(mol)
RDKit::MolStandardize::disconnectOrganometallics
RDKIT_MOLSTANDARDIZE_EXPORT void disconnectOrganometallics(RWMol &mol, RDKit::MolStandardize::MetalDisconnectorOptions mdo={ true, true, false, true})
RDKit::MolStandardize::chargeParent
RDKIT_MOLSTANDARDIZE_EXPORT RWMol * chargeParent(const RWMol &mol, const CleanupParameters &params=defaultCleanupParameters, bool skip_standardize=false)
RDKit::MolStandardize::removeFragmentsInPlace
RDKIT_MOLSTANDARDIZE_EXPORT void removeFragmentsInPlace(RWMol &mol, const CleanupParameters &params=defaultCleanupParameters)
Works the same as FragmentRemover().removeInPlace(mol)
RDKit::MolStandardize::isotopeParentInPlace
RDKIT_MOLSTANDARDIZE_EXPORT void isotopeParentInPlace(RWMol &mol, const CleanupParameters &params=defaultCleanupParameters, bool skip_standardize=false)
RDKit::MolStandardize::standardizeSmiles
RDKIT_MOLSTANDARDIZE_EXPORT std::string standardizeSmiles(const std::string &smiles)
RDKit::MolStandardize::cleanup
RDKIT_MOLSTANDARDIZE_EXPORT RWMol * cleanup(const RWMol *mol, const CleanupParameters &params=defaultCleanupParameters)
RDKit::MolStandardize::reionizeInPlace
RDKIT_MOLSTANDARDIZE_EXPORT void reionizeInPlace(RWMol &mol, const CleanupParameters &params=defaultCleanupParameters)
Works the same as Reionizer().reionizeInPlace(mol)
RDKit::MolStandardize::updateCleanupParamsFromJSON
RDKIT_MOLSTANDARDIZE_EXPORT void updateCleanupParamsFromJSON(CleanupParameters &params, const std::string &json)
RDKit::MolStandardize::canonicalTautomerInPlace
RDKIT_MOLSTANDARDIZE_EXPORT void canonicalTautomerInPlace(RWMol &mol, const CleanupParameters &params=defaultCleanupParameters)
RDKit::MolStandardize::cleanupInPlace
RDKIT_MOLSTANDARDIZE_EXPORT void cleanupInPlace(RWMol &mol, const CleanupParameters &params=defaultCleanupParameters)
Works the same as cleanup(mol)
RDKit::MolStandardize::chargeParentInPlace
RDKIT_MOLSTANDARDIZE_EXPORT void chargeParentInPlace(RWMol &mol, const CleanupParameters &params=defaultCleanupParameters, bool skip_standardize=false)
RDKit::MolStandardize::superParent
RDKIT_MOLSTANDARDIZE_EXPORT RWMol * superParent(const RWMol &mol, const CleanupParameters &params=defaultCleanupParameters, bool skip_standardize=false)
RDKit
Std stuff.
Definition Abbreviations.h:19
RDKit::MolStandardize::CleanupParameters
Definition MolStandardize.h:41
RDKit::MolStandardize::CleanupParameters::maxTautomers
int maxTautomers
Definition MolStandardize.h:58
RDKit::MolStandardize::CleanupParameters::fragmentFile
std::string fragmentFile
Definition MolStandardize.h:50
RDKit::MolStandardize::CleanupParameters::normalizations
std::string normalizations
Definition MolStandardize.h:48
RDKit::MolStandardize::CleanupParameters::largestFragmentChooserCountHeavyAtomsOnly
bool largestFragmentChooserCountHeavyAtomsOnly
Definition MolStandardize.h:77
RDKit::MolStandardize::CleanupParameters::tautomerTransformData
std::vector< std::tuple< std::string, std::string, std::string, std::string > > tautomerTransformData
Definition MolStandardize.h:84
RDKit::MolStandardize::CleanupParameters::rdbase
std::string rdbase
Definition MolStandardize.h:47
RDKit::MolStandardize::CleanupParameters::doCanonical
bool doCanonical
Definition MolStandardize.h:56
RDKit::MolStandardize::CleanupParameters::tautomerRemoveBondStereo
bool tautomerRemoveBondStereo
Definition MolStandardize.h:65
RDKit::MolStandardize::CleanupParameters::acidbaseData
std::vector< std::tuple< std::string, std::string, std::string > > acidbaseData
Definition MolStandardize.h:82
RDKit::MolStandardize::CleanupParameters::largestFragmentChooserUseAtomCount
bool largestFragmentChooserUseAtomCount
Definition MolStandardize.h:74
RDKit::MolStandardize::CleanupParameters::tautomerRemoveIsotopicHs
bool tautomerRemoveIsotopicHs
Definition MolStandardize.h:68
RDKit::MolStandardize::CleanupParameters::tautomerRemoveSp3Stereo
bool tautomerRemoveSp3Stereo
Definition MolStandardize.h:62
RDKit::MolStandardize::CleanupParameters::preferOrganic
bool preferOrganic
Definition MolStandardize.h:54
RDKit::MolStandardize::CleanupParameters::acidbaseFile
std::string acidbaseFile
Definition MolStandardize.h:49
RDKit::MolStandardize::CleanupParameters::fragmentData
std::vector< std::pair< std::string, std::string > > fragmentData
Definition MolStandardize.h:81
RDKit::MolStandardize::CleanupParameters::CleanupParameters
CleanupParameters()
Definition MolStandardize.h:85
RDKit::MolStandardize::CleanupParameters::normalizationData
std::vector< std::pair< std::string, std::string > > normalizationData
Definition MolStandardize.h:80
RDKit::MolStandardize::CleanupParameters::tautomerReassignStereo
bool tautomerReassignStereo
Definition MolStandardize.h:71
RDKit::MolStandardize::CleanupParameters::tautomerTransforms
std::string tautomerTransforms
Definition MolStandardize.h:51
RDKit::MolStandardize::CleanupParameters::maxTransforms
int maxTransforms
Definition MolStandardize.h:60
RDKit::MolStandardize::CleanupParameters::maxRestarts
int maxRestarts
Definition MolStandardize.h:52
RDKit::MolStandardize::MetalDisconnectorOptions
Definition Metal.h:34