11#ifndef RDKIT_SYNTHONSPACESEARCHDETAILS_H
12#define RDKIT_SYNTHONSPACESEARCHDETAILS_H
21using Clock = std::chrono::steady_clock;
26namespace SynthonSpaceSearch::details {
46 const std::uint64_t maxNumFragSets,
const TimePoint *endTime,
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>>>>
69 const boost::dynamic_bitset<> &fragConns,
70 const boost::dynamic_bitset<> &reactionConns);
76 const std::vector<boost::dynamic_bitset<>> &fragConnPatts,
77 const boost::dynamic_bitset<> &reactionConns);
87 std::vector<boost::dynamic_bitset<>> &bitSets);
90 const std::vector<boost::dynamic_bitset<>> &bitSets,
91 std::vector<std::vector<size_t>> &outVecs);
105 std::int64_t i =
static_cast<std::int64_t
>(
d_currState.size()) - 1;
146 const std::string &reactionId,
const std::vector<std::string> &fragIds);
149 const std::vector<size_t> &fragNums);
153 const std::vector<const ROMol *> &synthons);
171 ROMol &mol,
unsigned int *numExcDummies =
nullptr);
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 unsigned int countChiralAtoms(ROMol &mol, unsigned int *numExcDummies=nullptr)
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)
Stepper(const std::vector< size_t > &sizes)
std::vector< size_t > d_sizes
std::vector< size_t > d_currState