14 #include "../RDKitBase.h" 29 const ROMol& mol1,
const FMCS::Graph& query,
const ROMol& mol2,
const FMCS::Graph& target,
const MCSParameters* p);
34 std::vector<const Atom*> Atoms;
35 std::vector<const Bond*> Bonds;
36 std::vector<unsigned> AtomsIdx;
37 std::vector<unsigned> BondsIdx;
38 const ROMol* QueryMolecule;
39 std::vector<Target> Targets;
42 unsigned long long To;
45 unsigned ThresholdCount;
46 std::vector<const ROMol*> Molecules;
47 #ifdef FAST_SUBSTRUCT_CACHE 48 std::vector<unsigned> QueryAtomLabels;
49 std::vector<unsigned> QueryBondLabels;
55 #ifdef DUP_SUBSTRUCT_CACHE 58 const ROMol* QueryMolecule;
59 unsigned QueryMoleculeMatchedBonds;
60 unsigned QueryMoleculeMatchedAtoms;
61 std::vector<Target> Targets;
65 #ifdef VERBOSE_STATISTICS_ON 75 return *QueryMolecule;
78 return McsIdx.BondsIdx.size();
82 return McsIdx.AtomsIdx.size();
93 void makeInitialSeeds();
94 bool createSeedFromMCS(
size_t newQueryTarget,
Seed& seed);
96 std::string generateResultSMARTS(
const MCS& McsIdx)
const;
98 bool match(
Seed& seed);
99 bool matchIncrementalFast(
Seed& seed,
unsigned itarget);
MCSResult find(const std::vector< ROMOL_SPTR > &mols)
ROMol is a molecule class that is intended to have a fixed topology.
const ROMol & getQueryMolecule() const
unsigned getMaxNumberBonds() const
bool FinalChiralityCheckFunction(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)
static unsigned long long nanoClock(void)
Includes a bunch of functionality for handling Atom and Bond queries.
unsigned getMaxNumberAtoms() const
ExecStatistics VerboseStatistics
MaximumCommonSubgraph(const MCSParameters *params)
bool checkIfMatchAndAppend(Seed &seed)