12 #ifndef RD_FINGERPRINTGEN_H_2018_05
13 #define RD_FINGERPRINTGEN_H_2018_05
28 std::map<std::uint32_t, std::vector<std::pair<std::uint32_t, std::uint32_t>>>
33 std::pair<std::vector<std::vector<std::uint32_t>>,
34 std::map<std::uint32_t, std::vector<std::vector<int>>>> *
bitInfo;
51 template <
typename OutputType>
53 :
private boost::noncopyable {
56 const std::vector<std::uint32_t> countBounds,
58 std::uint32_t numBitsPerFeature = 1);
69 virtual OutputType getResultSize()
const = 0;
77 virtual std::string infoString()
const = 0;
85 std::string commonArgumentsString()
const;
95 template <
typename OutputType>
110 const std::vector<std::uint32_t> *atomInvariants,
111 const std::vector<std::uint32_t> *bondInvariants,
113 const bool hashResults =
false)
const = 0;
122 template <
typename OutputType>
124 :
private boost::noncopyable {
153 virtual std::vector<AtomEnvironment<OutputType> *> getEnvironments(
155 const std::vector<std::uint32_t> *fromAtoms =
nullptr,
156 const std::vector<std::uint32_t> *ignoreAtoms =
nullptr,
158 const std::vector<std::uint32_t> *atomInvariants =
nullptr,
159 const std::vector<std::uint32_t> *bondInvariants =
nullptr,
160 const bool hashResults =
false)
const = 0;
168 virtual std::string infoString()
const = 0;
178 :
private boost::noncopyable {
188 virtual std::vector<std::uint32_t> *getAtomInvariants(
189 const ROMol &mol)
const = 0;
197 virtual std::string infoString()
const = 0;
208 :
private boost::noncopyable {
218 virtual std::vector<std::uint32_t> *getBondInvariants(
219 const ROMol &mol)
const = 0;
227 virtual std::string infoString()
const = 0;
238 template <
typename OutputType>
240 :
private boost::noncopyable {
245 const bool df_ownsAtomInvGenerator;
246 const bool df_ownsBondInvGenerator;
249 const ROMol &mol,
const std::vector<std::uint32_t> *fromAtoms =
nullptr,
250 const std::vector<std::uint32_t> *ignoreAtoms =
nullptr,
252 const std::vector<std::uint32_t> *customAtomInvariants =
nullptr,
253 const std::vector<std::uint32_t> *customBondInvariants =
nullptr,
254 const std::uint64_t fpSize = 0)
const;
262 bool ownsAtomInvGenerator =
false,
bool ownsBondInvGenerator =
false);
267 const ROMol &mol,
const std::vector<std::uint32_t> *fromAtoms =
nullptr,
268 const std::vector<std::uint32_t> *ignoreAtoms =
nullptr,
270 const std::vector<std::uint32_t> *customAtomInvariants =
nullptr,
271 const std::vector<std::uint32_t> *customBondInvariants =
nullptr)
const;
274 const ROMol &mol,
const std::vector<std::uint32_t> *fromAtoms =
nullptr,
275 const std::vector<std::uint32_t> *ignoreAtoms =
nullptr,
277 const std::vector<std::uint32_t> *customAtomInvariants =
nullptr,
278 const std::vector<std::uint32_t> *customBondInvariants =
nullptr)
const;
281 const ROMol &mol,
const std::vector<std::uint32_t> *fromAtoms =
nullptr,
282 const std::vector<std::uint32_t> *ignoreAtoms =
nullptr,
284 const std::vector<std::uint32_t> *customAtomInvariants =
nullptr,
285 const std::vector<std::uint32_t> *customBondInvariants =
nullptr)
const;
288 const ROMol &mol,
const std::vector<std::uint32_t> *fromAtoms =
nullptr,
289 const std::vector<std::uint32_t> *ignoreAtoms =
nullptr,
291 const std::vector<std::uint32_t> *customAtomInvariants =
nullptr,
292 const std::vector<std::uint32_t> *customBondInvariants =
nullptr)
const;
294 std::string infoString()
const;
301 :
public std::exception {
308 const char *
message()
const {
return _msg.c_str(); };
318 const ROMol &mol,
FPType fPType);
324 const ROMol &mol,
FPType fPType);
333 const std::vector<const ROMol *> molVector,
FPType fPType);
339 const std::vector<const ROMol *> molVector,
FPType fPType);