12 #ifndef RD_MORGANGEN_H_2018_07
13 #define RD_MORGANGEN_H_2018_07
20 namespace MorganFingerprint {
29 const bool df_includeRingMembership;
41 const ROMol &mol)
const override;
54 std::vector<const ROMol *> *dp_patterns;
68 const ROMol &mol)
const override;
80 const bool df_useBondTypes;
81 const bool df_useChirality;
93 const bool useChirality =
false);
96 const ROMol &mol)
const override;
107 template <
typename OutputType>
135 const bool includeChirality =
false,
136 const bool onlyNonzeroInvariants =
false,
137 const std::vector<std::uint32_t> countBounds = {1, 2, 4, 8},
138 const std::uint32_t fpSize = 2048);
146 template <
typename OutputType>
149 const OutputType d_code;
150 const unsigned int d_atomId;
151 const unsigned int d_layer;
155 const std::vector<std::uint32_t> *atomInvariants,
156 const std::vector<std::uint32_t> *bondInvariants,
158 const bool hashResults =
false,
159 const std::uint64_t fpSize = 0)
const override;
169 const unsigned int layer);
176 template <
typename OutputType>
182 const std::vector<std::uint32_t> *fromAtoms,
183 const std::vector<std::uint32_t> *ignoreAtoms,
const int confId,
185 const std::vector<std::uint32_t> *atomInvariants,
186 const std::vector<std::uint32_t> *bondInvariants,
187 const bool hashResults =
false)
const override;
237 template <
typename OutputType>
239 const unsigned int radius,
const bool countSimulation =
false,
240 const bool includeChirality =
false,
const bool useBondTypes =
true,
241 const bool onlyNonzeroInvariants =
false,
244 const std::uint32_t fpSize = 2048,
245 const std::vector<std::uint32_t> countBounds = {1, 2, 4, 8},
246 const bool ownsAtomInvGen =
false,
const bool ownsBondInvGen =
false);
abstract base class that generates atom-environments from a molecule
abstract base class that holds atom-environments that will be hashed to generate the fingerprint
abstract base class for atom invariants generators
abstract base class for bond invariants generators
Abstract base class that holds molecule independent arguments that are common amongst all fingerprint...
class that generates same fingerprint style for different output formats
Class for holding Morgan fingerprint specific arguments.
const bool df_onlyNonzeroInvariants
const unsigned int d_radius
std::string infoString() const override
method that returns information string about the fingerprint specific argument set and the arguments ...
MorganArguments(const unsigned int radius, const bool countSimulation=false, const bool includeChirality=false, const bool onlyNonzeroInvariants=false, const std::vector< std::uint32_t > countBounds={1, 2, 4, 8}, const std::uint32_t fpSize=2048)
Construct a new MorganArguments object.
OutputType getResultSize() const override
Returns the size of the fingerprint based on arguments.
const bool df_includeChirality
Class for holding the bit-id created from Morgan fingerprint environments and the additional data nec...
MorganAtomEnv(const std::uint32_t code, const unsigned int atomId, const unsigned int layer)
Construct a new MorganAtomEnv object.
OutputType getBitId(FingerprintArguments< OutputType > *arguments, const std::vector< std::uint32_t > *atomInvariants, const std::vector< std::uint32_t > *bondInvariants, const AdditionalOutput *additionalOutput, const bool hashResults=false, const std::uint64_t fpSize=0) const override
calculates and returns the bit id to be set for this atom-environment
Default atom invariants generator for Morgan fingerprint, generates ECFP-type invariants.
MorganAtomInvGenerator(const bool includeRingMembership=true)
Construct a new MorganAtomInvGenerator object.
std::vector< std::uint32_t > * getAtomInvariants(const ROMol &mol) const override
get atom invariants from a molecule
std::string infoString() const override
method that returns information about this /c AtomInvariantsGenerator and its arguments
MorganAtomInvGenerator * clone() const override
Bond invariants generator for Morgan fingerprint.
std::string infoString() const override
method that returns information about this /c BondInvariantsGenerator and its arguments
MorganBondInvGenerator * clone() const override
MorganBondInvGenerator(const bool useBondTypes=true, const bool useChirality=false)
Construct a new MorganBondInvGenerator object.
~MorganBondInvGenerator() override=default
std::vector< std::uint32_t > * getBondInvariants(const ROMol &mol) const override
get bond invariants from a molecule
Class that generates atom environments for Morgan fingerprint.
std::vector< AtomEnvironment< OutputType > * > getEnvironments(const ROMol &mol, FingerprintArguments< OutputType > *arguments, const std::vector< std::uint32_t > *fromAtoms, const std::vector< std::uint32_t > *ignoreAtoms, const int confId, const AdditionalOutput *additionalOutput, const std::vector< std::uint32_t > *atomInvariants, const std::vector< std::uint32_t > *bondInvariants, const bool hashResults=false) const override
generate and return all atom-envorinments from a molecule
std::string infoString() const override
method that returns information about this /c AtomEnvironmentGenerator and its arguments if any
Alternative atom invariants generator for Morgan fingerprint, generate FCFP-type invariants.
MorganFeatureAtomInvGenerator * clone() const override
MorganFeatureAtomInvGenerator(std::vector< const ROMol * > *patterns=nullptr)
Construct a new MorganFeatureAtomInvGenerator object.
std::string infoString() const override
method that returns information about this /c AtomInvariantsGenerator and its arguments
std::vector< std::uint32_t > * getAtomInvariants(const ROMol &mol) const override
get atom invariants from a molecule
#define RDKIT_FINGERPRINTS_EXPORT
RDKIT_FINGERPRINTS_EXPORT FingerprintGenerator< OutputType > * getMorganGenerator(const unsigned int radius, const bool countSimulation=false, const bool includeChirality=false, const bool useBondTypes=true, const bool onlyNonzeroInvariants=false, AtomInvariantsGenerator *atomInvariantsGenerator=nullptr, BondInvariantsGenerator *bondInvariantsGenerator=nullptr, const std::uint32_t fpSize=2048, const std::vector< std::uint32_t > countBounds={1, 2, 4, 8}, const bool ownsAtomInvGen=false, const bool ownsBondInvGen=false)
Get a fingerprint generator for Morgan fingerprint.