34namespace MolStandardize {
43 const char *
what() const noexcept
override {
return d_msg.c_str(); }
57 virtual std::vector<ValidationErrorInfo>
validate(
58 const ROMol &mol,
bool reportAllFailures)
const = 0;
72 const ROMol &mol,
bool reportAllFailures)
const override;
84 virtual void run(
const ROMol &mol,
bool reportAllFailures,
85 std::vector<ValidationErrorInfo> &errors)
const = 0;
86 virtual boost::shared_ptr<MolVSValidations>
copy()
const = 0;
94 void run(
const ROMol &mol,
bool reportAllFailures,
95 std::vector<ValidationErrorInfo> &errors)
const override;
98 boost::shared_ptr<MolVSValidations>
copy()
const override {
99 return boost::make_shared<NoAtomValidation>(*
this);
108 std::vector<ValidationErrorInfo> &errors)
const override;
111 boost::shared_ptr<MolVSValidations>
copy()
const override {
112 return boost::make_shared<FragmentValidation>(*
this);
121 std::vector<ValidationErrorInfo> &errors)
const override;
124 boost::shared_ptr<MolVSValidations>
copy()
const override {
125 return boost::make_shared<NeutralValidation>(*
this);
134 std::vector<ValidationErrorInfo> &errors)
const override;
137 boost::shared_ptr<MolVSValidations>
copy()
const override {
138 return boost::make_shared<IsotopeValidation>(*
this);
151 const std::vector<boost::shared_ptr<MolVSValidations>> validations);
156 const ROMol &mol,
bool reportAllFailures)
const override;
159 std::vector<boost::shared_ptr<MolVSValidations>> d_validations;
169 : d_allowedList(std::move(atoms)) {}
171 const ROMol &mol,
bool reportAllFailures)
const override;
174 std::vector<std::shared_ptr<Atom>> d_allowedList;
184 : d_disallowedList(std::move(atoms)) {}
186 const ROMol &mol,
bool reportAllFailures)
const override;
189 std::vector<std::shared_ptr<Atom>> d_disallowedList;
194 const std::string &smiles);
Defines the Atom class and associated typedefs.
pulls in the core RDKit functionality
#define BOOST_LOG(__arg__)
RDKIT_RDGENERAL_EXPORT RDLogger rdInfoLog
Defines the primary molecule class ROMol as well as associated typedefs.
AllowedAtomsValidation(std::vector< std::shared_ptr< Atom > > atoms)
std::vector< ValidationErrorInfo > validate(const ROMol &mol, bool reportAllFailures) const override
DisallowedAtomsValidation(std::vector< std::shared_ptr< Atom > > atoms)
std::vector< ValidationErrorInfo > validate(const ROMol &mol, bool reportAllFailures) const override
The FragmentValidation class logs if certain fragments are present.
void run(const ROMol &mol, bool reportAllFailures, std::vector< ValidationErrorInfo > &errors) const override
boost::shared_ptr< MolVSValidations > copy() const override
The IsotopeValidation class logs if molecule contains isotopes.
boost::shared_ptr< MolVSValidations > copy() const override
void run(const ROMol &mol, bool reportAllFailures, std::vector< ValidationErrorInfo > &errors) const override
The MolVSValidation class can be used to perform all MolVSValidions.
std::vector< ValidationErrorInfo > validate(const ROMol &mol, bool reportAllFailures) const override
~MolVSValidation() override
MolVSValidation(const std::vector< boost::shared_ptr< MolVSValidations > > validations)
overloaded constructor to take in a user-defined list of MolVSValidations
MolVSValidation(const MolVSValidation &other)
virtual boost::shared_ptr< MolVSValidations > copy() const =0
virtual void run(const ROMol &mol, bool reportAllFailures, std::vector< ValidationErrorInfo > &errors) const =0
The NeutralValidation class logs if not an overall neutral system.
void run(const ROMol &mol, bool reportAllFailures, std::vector< ValidationErrorInfo > &errors) const override
boost::shared_ptr< MolVSValidations > copy() const override
void run(const ROMol &mol, bool reportAllFailures, std::vector< ValidationErrorInfo > &errors) const override
boost::shared_ptr< MolVSValidations > copy() const override
std::vector< ValidationErrorInfo > validate(const ROMol &mol, bool reportAllFailures) const override
~ValidationErrorInfo() noexcept override=default
ValidationErrorInfo(std::string msg)
const char * what() const noexcept override
virtual std::vector< ValidationErrorInfo > validate(const ROMol &mol, bool reportAllFailures) const =0
virtual ~ValidationMethod()=default
ValidationMethod()=default
#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.