1 /*==============================================*/
2 /* Copyright (C)  2019       NextMove Software  */
3 /* All rights reserved.                         */
4 /*                                              */
5 /* This file is part of molhash.                */
6 /*                                              */
7 /* The contents are covered by the terms of the */
8 /* BSD license, which is included in the file   */
9 /* license.txt.                                 */
10 /*==============================================*/
11 
12 // This file will disappear in a future release; please don't include it
13 // directly. Use MolHash.h instead.
14 
15 #include <RDGeneral/export.h>
16 #ifndef NMS_MOLHASH_H
17 #define NMS_MOLHASH_H
18 
19 #include <string>
20 #include <vector>
21 
22 namespace RDKit {
23 class RWMol;
24 namespace MolHash {
25 enum class RDKIT_MOLHASH_EXPORT HashFunction {
26   AnonymousGraph = 1,
27   ElementGraph = 2,
28   CanonicalSmiles = 3,
29   MurckoScaffold = 4,
30   ExtendedMurcko = 5,
31   MolFormula = 6,
32   AtomBondCounts = 7,
33   DegreeVector = 8,
34   Mesomer = 9,
35   HetAtomTautomer = 10,
36   HetAtomProtomer = 11,
37   RedoxPair = 12,
38   Regioisomer = 13,
39   NetCharge = 14,
40   SmallWorldIndexBR = 15,
41   SmallWorldIndexBRL = 16,
42   ArthorSubstructureOrder = 17
43 };
44 
45 RDKIT_MOLHASH_EXPORT std::string MolHash(RWMol *mol, HashFunction func);
46 
47 enum class RDKIT_MOLHASH_EXPORT StripType {
48   AtomStereo = 1,
49   BondStereo = 2,
50   Isotope = 4,
51   AtomMap = 8,
52   Hydrogen = 16
53 };
54 
55 RDKIT_MOLHASH_EXPORT void Strip(RWMol *mol, unsigned int striptype);
56 RDKIT_MOLHASH_EXPORT void SplitMolecule(RWMol *mol, std::vector<RWMol *> &molv);
57 }  // namespace MolHash
58 }  // namespace RDKit
59 #endif  // NMS_MOLHASH_H
60