14 #include "../RDKitBase.h"
35 : RingMatchesRingOnly(false),
36 CompleteRingsOnly(false),
41 const short unsigned c1[],
const short unsigned c2[],
const ROMol& mol1,
45 const ROMol& mol1,
unsigned int atom1,
46 const ROMol& mol2,
unsigned int atom2,
49 const ROMol& mol1,
unsigned int bond1,
50 const ROMol& mol2,
unsigned int bond2,
55 unsigned int atom1,
const ROMol& mol2,
56 unsigned int atom2,
void* userData);
59 const ROMol& mol1,
unsigned int atom1,
60 const ROMol& mol2,
unsigned int atom2,
63 const ROMol& mol1,
unsigned int atom1,
64 const ROMol& mol2,
unsigned int atom2,
68 unsigned int bond1,
const ROMol& mol2,
69 unsigned int bond2,
void* userData);
71 unsigned int bond1,
const ROMol& mol2,
75 const ROMol& mol1,
unsigned int bond1,
76 const ROMol& mol2,
unsigned int bond2,
111 : MaximizeBonds(true),
118 CompareFunctionsUserData(0),
120 ProgressCallbackUserData(0),
132 MCSResult() : NumAtoms(0), NumBonds(0), Canceled(false) {}
138 MCSResult
findMCS(
const std::vector<ROMOL_SPTR>& mols,
139 const MCSParameters* params = 0);
140 MCSResult
findMCS_P(
const std::vector<ROMOL_SPTR>& mols,
141 const char* params_json);
153 MCSResult
findMCS(
const std::vector<ROMOL_SPTR>& mols,
bool maximizeBonds,
154 double threshold = 1.0,
unsigned timeout = 3600,
155 bool verbose =
false,
bool matchValences =
false,
156 bool ringMatchesRingOnly =
false,
157 bool completeRingsOnly =
false,
bool matchChiralTag =
false,
MCSFinalMatchCheckFunction FinalMatchChecker
bool MCSAtomCompareIsotopes(const MCSAtomCompareParameters &p, const ROMol &mol1, unsigned int atom1, const ROMol &mol2, unsigned int atom2, void *userData)
bool(* MCSAtomCompareFunction)(const MCSAtomCompareParameters &p, const ROMol &mol1, unsigned int atom1, const ROMol &mol2, unsigned int atom2, void *userData)
bool MCSAtomCompareElements(const MCSAtomCompareParameters &p, const ROMol &mol1, unsigned int atom1, const ROMol &mol2, unsigned int atom2, void *userData)
bool MCSBondCompareAny(const MCSBondCompareParameters &p, const ROMol &mol1, unsigned int bond1, const ROMol &mol2, unsigned int bond2, void *userData)
bool MCSAtomCompareAny(const MCSAtomCompareParameters &p, const ROMol &mol1, unsigned int atom1, const ROMol &mol2, unsigned int atom2, void *userData)
MCSBondCompareParameters()
ROMol is a molecule class that is intended to have a fixed topology.
MCSAtomCompareFunction AtomTyper
void * CompareFunctionsUserData
bool MCSBondCompareOrderExact(const MCSBondCompareParameters &p, const ROMol &mol1, unsigned int bond1, const ROMol &mol2, unsigned int bond2, void *userData)
MCSProgressCallback ProgressCallback
bool MCSBondCompareOrder(const MCSBondCompareParameters &p, const ROMol &mol1, unsigned int bond1, const ROMol &mol2, unsigned int bond2, void *userData)
void * ProgressCallbackUserData
MCSBondCompareFunction BondTyper
bool(* MCSFinalMatchCheckFunction)(const short unsigned c1[], const short unsigned c2[], const ROMol &mol1, const FMCS::Graph &query, const ROMol &mol2, const FMCS::Graph &target, const MCSParameters *p)
bool(* MCSProgressCallback)(const MCSProgressData &stat, const MCSParameters ¶ms, void *userData)
Includes a bunch of functionality for handling Atom and Bond queries.
bool MCSProgressCallbackTimeout(const MCSProgressData &stat, const MCSParameters ¶ms, void *userData)
MCSAtomCompareParameters()
MCSBondCompareParameters BondCompareParameters
void parseMCSParametersJSON(const char *json, MCSParameters *params)
MCSResult findMCS_P(const std::vector< ROMOL_SPTR > &mols, const char *params_json)
MCSResult findMCS(const std::vector< ROMOL_SPTR > &mols, const MCSParameters *params=0)
bool(* MCSBondCompareFunction)(const MCSBondCompareParameters &p, const ROMol &mol1, unsigned int bond1, const ROMol &mol2, unsigned int bond2, void *userData)
MCSAtomCompareParameters AtomCompareParameters