11#ifndef RDKIT_SYNTHONSPACESEARCHDETAILS_H
12#define RDKIT_SYNTHONSPACESEARCHDETAILS_H
21using Clock = std::chrono::steady_clock;
26namespace SynthonSpaceSearch::details {
47 const int numThreads,
bool &
timedOut);
58 const std::vector<std::unique_ptr<ROMol>> &
fragSet);
67std::vector<std::vector<std::vector<std::pair<Atom *, unsigned int>>>>
87 std::vector<boost::dynamic_bitset<>> &
bitSets);
90 const std::vector<boost::dynamic_bitset<>> &
bitSets,
91 std::vector<std::vector<size_t>> &
outVecs);
96 explicit Stepper(
const std::vector<size_t> &sizes) : d_sizes(sizes) {
97 d_currState = std::vector<size_t>(sizes.size(), 0);
102 if (d_currState[0] == d_sizes[0]) {
105 std::int64_t i =
static_cast<std::int64_t
>(d_currState.size()) - 1;
108 if (d_currState[0] == d_sizes[0]) {
111 if (d_currState[i] == d_sizes[i]) {
149 const std::vector<size_t> &
fragNums);
153 const std::vector<const ROMol *> &
synthons);
std::chrono::steady_clock Clock
std::chrono::time_point< Clock > TimePoint
RWMol is a molecule class that is intended to be edited.
#define RDKIT_SYNTHONSPACESEARCH_EXPORT
RDKIT_SYNTHONSPACESEARCH_EXPORT boost::dynamic_bitset getConnectorPattern(const std::vector< std::unique_ptr< ROMol > > &fragSet)
RDKIT_SYNTHONSPACESEARCH_EXPORT std::vector< std::vector< std::vector< std::pair< Atom *, unsigned int > > > > getConnectorPermutations(const std::vector< std::unique_ptr< ROMol > > &molFrags, const boost::dynamic_bitset<> &fragConns, const boost::dynamic_bitset<> &reactionConns)
RDKIT_SYNTHONSPACESEARCH_EXPORT bool removeQueryAtoms(RWMol &mol)
RDKIT_SYNTHONSPACESEARCH_EXPORT void bitSetsToVectors(const std::vector< boost::dynamic_bitset<> > &bitSets, std::vector< std::vector< size_t > > &outVecs)
RDKIT_SYNTHONSPACESEARCH_EXPORT bool checkTimeOut(const TimePoint *endTime)
RDKIT_SYNTHONSPACESEARCH_EXPORT int countConnections(const ROMol &mol)
RDKIT_SYNTHONSPACESEARCH_EXPORT std::vector< std::vector< unsigned int > > permMFromN(unsigned int m, unsigned int n)
RDKIT_SYNTHONSPACESEARCH_EXPORT std::vector< boost::dynamic_bitset<> > getConnectorPatterns(const std::vector< std::unique_ptr< ROMol > > &fragSet)
RDKIT_SYNTHONSPACESEARCH_EXPORT std::unique_ptr< ROMol > buildConnRegion(const ROMol &mol)
RDKIT_SYNTHONSPACESEARCH_EXPORT std::vector< std::vector< unsigned int > > combMFromN(unsigned int m, unsigned int n)
RDKIT_SYNTHONSPACESEARCH_EXPORT std::vector< std::vector< std::unique_ptr< ROMol > > > splitMolecule(const ROMol &query, unsigned int maxNumFrags, const std::uint64_t maxNumFragSets, const TimePoint *endTime, const int numThreads, bool &timedOut)
RDKIT_SYNTHONSPACESEARCH_EXPORT std::map< std::string, std::vector< ROMol * > > mapFragsBySmiles(std::vector< std::vector< std::unique_ptr< ROMol > > > &fragSets, bool &cancelled)
RDKIT_SYNTHONSPACESEARCH_EXPORT std::unique_ptr< ROMol > buildProduct(const std::vector< const ROMol * > &synthons)
RDKIT_SYNTHONSPACESEARCH_EXPORT std::string buildProductName(const std::string &reactionId, const std::vector< std::string > &fragIds)
RDKIT_SYNTHONSPACESEARCH_EXPORT void expandBitSet(std::vector< boost::dynamic_bitset<> > &bitSets)
bool rdvalue_is(const RDValue_cast_t)
Stepper(const std::vector< size_t > &sizes)
std::vector< size_t > d_sizes
std::vector< size_t > d_currState