15#include "../RDKitBase.h"
28 const std::uint32_t c1[],
const std::uint32_t c2[],
const ROMol& mol1,
41 std::vector<const Atom*> Atoms;
42 std::vector<const Bond*> Bonds;
43 const ROMol* QueryMolecule;
44 std::vector<Target> Targets;
46 unsigned long long To;
50 unsigned int ThresholdCount;
51 std::vector<const ROMol*> Molecules;
52#ifdef FAST_SUBSTRUCT_CACHE
54 std::vector<unsigned int> QueryAtomLabels;
56 std::vector<unsigned int> QueryBondLabels;
61#ifdef DUP_SUBSTRUCT_CACHE
64 const ROMol* QueryMolecule;
65 unsigned int QueryMoleculeMatchedBonds;
66 unsigned int QueryMoleculeMatchedAtoms;
67 const Atom* QueryMoleculeSingleMatchedAtom;
68 std::vector<Target> Targets;
71 std::map<std::vector<unsigned int>,
MCS> DegenerateMcsMap;
74#ifdef VERBOSE_STATISTICS_ON
96 void init(
size_t startIdx);
97 void makeInitialSeeds();
98 bool createSeedFromMCS(
size_t newQueryTarget, Seed&
seed);
100 std::pair<std::string, ROMOL_SPTR> generateResultSMARTSAndQueryMol(
101 const MCS& mcsIdx)
const;
103 bool matchIncrementalFast(Seed&
seed,
unsigned int itarget);
static unsigned long long nanoClock(void)
The class for representing atoms.
unsigned int getMaxNumberBonds() const
MaximumCommonSubgraph(const MCSParameters *params)
unsigned int getMaxNumberAtoms() const
MCSParameters & parameters()
bool checkIfMatchAndAppend(Seed &seed)
ExecStatistics VerboseStatistics
MCSResult find(const std::vector< ROMOL_SPTR > &mols)
const MCSParameters & parameters() const
const ROMol & getQueryMolecule() const
#define RDKIT_FMCS_EXPORT
bool FinalChiralityCheckFunction(const std::uint32_t c1[], const std::uint32_t c2[], const ROMol &mol1, const FMCS::Graph &query, const ROMol &mol2, const FMCS::Graph &target, const MCSParameters *p)
bool FinalMatchCheckFunction(const std::uint32_t c1[], const std::uint32_t c2[], const ROMol &mol1, const FMCS::Graph &query, const ROMol &mol2, const FMCS::Graph &target, const MCSParameters *p)