ó
a#nSc           @   sf   d  Z  d d l m Z d d l m Z d d l m Z d d l m Z d „  Z d d
 d „  ƒ  YZ	 d	 S(   sO    contains a class to store parameters for and results from
Composite building

iÿÿÿÿ(   t   RDConfig(   t	   DbConnect(   t   DataStructs(   t   DbModulec         C   sÌ  d |  _  d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _	 d |  _
 d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ t |  _ d |  _ d |  _ d |  _ d |  _ d |  _ t j |  _ t j |  _  d |  _! d |  _" d |  _# d |  _$ g  |  _% d |  _& g  |  _' d |  _( d |  _) d |  _* d	 |  _+ d	 |  _, d	 |  _- d	 |  _. d	 |  _/ d
 |  _0 d |  _1 d |  _3 d |  _4 d |  _5 d |  _6 |  S(   s    initializes a details object with default values

      **Arguments**

        - details:  (optional) a _CompositeRun.CompositeRun_ object.
          If this is not provided, the global _runDetails will be used.

      **Returns**

        the initialized _CompositeRun_ object.


  i   i
   t    i    gffffffæ?iÿÿÿÿg      ð¿t   *g        g333333Ó?i   i*   N(   i   i*   (7   t   nRunst   nModelst   outNamet   badNamet   splitRunt	   splitFract
   lockRandomt   randomActivitiest   shuffleActivitiest   replacementSelectiont   useTreest   pruneItt
   lessGreedyt
   limitDeptht   recycleVarst   randomDescriptorst   useKNNt   knnDistFunct	   knnNeighst   useSigTreest   useCMIMt   Falset   allowCollectionst   useNaiveBayest   mEstimateValt   useSigBayest
   bayesModelt   dbNameR    t   defaultDBUsert   dbUsert   defaultDBPasswordt
   dbPasswordt   dbWhatt   dbWheret   dbJoint
   qTableNamet   qBoundst   qBoundCountt   activityBoundst   activityBoundsValst   detailedRest   noScreent	   thresholdt
   filterFract	   filterValt   modelFilterValt   modelFilterFract   internalHoldoutFract   pickleDataFileNamet   Nonet   startAtt   persistTblNamet
   randomSeedt   note(   t
   runDetails(    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/ML/CompositeRun.pyt   SetDefaults   sf    																																																t   CompositeRunc        !   B   s­   e  Z d  Z d3 d4 d5 d6 d7 d8 d9 d: d; d< d= d> d? d@ dA dB dC dD dE dF dG dH dI dJ dK dL dM dN dO dP dQ d* e j f f  Z d+ „  Z d, d- d. d/ d0 „ Z d1 „  Z d2 „  Z	 RS(R   s   class to store parameters for and results from Composite building

   This class has a default set of fields which are added to the database.

   By default these fields are stored in a tuple, so they are immutable.  This
     is probably what you want.
   

  t   rundates   varchar(32)R!   s   varchar(200)R&   R'   R(   t	   tableNames   varchar(80)R;   s   varchar(120)t   shuffledt   smallintt
   randomizedt   overall_errort   floatt   holdout_errort   overall_fraction_droppedt   holdout_fraction_droppedt   overall_correct_conft   overall_incorrect_conft   holdout_correct_conft   holdout_incorrect_conft   overall_result_matrixs   varchar(256)t   holdout_result_matrixR0   R   R1   R2   R3   R4   R   t   intR   t   bayesModelsR+   s   varchar(3000)R-   t   cmds   varchar(500)t   modelc         C   s(  t  d „  | j ƒ  ƒ } | j ƒ  | k r  | j ƒ  } g  } x. |  j D]# \ } } | j d | | f ƒ qF Wd j | ƒ } | j d | | f ƒ | j ƒ  n„ g  | j	 ƒ  D] }	 |	 j ƒ  ^ q­ }
 | j ƒ  } xF |  j D]; \ } } | j ƒ  |
 k rÛ | j d | | | f ƒ qÛ qÛ W| j ƒ  d S(   s    *Internal Use only*

    c         S   s   |  j  ƒ  j ƒ  S(   N(   t   stript   upper(   t   x(    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/ML/CompositeRun.pyt   <lambda>¯   s    s   %s %st   ,s   create table %s (%s)s   alter table %s add %s %sN(
   t   mapt   GetTableNamesRT   t	   GetCursort   fieldst   appendt   joint   executet   Committ   GetColumnNames(   t   selft   cnt   tblNamet   namest   curst   fmtt   namet   valuet   fmtStrRU   t   heads(    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/ML/CompositeRun.pyt   _CreateTable«   s    %!s
   models.gdbt   resultst   sysdbat	   masterkeyc         C   s  t  | | | | ƒ } | j ƒ  } |  j | | ƒ g  } g  } x\ |  j D]Q \ }	 }
 y t |  |	 ƒ } Wn t k
 ry qG X| j d |	 ƒ | j | ƒ qG Wt | ƒ } d j t	 j
 g | ƒ } t | ƒ } d | d j | ƒ | f } | j | | ƒ | j ƒ  d S(   sÀ    adds the result to a database

      **Arguments**

        - db: name of the database to use

        - table: name of the table to use

        - user&password: connection information

    s   %sRW   s   insert into %s (%s) values (%s)N(   R   RZ   Rk   R[   t   getattrt   AttributeErrorR\   t   lenR]   R   t   placeHoldert   tupleR^   R_   (   Ra   t   dbt   tablet   usert   passwordRb   Re   t   colst   valsRg   t   typt   vt   nToDot   qsRQ   (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/ML/CompositeRun.pyt   Store¿   s(    
c         K   s\   d d l  m } | j |  j |  j d |  j d |  j d |  j d |  j d |  j	 | �} | S(   sN    Returns a MLDataSet pulled from a database using our stored
    values.

    iÿÿÿÿ(   t	   DataUtilsRv   Rw   t   whatt   whereR]   (
   t   rdkit.ML.DataR   t   DBToDataR!   R@   R#   R%   R&   R'   R(   (   Ra   t   kwargsR   t   data(    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/ML/CompositeRun.pyt
   GetDataSetå   s    c         K   sP   d d l  m } | |  j |  j ƒ } | j d |  j d |  j d |  j ƒ } | S(   sN    Returns a MLDataSet pulled from a database using our stored
    values.

    iÿÿÿÿ(   R   R]   R€   R�   (   t   rdkit.Dbase.DbConnectionR   R!   R@   t   GetColumnNamesAndTypesR(   R&   R'   (   Ra   R„   R   t   connt   res(    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/ML/CompositeRun.pyt   GetDataSetInfoó   s    '(   R?   s   varchar(32)(   s   dbNames   varchar(200)(   s   dbWhats   varchar(200)(   s   dbWheres   varchar(200)(   s   dbJoins   varchar(200)(   s	   tableNames   varchar(80)(   s   notes   varchar(120)(   RA   RB   (   RC   RB   (   RD   s   float(   RF   s   float(   RG   s   float(   RH   s   float(   RI   s   float(   RJ   s   float(   RK   s   float(   RL   s   float(   RM   s   varchar(256)(   RN   s   varchar(256)(   s	   thresholds   float(   s	   splitFracs   float(   s
   filterFracs   float(   s	   filterVals   float(   s   modelFilterVals   float(   s   modelFilterFracs   float(   s   nModelss   int(   s
   limitDepths   int(   RP   s   int(   s   qBoundCounts   varchar(3000)(   s   activityBoundsValss   varchar(200)(   s   cmds   varchar(500)(
   t   __name__t
   __module__t   __doc__R   t   binaryTypeNameR[   Rk   R~   R†   R‹   (    (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/ML/CompositeRun.pyR>   ~   sL   		%	N(    (
   RŽ   t   rdkitR    R‡   R   R   t   rdkit.DbaseR   R=   R>   (    (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/python2.7/site-packages/rdkit/ML/CompositeRun.pyt   <module>   s   	i