47 virtual std::vector<ValidationErrorInfo>
validate(
48 const ROMol &mol,
bool reportAllFailures)
const = 0;
49 virtual std::shared_ptr<ValidationMethod>
copy()
const = 0;
58 const std::vector<std::shared_ptr<ValidationMethod>> &validations)
59 : validations(validations) {};
62 const ROMol &mol,
bool reportAllFailures)
const override;
64 std::shared_ptr<ValidationMethod>
copy()
const override {
65 return std::make_shared<CompositeValidation>(*
this);
69 std::vector<std::shared_ptr<ValidationMethod>> validations;
86 const ROMol &mol,
bool reportAllFailures)
const override;
88 std::shared_ptr<ValidationMethod>
copy()
const override {
89 return std::make_shared<RDKitValidation>(*
this);
104 const ROMol &mol,
bool reportAllFailures)
const override;
106 std::shared_ptr<ValidationMethod>
copy()
const override {
107 return std::make_shared<NoAtomValidation>(*
this);
115 const ROMol &mol,
bool reportAllFailures)
const override;
117 std::shared_ptr<ValidationMethod>
copy()
const override {
118 return std::make_shared<FragmentValidation>(*
this);
126 const ROMol &mol,
bool reportAllFailures)
const override;
128 std::shared_ptr<ValidationMethod>
copy()
const override {
129 return std::make_shared<NeutralValidation>(*
this);
145 const ROMol &mol,
bool reportAllFailures)
const override;
147 std::shared_ptr<ValidationMethod>
copy()
const override {
148 return std::make_shared<IsotopeValidation>(*
this);
165 const std::vector<std::shared_ptr<ValidationMethod>> &validations);
167 std::shared_ptr<ValidationMethod>
copy()
const override {
168 return std::make_shared<MolVSValidation>(*
this);
178 : d_allowedList(std::move(atoms)) {}
180 const ROMol &mol,
bool reportAllFailures)
const override;
182 std::shared_ptr<ValidationMethod>
copy()
const override {
183 return std::make_shared<AllowedAtomsValidation>(*
this);
187 std::vector<std::shared_ptr<Atom>> d_allowedList;
196 : d_disallowedList(std::move(atoms)) {}
198 const ROMol &mol,
bool reportAllFailures)
const override;
200 std::shared_ptr<ValidationMethod>
copy()
const override {
201 return std::make_shared<DisallowedAtomsValidation>(*
this);
205 std::vector<std::shared_ptr<Atom>> d_disallowedList;
215 const ROMol &mol,
bool reportAllFailures)
const override;
217 std::shared_ptr<ValidationMethod>
copy()
const override {
218 return std::make_shared<DisallowedRadicalValidation>(*
this);
238 const ROMol &mol,
bool reportAllFailures)
const override;
239 std::shared_ptr<ValidationMethod>
copy()
const override {
240 return std::make_shared<FeaturesValidation>(*
this);
258 const ROMol &mol,
bool reportAllFailures)
const override;
259 std::shared_ptr<ValidationMethod>
copy()
const override {
260 return std::make_shared<Is2DValidation>(*
this);
281 const ROMol &mol,
bool reportAllFailures)
const override;
282 std::shared_ptr<ValidationMethod>
copy()
const override {
283 return std::make_shared<Layout2DValidation>(*
this);
304 const ROMol &mol,
bool reportAllFailures)
const override;
305 std::shared_ptr<ValidationMethod>
copy()
const override {
306 return std::make_shared<StereoValidation>(*
this);
312 const std::string &smiles);
Defines the Atom class and associated typedefs.
pulls in the core RDKit functionality
Defines the primary molecule class ROMol as well as associated typedefs.
AllowedAtomsValidation(std::vector< std::shared_ptr< Atom > > atoms)
std::shared_ptr< ValidationMethod > copy() const override
std::vector< ValidationErrorInfo > validate(const ROMol &mol, bool reportAllFailures) const override
std::shared_ptr< ValidationMethod > copy() const override
std::vector< ValidationErrorInfo > validate(const ROMol &mol, bool reportAllFailures) const override
CompositeValidation(const std::vector< std::shared_ptr< ValidationMethod > > &validations)
DisallowedAtomsValidation(std::vector< std::shared_ptr< Atom > > atoms)
std::vector< ValidationErrorInfo > validate(const ROMol &mol, bool reportAllFailures) const override
std::shared_ptr< ValidationMethod > copy() const override
std::vector< ValidationErrorInfo > validate(const ROMol &mol, bool reportAllFailures) const override
std::shared_ptr< ValidationMethod > copy() const override
FeaturesValidation(bool allowEnhancedStereo=false, bool allowAromaticBondType=false, bool allowDativeBondType=false, bool allowQueries=false, bool allowDummies=false, bool allowAtomAliases=false)
std::shared_ptr< ValidationMethod > copy() const override
bool allowAromaticBondType
std::vector< ValidationErrorInfo > validate(const ROMol &mol, bool reportAllFailures) const override
The FragmentValidation class logs if certain fragments are present.
std::shared_ptr< ValidationMethod > copy() const override
std::vector< ValidationErrorInfo > validate(const ROMol &mol, bool reportAllFailures) const override
std::vector< ValidationErrorInfo > validate(const ROMol &mol, bool reportAllFailures) const override
std::shared_ptr< ValidationMethod > copy() const override
Is2DValidation(double threshold=1.e-3)
std::shared_ptr< ValidationMethod > copy() const override
std::vector< ValidationErrorInfo > validate(const ROMol &mol, bool reportAllFailures) const override
IsotopeValidation(bool strict=false)
Layout2DValidation(double clashLimit=0.15, double bondLengthLimit=25., bool allowLongBondsInRings=true, bool allowAtomBondClashExemption=true, double minMedianBondLength=1e-3)
bool allowAtomBondClashExemption
double minMedianBondLength
std::shared_ptr< ValidationMethod > copy() const override
bool allowLongBondsInRings
std::vector< ValidationErrorInfo > validate(const ROMol &mol, bool reportAllFailures) const override
static double squaredMedianBondLength(const ROMol &mol, const Conformer &conf)
MolVSValidation(const std::vector< std::shared_ptr< ValidationMethod > > &validations)
overloaded constructor to take in a user-defined list of ValidationMethod
std::shared_ptr< ValidationMethod > copy() const override
The NeutralValidation class logs if not an overall neutral system.
std::vector< ValidationErrorInfo > validate(const ROMol &mol, bool reportAllFailures) const override
std::shared_ptr< ValidationMethod > copy() const override
std::shared_ptr< ValidationMethod > copy() const override
std::vector< ValidationErrorInfo > validate(const ROMol &mol, bool reportAllFailures) const override
RDKitValidation(bool allowEmptyMolecules=false)
std::vector< ValidationErrorInfo > validate(const ROMol &mol, bool reportAllFailures) const override
std::shared_ptr< ValidationMethod > copy() const override
std::vector< ValidationErrorInfo > validate(const ROMol &mol, bool reportAllFailures) const override
std::shared_ptr< ValidationMethod > copy() const override
virtual std::shared_ptr< ValidationMethod > copy() const =0
virtual std::vector< ValidationErrorInfo > validate(const ROMol &mol, bool reportAllFailures) const =0
virtual ~ValidationMethod()=default
ValidationMethod()=default
RWMol is a molecule class that is intended to be edited.
#define RDKIT_MOLSTANDARDIZE_EXPORT
RDKIT_MOLSTANDARDIZE_EXPORT std::vector< ValidationErrorInfo > validateSmiles(const std::string &smiles)
A convenience function for quickly validating a single SMILES string.
std::string ValidationErrorInfo