11 #ifndef RD_SUBSTRUCTMATCH_H
12 #define RD_SUBSTRUCTMATCH_H
21 class ResonanceMolSupplier;
45 : useChirality(false),
46 aromaticMatchesConjugated(false),
47 useQueryQueryMatches(false),
48 recursionPossible(true),
64 const ROMol &mol,
const ROMol &query,
65 const SubstructMatchParameters ¶ms = SubstructMatchParameters());
77 ResonanceMolSupplier &resMolSuppl,
const ROMol &query,
78 const SubstructMatchParameters ¶ms = SubstructMatchParameters());
81 const MolBundle &bundle,
const ROMol &query,
82 const SubstructMatchParameters ¶ms = SubstructMatchParameters());
84 const ROMol &mol,
const MolBundle &query,
85 const SubstructMatchParameters ¶ms = SubstructMatchParameters());
87 const MolBundle &bundle,
const MolBundle &query,
88 const SubstructMatchParameters ¶ms = SubstructMatchParameters());
104 template <
typename T1,
typename T2>
106 bool recursionPossible =
true,
bool useChirality =
false,
107 bool useQueryQueryMatches =
false) {
113 std::vector<MatchVectType> matchVects =
SubstructMatch(mol, query, params);
114 if (matchVects.size()) {
115 matchVect = matchVects.front();
119 return matchVect.size() != 0;
144 template <
typename T1,
typename T2>
146 std::vector<MatchVectType> &matchVect,
147 bool uniquify =
true,
bool recursionPossible =
true,
148 bool useChirality =
false,
149 bool useQueryQueryMatches =
false,
150 unsigned int maxMatches = 1000,
151 int numThreads = 1) {
160 return matchVect.size();
170 bool recursionPossible,
bool useChirality,
171 bool useQueryQueryMatches) {
177 std::vector<MatchVectType> matchVects =
179 if (matchVects.size()) {
180 matchVect = matchVects.front();
184 return matchVect.size() != 0;
190 std::vector<MatchVectType> &matchVect,
191 bool uniquify,
bool recursionPossible,
192 bool useChirality,
bool useQueryQueryMatches,
193 unsigned int maxMatches,
int numThreads) {
202 return matchVect.size();