ó
R™xTc           @   sm   d  d l  m Z d  d l Z d  d l Z e j Z d d „ Z d „  Z e	 d k ri e d e j
 d ƒ n  d S(   iÿÿÿÿ(   t   divisionNc   #         sç  | d  k r t j } n  d d l m } d d l m } d  } d  } d ‰ | j ƒ  } | j ƒ  } d } d }	 d }
 d } d } g  } i  } xB|  D]:} t	 } d  } d  } d  } t
 | ƒ j ƒ  } | j t d ƒ ƒ d k rî | d 7} q“ n  xÉ| j ƒ  D]»‰  ˆ  j d ƒ r#ˆ  d } d  } qû ˆ  j d ƒ r�| d  k	 sDt ‚ ˆ  j d  d	 ƒ d	 } | j | | ƒ } | | k s¶t ‚ qû ˆ  j d
 ƒ rÁ| d  k	 s¢t ‚ t ˆ  j d d ƒ d ƒ } qû ˆ  j d ƒ rï| d  k	 sât ‚ ˆ d 7‰ qû ˆ  j d ƒ r;| d  k	 st ‚ | d  k s"t ‚ ˆ  j d d ƒ d } qû ˆ  j d ƒ s•ˆ  j d ƒ s•ˆ  j d ƒ s•ˆ  j d ƒ s•ˆ  j d ƒ s•ˆ  j d ƒ r?| d  k	 s§t ‚ ˆ  j d d ƒ d } t | j ƒ  d ƒ t | j ƒ  d ƒ } | j | ƒ | j d j | | | d | t | ƒ | | g ƒ ƒ d  } d  } d  } qû ‡  f d †  } ˆ  j d ƒ d k rp|
 d 7}
 n  ˆ  j d ƒ rŒ| d 7} n  ˆ  j d ƒ d k r®| d 7} n  ˆ  j d ƒ r8ˆ  j d ƒ råt ˆ  j ƒ  d ƒ } nC ˆ  j d d ƒ \ } } | j d ƒ st ‚ t | j ƒ  d ƒ } | j | ƒ qû ˆ  j d ƒ rt| ƒ  } | d  k sh| | k  r¶| } q¶qû ˆ  j d  ƒ rû | ƒ  } | d  k s¤| | k r­| } n  t } qû qû W| s“ |	 d 7}	 q“ q“ W| j | ƒ } | j | ƒ } ˆ | j ƒ  } | d! | j ƒ  | f IJ| d k s+t ‚ | d" I| I|	 I|
 I| I| IJ|
 | | k  rkd# GHn  t | ƒ d k r×| d  k	 r¢| d  k	 r¢| | }  n d  }  | d$ t | ƒ t | ƒ | d% |  ƒ f IJn  | J‡ f d& †  }! | d' I|! | d( k  ƒ IJ| d) I|! | d* k  ƒ IJ| d+ I|! | d, k  ƒ IJ| d- I|! | d, k ƒ IJ| d. I|! | d/ k ƒ IJ| J| d0 IJ| j  | d1 d ƒj! d2 | ƒ | J| j | ƒ } x | D] }" | |" IJq½Wt |  ƒ |	 | | f S(3   Niÿÿÿÿ(   t   flex(   t   format_valuei    i   s   cod_id: i
   s   Space group: i   s   Number of scatterers: s   : s    Number of refinable parameters: s   iso          cc, r1: s   dev          cc, r1: s   ls_simple    cc, r1: s   ls_lm        cc, r1: s   shelxl_fm    cc, r1: s   shelxl_cg    cc, r1: s   shelx76      cc, r1: s    : s   %.3fc              s   t  ˆ  j ƒ  d d ƒ S(   Niþÿÿÿi   (   t   floatt   split(    (   t   line(    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/omz/eval_iso_vs_refined.pyt   get_secs_epochB   s    t	   EXCEPTIONt	   Tracebackt   Aborts   wall clock time: s    secondsiþÿÿÿt   (s    seconds total)s   TIME BEGIN cod_refine: s   TIME END cod_refine: s"   Number of results: %d (%d missing)s1   Stale, Unfinished, Exceptions, Tracebacks, Abort:s,   WARNING: more missing results than expected.s&   min, max, global seconds: %.2f %.2f %ss   %.2fc            s.   |  j  t ƒ } d | d | t d ˆ  ƒ f S(   Ns   %6d = %5.2f %%id   i   (   t   countt   Truet   max(   t   ft   n(   t   n_refinements_initialized(    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/omz/eval_iso_vs_refined.pyt   statsl   s    s   gaps below -0.05:gš™™™™™©¿s   gaps below -0.01:g{®Gáz„¿s   gaps below  0.01:g{®Gáz„?s   gaps above  0.01:s   gaps above  0.05:gš™™™™™©?s   Histogram of gaps:t   n_slotsR   ("   t   Nonet   syst   stdoutt   scitbx.array_familyR   t   libtbx.str_utilsR   t   doublet
   std_stringt   Falset   opent   readt   findt   chrt
   splitlinest
   startswitht   AssertionErrorR   t
   setdefaultt   intR   t   appendt   joint   strt   endswithR   t   sort_permutationt   selectt   sizet   lent   minR   t	   histogramt   show(#   t
   file_namest   outR   R   t   min_secs_epocht   max_secs_epocht   gapst   infost   n_stalet   n_unfinishedt   n_exceptiont   n_tracebackt   n_abortt   secondst   space_groups_by_cod_idt	   file_namet   have_time_endt   cod_idt   n_scattt   isot   file_strt   space_groupt	   tabulatedt   reft   gapR   t   secst   _t   fldt   st   permt	   n_missingt   gR   t   info(    (   R   R   sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/omz/eval_iso_vs_refined.pyt	   eval_logs   sæ     

	*		 	 	
(
c   
         s/  g  } g  } xL |  D]D } t  j | ƒ r8 | j | ƒ q t  j | ƒ r | j | ƒ q q Wt | ƒ d k s… t | ƒ d k s… t ‚ d g ‰ d g ‰ d  d  g ‰  ‡  ‡ ‡ f d †  } t | ƒ d k rÝ | t | ƒ ƒ nÜ xÙ | D]Ñ } g  } x` t t	 j
 | ƒ ƒ D]I } | j d ƒ rt  j | | ƒ } t  j | ƒ rO| j | ƒ qOqqWt | ƒ d k rä t  j | d ƒ } | Gt | ƒ GHt j j ƒ  | t | d t | d ƒ ƒƒ qä qä Wˆ  j d  ƒ d k ræd ˆ  d ˆ  d GHn  d	 Gˆ d GHˆ d }	 |	 d k rd
 G|	 GHn	 d G|	 GHt j j ƒ  d  S(   Ni    c            sÀ   |  \ } } } } ˆ d c | 7<ˆ d c | 7<ˆ  d | } } | d  k	 rw | d  k sg | | k rw | ˆ  d <qw n  ˆ  d | } } | d  k	 r¼ | d  k s¬ | | k  r¼ | ˆ  d <q¼ n  d  S(   Ni    i   (   R   (   R   t   n_filesR6   t   min_secst   max_secst   at   b(   t   min_max_secs_epocht   n_files_accut   n_unfinished_accu(    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/omz/eval_iso_vs_refined.pyt   track_times‰   s      t   logR   R0   t   ws   global seconds: %.2fi   s   Number of files:s   unfinished:s   UNFINISHED:(   t   opt   isfileR$   t   isdirR+   R!   R   RN   t   sortedt   ost   listdirR    R%   R   R   t   flushR   R   (
   t   argsR/   t	   dir_namest   argRW   t   dir_namet   nodet   patht   outfnR   (    (   RT   RU   RV   sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/omz/eval_iso_vs_refined.pyt   run}   sF    *		
&
	t   __main__Ra   i   (   t
   __future__R    R   R^   Rf   RZ   R   RN   Rh   t   __name__t   argv(    (    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/omz/eval_iso_vs_refined.pyt   <module>   s   	x	0