57 std::uint64_t finishLine);
67 const std::vector<std::shared_ptr<ROMol>> &fragSet,
83 const std::vector<const std::string *> &);
90 std::vector<const std::string *> &synthNames)
const;
98 const std::vector<size_t> &synthNums)
const = 0;
106 const std::vector<size_t> &synthNums)
const;
116 const TimePoint *endTime, std::vector<std::unique_ptr<ROMol>> &results,
117 std::atomic<std::int64_t> &numHitsFound,
118 std::uint64_t &numPossHitsWritten);
125 std::unique_ptr<std::mt19937> d_randGen;
130 std::unique_ptr<ROMol> d_bestHitFound;
131 double d_bestSimilarity{0.0};
134 std::mutex d_bestHitsMutex;
139 virtual unsigned int getNumQueryFragmentsRequired();
144 virtual bool extraSearchSetup(
145 std::vector<std::vector<std::shared_ptr<ROMol>>> &,
const TimePoint *) {
149 std::vector<std::unique_ptr<SynthonSpaceHitSet>> assembleHitSets(
150 const TimePoint *endTime,
bool &timedOut, std::uint64_t &totHits,
153 std::vector<std::unique_ptr<SynthonSpaceHitSet>> doTheSearch(
154 std::vector<std::vector<std::shared_ptr<ROMol>>> &fragSets,
155 const TimePoint *endTime,
bool &timedOut, std::uint64_t &totHits,
163 void buildHits(std::vector<std::unique_ptr<SynthonSpaceHitSet>> &hitsets,
164 const TimePoint *endTime,
bool &timedOut,
165 std::vector<std::unique_ptr<ROMol>> &results);
167 const std::vector<std::unique_ptr<SynthonSpaceHitSet>> &hitsets,
168 const TimePoint *endTime,
bool &timedOut,
169 std::vector<std::unique_ptr<ROMol>> &results);
170 void sortToTryByApproxSimilarity(
171 std::vector<std::pair<
const SynthonSpaceHitSet *, std::vector<size_t>>>
173 virtual void processToTrySet(
174 std::vector<std::pair<
const SynthonSpaceHitSet *, std::vector<size_t>>>
176 const TimePoint *endTime, std::vector<std::unique_ptr<ROMol>> &results,
177 std::atomic<std::int64_t> &numHitsFound,
178 std::uint64_t &numPossHitsWritten);
182 std::vector<std::vector<ROMol *>> getSynthonsToUse(
183 const std::vector<boost::dynamic_bitset<>> &synthonsToUse,
184 const std::string &reaction_id)
const;
void makeHitsFromToTry(const std::vector< std::pair< const SynthonSpaceHitSet *, std::vector< size_t > > > &toTry, const TimePoint *endTime, std::vector< std::unique_ptr< ROMol > > &results, std::atomic< std::int64_t > &numHitsFound, std::uint64_t &numPossHitsWritten)