15#ifndef SYNTHONSPACESEARCHER_H
16#define SYNTHONSPACESEARCHER_H
25#include <boost/spirit/home/support/common_terminals.hpp>
27using Clock = std::chrono::steady_clock;
33namespace SynthonSpaceSearch {
59 const std::vector<std::unique_ptr<ROMol>> &
fragSet,
69 const std::vector<size_t> &
synthNums)
const;
83 const std::vector<size_t> &
synthNums)
const;
86 std::unique_ptr<std::mt19937> d_randGen;
96 virtual void extraSearchSetup(
97 [[
maybe_unused]] std::vector<std::vector<std::unique_ptr<ROMol>>>
100 std::vector<std::unique_ptr<SynthonSpaceHitSet>> doTheSearch(
101 std::vector<std::vector<std::unique_ptr<ROMol>>> &
fragSets,
109 void buildHits(std::vector<std::unique_ptr<SynthonSpaceHitSet>> &
hitsets,
111 std::vector<std::unique_ptr<ROMol>> &
results)
const;
113 const std::vector<std::unique_ptr<SynthonSpaceHitSet>> &
hitsets,
115 std::vector<std::unique_ptr<ROMol>> &
results)
const;
116 void makeHitsFromToTry(
120 std::vector<std::unique_ptr<ROMol>> &
results)
const;
121 void processToTrySet(
125 std::vector<std::unique_ptr<ROMol>> &
results)
const;
129 std::vector<std::vector<ROMol *>> getSynthonsToUse(
130 const std::vector<boost::dynamic_bitset<>> &synthonsToUse,
std::chrono::steady_clock Clock
std::chrono::time_point< Clock > TimePoint
contains a class for searching combinatorial libraries in Synthon format such as Enamine REAL.
SynthonSpaceSearcher(const ROMol &query, const SynthonSpaceSearchParams ¶ms, SynthonSpace &space)
SynthonSpaceSearcher(SynthonSpaceSearcher &&other)=delete
SynthonSpaceSearcher(const SynthonSpaceSearcher &other)=delete
const ROMol & getQuery() const
virtual ~SynthonSpaceSearcher()=default
virtual std::vector< std::unique_ptr< SynthonSpaceHitSet > > searchFragSet(const std::vector< std::unique_ptr< ROMol > > &fragSet, const SynthonSet &reaction) const =0
virtual bool verifyHit(ROMol &mol) const
SynthonSpaceSearcher & operator=(const SynthonSpaceSearcher &other)=delete
SynthonSpace & getSpace() const
SynthonSpaceSearcher()=delete
const SynthonSpaceSearchParams & getParams() const
std::unique_ptr< ROMol > buildAndVerifyHit(const SynthonSpaceHitSet *hitset, const std::vector< size_t > &synthNums) const
SynthonSpaceSearcher & operator=(SynthonSpaceSearcher &&other)=delete
virtual bool quickVerify(const SynthonSpaceHitSet *hitset, const std::vector< size_t > &synthNums) const
bool rdvalue_is(const RDValue_cast_t)