 |
RDKit
Open-source cheminformatics and machine learning.
|
Go to the documentation of this file.
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);
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 {
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;
178 :
private boost::noncopyable {
189 const ROMol &mol)
const = 0;
208 :
private boost::noncopyable {
219 const ROMol &mol)
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;
301 :
public std::exception {
308 const char *
what() const noexcept
override{
return _msg.c_str(); };
309 const char *
message() const noexcept{
return what(); };
334 const std::vector<const ROMol *> molVector,
FPType fPType);
340 const std::vector<const ROMol *> molVector,
FPType fPType);
virtual std::string infoString() const =0
method that returns information string about the fingerprint specific argument set and the arguments ...
class that generates same fingerprint style for different output formats
const std::uint32_t d_fpSize
virtual ~FingerprintArguments()
UnimplementedFPException(const char *msg)
construct with an error message
std::map< std::uint32_t, std::vector< std::pair< std::uint32_t, std::uint32_t > > > * bitInfoMap
virtual std::string infoString() const =0
method that returns information about this /c AtomEnvironmentGenerator and its arguments if any
virtual 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 =0
calculates and returns the bit id to be set for this atom-environment
virtual ~AtomEnvironmentGenerator()
virtual std::vector< std::uint32_t > * getAtomInvariants(const ROMol &mol) const =0
get atom invariants from a molecule
virtual AtomInvariantsGenerator * clone() const =0
RDKIT_FINGERPRINTS_EXPORT std::vector< SparseBitVect * > * getSparseFPBulk(const std::vector< const ROMol * > molVector, FPType fPType)
RDKIT_FINGERPRINTS_EXPORT SparseBitVect * getSparseFP(const ROMol &mol, FPType fPType)
RDKIT_FINGERPRINTS_EXPORT SparseIntVect< std::uint64_t > * getSparseCountFP(const ROMol &mol, FPType fPType)
std::vector< std::vector< std::uint64_t > > * atomToBits
virtual BondInvariantsGenerator * clone() const =0
SparseIntVect< std::uint32_t > * getCountFingerprint(const ROMol &mol, const std::vector< std::uint32_t > *fromAtoms=nullptr, const std::vector< std::uint32_t > *ignoreAtoms=nullptr, const int confId=-1, const AdditionalOutput *additionalOutput=nullptr, const std::vector< std::uint32_t > *customAtomInvariants=nullptr, const std::vector< std::uint32_t > *customBondInvariants=nullptr) const
const char * what() const noexcept override
get the error message
virtual ~AtomEnvironment()
abstract base class for atom invariants generators
abstract base class for bond invariants generators
ExplicitBitVect * getFingerprint(const ROMol &mol, const std::vector< std::uint32_t > *fromAtoms=nullptr, const std::vector< std::uint32_t > *ignoreAtoms=nullptr, const int confId=-1, const AdditionalOutput *additionalOutput=nullptr, const std::vector< std::uint32_t > *customAtomInvariants=nullptr, const std::vector< std::uint32_t > *customBondInvariants=nullptr) const
FingerprintGenerator(AtomEnvironmentGenerator< OutputType > *atomEnvironmentGenerator, FingerprintArguments< OutputType > *fingerprintArguments, AtomInvariantsGenerator *atomInvariantsGenerator=nullptr, BondInvariantsGenerator *bondInvariantsGenerator=nullptr, bool ownsAtomInvGenerator=false, bool ownsBondInvGenerator=false)
std::pair< std::vector< std::vector< std::uint32_t > >, std::map< std::uint32_t, std::vector< std::vector< int > > > > * bitInfo
std::vector< unsigned int > * atomCounts
~UnimplementedFPException() noexcept
std::string commonArgumentsString() const
method that returns information string about common fingerprinting arguments' values
RDKIT_FINGERPRINTS_EXPORT std::vector< SparseIntVect< std::uint32_t > * > * getCountFPBulk(const std::vector< const ROMol * > molVector, FPType fPType)
FingerprintArguments(bool countSimulation, const std::vector< std::uint32_t > countBounds, std::uint32_t fpSize, std::uint32_t numBitsPerFeature=1)
abstract base class that holds atom-environments that will be hashed to generate the fingerprint
RDKIT_FINGERPRINTS_EXPORT std::vector< ExplicitBitVect * > * getFPBulk(const std::vector< const ROMol * > molVector, FPType fPType)
abstract base class that generates atom-environments from a molecule
RDKIT_FINGERPRINTS_EXPORT ExplicitBitVect * getFP(const ROMol &mol, FPType fPType)
UnimplementedFPException(const std::string &msg)
construct with an error message
virtual std::string infoString() const =0
method that returns information about this /c AtomInvariantsGenerator and its arguments
const std::uint32_t d_numBitsPerFeature
a class for bit vectors that are sparsely occupied.
virtual std::vector< AtomEnvironment< OutputType > * > getEnvironments(const ROMol &mol, FingerprintArguments< OutputType > *arguments, const std::vector< std::uint32_t > *fromAtoms=nullptr, const std::vector< std::uint32_t > *ignoreAtoms=nullptr, const int confId=-1, const AdditionalOutput *additionalOutput=nullptr, const std::vector< std::uint32_t > *atomInvariants=nullptr, const std::vector< std::uint32_t > *bondInvariants=nullptr, const bool hashResults=false) const =0
generate and return all atom-envorinments from a molecule
used to indicate errors for unimplemented fp types in convenience functions
#define RDKIT_FINGERPRINTS_EXPORT
virtual ~BondInvariantsGenerator()
virtual std::string infoString() const =0
method that returns information about this /c BondInvariantsGenerator and its arguments
RDKIT_FINGERPRINTS_EXPORT SparseIntVect< std::uint32_t > * getCountFP(const ROMol &mol, FPType fPType)
SparseBitVect * getSparseFingerprint(const ROMol &mol, const std::vector< std::uint32_t > *fromAtoms=nullptr, const std::vector< std::uint32_t > *ignoreAtoms=nullptr, const int confId=-1, const AdditionalOutput *additionalOutput=nullptr, const std::vector< std::uint32_t > *customAtomInvariants=nullptr, const std::vector< std::uint32_t > *customBondInvariants=nullptr) const
const std::vector< std::uint32_t > d_countBounds
const char * message() const noexcept
std::string infoString() const
a class for efficiently storing sparse vectors of ints
virtual ~AtomInvariantsGenerator()
SparseIntVect< OutputType > * getSparseCountFingerprint(const ROMol &mol, const std::vector< std::uint32_t > *fromAtoms=nullptr, const std::vector< std::uint32_t > *ignoreAtoms=nullptr, const int confId=-1, const AdditionalOutput *additionalOutput=nullptr, const std::vector< std::uint32_t > *customAtomInvariants=nullptr, const std::vector< std::uint32_t > *customBondInvariants=nullptr) const
Abstract base class that holds molecule independent arguments that are common amongst all fingerprint...
const bool d_countSimulation
RDKIT_FINGERPRINTS_EXPORT std::vector< SparseIntVect< std::uint64_t > * > * getSparseCountFPBulk(const std::vector< const ROMol * > molVector, FPType fPType)
a class for bit vectors that are densely occupied
virtual OutputType getResultSize() const =0
Returns the size of the fingerprint based on arguments.
virtual std::vector< std::uint32_t > * getBondInvariants(const ROMol &mol) const =0
get bond invariants from a molecule