12 #ifndef RD_MORGANGEN_H_2018_07
13 #define RD_MORGANGEN_H_2018_07
20 namespace MorganFingerprint {
29 const bool df_includeRingMembership;
40 std::vector<std::uint32_t> *getAtomInvariants(
const ROMol &mol)
const;
42 std::string infoString()
const;
53 std::vector<const ROMol *> *dp_patterns;
66 std::vector<std::uint32_t> *getAtomInvariants(
const ROMol &mol)
const;
68 std::string infoString()
const;
78 const bool df_useBondTypes;
79 const bool df_useChirality;
91 const bool useChirality =
false);
93 std::vector<std::uint32_t> *getBondInvariants(
const ROMol &mol)
const;
95 std::string infoString()
const;
104 template <
typename OutputType>
112 OutputType getResultSize()
const;
114 std::string infoString()
const;
131 MorganArguments(
const unsigned int radius,
const bool countSimulation =
false,
132 const bool includeChirality =
false,
133 const bool onlyNonzeroInvariants =
false,
134 const std::vector<std::uint32_t> countBounds = {1, 2, 4, 8},
135 const std::uint32_t fpSize = 2048);
143 template <
typename OutputType>
146 const OutputType d_code;
147 const unsigned int d_atomId;
148 const unsigned int d_layer;
152 const std::vector<std::uint32_t> *atomInvariants,
153 const std::vector<std::uint32_t> *bondInvariants,
155 const bool hashResults =
false)
const;
164 MorganAtomEnv(
const std::uint32_t code,
const unsigned int atomId,
165 const unsigned int layer);
172 template <
typename OutputType>
176 std::vector<AtomEnvironment<OutputType> *> getEnvironments(
178 const std::vector<std::uint32_t> *fromAtoms,
179 const std::vector<std::uint32_t> *ignoreAtoms,
const int confId,
181 const std::vector<std::uint32_t> *atomInvariants,
182 const std::vector<std::uint32_t> *bondInvariants,
183 const bool hashResults =
false)
const;
185 std::string infoString()
const;
227 template <
typename OutputType>
229 const unsigned int radius,
const bool countSimulation =
false,
230 const bool includeChirality =
false,
const bool useBondTypes =
true,
231 const bool onlyNonzeroInvariants =
false,
234 const std::uint32_t fpSize = 2048,
235 const std::vector<std::uint32_t> countBounds = {1, 2, 4, 8},
236 const bool ownsAtomInvGen =
false,
const bool ownsBondInvGen =
false);