ó
a#nSc           @   sy   d  d l  m Z d  d l Td  d l Z e j d  Z d e f d     YZ d  d d d	  Z d d
 d  Z	 d   Z
 d S(   iĸĸĸĸ(   t   Chem(   t   *Nc         C   s   | j  |   d  S(   N(   t   write(   t   msgt   dest(    (    s\   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/Chem/FragmentCatalog.pyt   message   s    t   BitGainsInfoc           B   s    e  Z d  Z d Z d Z d Z RS(   iĸĸĸĸt    g        N(   t   __name__t
   __module__t   idt   descriptiont   gaint   Nonet	   nPerClass(    (    (    s\   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/Chem/FragmentCatalog.pyR      s   t   ,i   c         C   s<  t  |  d  } d } g  } x| j   D]} | d 7} g  | j |  D] } | j   ^ qH }	 | d k r( t |	  r( t   }
 t |	 d  |
 _ d } | rš |	 | |
 _ | d 7} n  t	 |	 |  |
 _
 | d 7} g  } x% |	 | D] } | j t |   qč W| |
 _ | j |
  t |  | k r4Pq4q( q( W| S(   Nt   ri    i   (   t   opent
   xreadlinest   splitt   stript   lenR   t   intR
   R   t   floatR   t   appendR   (   t   fileNamet   nToDot   delimt   haveDescriptionst   inFilet   nReadt   rest   linet   xt   splitLt   bitt   colR   t   entry(    (    s\   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/Chem/FragmentCatalog.pyt   ProcessGainsFile   s.    
(	
	i    c         C   sŪ  i  } i  } g  | D] } | j  ^ q } xï | D]į } |  j |  }	 g  }
 |  j |	  } | j | t    } | j |  | | | <x |  j |	  D]s } |  j |  } | s― | | k r |
 j |  |  j |  } | j | t    } | j |  | | | <q q W|
 | | <q/ W| rĪx | j	   D]p } | | } g  | D] } t
 | |  ^ qD} t |  } g  | D] } | | ^ qs} | j   | | | <q-Wn  | | f S(   N(   R
   t   GetBitEntryIdt   GetEntryOrdert   gett   sett   addt   GetEntryDownIdst   GetEntryBitIdR   t   keysR   t   argsortt   reverse(   t   catalogt   bitst   limitInclusiont   orderLevelst   adjst   levelsR#   t   bitIdst   bitIdR%   t   tmpt   ordert   st   downR
   t   idst   countst
   countOrderR!   t   l(    (    s\   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/Chem/FragmentCatalog.pyt   BuildAdjacencyList3   s8    

#
c         C   sl   g  } t  | t  r! | j } n | } x> t |   D]0 \ } } | | } | | r4 | j |  q4 q4 W| S(   N(   t
   isinstanceR   R
   t	   enumerateR   (   t   molsR#   t   fpsR   R8   t   it   molt   fp(    (    s\   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/Chem/FragmentCatalog.pyt   GetMolsMatchingBitS   s    

(   t   rdkitR    t   rdfragcatalogt   syst   stdoutR   t   objectR   R&   RA   RI   (    (    (    s\   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/Chem/FragmentCatalog.pyt   <module>   s   
 