17#ifndef RDKIT_SYNTHONSPACE_H
18#define RDKIT_SYNTHONSPACE_H
35#include <boost/dynamic_bitset.hpp>
89 std::shared_ptr<SynthonSet>
getReaction(std::string reactionName);
182 std::uint64_t finishLine = std::numeric_limits<std::uint64_t>::max());
204 std::uint64_t finishLine = std::numeric_limits<std::uint64_t>::max());
260 std::uint64_t finishLine = std::numeric_limits<std::uint64_t>::max());
329 std::uint64_t finishLine = std::numeric_limits<std::uint64_t>::max());
379 std::uint64_t startLine,
380 std::uint64_t finishLine = std::numeric_limits<std::uint64_t>::max());
434 void readDBFile(
const std::string &inFilename,
int numThreads = 1);
460 unsigned int progressBarWidth = 0);
491 const std::string &reactionName);
497 std::string d_fileName;
500 std::vector<std::pair<std::string, std::shared_ptr<SynthonSet>>> d_reactions;
505 unsigned int d_maxNumSynthons{0};
506 std::uint64_t d_numProducts{0};
510 std::int32_t d_fileMajorVersion{-1};
516 std::vector<std::pair<std::string, std::unique_ptr<Synthon>>> d_synthonPool;
520 std::unordered_map<std::string, std::vector<SynthonSet *>> d_synthonReactions;
524 std::string d_fpType;
528 unsigned int d_numConformers{0};
531 bool d_hasRingFormer{
false};
533 SearchResults extendedSearch(
const MolBundle &query,
534 const SubstructMatchParameters &matchParams,
535 const SynthonSpaceSearchParams ¶ms);
536 SearchResults extendedSearch(
537 const GeneralizedSubstruct::ExtendedQueryMol::TautomerBundle_T &query,
538 const SubstructMatchParameters &matchParams,
539 const SynthonSpaceSearchParams ¶ms);
540 SearchResults extendedSearch(
const TautomerQuery &query,
541 const SubstructMatchParameters &matchParams,
542 const SynthonSpaceSearchParams ¶ms);
543 SearchResults extendedSearch(
const MolBundle &query,
544 const SubstructMatchParameters &matchParams,
545 const SynthonSpaceSearchParams ¶ms,
546 std::uint64_t startLine,
547 std::uint64_t finishLine);
548 SearchResults extendedSearch(
549 const GeneralizedSubstruct::ExtendedQueryMol::TautomerBundle_T &query,
550 const SubstructMatchParameters &matchParams,
551 const SynthonSpaceSearchParams ¶ms, std::uint64_t startLine,
552 std::uint64_t finishLine);
553 SearchResults extendedSearch(
const TautomerQuery &query,
554 const SubstructMatchParameters &matchParams,
555 const SynthonSpaceSearchParams ¶ms,
556 std::uint64_t startLine,
557 std::uint64_t finishLine);
561 void fillSynthonReactions();
570 void buildSynthonSampleMolecules(
571 unsigned int maxSynthonAtoms,
572 std::vector<std::vector<std::unique_ptr<SampleMolRec>>> &sampleMols)
588 const std::string &inFilename,
const std::string &outFilename,
class that generates same fingerprint style for different output formats
std::string getSynthonFingerprintType() const
void fingerprintSearch(const ROMol &query, const FingerprintGenerator< std::uint64_t > &fpGen, const SearchResultCallback &callback, const SynthonSpaceSearchParams ¶ms=SynthonSpaceSearchParams())
bool getHasRingFormer() const
friend class SynthonSpaceSearcher
void readTextFile(const std::string &inFilename, bool &cancelled)
bool hasAddAndSubstractFingerprints() const
std::uint64_t getNumSynthonsWithShapes() const
SearchResults substructureSearch(const GeneralizedSubstruct::ExtendedQueryMol &query, const SubstructMatchParameters &matchParams=SubstructMatchParameters(), const SynthonSpaceSearchParams ¶ms=SynthonSpaceSearchParams())
void shapeSearch(const ROMol &query, const SearchResultCallback &callback, const SynthonSpaceSearchParams ¶ms=SynthonSpaceSearchParams())
std::string getInputFileName() const
friend class SynthonSpaceRascalSearcher
unsigned int getMaxNumSynthons() const
friend class SynthonSpaceSubstructureSearcher
SearchResults substructureSearch(const ROMol &query, const SubstructMatchParameters &matchParams, const SynthonSpaceSearchParams ¶ms, std::uint64_t startLine, std::uint64_t finishLine=std::numeric_limits< std::uint64_t >::max())
SearchResults rascalSearch(const ROMol &query, const RascalMCES::RascalOptions &rascalOptions, const SynthonSpaceSearchParams ¶ms=SynthonSpaceSearchParams())
void buildSynthonShapes(bool &cancelled, ShapeBuildParams &shapeBuildParams)
SearchResults shapeSearch(const ROMol &query, const SynthonSpaceSearchParams ¶ms=SynthonSpaceSearchParams())
Synthon * addSynthonToPool(const std::string &smiles)
SearchResults fingerprintSearch(const ROMol &query, const FingerprintGenerator< std::uint64_t > &fpGen, const SynthonSpaceSearchParams ¶ms, std::uint64_t startLine, std::uint64_t finishLine=std::numeric_limits< std::uint64_t >::max())
SynthonSpace & operator=(const SynthonSpace &other)=delete
SearchResults rascalSearch(const ROMol &query, const RascalMCES::RascalOptions &rascalOptions, const SynthonSpaceSearchParams ¶ms, std::uint64_t startLine, std::uint64_t finishLine=std::numeric_limits< std::uint64_t >::max())
void summarise(std::ostream &os)
SynthonSpace(const SynthonSpace &other)=delete
bool hasFingerprints() const
void writeEnumeratedFile(const std::string &outFilename) const
void reportSynthonUsage(std::ostream &os) const
SearchResults substructureSearch(const GeneralizedSubstruct::ExtendedQueryMol &query, const SubstructMatchParameters &matchParams, const SynthonSpaceSearchParams ¶ms, std::uint64_t startLine, std::uint64_t finishLine=std::numeric_limits< std::uint64_t >::max())
std::uint64_t getNumProducts() const
void writeDBFile(const std::string &outFilename) const
std::shared_ptr< SynthonSet > getReaction(std::string reactionName)
unsigned int getNumConformers() const
void substructureSearch(const ROMol &query, const SearchResultCallback &callback, const SubstructMatchParameters &matchParams=SubstructMatchParameters(), const SynthonSpaceSearchParams ¶ms=SynthonSpaceSearchParams())
size_t getNumReactions() const
void enumerateToStream(std::ostream &os) const
size_t getNumSynthons() const
SearchResults fingerprintSearch(const ROMol &query, const FingerprintGenerator< std::uint64_t > &fpGen, const SynthonSpaceSearchParams ¶ms=SynthonSpaceSearchParams())
std::shared_ptr< SynthonSet > addReactionToPool(const std::string &reactionName)
void rascalSearch(const ROMol &query, const RascalMCES::RascalOptions &rascalOptions, const SearchResultCallback &callback, const SynthonSpaceSearchParams ¶ms=SynthonSpaceSearchParams())
unsigned int getFPSize() const
void buildSynthonFingerprints(const FingerprintGenerator< std::uint64_t > &fpGen, unsigned int progressBarWidth=0)
unsigned int getMaxNumConnectors() const
void readDBFile(const std::string &inFilename, int numThreads=1)
SearchResults substructureSearch(const ROMol &query, const SubstructMatchParameters &matchParams=SubstructMatchParameters(), const SynthonSpaceSearchParams ¶ms=SynthonSpaceSearchParams())
Synthon * getSynthonFromPool(const std::string &smiles) const
std::vector< std::string > getReactionNames() const
friend class SynthonSpaceFingerprintSearcher
friend class SynthonSpaceShapeSearcher
SearchResults shapeSearch(const ROMol &query, const SynthonSpaceSearchParams ¶ms, std::uint64_t startLine, std::uint64_t finishLine=std::numeric_limits< std::uint64_t >::max())
void readStream(std::istream &is, bool &cancelled)
unsigned int getPatternFPSize() const
#define RDKIT_SYNTHONSPACESEARCH_EXPORT
std::function< bool(std::vector< std::unique_ptr< ROMol > > &)> SearchResultCallback
RDKIT_SYNTHONSPACESEARCH_EXPORT std::string formattedIntegerString(std::int64_t value)
RDKIT_SYNTHONSPACESEARCH_EXPORT void convertTextToDBFile(const std::string &inFilename, const std::string &outFilename, bool &cancelled, const FingerprintGenerator< std::uint64_t > *fpGen=nullptr, ShapeBuildParams *shapeParams=nullptr)