11#ifndef RDKIT_SYNTHONSPACESEARCHDETAILS_H
12#define RDKIT_SYNTHONSPACESEARCHDETAILS_H
23using Clock = std::chrono::steady_clock;
29namespace SynthonSpaceSearch {
52 const std::uint64_t maxNumFragSets,
const TimePoint *endTime,
65 const std::vector<std::shared_ptr<ROMol>> &fragSet);
74std::vector<std::vector<std::vector<std::pair<Atom *, unsigned int>>>>
76 const boost::dynamic_bitset<> &fragConns,
77 const boost::dynamic_bitset<> &reactionConns);
83 const std::vector<boost::dynamic_bitset<>> &fragConnPatts,
84 const boost::dynamic_bitset<> &reactionConns);
94 std::vector<boost::dynamic_bitset<>> &bitSets);
97 const std::vector<boost::dynamic_bitset<>> &bitSets,
98 std::vector<std::vector<size_t>> &outVecs);
104 d_currState = std::vector<size_t>(sizes.size(), 0);
112 std::int64_t i =
static_cast<std::int64_t
>(
d_currState.size()) - 1;
153 const std::string &reactionId,
const std::vector<std::string> &fragIds);
155 const std::string &reactionId,
156 const std::vector<const std::string *> &fragIds);
159 const std::vector<size_t> &fragNums);
164 const std::vector<size_t> &fragNums);
168 const std::vector<const ROMol *> &synthons);
186 ROMol &mol,
unsigned int *numExcDummies =
nullptr);
194 double simThreshold);
200 const ROMol &mol,
unsigned int numConformers,
bool enumerateStereo,
204 unsigned int maxStereoCenters = std::numeric_limits<unsigned int>::max());
209 const ROMol &mol,
size_t molNum);
216 std::vector<std::unique_ptr<SampleMolRec>> &sampleMols,
218 std::unique_ptr<ProgressBar> &pbar);
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 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 std::size_t buildProductHash(const RDKit::SynthonSpaceSearch::SynthonSpaceHitSet *hitset, const std::vector< size_t > &fragNums)
RDKIT_SYNTHONSPACESEARCH_EXPORT std::unique_ptr< RWMol > trimSampleMol(const ROMol &mol, size_t molNum)
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 void makeShapesFromMols(std::vector< std::unique_ptr< SampleMolRec > > &sampleMols, DGeomHelpers::EmbedParameters &dgParams, ShapeBuildParams &shapeBuildParams, std::unique_ptr< ProgressBar > &pbar)
RDKIT_SYNTHONSPACESEARCH_EXPORT bool checkTimeOut(const TimePoint *endTime)
RDKIT_SYNTHONSPACESEARCH_EXPORT int countConnections(const ROMol &mol)
RDKIT_SYNTHONSPACESEARCH_EXPORT boost::dynamic_bitset getConnectorPattern(const std::vector< std::shared_ptr< ROMol > > &fragSet)
RDKIT_SYNTHONSPACESEARCH_EXPORT std::vector< std::unique_ptr< RWMol > > generateIsomerConformers(const ROMol &mol, unsigned int numConformers, bool enumerateStereo, const EnumerateStereoisomers::StereoEnumerationOptions &enumOpts, DGeomHelpers::EmbedParameters &dgParams, UserConfGenerator &userConfGenerator, unsigned int maxStereoCenters=std::numeric_limits< unsigned int >::max())
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::map< std::string, std::vector< ROMol * > > mapFragsBySmiles(std::vector< std::vector< std::shared_ptr< ROMol > > > &fragSets, bool &cancelled)
RDKIT_SYNTHONSPACESEARCH_EXPORT std::unique_ptr< ROMol > buildConnRegion(const ROMol &mol)
RDKIT_SYNTHONSPACESEARCH_EXPORT bool hasUnspecifiedStereo(ROMol &mol)
RDKIT_SYNTHONSPACESEARCH_EXPORT std::vector< std::vector< std::shared_ptr< ROMol > > > splitMolecule(const ROMol &query, unsigned int maxNumFrags, const std::uint64_t maxNumFragSets, const TimePoint *endTime, const int numThreads, const FragSetUniquifyMode &uniquifyMode, bool &timedOut)
RDKIT_SYNTHONSPACESEARCH_EXPORT std::vector< std::vector< unsigned int > > combMFromN(unsigned int m, unsigned int n)
RDKIT_SYNTHONSPACESEARCH_EXPORT void pruneShapes(ShapeSet &shapeSet, double simThreshold)
RDKIT_SYNTHONSPACESEARCH_EXPORT std::unique_ptr< ROMol > buildProduct(const std::vector< const ROMol * > &synthons)
RDKIT_SYNTHONSPACESEARCH_EXPORT void sortAndUniquifyToTry(std::vector< std::pair< const SynthonSpaceHitSet *, std::vector< size_t > > > &toTry)
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)
RDKIT_SYNTHONSPACESEARCH_EXPORT std::vector< boost::dynamic_bitset<> > getConnectorPatterns(const std::vector< std::shared_ptr< ROMol > > &fragSet)
std::vector< std::unique_ptr< SynthonShapeInput > > ShapeSet
std::function< std::unique_ptr< RWMol >( const std::string &smiles, unsigned int numConformers)> UserConfGenerator
Parameter object for controlling embedding.
Stepper(const std::vector< size_t > &sizes)
std::vector< size_t > d_sizes
std::vector< size_t > d_currState