RDKit
Open-source cheminformatics and machine learning.
Loading...
Searching...
No Matches
ConnectivityDescriptors.h
Go to the documentation of this file.
1//
2// Copyright (C) 2012-2021 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#include <RDGeneral/export.h>
17#ifndef __RD_CONNECTIVITYDESCRIPTORS_H__
18#define __RD_CONNECTIVITYDESCRIPTORS_H__
19
20#include <string>
21#include <vector>
22#include <boost/smart_ptr.hpp>
23
24namespace RDKit {
25class ROMol;
26namespace Descriptors {
27
28//! From equations (5),(9) and (10) of Rev. Comp. Chem. vol 2, 367-422, (1991)
29/*!
30 \param mol the molecule of interest
31 \param force forces the value to be recalculated instead
32 of pulled from the cache
33*/
34RDKIT_DESCRIPTORS_EXPORT double calcChi0v(const ROMol &mol, bool force = false);
35const std::string chi0vVersion = "1.2.0";
36//! From equations (5),(9) and (10) of Rev. Comp. Chem. vol 2, 367-422, (1991)
37/*!
38 \param mol the molecule of interest
39 \param force forces the value to be recalculated instead
40 of pulled from the cache
41*/
42RDKIT_DESCRIPTORS_EXPORT double calcChi1v(const ROMol &mol, bool force = false);
43const std::string chi1vVersion = "1.2.0";
44//! From equations (5),(9) and (10) of Rev. Comp. Chem. vol 2, 367-422, (1991)
45/*!
46 \param mol the molecule of interest
47 \param force forces the value to be recalculated instead
48 of pulled from the cache
49*/
50RDKIT_DESCRIPTORS_EXPORT double calcChi2v(const ROMol &mol, bool force = false);
51const std::string chi2vVersion = "1.2.0";
52//! From equations (5),(9) and (10) of Rev. Comp. Chem. vol 2, 367-422, (1991)
53/*!
54 \param mol the molecule of interest
55 \param force forces the value to be recalculated instead
56 of pulled from the cache
57*/
58RDKIT_DESCRIPTORS_EXPORT double calcChi3v(const ROMol &mol, bool force = false);
59const std::string chi3vVersion = "1.2.0";
60//! From equations (5),(9) and (10) of Rev. Comp. Chem. vol 2, 367-422, (1991)
61/*!
62 \param mol the molecule of interest
63 \param force forces the value to be recalculated instead
64 of pulled from the cache
65*/
66RDKIT_DESCRIPTORS_EXPORT double calcChi4v(const ROMol &mol, bool force = false);
67const std::string chi4vVersion = "1.2.0";
68//! From equations (5),(9) and (10) of Rev. Comp. Chem. vol 2, 367-422, (1991)
69/*!
70 \param mol the molecule of interest
71 \param n the order of the connectivity index
72 \param force forces the value to be recalculated instead
73 of pulled from the cache
74*/
75RDKIT_DESCRIPTORS_EXPORT double calcChiNv(const ROMol &mol, unsigned int n,
76 bool force = false);
77const std::string chiNvVersion = "1.2.0";
78
79//! Similar to Hall Kier ChiXv, but uses nVal instead of valence
80//! This makes a big difference after we get out of the first row.
81/*!
82 \param mol the molecule of interest
83 \param force forces the value to be recalculated instead
84 of pulled from the cache
85*/
86RDKIT_DESCRIPTORS_EXPORT double calcChi0n(const ROMol &mol, bool force = false);
87const std::string chi0nVersion = "1.2.0";
88//! Similar to Hall Kier ChiXv, but uses nVal instead of valence
89//! This makes a big difference after we get out of the first row.
90/*!
91 \param mol the molecule of interest
92 \param force forces the value to be recalculated instead
93 of pulled from the cache
94*/
95RDKIT_DESCRIPTORS_EXPORT double calcChi1n(const ROMol &mol, bool force = false);
96const std::string chi1nVersion = "1.2.0";
97//! Similar to Hall Kier ChiXv, but uses nVal instead of valence
98//! This makes a big difference after we get out of the first row.
99/*!
100 \param mol the molecule of interest
101 \param force forces the value to be recalculated instead
102 of pulled from the cache
103*/
104RDKIT_DESCRIPTORS_EXPORT double calcChi2n(const ROMol &mol, bool force = false);
105const std::string chi2nVersion = "1.2.0";
106//! Similar to Hall Kier ChiXv, but uses nVal instead of valence
107//! This makes a big difference after we get out of the first row.
108/*!
109 \param mol the molecule of interest
110 \param force forces the value to be recalculated instead
111 of pulled from the cache
112*/
113RDKIT_DESCRIPTORS_EXPORT double calcChi3n(const ROMol &mol, bool force = false);
114const std::string chi3nVersion = "1.2.0";
115//! Similar to Hall Kier ChiXv, but uses nVal instead of valence
116//! This makes a big difference after we get out of the first row.
117/*!
118 \param mol the molecule of interest
119 \param force forces the value to be recalculated instead
120 of pulled from the cache
121*/
122RDKIT_DESCRIPTORS_EXPORT double calcChi4n(const ROMol &mol, bool force = false);
123const std::string chi4nVersion = "1.2.0";
124//! Similar to Hall Kier ChiXv, but uses nVal instead of valence
125//! This makes a big difference after we get out of the first row.
126/*!
127 \param mol the molecule of interest
128 \param n the order of the connectivity index
129 \param force forces the value to be recalculated instead
130 of pulled from the cache
131*/
132RDKIT_DESCRIPTORS_EXPORT double calcChiNn(const ROMol &mol, unsigned int n,
133 bool force = false);
134const std::string chiNnVersion = "1.2.0";
135
136//! calculate the Hall-Kier alpha value for a molecule
137//! From equation (58) of Rev. Comp. Chem. vol 2, 367-422, (1991)
138//!
139//! \note Because hybridization is used to calculate this, results may differ
140//! from other implementations which have different conventions for assigning
141//! hybridization
142/*!
143 \param mol the molecule of interest
144 \param atomContribs if provided, this will be used to return the
145 contributions
146 of the individual atoms to the value. These do not
147 necessarily sum to the full value.
148 Note: this can be a time-consuming calculation.
149*/
151 const ROMol &mol, std::vector<double> *atomContribs = nullptr);
152const std::string hallKierAlphaVersion = "1.2.0";
153
154//! calculate the Hall-Kier kappa1 value for a molecule
155//! From equations (58) and (59) of Rev. Comp. Chem. vol 2, 367-422, (1991)
156//!
157//! \note Because hybridization is used to calculate this, results may differ
158//! from other implementations which have different conventions for assigning
159//! hybridization
160/*!
161 \param mol the molecule of interest
162*/
164const std::string kappa1Version = "1.1.0";
165
166//! calculate the Hall-Kier kappa2 value for a molecule
167//! From equations (58) and (60) of Rev. Comp. Chem. vol 2, 367-422, (1991)
168//!
169//! \note Because hybridization is used to calculate this results may differ
170//! from other implementations which have different conventions for assigning
171//! hybridization
172/*!
173 \param mol the molecule of interest
174*/
176const std::string kappa2Version = "1.1.0";
177
178//! calculate the Hall-Kier kappa3 value for a molecule
179//! From equations (58), (61) and (62) of Rev. Comp. Chem. vol 2, 367-422,
180/// 1991)
181//!
182//! \note Because hybridization is used to calculate this results may differ
183//! from other implementations which have different conventions for assigning
184//! hybridization
185/*!
186 \param mol the molecule of interest
187*/
189const std::string kappa3Version = "1.1.0";
190
191//! calculate the Kier Phi value for a molecule
192//! From Quantitative Structure-Activity Relationships 8, 221–224 (1989).
193//!
194//! \note Because hybridization is used to calculate this results may differ
195//! from other implementations which have different conventions for assigning
196//! hybridization
197/*!
198 \param mol the molecule of interest
199*/
201const std::string PhiVersion = "1.0.0";
202
203namespace detail {
205 std::vector<double> &deltas, bool force);
206}
207
208} // end of namespace Descriptors
209} // namespace RDKit
210
211#endif
#define RDKIT_DESCRIPTORS_EXPORT
Definition export.h:105
RDKIT_DESCRIPTORS_EXPORT void hkDeltas(const ROMol &mol, std::vector< double > &deltas, bool force)
const std::string kappa1Version
RDKIT_DESCRIPTORS_EXPORT double calcChi1n(const ROMol &mol, bool force=false)
RDKIT_DESCRIPTORS_EXPORT double calcKappa1(const ROMol &mol)
RDKIT_DESCRIPTORS_EXPORT double calcChi1v(const ROMol &mol, bool force=false)
From equations (5),(9) and (10) of Rev. Comp. Chem. vol 2, 367-422, (1991)
RDKIT_DESCRIPTORS_EXPORT double calcChi2v(const ROMol &mol, bool force=false)
From equations (5),(9) and (10) of Rev. Comp. Chem. vol 2, 367-422, (1991)
const std::string kappa2Version
const std::string chi4vVersion
const std::string chi3nVersion
const std::string chi2nVersion
const std::string kappa3Version
const std::string chi2vVersion
RDKIT_DESCRIPTORS_EXPORT double calcChi3v(const ROMol &mol, bool force=false)
From equations (5),(9) and (10) of Rev. Comp. Chem. vol 2, 367-422, (1991)
const std::string chi0nVersion
const std::string chi4nVersion
RDKIT_DESCRIPTORS_EXPORT double calcChi0v(const ROMol &mol, bool force=false)
From equations (5),(9) and (10) of Rev. Comp. Chem. vol 2, 367-422, (1991)
RDKIT_DESCRIPTORS_EXPORT double calcKappa3(const ROMol &mol)
RDKIT_DESCRIPTORS_EXPORT double calcChi4v(const ROMol &mol, bool force=false)
From equations (5),(9) and (10) of Rev. Comp. Chem. vol 2, 367-422, (1991)
RDKIT_DESCRIPTORS_EXPORT double calcChi4n(const ROMol &mol, bool force=false)
const std::string hallKierAlphaVersion
RDKIT_DESCRIPTORS_EXPORT double calcChi3n(const ROMol &mol, bool force=false)
const std::string chi3vVersion
RDKIT_DESCRIPTORS_EXPORT double calcChi0n(const ROMol &mol, bool force=false)
RDKIT_DESCRIPTORS_EXPORT double calcKappa2(const ROMol &mol)
RDKIT_DESCRIPTORS_EXPORT double calcChiNn(const ROMol &mol, unsigned int n, bool force=false)
RDKIT_DESCRIPTORS_EXPORT 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 chiNnVersion
RDKIT_DESCRIPTORS_EXPORT double calcHallKierAlpha(const ROMol &mol, std::vector< double > *atomContribs=nullptr)
const std::string chi1vVersion
const std::string chi1nVersion
const std::string chiNvVersion
RDKIT_DESCRIPTORS_EXPORT double calcPhi(const ROMol &mol)
RDKIT_DESCRIPTORS_EXPORT double calcChi2n(const ROMol &mol, bool force=false)
const std::string chi0vVersion
Std stuff.
bool rdvalue_is(const RDValue_cast_t)