RDKit
Open-source cheminformatics and machine learning.
MolStandardize/Tautomer.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2018 Susan H. Leung
3 //
4 // @@ All Rights Reserved @@
5 // This file is part of the RDKit.
6 // The contents are covered by the terms of the BSD license
7 // which is included in the file license.txt, found at the root
8 // of the RDKit source tree.
9 //
10 #include <RDGeneral/export.h>
11 #ifndef __RD_TAUTOMER_H__
12 #define __RD_TAUTOMER_H__
13 
14 #include <string>
15 #include <Catalogs/Catalog.h>
18 
19 namespace RDKit {
20 class ROMol;
21 class RWMol;
22 
23 namespace MolStandardize {
24 
25 typedef RDCatalog::HierarchCatalog<TautomerCatalogEntry, TautomerCatalogParams,
26  int>
28 
30  public:
31  // TautomerCanonicalizer(unsigned int max_tautomers)
32  // : MAX_TAUTOMERS(max_tautomers) {};
33  // TautomerCanonicalizer(const TautomerCanonicalizer &other) {
34  // MAX_TAUTOMERS = other.MAX_TAUTOMERS;
35  // };
36  // ~TautomerCanonicalizer() {};
37 
38  ROMol *canonicalize(const ROMol &mol, TautomerCatalog *tautcat);
39 
40  // private:
41  // unsigned int MAX_TAUTOMERS;
42 }; // TautomerCanonicalizer class
43 
45  public:
46  std::vector<ROMOL_SPTR> enumerate(const ROMol &mol, TautomerCatalog *tautcat);
47 
48  // struct Tautomer {
49  // std::string Smiles;
50  // boost::shared_ptr<ROMol> Mol;
51  // Tautomer(std::string smiles, boost::shared_ptr<ROMol>
52  // mol) : Smiles(smiles), Mol(mol) {}
53  //
54  // // sorting products alphabetically by SMILES
55  // bool operator < (const Tautomer &tautomer) const {
56  // return (Smiles < tautomer.Smiles);
57  // }
58  //
59  // };
60 
61  // TautomerEnumerator(unsigned int max_tautomers)
62  // : MAX_TAUTOMERS(max_tautomers) {};
63  // TautomerEnumerator(const TautomerEnumerator &other) {
64  // MAX_TAUTOMERS = other.MAX_TAUTOMERS;
65  // };
66  // ~TautomerEnumerator() {};
67  // private:
68  // unsigned int MAX_TAUTOMERS;
69 }; // TautomerEnumerator class
70 
71 std::vector<std::pair<unsigned int, unsigned int>> pairwise(
72  const std::vector<int> vect);
73 } // namespace MolStandardize
74 } // namespace RDKit
75 
76 #endif
RDCatalog::HierarchCatalog< TautomerCatalogEntry, TautomerCatalogParams, int > TautomerCatalog
A Catalog with a hierarchical structure.
Definition: Catalog.h:135
Std stuff.
Definition: Atom.h:30
std::vector< std::pair< unsigned int, unsigned int > > pairwise(const std::vector< int > vect)
#define RDKIT_MOLSTANDARDIZE_EXPORT
Definition: export.h:424