15#include "../RDKitBase.h"
42 bool MatchValences =
false;
43 bool MatchChiralTag =
false;
44 bool MatchFormalCharge =
false;
45 bool RingMatchesRingOnly =
false;
46 bool CompleteRingsOnly =
false;
47 bool MatchIsotope =
false;
48 double MaxDistance = -1.0;
52 bool RingMatchesRingOnly =
false;
53 bool CompleteRingsOnly =
false;
54 bool MatchFusedRings =
false;
55 bool MatchFusedRingsStrict =
false;
56 bool MatchStereo =
false;
61 const ROMol &,
unsigned int,
void *);
64 const ROMol &,
unsigned int,
void *);
66 const std::vector<std::pair<int, int>> &,
67 const std::vector<std::pair<int, int>> &,
70 const std::uint32_t[],
const ROMol &,
132 unsigned int NumAtoms{0};
133 unsigned int NumBonds{0};
134 unsigned int SeedProcessed{0};
157 bool StoreAll =
false;
158 bool MaximizeBonds =
true;
159 double Threshold = 1.0;
160 unsigned int Timeout = 0;
161 bool Verbose =
false;
166 void *CompareFunctionsUserData =
nullptr;
169 void *ProgressCallbackUserData =
nullptr;
173 void *FinalMatchCheckerUserData =
nullptr;
177 void *ShouldAcceptMCSUserData =
nullptr;
178 std::string InitialSeed =
"";
195 unsigned int NumAtoms{0};
196 unsigned int NumBonds{0};
198 bool Canceled{
false};
217 const std::vector<ROMOL_SPTR> &mols,
bool maximizeBonds,
double threshold,
223 double threshold = 1.0,
unsigned int timeout = 3600,
bool verbose =
false,
224 bool matchValences =
false,
bool ringMatchesRingOnly =
false,
#define RDKIT_FMCS_EXPORT
RDKIT_FMCS_EXPORT MCSResult findMCS_P(const std::vector< ROMOL_SPTR > &mols, const char *params_json)
RDKIT_FMCS_EXPORT bool MCSAtomCompareAnyHeavyAtom(const MCSAtomCompareParameters &p, const ROMol &mol1, unsigned int atom1, const ROMol &mol2, unsigned int atom2, void *userData)
@ AtomCompareAnyHeavyAtom
bool rdvalue_is(const RDValue_cast_t)
RDKIT_FMCS_EXPORT bool checkBondRingMatch(const MCSBondCompareParameters &p, const ROMol &mol1, unsigned int bond1, const ROMol &mol2, unsigned int bond2)
RDKIT_FMCS_EXPORT bool MCSAtomCompareElements(const MCSAtomCompareParameters &p, const ROMol &mol1, unsigned int atom1, const ROMol &mol2, unsigned int atom2, void *userData)
bool(* MCSFinalMatchCheckFunction)(const std::uint32_t[], const std::uint32_t[], const ROMol &, const FMCS::Graph &, const ROMol &, const FMCS::Graph &, const MCSParameters *)
RDKIT_FMCS_EXPORT bool checkAtomDistance(const MCSAtomCompareParameters &p, const ROMol &mol1, unsigned int atom1, const ROMol &mol2, unsigned int atom2)
RDKIT_FMCS_EXPORT bool checkBondStereo(const MCSBondCompareParameters &p, const ROMol &mol1, unsigned int bond1, const ROMol &mol2, unsigned int bond2)
RDKIT_FMCS_EXPORT void parseMCSParametersJSON(const char *json, MCSParameters *params)
bool(* MCSBondCompareFunction)(const MCSBondCompareParameters &, const ROMol &, unsigned int, const ROMol &, unsigned int, void *)
RDKIT_FMCS_EXPORT bool MCSBondCompareAny(const MCSBondCompareParameters &p, const ROMol &mol1, unsigned int bond1, const ROMol &mol2, unsigned int bond2, void *userData)
RDKIT_FMCS_EXPORT MCSResult findMCS(const std::vector< ROMOL_SPTR > &mols, const MCSParameters *params=nullptr)
RDKIT_FMCS_EXPORT bool MCSAtomCompareAny(const MCSAtomCompareParameters &p, const ROMol &mol1, unsigned int atom1, const ROMol &mol2, unsigned int atom2, void *userData)
bool(* MCSAtomCompareFunction)(const MCSAtomCompareParameters &, const ROMol &, unsigned int, const ROMol &, unsigned int, void *)
RDKIT_FMCS_EXPORT bool MCSBondCompareOrder(const MCSBondCompareParameters &p, const ROMol &mol1, unsigned int bond1, const ROMol &mol2, unsigned int bond2, void *userData)
RDKIT_FMCS_EXPORT bool checkAtomRingMatch(const MCSAtomCompareParameters &p, const ROMol &mol1, unsigned int atom1, const ROMol &mol2, unsigned int atom2)
RDKIT_FMCS_EXPORT bool checkAtomCharge(const MCSAtomCompareParameters &p, const ROMol &mol1, unsigned int atom1, const ROMol &mol2, unsigned int atom2)
RDKIT_FMCS_EXPORT bool MCSAtomCompareIsotopes(const MCSAtomCompareParameters &p, const ROMol &mol1, unsigned int atom1, const ROMol &mol2, unsigned int atom2, void *userData)
boost::shared_ptr< ROMol > ROMOL_SPTR
RDKIT_FMCS_EXPORT bool havePairOfCompatibleRings(const MCSBondCompareParameters &p, const ROMol &mol1, unsigned int bond1, const ROMol &mol2, unsigned int bond2)
RDKIT_FMCS_EXPORT bool checkAtomChirality(const MCSAtomCompareParameters &p, const ROMol &mol1, unsigned int atom1, const ROMol &mol2, unsigned int atom2)
bool(* MCSProgressCallback)(const MCSProgressData &stat, const MCSParameters ¶ms, void *userData)
RDKIT_FMCS_EXPORT bool MCSProgressCallbackTimeout(const MCSProgressData &stat, const MCSParameters ¶ms, void *userData)
bool(* MCSAcceptanceFunction)(const ROMol &, const ROMol &, const std::vector< std::pair< int, int > > &, const std::vector< std::pair< int, int > > &, const MCSParameters *)
RDKIT_FMCS_EXPORT bool MCSBondCompareOrderExact(const MCSBondCompareParameters &p, const ROMol &mol1, unsigned int bond1, const ROMol &mol2, unsigned int bond2, void *userData)
MCSParameters(const MCSParameters *other)
void setMCSBondTyperFromEnum(BondComparator bondComp)
void setMCSBondTyperFromConstChar(const char *bondComp)
MCSParameters(const MCSParameters &other)=default
MCSParameters & operator=(const MCSParameters &other)=default
void setMCSAtomTyperFromConstChar(const char *atomComp)
void setMCSAtomTyperFromEnum(AtomComparator atomComp)
MCSAtomCompareParameters AtomCompareParameters
MCSBondCompareParameters BondCompareParameters
std::map< std::string, ROMOL_SPTR > DegenerateSmartsQueryMolDict
MCSParametersInternal(const MCSParameters *params)
MCSFinalMatchCheckFunction UserFinalMatchChecker