ó
a#nSc        
   @   s  d  Z  d d l m Z d d l m Z e j d  Z e j d  Z e j d  Z e j d  Z	 e j d  Z
 e j d	  Z d
   Z d   Z d e _  d e _ e d  Z d   Z d e _  d e _ e d  Z d   Z d e _  d e _ e d  Z d   Z d e _  d e _ e	 d  Z d   Z d e _  d e _ d   Z d e _  d e _ d   Z d e _ d   Z d e _ d0 Z x e D]~ Z e e e  Z e d*  Z y e e d+ e d,  e _ Wn e k
 rŜn Xe j  e _  e j  d- d.  Z! e e"   e! <qWd/ S(1   s3    Calculation of Lipinski parameters for molecules

i˙˙˙˙(   t   Chem(   t   rdMolDescriptorss<   [$([N;!H0;v3]),$([N;!H0;+1;v4]),$([O,S;H1;+0]),$([n;H1;+0])]sj   [$([O,S;H1;v2]-[!$(*=[O,N,P,S])]),$([O,S;H0;v2]),$([O,S;-]),$([N;v3;!$(N-*=!@[O,N,P,S])]),$([nH0,o,s;+0])]s	   [!#6;!#1]s   [!$(*#*)&!D1]-&!@[!$(*#*)&!D1]s   [#8H1,#7H1,#7H2,#7H3]s   [#7,#8]c         C   s   t  |  j | d d  S(   Nt   uniquifyi   (   t   lent   GetSubstructMatches(   t   molt   smarts(    (    sU   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/Chem/Lipinski.pyt   _NumMatches4   s    c         C   s   t  j |   S(   N(   R   t
   CalcNumHBD(   t   x(    (    sU   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/Chem/Lipinski.pyt   <lambda>7   s    s   Number of Hydrogen Bond Donorss   1.0.0c         C   s   |  j  | d d S(   NR   i   (   R   (   R	   t   y(    (    sU   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/Chem/Lipinski.pyR
   :   s    c         C   s   t  j |   S(   N(   R   t
   CalcNumHBA(   R	   (    (    sU   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/Chem/Lipinski.pyR
   ;   s    s!   Number of Hydrogen Bond Acceptorss   2.0.0c         C   s   |  j  | d d S(   NR   i   (   R   (   R	   R   (    (    sU   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/Chem/Lipinski.pyR
   >   s    c         C   s   t  j |   S(   N(   R   t   CalcNumHeteroatoms(   R	   (    (    sU   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/Chem/Lipinski.pyR
   ?   s    s   Number of Heteroatomsc         C   s   |  j  | d d S(   NR   i   (   R   (   R	   R   (    (    sU   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/Chem/Lipinski.pyR
   B   s    c         C   s   t  j |   S(   N(   R   t   CalcNumRotatableBonds(   R	   (    (    sU   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/Chem/Lipinski.pyR
   C   s    s   Number of Rotatable Bondsc         C   s   |  j  | d d S(   NR   i   (   R   (   R	   R   (    (    sU   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/Chem/Lipinski.pyR
   F   s    c         C   s   t  j |   S(   N(   R   t   CalcNumLipinskiHBA(   R	   (    (    sU   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/Chem/Lipinski.pyR
   G   s    s   Number of Nitrogens and Oxygensc         C   s   t  j |   S(   N(   R   t   CalcNumLipinskiHBD(   R	   (    (    sU   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/Chem/Lipinski.pyR
   J   s    s   Number of NHs or OHsc         C   s   t  j |   S(   N(   R   t   CalcNumRings(   R	   (    (    sU   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/Chem/Lipinski.pyR
   N   s    c         C   s
   |  j    S(   s"    Number of heavy atoms a molecule.(   t   GetNumHeavyAtoms(   R   (    (    sU   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/Chem/Lipinski.pyt   HeavyAtomCountQ   s    s   1.0.1t   CalcFractionCSP3t   CalcNumAromaticRingst   CalcNumSaturatedRingst   CalcNumAromaticHeterocyclest   CalcNumAromaticCarbocyclest   CalcNumSaturatedHeterocyclest   CalcNumSaturatedCarbocyclest   CalcNumAliphaticRingst   CalcNumAliphaticHeterocyclest   CalcNumAliphaticCarbocyclesc         C   s
   | |   S(   N(    (   R	   R   (    (    sU   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/Chem/Lipinski.pyR
   \   s    t   _t   _versiont   Calct    N(
   R   R   R   R   R   R   R   R   R   R   (#   t   __doc__t   rdkitR    t
   rdkit.ChemR   t   MolFromSmartst   HDonorSmartst   HAcceptorSmartst   HeteroatomSmartst   RotatableBondSmartst
   NHOHSmartst   NOCountSmartsR   t
   NumHDonorst   versiont   _HDonorst   NumHAcceptorst   _HAcceptorst   NumHeteroatomst   _Heteroatomst   NumRotatableBondst   _RotatableBondst   NOCountt	   NHOHCountt	   RingCountR   t   _bulkConvertt   txtt   getattrt   _cfnt   _fnt   AttributeErrort   replacet   nmt   locals(    (    (    sU   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/Chem/Lipinski.pyt   <module>   sb   																								  