11#ifndef RDKIT_SYNTHONSET_H
12#define RDKIT_SYNTHONSET_H
18#include <boost/dynamic_bitset.hpp>
28namespace SynthonSpaceSearch {
39 const std::string &
getId()
const {
return d_id; }
40 const std::vector<std::vector<std::unique_ptr<Synthon>>> &
getSynthons()
44 const boost::dynamic_bitset<> &
getConnectors()
const {
return d_connectors; }
47 return d_synthConnPatts;
54 const std::vector<std::vector<std::unique_ptr<ExplicitBitVect>>> &
64 void addSynthon(
int synthonSetNum, std::unique_ptr<Synthon> newSynthon);
94 const std::vector<boost::dynamic_bitset<>> &reqSynths)
const;
98 const std::vector<size_t> &synthNums)
const;
104 std::vector<std::vector<std::unique_ptr<Synthon>>> d_synthons;
107 boost::dynamic_bitset<> d_connectors;
109 std::vector<boost::dynamic_bitset<>> d_synthConnPatts;
117 std::vector<std::shared_ptr<ROMol>> d_connectorRegions;
120 std::unique_ptr<ExplicitBitVect> d_connRegFP;
122 std::vector<int> d_numConnectors;
127 std::vector<std::vector<std::unique_ptr<ExplicitBitVect>>> d_synthonFPs;
131 void tagSynthonAtomsAndBonds()
const;
class that generates same fingerprint style for different output formats
void assignConnectorsUsed()
bool hasFingerprints() const
const std::vector< std::vector< std::unique_ptr< Synthon > > > & getSynthons() const
SynthonSet(SynthonSet &&rhs)=delete
void enumerateToStream(std::ostream &os) const
const std::unique_ptr< ExplicitBitVect > & getConnRegFP() const
void readFromDBStream(std::istream &is, std::uint32_t version)
const std::vector< std::vector< std::unique_ptr< ExplicitBitVect > > > & getSynthonFPs() const
std::unique_ptr< ROMol > buildProduct(const std::vector< size_t > &synthNums) const
void writeToDBStream(std::ostream &os) const
void addSynthon(int synthonSetNum, std::unique_ptr< Synthon > newSynthon)
void buildSynthonFingerprints(const FingerprintGenerator< std::uint64_t > &fpGen)
const std::vector< std::shared_ptr< ROMol > > & getConnectorRegions() const
SynthonSet(const std::string &id)
std::string buildProductName(const std::vector< size_t > &synthNums) const
void transferProductBondsToSynthons()
const std::vector< int > & getNumConnectors() const
std::vector< std::vector< ROMol * > > getSynthons(const std::vector< boost::dynamic_bitset<> > &reqSynths) const
void buildConnectorRegions()
const std::vector< boost::dynamic_bitset<> > & getSynthonConnectorPatterns() const
const boost::dynamic_bitset & getConnectors() const
SynthonSet(const SynthonSet &rhs)=delete
const std::string & getId() const
void removeEmptySynthonSets()
#define RDKIT_SYNTHONSPACESEARCH_EXPORT