ó
šxTc           @   s·   d  d l  m Z m Z m Z d  d l m Z d  d l Z d „  Z d „  Z	 d „  Z
 d „  Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z e d k r³ d Z e
 e ƒ GHe d ƒ n  d S(   iÿÿÿÿ(   t   atoit   atoft   split(   t
   viewTRIALSNc         C   s/   d } x |  D] } | d 7} q W|  GH| GHd  S(   Nt    t   =(    (   t   st   linet   i(    (    s@   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/utils/jiffy.pyt	   underline   s
    c         C   s4   d } x |  D] } | d 7} q W| GH|  GH| GHd  S(   NR   R   (    (   R   R   R   (    (    s@   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/utils/jiffy.pyt   frame   s    c   	      C   sk  g  } g  } yFt  |  d ƒ } xû | D]ó } t  | d ƒ } t | ƒ d k rÄ d | d k r¤ t  | d d ƒ } xO | D]' } y | j t | ƒ ƒ Wqv qv Xqv Wqt | d ƒ } | j | ƒ q% t | ƒ d k r% x? t t | d ƒ t | d ƒ d ƒ D] } | j | ƒ qþ Wq% q% Wx. | D]& } x | | k rH| j | ƒ q,Wq#W| SWn d GHd ‚ n Xd  S(   Nt   ,t   -i   t   !i    i   s
   Bad format(   R   t   lent   appendR    t   xranget   remove(	   R   t   nListt   qListt   raw1t   elementt   raw2t   raw3t   xt   i_e(    (    s@   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/utils/jiffy.pyt   solution_selector   s6    .c   	      C   sÞ   x× | j  ƒ  D]É } | | } t | ƒ } d G| Gd G| Gd GHx• t | ƒ D]‡ } | | d } | | d } | | d } | d  k r� |  j | | t ƒ qK | d k r¿ |  j | | | ƒ qK |  j | | | ƒ qK Wq Wd  S(   Ns
   
ENSEMBLE:R   s   PDB file(s)i    i   i   t   RMS(   t   keysR   R   t   Nonet   addENSE_PDB_CARDt   Truet   addENSE_PDB_RMSt   addENSE_PDB_ID(	   R   t   dictENSEMBLESt
   ensembleIDt   PDBListt	   numberPDBt   i_PDBt   pdb_file_namet   rms_seqt   rms_seq_value(    (    s@   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/utils/jiffy.pyt   addense7   s    
c         C   sS   |  j  | d ƒ | d } |  j | d | d | d | d | d | d ƒ d  S(   Ni    i   i   i   i   i   (   t   setSPAC_HALLt   setCELL(   R   t	   localLISTt   cell(    (    s@   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/utils/jiffy.pyt   setCellG   s    
c         C   sD   t  |  | ƒ |  j | d | d | d ƒ |  j | d d ƒ d  S(   Ni   i   i   i   i   (   R/   t   setREFLt   addPROT(   R   R-   (    (    s@   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/utils/jiffy.pyt   setMTZL   s    c         C   sD   t  |  | ƒ |  j | d | d | d ƒ |  j | d d ƒ d  S(   Ni   i   i   i   i   (   R/   R0   R1   (   R   R-   (    (    s@   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/utils/jiffy.pyt   mtzitQ   s    c   	      C   sK  g  } | d k r- | d  k	 r- t | ƒ } n  t | ƒ d k rG| d } | d } g  } xµ t t | ƒ ƒ D]¡ } | d  k	 rí | d k r´ | | t | ƒ k r´ | j | | ƒ n  | d k rí t | ƒ d | k rí | j | | ƒ qí n  | d  k rl | j | | ƒ ql ql Wt | ƒ d k  r+d GHn  t | ƒ GHH|  j | ƒ n  d  S(   Ns   Solution Numberi    i   s   Likelihood Cutoffs    
WARNING! NO SOLUTIONS SELECTED
(	   R   R   R   R   R   R   t   intR   t   setSOLU(	   R   t	   criteriont	   selectiont   setLISTR   t	   solutionst
   likelihoodt   trialst   sols(    (    s@   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/utils/jiffy.pyt   selectKNOWNV   s(    

""c         C   s’  g  } | d k r- | d  k	 r- t | ƒ } n  t | ƒ d k rŽ| d } | d } g  } d } xt t | ƒ ƒ D]û }	 | |	 j }
 g  } xÃ t t |
 ƒ ƒ D]¯ } | d  k	 r@| d k rû |
 | j } | t | ƒ k rë | j t ƒ qû | j t	 ƒ n  | d k rM| | k r#| j t ƒ n | j t	 ƒ | d 7} qMqž | j t ƒ qž W| j t
 j j j | ƒ ƒ qr W| GH| GH|  j | | ƒ n  d  S(   Ns   Solution Numberi    i   i   s   Likelihood Cutoff(   R   R   R   R   t   RLISTt   SCORER   R   R   t   Falset   scitbxt   array_familyt   flext   boolt   setAndSelectSOLU(   R   R6   R7   R8   R   R9   R:   t   maskt   countR<   t   rlist   selt   jt   score(    (    s@   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/utils/jiffy.pyt   selectTRIALn   s8    

 t   __main__s   1,2,3-6,7,9 - 15, !12, 2-4, !2t   Hello(   t   stringR    R   R   t   outputR   t   scitbx.array_family.flexRA   R	   R
   R   R*   R/   R2   R3   R=   RL   t   __name__R   (    (    (    s@   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/utils/jiffy.pyt   <module>   s   				"						I