00001 // 00002 // Copyright (C) 2003-2008 Greg Landrum and Rational Discovery LLC 00003 // 00004 // @@ All Rights Reserved @@ 00005 // 00006 #ifndef _RD_FINGERPRINTS_H_ 00007 #define _RD_FINGERPRINTS_H_ 00008 00009 class ExplicitBitVect; 00010 namespace RDKit{ 00011 const std::string DaylightFingerprintMolVersion="2.0.0-deprecated"; 00012 class ROMol; 00013 //! \brief Generates a topological (Daylight like) fingerprint for a molecule 00014 /*! 00015 \deprecated NOTE: This function is deprecated. Please use RDKFingerprintMol() 00016 instead. 00017 00018 \param mol: the molecule to be fingerprinted 00019 \param minPath: the minimum path length (in bonds) to be included 00020 \param maxPath: the minimum path length (in bonds) to be included 00021 \param fpSize: the size of the fingerprint 00022 \param nBitsPerHash: the number of bits to be set by each path 00023 \param useHs: toggles inclusion of Hs in distinguishing paths from 00024 each other. 00025 \param tgtDensity: if the generated fingerprint is below this density, it will 00026 be folded until the density is reached. 00027 \param minSize: the minimum size to which the fingerprint will be 00028 folded 00029 00030 \return the molecular fingerprint, as an ExplicitBitVect 00031 00032 <b>Notes:</b> 00033 - the caller is responsible for <tt>delete</tt>ing the result 00034 00035 */ 00036 ExplicitBitVect *DaylightFingerprintMol(const ROMol &mol, 00037 unsigned int minPath=1,unsigned int maxPath=7, 00038 unsigned int fpSize=2048,unsigned int nBitsPerHash=4, 00039 bool useHs=true, 00040 double tgtDensity=0.0,unsigned int minSize=128); 00041 00042 //! \brief Generates a topological (Daylight like) fingerprint for a molecule 00043 //! using an alternate (faster) hashing algorithm 00044 /*! 00045 00046 \param mol: the molecule to be fingerprinted 00047 \param minPath: the minimum path length (in bonds) to be included 00048 \param maxPath: the minimum path length (in bonds) to be included 00049 \param fpSize: the size of the fingerprint 00050 \param nBitsPerHash: the number of bits to be set by each path 00051 \param useHs: toggles inclusion of Hs in distinguishing paths from 00052 each other. 00053 \param tgtDensity: if the generated fingerprint is below this density, it will 00054 be folded until the density is reached. 00055 \param minSize: the minimum size to which the fingerprint will be 00056 folded 00057 00058 \return the molecular fingerprint, as an ExplicitBitVect 00059 00060 <b>Notes:</b> 00061 - the caller is responsible for <tt>delete</tt>ing the result 00062 00063 */ 00064 const std::string RDKFingerprintMolVersion="1.0.0"; 00065 ExplicitBitVect *RDKFingerprintMol(const ROMol &mol, 00066 unsigned int minPath=1,unsigned int maxPath=7, 00067 unsigned int fpSize=2048,unsigned int nBitsPerHash=4, 00068 bool useHs=true, 00069 double tgtDensity=0.0,unsigned int minSize=128); 00070 00071 //! \brief Generates a topological (Daylight like) fingerprint for a molecule 00072 //! using an alternate (faster) hashing algorithm 00073 /*! 00074 00075 <b>Experimental:</b> This function is experimental. The API or results may change from 00076 release to release. 00077 00078 \param mol: the molecule to be fingerprinted 00079 \param layers: the layers to be included (see below) 00080 \param minPath: the minimum path length (in bonds) to be included 00081 \param maxPath: the minimum path length (in bonds) to be included 00082 \param fpSize: the size of the fingerprint 00083 \param tgtDensity: if the generated fingerprint is below this density, it will 00084 be folded until the density is reached. 00085 \param minSize: the minimum size to which the fingerprint will be 00086 folded 00087 00088 \return the molecular fingerprint, as an ExplicitBitVect 00089 00090 <b>Notes:</b> 00091 - the caller is responsible for <tt>delete</tt>ing the result 00092 00093 <b>Layer definitions:</b> 00094 - 0x01: pure topology 00095 - 0x02: bond order 00096 - 0x04: atom types 00097 - 0x08: presence of rings 00098 - 0x10: ring sizes 00099 */ 00100 const std::string LayeredFingerprintMolVersion="0.2.0"; 00101 ExplicitBitVect *LayeredFingerprintMol(const ROMol &mol, 00102 unsigned int layerFlags=0xFFFFFFFF, 00103 unsigned int minPath=1,unsigned int maxPath=7, 00104 unsigned int fpSize=2048, 00105 double tgtDensity=0.0,unsigned int minSize=128); 00106 } 00107 00108 #endif
1.5.6