RDKit
Open-source cheminformatics and machine learning.
ConnectivityDescriptors.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2012 Greg Landrum
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 
11 /*! \file ConnectivityDescriptors.h
12 
13  \brief Use MolDescriptors.h in client code.
14 
15 */
16 #ifndef __RD_CONNECTIVITYDESCRIPTORS_H__
17 #define __RD_CONNECTIVITYDESCRIPTORS_H__
18 
19 #include <string>
20 #include <vector>
21 #include <boost/smart_ptr.hpp>
22 
23 namespace RDKit {
24  class ROMol;
25  namespace Descriptors {
26 
27  //! From equations (5),(9) and (10) of Rev. Comp. Chem. vol 2, 367-422, (1991)
28  /*!
29  \param mol the molecule of interest
30  \param force forces the value to be recalculated instead
31  of pulled from the cache
32  */
33  double calcChi0v(const ROMol &mol,bool force=false);
34  const std::string chi0vVersion="1.2.0";
35  //! From equations (5),(9) and (10) of Rev. Comp. Chem. vol 2, 367-422, (1991)
36  /*!
37  \param mol the molecule of interest
38  \param force forces the value to be recalculated instead
39  of pulled from the cache
40  */
41  double calcChi1v(const ROMol &mol,bool force=false);
42  const std::string chi1vVersion="1.2.0";
43  //! From equations (5),(9) and (10) of Rev. Comp. Chem. vol 2, 367-422, (1991)
44  /*!
45  \param mol the molecule of interest
46  \param force forces the value to be recalculated instead
47  of pulled from the cache
48  */
49  double calcChi2v(const ROMol &mol,bool force=false);
50  const std::string chi2vVersion="1.2.0";
51  //! From equations (5),(9) and (10) of Rev. Comp. Chem. vol 2, 367-422, (1991)
52  /*!
53  \param mol the molecule of interest
54  \param force forces the value to be recalculated instead
55  of pulled from the cache
56  */
57  double calcChi3v(const ROMol &mol,bool force=false);
58  const std::string chi3vVersion="1.2.0";
59  //! From equations (5),(9) and (10) of Rev. Comp. Chem. vol 2, 367-422, (1991)
60  /*!
61  \param mol the molecule of interest
62  \param force forces the value to be recalculated instead
63  of pulled from the cache
64  */
65  double calcChi4v(const ROMol &mol,bool force=false);
66  const std::string chi4vVersion="1.2.0";
67  //! From equations (5),(9) and (10) of Rev. Comp. Chem. vol 2, 367-422, (1991)
68  /*!
69  \param mol the molecule of interest
70  \param n the order of the connectivity index
71  \param force forces the value to be recalculated instead
72  of pulled from the cache
73  */
74  double calcChiNv(const ROMol &mol,unsigned int n,bool force=false);
75  const std::string chiNvVersion="1.2.0";
76 
77  //! Similar to Hall Kier ChiXv, but uses nVal instead of valence
78  //! This makes a big difference after we get out of the first row.
79  /*!
80  \param mol the molecule of interest
81  \param force forces the value to be recalculated instead
82  of pulled from the cache
83  */
84  double calcChi0n(const ROMol &mol,bool force=false);
85  const std::string chi0nVersion="1.2.0";
86  //! Similar to Hall Kier ChiXv, but uses nVal instead of valence
87  //! This makes a big difference after we get out of the first row.
88  /*!
89  \param mol the molecule of interest
90  \param force forces the value to be recalculated instead
91  of pulled from the cache
92  */
93  double calcChi1n(const ROMol &mol,bool force=false);
94  const std::string chi1nVersion="1.2.0";
95  //! Similar to Hall Kier ChiXv, but uses nVal instead of valence
96  //! This makes a big difference after we get out of the first row.
97  /*!
98  \param mol the molecule of interest
99  \param force forces the value to be recalculated instead
100  of pulled from the cache
101  */
102  double calcChi2n(const ROMol &mol,bool force=false);
103  const std::string chi2nVersion="1.2.0";
104  //! Similar to Hall Kier ChiXv, but uses nVal instead of valence
105  //! This makes a big difference after we get out of the first row.
106  /*!
107  \param mol the molecule of interest
108  \param force forces the value to be recalculated instead
109  of pulled from the cache
110  */
111  double calcChi3n(const ROMol &mol,bool force=false);
112  const std::string chi3nVersion="1.2.0";
113  //! Similar to Hall Kier ChiXv, but uses nVal instead of valence
114  //! This makes a big difference after we get out of the first row.
115  /*!
116  \param mol the molecule of interest
117  \param force forces the value to be recalculated instead
118  of pulled from the cache
119  */
120  double calcChi4n(const ROMol &mol,bool force=false);
121  const std::string chi4nVersion="1.2.0";
122  //! Similar to Hall Kier ChiXv, but uses nVal instead of valence
123  //! This makes a big difference after we get out of the first row.
124  /*!
125  \param mol the molecule of interest
126  \param n the order of the connectivity index
127  \param force forces the value to be recalculated instead
128  of pulled from the cache
129  */
130  double calcChiNn(const ROMol &mol,unsigned int n,bool force=false);
131  const std::string chiNnVersion="1.2.0";
132 
133  //! calculate the Hall-Kier alpha value for a molecule
134  //! From equation (58) of Rev. Comp. Chem. vol 2, 367-422, (1991)
135  /*!
136  \param mol the molecule of interest
137  \param atomContribs if provided, this will be used to return the contributions
138  of the individual atoms to the value. These do not
139  neccessarily sum to the full value.
140  Note: this can be a time-consuming calculation.
141  */
142  double calcHallKierAlpha(const ROMol &mol,std::vector<double> *atomContribs=0);
143  const std::string hallKierAlphaVersion="1.2.0";
144 
145  //! calculate the Hall-Kier kappa1 value for a molecule
146  //! From equations (58) and (59) of Rev. Comp. Chem. vol 2, 367-422, (1991)
147  /*!
148  \param mol the molecule of interest
149  */
150  double calcKappa1(const ROMol &mol);
151  const std::string kappa1Version="1.1.0";
152 
153  //! calculate the Hall-Kier kappa2 value for a molecule
154  //! From equations (58) and (60) of Rev. Comp. Chem. vol 2, 367-422, (1991)
155  /*!
156  \param mol the molecule of interest
157  */
158  double calcKappa2(const ROMol &mol);
159  const std::string kappa2Version="1.1.0";
160 
161  //! calculate the Hall-Kier kappa3 value for a molecule
162  //! From equations (58), (61) and (62) of Rev. Comp. Chem. vol 2, 367-422, (1991)
163  /*!
164  \param mol the molecule of interest
165  */
166  double calcKappa3(const ROMol &mol);
167  const std::string kappa3Version="1.1.0";
168 
169 
170 
171  namespace detail {
172  void hkDeltas(const ROMol &mol,std::vector<double> &deltas,bool force);
173  }
174 
175  } // end of namespace Descriptors
176 }
177 
178 #endif
double calcChi2v(const ROMol &mol, bool force=false)
From equations (5),(9) and (10) of Rev. Comp. Chem. vol 2, 367-422, (1991)
double calcKappa2(const ROMol &mol)
const std::string chi4vVersion
const std::string chiNvVersion
const std::string chi2nVersion
double calcKappa1(const ROMol &mol)
const std::string chi1nVersion
double calcChi4v(const ROMol &mol, bool force=false)
From equations (5),(9) and (10) of Rev. Comp. Chem. vol 2, 367-422, (1991)
const std::string kappa1Version
double calcChi3n(const ROMol &mol, bool force=false)
const std::string chiNnVersion
const std::string kappa2Version
ROMol is a molecule class that is intended to have a fixed topology.
Definition: ROMol.h:105
double calcHallKierAlpha(const ROMol &mol, std::vector< double > *atomContribs=0)
double calcChi1v(const ROMol &mol, bool force=false)
From equations (5),(9) and (10) of Rev. Comp. Chem. vol 2, 367-422, (1991)
double calcChi3v(const ROMol &mol, bool force=false)
From equations (5),(9) and (10) of Rev. Comp. Chem. vol 2, 367-422, (1991)
Definition: types.h:23
const std::string chi3nVersion
const std::string chi1vVersion
const std::string hallKierAlphaVersion
double calcChi0n(const ROMol &mol, bool force=false)
const std::string chi3vVersion
const std::string kappa3Version
Includes a bunch of functionality for handling Atom and Bond queries.
Definition: Atom.h:28
double calcChi4n(const ROMol &mol, bool force=false)
double calcChi0v(const ROMol &mol, bool force=false)
From equations (5),(9) and (10) of Rev. Comp. Chem. vol 2, 367-422, (1991)
const std::string chi2vVersion
void hkDeltas(const ROMol &mol, std::vector< double > &deltas, bool force)
double calcKappa3(const ROMol &mol)
double calcChiNn(const ROMol &mol, unsigned int n, bool force=false)
const std::string chi0nVersion
const std::string chi4nVersion
double calcChiNv(const ROMol &mol, unsigned int n, bool force=false)
From equations (5),(9) and (10) of Rev. Comp. Chem. vol 2, 367-422, (1991)
const std::string chi0vVersion
double calcChi2n(const ROMol &mol, bool force=false)
double calcChi1n(const ROMol &mol, bool force=false)