rdkit.Chem.Descriptors3D

Package rdkit :: Package Chem :: Module Descriptors3D |
[hide private]
[frames] | no frames]

# Source Code for Module rdkit.Chem.Descriptors3D

      1  #
      2  # Copyright (C) 2016 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  """ Descriptors derived from a molecule's 3D structure
     11
     12  """
     13  from __future__ import print_function
     14  from rdkit.Chem import rdMolDescriptors
     15
     16
     17  if hasattr(rdMolDescriptors, 'CalcPMI1'):
     18    PMI1 = lambda *x, **y: rdMolDescriptors.CalcPMI1(*x, **y)
     19    PMI1.version = rdMolDescriptors._CalcPMI1_version
     20    PMI1.__doc__ = """ First (smallest) principal moment of inertia
     21
     22
     23      **Arguments**
     24
     25        - inMol: a molecule
     26
     27        - confId: (optional) the conformation ID to use
     28
     29        - useAtomicMasses: (optional) toggles use of atomic masses in the
     30          calculation. Defaults to True
     31      """
     32
     33    PMI2 = lambda *x, **y: rdMolDescriptors.CalcPMI2(*x, **y)
     34    PMI2.version = rdMolDescriptors._CalcPMI2_version
     35    PMI2.__doc__ = """ Second principal moment of inertia
     36
     37      **Arguments**
     38
     39        - inMol: a molecule
     40
     41        - confId: (optional) the conformation ID to use
     42
     43        - useAtomicMasses: (optional) toggles use of atomic masses in the
     44          calculation. Defaults to True
     45      """
     46
     47    PMI3 = lambda *x, **y: rdMolDescriptors.CalcPMI3(*x, **y)
     48    PMI3.version = rdMolDescriptors._CalcPMI3_version
     49    PMI3.__doc__ = """ Third (largest) principal moment of inertia
     50
     51      **Arguments**
     52
     53        - inMol: a molecule
     54
     55        - confId: (optional) the conformation ID to use
     56
     57        - useAtomicMasses: (optional) toggles use of atomic masses in the
     58          calculation. Defaults to True
     59      """
     60
     61    NPR1 = lambda *x, **y: rdMolDescriptors.CalcNPR1(*x, **y)
     62    NPR1.version = rdMolDescriptors._CalcNPR1_version
     63    NPR1.__doc__ = """ Normalized principal moments ratio 1 (=I1/I3)
     64
     65          from Sauer and Schwarz JCIM 43:987-1003 (2003)
     66          https://dx.doi.org/10.1021/ci025599w
     67
     68
     69      **Arguments**
     70
     71        - inMol: a molecule
     72
     73        - confId: (optional) the conformation ID to use
     74
     75        - useAtomicMasses: (optional) toggles use of atomic masses in the
     76          calculation. Defaults to True
     77      """
     78
     79    NPR2 = lambda *x, **y: rdMolDescriptors.CalcNPR2(*x, **y)
     80    NPR2.version = rdMolDescriptors._CalcNPR2_version
     81    NPR2.__doc__ = """ Normalized principal moments ratio 2 (=I2/I3)
     82
     83          from Sauer and Schwarz JCIM 43:987-1003 (2003)
     84          https://dx.doi.org/10.1021/ci025599w
     85
     86
     87      **Arguments**
     88
     89        - inMol: a molecule
     90
     91        - confId: (optional) the conformation ID to use
     92
     93        - useAtomicMasses: (optional) toggles use of atomic masses in the
     94          calculation. Defaults to True
     95      """
     96
     97    RadiusOfGyration = lambda *x, **y: rdMolDescriptors.CalcRadiusOfGyration(*x, **y)
     98    RadiusOfGyration.version = rdMolDescriptors._CalcRadiusOfGyration_version
     99    RadiusOfGyration.__doc__ = """ Radius of gyration
    100
    101         from Todeschini and Consoni "Descriptors from Molecular Geometry"
    102         Handbook of Chemoinformatics
    103         http://dx.doi.org/10.1002/9783527618279.ch37
    104
    105         Definition:
    106           for planar molecules: sqrt( sqrt(pm3*pm2)/MW )
    107           for nonplanar molecules: sqrt( 2*pi*pow(pm3*pm2*pm1,1/3)/MW )
    108
    109      **Arguments**
    110
    111        - inMol: a molecule
    112
    113        - confId: (optional) the conformation ID to use
    114
    115        - useAtomicMasses: (optional) toggles use of atomic masses in the
    116          calculation. Defaults to True
    117      """
    118
    119    InertialShapeFactor = lambda *x, **y: rdMolDescriptors.CalcInertialShapeFactor(*x, **y)
    120    InertialShapeFactor.version = rdMolDescriptors._CalcInertialShapeFactor_version
    121    InertialShapeFactor.__doc__ = """ Inertial shape factor
    122
    123         from Todeschini and Consoni "Descriptors from Molecular Geometry"
    124         Handbook of Chemoinformatics
    125         http://dx.doi.org/10.1002/9783527618279.ch37
    126
    127         Definition:
    128           pm2 / (pm1*pm3)
    129
    130      **Arguments**
    131
    132        - inMol: a molecule
    133
    134        - confId: (optional) the conformation ID to use
    135
    136        - useAtomicMasses: (optional) toggles use of atomic masses in the
    137          calculation. Defaults to True
    138      """
    139
    140    Eccentricity = lambda *x, **y: rdMolDescriptors.CalcEccentricity(*x, **y)
    141    Eccentricity.version = rdMolDescriptors._CalcEccentricity_version
    142    Eccentricity.__doc__ = """ molecular eccentricity
    143
    144         from Todeschini and Consoni "Descriptors from Molecular Geometry"
    145         Handbook of Chemoinformatics
    146         http://dx.doi.org/10.1002/9783527618279.ch37
    147
    148         Definition:
    149           sqrt(pm3**2 -pm1**2) / pm3**2
    150
    151      **Arguments**
    152
    153        - inMol: a molecule
    154
    155        - confId: (optional) the conformation ID to use
    156
    157        - useAtomicMasses: (optional) toggles use of atomic masses in the
    158          calculation. Defaults to True
    159      """
    160
    161    Asphericity = lambda *x, **y: rdMolDescriptors.CalcAsphericity(*x, **y)
    162    Asphericity.version = rdMolDescriptors._CalcAsphericity_version
    163    Asphericity.__doc__ = """ molecular asphericity
    164
    165         from Todeschini and Consoni "Descriptors from Molecular Geometry"
    166         Handbook of Chemoinformatics
    167         http://dx.doi.org/10.1002/9783527618279.ch37
    168
    169         Definition:
    170           0.5 * ((pm3-pm2)**2 + (pm3-pm1)**2 + (pm2-pm1)**2)/(pm1**2+pm2**2+pm3**2)
    171
    172      **Arguments**
    173
    174        - inMol: a molecule
    175
    176        - confId: (optional) the conformation ID to use
    177
    178        - useAtomicMasses: (optional) toggles use of atomic masses in the
    179          calculation. Defaults to True
    180      """
    181
    182    SpherocityIndex = lambda *x, **y: rdMolDescriptors.CalcSpherocityIndex(*x, **y)
    183    SpherocityIndex.version = rdMolDescriptors._CalcSpherocityIndex_version
    184    SpherocityIndex.__doc__ = """ Molecular spherocityIndex
    185
    186         from Todeschini and Consoni "Descriptors from Molecular Geometry"
    187         Handbook of Chemoinformatics
    188         http://dx.doi.org/10.1002/9783527618279.ch37
    189
    190         Definition:
    191           3 * pm1 / (pm1+pm2+pm3) where the moments are calculated without weights
    192
    193      **Arguments**
    194
    195        - inMol: a molecule
    196
    197        - confId: (optional) the conformation ID to use
    198
    199      """
    200