ó
a#nSc           @   s	  d  Z  d d l m Z d d l m Z d d l m Z d d l m Z d d l Z d d l	 Z	 e	 j
 Z
 d d l	 Td d l Td d l Td d l Te e d „ Z d	 d
 „ Z d d „ Z e e d „ Z d „  Z e d k rd d l Z e ƒ  \ Z Z e j e ƒ n  d S(   s\    A module for molecules and stuff

 see Chem/index.html in the doc tree for documentation
 
iÿÿÿÿ(   t   rdBase(   t   RDConfig(   t   DataStructs(   t
   rdGeometryN(   t   *c         C   s7   t  |  ƒ } t | ƒ } | j | | ƒ } | r3 n  | S(   N(   t   MolFromSmilest   MolFromSmartst   GetSubstructMatches(   t   smit   smat   uniquet   displayt   mt   pt   res(    (    sU   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/Chem/__init__.pyt   QuickSmartsMatch   s    i   c         C   s   t  |  ƒ } t | | ƒ S(   N(   R   t   MolToSmiles(   R   t	   useChiralR   (    (    sU   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/Chem/__init__.pyt   CanonSmiles'   s    t    c         K   sÒ   |  j  d ƒ d j ƒ  } | d k r7 t |  | � } n— | d k rj | sR d } n  t |  d | | �} nd | d k r� | s… d } n  t |  d | | �} n1 | d	 k rÁ t |  d | | �} n t d
 | ‚ | S(   Nt   .iÿÿÿÿt   sdft   csvt   ,t	   delimitert   txts   	t   tdts   unrecognized extension: %s(   t   splitt   lowert   SDMolSuppliert   SmilesMolSuppliert   TDTMolSuppliert
   ValueError(   t   fileNt   delimt   kwargst   extt   suppl(    (    sU   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/Chem/__init__.pyt   SupplierFromFilename+   s    		c         C   sœ   t  |  d | d | ƒg  } xy |  j ƒ  D]k } | j d ƒ rc | j | j ƒ  | j d ƒ f ƒ q) | r) | j d ƒ r) | j | j ƒ  d f ƒ q) q) W| S(   sÁ  
    >>> from rdkit import Chem
    >>> mol = Chem.MolFromSmiles('[C@H](Cl)(F)Br')
    >>> FindMolChiralCenters(mol)
    [(0, 'R')]
    >>> mol = Chem.MolFromSmiles('[C@@H](Cl)(F)Br')
    >>> FindMolChiralCenters(mol)
    [(0, 'S')]
  
    >>> FindMolChiralCenters(Chem.MolFromSmiles('CCC'))
    []

    By default unassigned stereo centers are not reported:
    >>> mol = Chem.MolFromSmiles('C[C@H](F)C(F)(Cl)Br')
    >>> FindMolChiralCenters(mol,force=True)
    [(1, 'S')]

    but this can be changed:
    >>> FindMolChiralCenters(mol,force=True,includeUnassigned=True)
    [(1, 'S'), (3, '?')]

    The handling of unassigned stereocenters for dependent stereochemistry is not correct:
    >>> Chem.FindMolChiralCenters(Chem.MolFromSmiles('C1CC(C)C(C)C(C)C1'),includeUnassigned=True)
    [(2, '?'), (6, '?')]
    >>> Chem.FindMolChiralCenters(Chem.MolFromSmiles('C1C[C@H](C)C(C)[C@H](C)C1'),includeUnassigned=True)
    [(2, 'S'), (4, '?'), (6, 'R')]
    
  t   forcet   flagPossibleStereoCenterst   _CIPCodet   _ChiralityPossiblet   ?(   t   AssignStereochemistryt   GetAtomst   HasPropt   appendt   GetIdxt   GetProp(   t   molR'   t   includeUnassignedt   centerst   atom(    (    sU   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/Chem/__init__.pyt   FindMolChiralCenters>   s    % c          C   s,   d d  l  }  d d  l } |  j | j d ƒ S(   Niÿÿÿÿt   __main__(   t   doctestt   syst   testmodt   modules(   R8   R9   (    (    sU   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/Chem/__init__.pyt   _testh   s    R7   (   t   __doc__t   rdkitR    R   R   t   rdkit.GeometryR   t   PeriodicTablet   pyPeriodicTablet   rdchemt   _HasSubstructMatchStrt
   rdmolfilest   rdmolopst   inchit   Truet   FalseR   R   R&   R6   R<   t   __name__R9   t   failedt   triedt   exit(    (    (    sU   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/Chem/__init__.pyt   <module>   s(   	



*	