RDKit
Open-source cheminformatics and machine learning.
Lipinski.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2007-2011 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 Lipinski.h
12 
13  \brief Contains Lipinski and Lipinski-like descriptors. Use MolDescriptors.h
14  in client code.
15 
16 */
17 #ifndef __RD_LIPINSKI_H__
18 #define __RD_LIPINSKI_H__
19 namespace RDKit {
20 class ROMol;
21 namespace Descriptors {
22 
23 const std::string lipinskiHBAVersion = "1.0.0";
24 //! calculates the standard Lipinski HBA definition (number of Ns and Os)
25 unsigned int calcLipinskiHBA(const ROMol &mol);
26 
27 const std::string lipinskiHBDVersion = "2.0.0";
28 //! calculates the standard Lipinski HBA definition (number of N-H and O-H
29 // bonds)
30 unsigned int calcLipinskiHBD(const ROMol &mol);
31 
33  Default = -1,
34  NonStrict = 0,
35  Strict = 1,
37 };
38 
39 extern const std::string NumRotatableBondsVersion;
40 //! calculates the number of rotatable bonds
41 /*!
42  \param mol the molecule of interest
43  \param strict if Strict, a stricter definition of rotable bonds is used
44  this excludes amides, esters, etc.
45  if StrictLinkages, a much stricter definition that
46  handles rotatable bonds between rings as well.
47  if Default - uses the default choice (normally Strict)
48 */
49 unsigned int calcNumRotatableBonds(const ROMol &mol,
50  NumRotatableBondsOptions useStrictDefinition=Default);
51 
52 //! calculates the number of rotatable bonds ( backwards compatibility function,
53 //! deprecated, please use calcNumRotatableBonds(const ROMol&, int)
54 /*!
55  \param mol the molecule of interest
56  \param strict if Strict == true, uses NumRotatableBondsOptions::Strict
57 */
58 unsigned int calcNumRotatableBonds(const ROMol &mol, bool strict);
59 
60 extern const std::string NumHBDVersion;
61 //! calculates the number of H-bond donors
62 unsigned int calcNumHBD(const ROMol &mol);
63 
64 extern const std::string NumHBAVersion;
65 //! calculates the number of H-bond acceptors
66 unsigned int calcNumHBA(const ROMol &mol);
67 
68 extern const std::string NumHeteroatomsVersion;
69 //! calculates the number of heteroatoms
70 unsigned int calcNumHeteroatoms(const ROMol &mol);
71 
72 extern const std::string NumAmideBondsVersion;
73 //! calculates the number of amide bonds
74 unsigned int calcNumAmideBonds(const ROMol &mol);
75 
76 extern const std::string FractionCSP3Version;
77 //! calculates the fraction of carbons that are SP3 hybridized
78 double calcFractionCSP3(const ROMol &mol);
79 
80 extern const std::string NumRingsVersion;
81 //! calculates the number of SSSR rings
82 unsigned int calcNumRings(const ROMol &mol);
83 
84 extern const std::string NumAromaticRingsVersion;
85 //! calculates the number of aromatic SSSR rings
86 unsigned int calcNumAromaticRings(const ROMol &mol);
87 
88 extern const std::string NumAliphaticRingsVersion;
89 //! calculates the number of aliphatic (at least one non-aromatic bond) SSSR
90 // rings
91 unsigned int calcNumAliphaticRings(const ROMol &mol);
92 
93 extern const std::string NumSaturatedRingsVersion;
94 //! calculates the number of saturated SSSR rings
95 unsigned int calcNumSaturatedRings(const ROMol &mol);
96 
97 extern const std::string NumHeterocyclesVersion;
98 //! calculates the number of SSSR heterocycles
99 unsigned int calcNumHeterocycles(const ROMol &mol);
100 
101 extern const std::string NumAromaticHeterocyclesVersion;
102 //! calculates the number of aromatic SSSR heterocycles
103 unsigned int calcNumAromaticHeterocycles(const ROMol &mol);
104 
105 extern const std::string NumAromaticCarbocyclesVersion;
106 //! calculates the number of aromatic SSSR carbocycles
107 unsigned int calcNumAromaticCarbocycles(const ROMol &mol);
108 
109 extern const std::string NumSaturatedHeterocyclesVersion;
110 //! calculates the number of saturated SSSR heterocycles
111 unsigned int calcNumSaturatedHeterocycles(const ROMol &mol);
112 
113 extern const std::string NumSaturatedCarbocyclesVersion;
114 //! calculates the number of saturated SSSR carbocycles
115 unsigned int calcNumSaturatedCarbocycles(const ROMol &mol);
116 
117 extern const std::string NumAliphaticHeterocyclesVersion;
118 //! calculates the number of aliphatic (at least one non-aromatic bond) SSSR
119 // heterocycles
120 unsigned int calcNumAliphaticHeterocycles(const ROMol &mol);
121 
122 extern const std::string NumAliphaticCarbocyclesVersion;
123 //! calculates the number of aliphatic (at least one non-aromatic bond) SSSR
124 // carbocycles
125 unsigned int calcNumAliphaticCarbocycles(const ROMol &mol);
126 
127 extern const std::string NumSpiroAtomsVersion;
128 //! calculates the number of spiro atoms (atoms shared between rings that share
129 // exactly one atom)
130 unsigned int calcNumSpiroAtoms(const ROMol &mol,
131  std::vector<unsigned int> *atoms = NULL);
132 
133 extern const std::string NumBridgeheadAtomsVersion;
134 //! calculates the number of bridgehead atoms (atoms shared between rings that
135 // share at least two bonds)
136 unsigned int calcNumBridgeheadAtoms(const ROMol &mol,
137  std::vector<unsigned int> *atoms = NULL);
138 } // end of namespace Descriptors
139 } // end of namespace RDKit
140 
141 #endif
unsigned int calcNumSpiroAtoms(const ROMol &mol, std::vector< unsigned int > *atoms=NULL)
calculates the number of spiro atoms (atoms shared between rings that share
const std::string NumAliphaticCarbocyclesVersion
const std::string NumRotatableBondsVersion
unsigned int calcNumAromaticHeterocycles(const ROMol &mol)
calculates the number of aromatic SSSR heterocycles
const std::string NumAliphaticHeterocyclesVersion
const std::string NumSaturatedHeterocyclesVersion
const std::string NumAliphaticRingsVersion
unsigned int calcNumSaturatedHeterocycles(const ROMol &mol)
calculates the number of saturated SSSR heterocycles
unsigned int calcNumHBD(const ROMol &mol)
calculates the number of H-bond donors
unsigned int calcNumSaturatedRings(const ROMol &mol)
calculates the number of saturated SSSR rings
const std::string FractionCSP3Version
const std::string NumAmideBondsVersion
const std::string NumAromaticRingsVersion
unsigned int calcNumAliphaticRings(const ROMol &mol)
calculates the number of aliphatic (at least one non-aromatic bond) SSSR
unsigned int calcNumBridgeheadAtoms(const ROMol &mol, std::vector< unsigned int > *atoms=NULL)
calculates the number of bridgehead atoms (atoms shared between rings that
ROMol is a molecule class that is intended to have a fixed topology.
Definition: ROMol.h:102
const std::string NumHeterocyclesVersion
unsigned int calcNumAromaticRings(const ROMol &mol)
calculates the number of aromatic SSSR rings
unsigned int calcLipinskiHBA(const ROMol &mol)
calculates the standard Lipinski HBA definition (number of Ns and Os)
unsigned int calcNumAliphaticCarbocycles(const ROMol &mol)
calculates the number of aliphatic (at least one non-aromatic bond) SSSR
unsigned int calcNumHeterocycles(const ROMol &mol)
calculates the number of SSSR heterocycles
const std::string NumRingsVersion
unsigned int calcNumAmideBonds(const ROMol &mol)
calculates the number of amide bonds
const std::string NumSpiroAtomsVersion
unsigned int calcNumRings(const ROMol &mol)
calculates the number of SSSR rings
unsigned int calcLipinskiHBD(const ROMol &mol)
calculates the standard Lipinski HBA definition (number of N-H and O-H
const std::string NumSaturatedRingsVersion
Includes a bunch of functionality for handling Atom and Bond queries.
Definition: Atom.h:28
unsigned int calcNumHBA(const ROMol &mol)
calculates the number of H-bond acceptors
const std::string NumHBAVersion
double calcFractionCSP3(const ROMol &mol)
calculates the fraction of carbons that are SP3 hybridized
const std::string NumAromaticHeterocyclesVersion
const std::string lipinskiHBDVersion
Definition: Lipinski.h:27
unsigned int calcNumSaturatedCarbocycles(const ROMol &mol)
calculates the number of saturated SSSR carbocycles
unsigned int calcNumAliphaticHeterocycles(const ROMol &mol)
calculates the number of aliphatic (at least one non-aromatic bond) SSSR
const std::string NumBridgeheadAtomsVersion
unsigned int calcNumHeteroatoms(const ROMol &mol)
calculates the number of heteroatoms
const std::string lipinskiHBAVersion
Definition: Lipinski.h:23
const std::string NumSaturatedCarbocyclesVersion
unsigned int calcNumRotatableBonds(const ROMol &mol, NumRotatableBondsOptions useStrictDefinition=Default)
calculates the number of rotatable bonds
const std::string NumHBDVersion
unsigned int calcNumAromaticCarbocycles(const ROMol &mol)
calculates the number of aromatic SSSR carbocycles
const std::string NumHeteroatomsVersion
const std::string NumAromaticCarbocyclesVersion