22 #ifndef RD_STRUCTCHECKER_H_Oct2016 23 #define RD_STRUCTCHECKER_H_Oct2016 27 #include "../RDKitBase.h" 30 namespace StructureCheck {
87 AugmentedAtom(
const std::string &symbol,
const std::string &name,
int charge,
165 bool loadAugmentedAtomTranslations(
const std::string &path);
166 void setAugmentedAtomTranslations(
167 const std::vector<std::pair<AugmentedAtom, AugmentedAtom> > &aaPairs);
169 bool loadAcidicAugmentedAtoms(
const std::string &path);
170 void setAcidicAugmentedAtoms(
const std::vector<AugmentedAtom> &acidicAtoms);
172 bool loadGoodAugmentedAtoms(
const std::string &path);
173 void setGoodAugmentedAtoms(
const std::vector<AugmentedAtom> &acidicAtoms);
175 bool loadPatterns(
const std::string &path);
177 const std::vector<std::string> &smarts);
178 void setPatterns(
const std::vector<ROMOL_SPTR> &p);
180 bool loadRotatePatterns(
181 const std::string &path);
182 void parseRotatePatterns(
183 const std::vector<std::string> &smarts);
184 void setRotatePatterns(
const std::vector<ROMOL_SPTR> &p);
186 bool loadStereoPatterns(
187 const std::string &path);
188 void parseStereoPatterns(
189 const std::vector<std::string> &smarts);
190 void setStereoPatterns(
const std::vector<ROMOL_SPTR> &p);
192 bool loadTautomerData(
const std::string &path);
193 void parseTautomerData(
const std::vector<std::string> &smartsFrom,
194 const std::vector<std::string> &smartsTo);
195 void setTautomerData(
const std::vector<ROMOL_SPTR> &from,
196 const std::vector<ROMOL_SPTR> &to);
197 bool loadChargeDataTables(
const std::string &path);
204 const std::string &augmentedAtomTranslationsFile =
"",
207 const std::string &patternFile =
"",
208 const std::string &rotatePatternFile =
"",
209 const std::string &stereoPatternFile =
"",
210 const std::string &tautomerFile =
"");
248 BAD_MOLECULE = 0x0001,
249 ALIAS_CONVERSION_FAILED = 0x0002,
250 STEREO_ERROR = 0x0004,
251 STEREO_FORCED_BAD = 0x0008,
253 ATOM_CHECK_FAILED = 0x0020,
254 SIZE_CHECK_FAILED = 0x0040,
256 TRANSFORMED = 0x0100,
257 FRAGMENTS_FOUND = 0x0200,
258 EITHER_WARNING = 0x0400,
259 DUBIOUS_STEREO_REMOVED = 0x0800,
261 STEREO_TRANSFORMED = 0x2000,
262 TEMPLATE_TRANSFORMED = 0x4000,
263 TAUTOMER_TRANSFORMED = 0x8000,
265 BAD_SET = (BAD_MOLECULE | ALIAS_CONVERSION_FAILED | STEREO_ERROR |
266 STEREO_FORCED_BAD | ATOM_CLASH | ATOM_CHECK_FAILED |
269 TRANSFORMED_SET = (TRANSFORMED | FRAGMENTS_FOUND | EITHER_WARNING |
270 DUBIOUS_STEREO_REMOVED | STEREO_TRANSFORMED |
271 TEMPLATE_TRANSFORMED | TAUTOMER_TRANSFORMED | RECHARGED),
280 : Options(options) {}
288 unsigned checkMolStructure(
RWMol &mol)
const;
292 static std::string StructureFlagsToString(
unsigned flags);
294 static unsigned StringToStructureFlags(
const std::string &str);
Class for performing structure validation and cleanup.
std::vector< Ligand > Ligands
std::vector< ROMOL_SPTR > Patterns
std::vector< IncEntry > AtomAcidity
std::vector< ROMOL_SPTR > FromTautomer
RWMol is a molecule class that is intended to be edited.
std::vector< std::pair< AugmentedAtom, AugmentedAtom > > AugmentedAtomPairs
RDKIT_STRUCTCHECKER_EXPORT bool loadOptionsFromFiles(StructCheckerOptions &op, const std::string &augmentedAtomTranslationsFile="", const std::string &patternFile="", const std::string &rotatePatternFile="", const std::string &stereoPatternFile="", const std::string &tautomerFile="")
AugmentedAtom(const std::string &symbol, const std::string &name, int charge, RadicalType radical, AATopology topology)
unsigned SubstitutionCount
RDKIT_STRUCTCHECKER_EXPORT bool parseOptionsJSON(const std::string &json, StructCheckerOptions &op)
std::vector< PathEntry > BetaPathTable
bool RemoveMinorFragments
StructChecker(const StructCheckerOptions &options)
std::vector< AugmentedAtom > GoodAtoms
static const int ANY_CHARGE
std::vector< ROMOL_SPTR > ToTautomer
std::vector< ROMOL_SPTR > StereoPatterns
std::map< unsigned, double > ElnegTable
std::vector< IncEntry > ChargeIncTable
#define RDKIT_STRUCTCHECKER_EXPORT
const StructCheckerOptions & GetOptions() const
void SetOptions(const StructCheckerOptions &options)
std::vector< ROMOL_SPTR > RotatePatterns
int CollisionLimitPercent
std::vector< AugmentedAtom > AcidicAtoms