ó
Ô™xTc           @   s�  d  d l  m Z d  d l m Z d  d l m Z d  d l m Z d  d l m Z d  d l	 m
 Z
 m Z d  d l	 m Z d  d l	 m Z d  d	 l Z d  d	 l Z e j Z y d  d	 l Z Wn e k
 rÐ d	 Z n Xe d	 k rå d
 GHn  d e f d „  ƒ  YZ d e f d „  ƒ  YZ d „  Z d e f d „  ƒ  YZ d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e  d k r‰e d e j! d ƒ n  d	 S(   iÿÿÿÿ(   t   division(   t   tst_tardy_comprehensive(   t   tst_tardy_pdb(   t   flex(   t   iceil(   t   dict_with_default_0t
   group_args(   t   easy_pickle(   t   adopt_init_argsNs6   Skipping generation of plots: reportlab not available.t	   plot_gridc           B   sJ   e  Z d  d d d „ Z d d „ Z d „  Z d „  Z d „  Z d	 „  Z RS(
   i   iP   i    c      
   C   sç   t  d  k r d  Sd d l m } m } d d l m } | |  _ | |  _ | |  _	 | |  _
 | j |  _ | ƒ  |  _ xn t | ƒ D]` \ }	 }
 |  j j | |  j d d |  j d |  j |  j	 d |	 d |
 d d	 d
 d ƒƒ q Wd  S(   Niÿÿÿÿ(   t   Groupt   String(   t	   pagesizesi    g      à?i   g333333Ó?t   fontSizei   t
   textAnchort   middle(   t	   reportlabt   Nonet   reportlab.graphics.shapesR
   R   t   reportlab.libR   t   gridt   margint   top_label_spacet   more_narrow_shiftt   lettert	   page_sizet	   top_groupt	   enumeratet   add(   t   OR   t
   top_labelsR   R   R   R
   R   R   t   it   label(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_tardy_eval.pyt   __init__   s"     				$i   c      	   C   s|  t  d  k r d  Sd d l m } m } |  j | d | d | ƒ} | | ƒ }	 | \ }
 } d |
 k ow |  j d k  n s‚ t ‚ d | k o  |  j d k  n s« t ‚ |  j d d |
 }
 |  j | |  j	 d d |  j |  j d | |  j
 |  j |
 |  j	 d d |  j |  j |  j d } } |	 j | | ƒ |  j j |	 ƒ |  j j | | | j | j d | | j | j d	 | d
 | d d ƒƒ |
 d k rx| d k rx|  j j | | | j | j d | | j | j d d d
 | d d ƒƒ | | d d d d
 | d d ƒƒ }	 |	 j d ƒ |	 j | | j | j d | | j | j d ƒ |  j j |	 ƒ n  d  S(   Niÿÿÿÿ(   R
   R   t   datat   label_font_sizei    i   i   g      à?gÍÌÌÌÌÌð?R   R   R   g333333Ó?u   RMSD start (Ã…)u   RMSD final (Ã…)iZ   g333333Ã?(   R   R   R   R
   R   t	   line_plotR   t   AssertionErrorR   R   R   R   t	   translateR   R   t   xt   widtht   yt   heightt   rotate(   R   t   grid_ijt   xy_maxR    R"   R#   R
   R   t   lpt   grR   t   jt   txt   ty(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_tardy_eval.pyt   process*   sL     ))63

c         C   sÝ  t  d  k r d  Sd d l m } d d l m } d d l m } | ƒ  } d | _ d | _	 d | _
 d | _ d | | f g | g | _ | j d g d	 Œ  | j d _ d
 | j d _ | j | j d _ d | j d _ | d ƒ | j d _ d
 | j d j _ d | _ | j d g d	 Œ  | _ d | _ d | j _ | | j _ t | d ƒ | j _ d | j _ d	 | j _ | | j j _ d | j _ | | j _ t | d ƒ | j _ d | j _ d	 | j _ | | j j _ | S(   Niÿÿÿÿ(   t   LinePlot(   t
   makeMarker(   t   colorsi(   ix   i    gš™™™™™é?i   g      à?i   t   Circle(   i    i    (   R   R   t#   reportlab.graphics.charts.lineplotsR4   t"   reportlab.graphics.widgets.markersR5   R   R6   R'   R)   R*   R(   R"   t   Colort   linest   strokeColort   strokeWidtht   whitet   symbolt   joinedLinest
   xValueAxist   valueMint   valueMaxt   ranget
   valueStepst   tickDownt   labelsR   t
   yValueAxist   tickLeft(   R   R-   R"   R#   R4   R5   R6   R.   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_tardy_eval.pyR$   R   sB     					 		c         C   s6   t  d  k r d  Sd d l m } | d | d |  j ƒ S(   Niÿÿÿÿ(   t   Canvast   filenamet   pagesize(   R   R   t   reportlab.pdfgen.canvasRJ   R   (   R   t	   file_nameRJ   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_tardy_eval.pyt
   new_canvast   s     c      	   C   su   t  d  k r d  Sd d l m } d d l m } | |  j Œ  } | j |  j ƒ | j	 d | d | d d d d ƒ d  S(	   Niÿÿÿÿ(   t   Drawing(   t	   renderPDFt   drawingt   canvasR'   i    R)   (
   R   R   R   RP   t   reportlab.graphicsRQ   R   R   R   t   draw(   R   RS   RP   RQ   RR   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_tardy_eval.pyt   draw_to_canvasy   s     c         C   sJ   t  d  k r d  S|  j d | ƒ } |  j d | ƒ | j ƒ  | j ƒ  d  S(   NRN   RS   (   R   R   RO   RV   t   showPaget   save(   R   RN   RS   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_tardy_eval.pyt   write_to_file�   s     
(   t   __name__t
   __module__R!   R3   R$   RO   RV   RY   (    (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_tardy_eval.pyR	      s   (	"		t   multi_page_plotsc           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s&   t  d  k r d  S| |  _ d  |  _ d  S(   N(   R   R   RN   RS   (   R   RN   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_tardy_eval.pyR!   Š   s     	c         C   s^   t  d  k r d  S|  j d  k r: | j d |  j ƒ |  _ n  | j d |  j ƒ |  j j ƒ  d  S(   NRN   RS   (   R   R   RS   RO   RN   RV   RW   (   R   t   page(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_tardy_eval.pyt   add_page�   s     c         C   s!   t  d  k r d  S|  j j ƒ  d  S(   N(   R   R   RS   RX   (   R   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_tardy_eval.pyRY   –   s     (   RZ   R[   R!   R^   RY   (    (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_tardy_eval.pyR\   ˆ   s   		c         C   s0   d j  |  d i d t 6d t 6| d | g ƒ S(   Ns   , s	   model: %st   torsiont	   cartesians   random displacements: %s(   t   joint   Falset   True(   t   pdb_filet%   random_displacements_parameterizationt   e(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_tardy_eval.pyt   compose_top_labelš   s    t   min_mean_statsc           B   s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s9   t  |  t ƒ  ƒ i g  d 6g  d 6g  d 6g  d 6|  _ d  S(   Nt   ttt   tct   ctt   cc(   R   t   localsR"   (   R   t	   algorithmRe   Rd   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_tardy_eval.pyR!   ¢   s    c         C   s¦   g  | D] } t  j | ƒ ^ q } g  | D] } t  j | ƒ ^ q) } | d | d k  ra d } n d } | d | d k  r„ d } n d } |  j | | j | ƒ d  S(   Ni    i   t   tt   c(   R   t   mint   meanR"   t   append(   R   t   rmsd_t_ct   param_valuest   at   minst   meanst   b(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_tardy_eval.pyt   collect¦   s    "" 	 	c         C   s/   |  j  j ƒ  |  _  d „  } |  j  j | ƒ |  S(   Nc         S   sN   t  t |  d ƒ t | d ƒ ƒ } | d k rJ t  |  d | d ƒ } n  | S(   Ni   i    (   t   cmpt   len(   Rv   Ry   t   result(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_tardy_eval.pyt   cmp_data±   s    $(   R"   t   itemst   sort(   R   R~   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_tardy_eval.pyt   finalize¯   s    	c         C   sO   x< |  j  D]1 \ } } d G|  j G|  j G| Gt | ƒ G| GHq
 Wd G|  j GH|  S(   Nt   MIN_MEAN_STATS(   R"   Rn   Rd   R|   (   R   t   kt   v(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_tardy_eval.pyt   show¹   s    )c         C   s   t  j d d d |  ƒ |  S(   NRN   s   min_mean_stats.picklet   obj(   R   t   dump(   R   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_tardy_eval.pyt   pickleÀ   s    (   RZ   R[   R!   Rz   R�   R…   Rˆ   (    (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_tardy_eval.pyRh       s
   				
	c   *      C   s  t  | ƒ } i  }	 x¸ | d D]¬ }
 i  |	 |
 <x™ | d D]� } i  |	 |
 | <xv | d D]j } i  |	 |
 | | <xO | d D]C } t d t j ƒ  d t j ƒ  d t j ƒ  ƒ |	 |
 | | | <qz WqW Wq8 Wq W| } x¶ t | ƒ D]¨ } t j d | d	 | d
 | ƒ |	 | j | j | j	 | j
 } xa | | D]U } | j j | d ƒ | j j | d ƒ | j j | t t | ƒ d | ƒ ƒ q/Wqà Wt d d ƒ } xr| d D]f} d t | ƒ } | GHt |  | | ƒ d g } t d d0 d | ƒ } i  } i  } xG | d D]; } x2 | d D]& } g  | | | f <g  | | | f <qWqWxÀt | d ƒ D]®\ } }
 t |
 d ƒ } g  } g  } xø | d D]ì } xã t | d ƒ D]Ñ \ } } |	 |
 | | | } t j | j ƒ } t j | j ƒ } | j | | | f f ƒ | j | | | f f ƒ d |
 | | | | f }  d G|  GH| j d | | f d | d |  d t | j | j ƒ ƒ qŸWqˆWd „  }! | j |! ƒ | j |! ƒ x1 t | ƒ D]# \ }" \ }# }$ | |$ j |" ƒ q¨Wx1 t | ƒ D]# \ }" \ }# }$ | |$ j |" ƒ qÜWqUW| r$| j d d | ƒ n  | j d | ƒ | j ƒ  } | j ƒ  } d  „  }% | j |% ƒ | j |% ƒ d! t | ƒ GHx‹ d" | f d# | f g D]q \ }& }' xa |' D]Y \ }$ }( |& Gd$ |$ Gd% t |( ƒ Gd& d' j  g  |( D] }# d% |# ^ qàƒ d( GHd) }& qªWHq—Wq¦W| j ƒ  t! d* d+ d, | d- |  ƒ }) | d t" t# f k sQt$ ‚ t | d ƒ d k smt$ ‚ x„ | d D]x }
 xo | d D]c } xZ | d D]N } |) j% d. g  t" t# f D] } |	 |
 | | | j ^ q¶d/ |
 | f ƒ qšWq‰WqxW|) j& ƒ  j' ƒ  j( ƒ  d  S(1   Nt!   structure_factors_high_resolutiont   emulate_cartesiant,   real_space_gradients_delta_resolution_factort   real_space_target_weightt
   rmsd_startt
   rmsd_finalt   rmsd_nt   paramst   trial_tablet
   cp_i_triali    iÿÿÿÿi   RN   s   plots_h_e.pdfs   e%ds   algorithm: minimizationR   i   i   R   gÍÌÌÌÌÌô?s   h%.2f_w%04.0f: %d=%.2f, %.2fs     R,   R-   R    R"   c         S   sA   t  |  d | d ƒ } | d k r= t  |  d | d ƒ } n  | S(   Ni    i   (   R{   (   Rv   Ry   R}   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_tardy_eval.pyt   cmp_rx  s    s   plot_%s.pdfR]   c         S   s¥   t  t |  d ƒ t | d ƒ ƒ } | d k r¡ t  t |  d ƒ t | d ƒ ƒ } | d k r¡ t  |  d | d ƒ } | d k rž t  |  d | d ƒ } qž q¡ n  | S(   Ni   i    (   R{   t   sumt   sorted(   Rv   Ry   R}   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_tardy_eval.pyt   cmp_w_d_ranks  s    ## s   emulate_cartesian = %ss   rn:s   rf:s   %4.0f %4.2fs   %2dt   [s   , t   ]s      Rn   t   minimizationRe   Rd   Rt   Ru   (   i   i   ()   t   dictR   R   t   doublet   xrangeR   t   set_parametersR‰   RŠ   R‹   RŒ   R�   Rs   RŽ   R�   Rq   R|   R\   t   intRg   R	   R   R   Rr   R3   t   zipR€   RY   R^   R   t   strR”   Ra   Rh   Rb   Rc   R%   Rz   R�   R…   Rˆ   (*   Rd   Re   t   tst_tardy_pdb_paramst   parameter_trial_tablet   cp_n_trialst   rmsdst   rmsd_n_nt   write_separate_pagest   ttdt	   plot_datat   hRf   t   dt   wt   pR’   t   plott   rmsdt   mppt   short_labelR   R]   t   w_d_ranks_rnt   w_d_ranks_rft   i_ht   plot_xy_maxt   page_rnt   page_rft   i_wt   pdt   rnt   rfR    R“   R   t   rt   w_dR–   t   prefixt	   w_d_rankst   rankst   mms(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_tardy_eval.pyt#   rmsd_start_final_plots_minimizationÄ   sÂ    	
/	
/						-
	
		2c   %      C   s	  t  | ƒ } i  } x| d D]}	 i  | |	 <xï | d D]ã }
 i  | |	 |
 <xÌ | d D]À } i  | |	 |
 | <x¥ | d D]™ } i  | |	 |
 | | <xz | d D]n } i  | |	 |
 | | | <xK | d D]? } t d t j ƒ  d t j ƒ  ƒ | |	 |
 | | | | <qÌ Wq¡ Wqz WqW Wq8 Wq W| } x� t | ƒ D]� } t j d	 | d
 | d | ƒ | | j | j | j	 | j
 | j | j } x: | | D]. } | j j | d ƒ | j j | d ƒ q“Wq6Wd  } |  d k ró| d k rd } qn$ |  d k r| d k rd } qn  | d  k	 rAt d dB d g  d d ƒ } n d  } t d d ƒ } xÜt | d ƒ D]Ê\ } }	 x»| d D]¯}
 d |	 t |
 ƒ f } | GHt |  | |
 ƒ g } | j d |	 ƒ t d dC d | ƒ } t |	 d ƒ } x| d D]} xþt | d ƒ D]ì\ } } xÝt | d ƒ D]Ë\ } } x¼t | d ƒ D]ª\ } } | |	 |
 | | | | } t j | j ƒ } d | | | | f }  d G|  GH| j d  | d! | | f d" | d# |  d$ t | j | j ƒ ƒ | d k rd|	 d% k rd| d& k rd| d' k rdd( | }! | j d  | d t |
 ƒ f d" | d# |! d$ t | j | j ƒ d) d* ƒ qF| d k rF| d+ k rF|	 d% k s”|	 d, k rF| d' k rFd- |	 }! | j d  | t |
 ƒ f d" | d# |! d$ t | j | j ƒ d) d* ƒ qFqFWq)WqWqõW| r| j d d. | ƒ n  | j d/ | ƒ q~WqgW| j ƒ  | d  k	 rÝd d0 l m }" | d k rpd1 }# n d2 }# | j j |" d3 |# d4 d5 d6 d7 d8 ƒƒ | j j |" d9 dD |# d: d5 d6 d7 d8 ƒƒ | j d d; ƒ n  t  d< d= d> | d? |  ƒ }$ | d t! t" f k st# ‚ t$ | d ƒ d k s0t# ‚ x¼ | d D]° }	 x§ | d D]› } x’ | d D]† } x} | d D]q } xh | d D]\ } |$ j% d@ g  t! t" f D]' }
 | |	 |
 | | | | j ^ q›dA |	 | | | f ƒ qWqnWq]WqLWq;W|$ j& ƒ  j' ƒ  j( ƒ  d  S(E   NR‰   RŠ   R‹   RŒ   t   start_temperature_kelvint   number_of_cooling_stepsR�   RŽ   R�   R‘   R’   i    iÿÿÿÿs   1yjp_box.pdbt   constraineds   1yjp_no_water.pdbR`   i   R   i   i   R   R   i   RN   s   plots_h_e.pdfs	   h%.2f_e%ds&   high resol: %.2f, algorithm: annealinggÍÌÌÌÌÌô?s   w%04.0f_t%.0f_c%d: %.2fs     R,   i   R-   R    R"   g      @iˆ  iô  s   w_rs = %.0fR#   i   id   g      @u   resol. = %.2f Ã…s   plot_%s.pdfR]   (   R   i  it  ix   s   Torsion-Angle SAR   i   R   R   i  s   Cartesian SAs   plot_extra.pdfRn   t	   annealingRe   Rd   Rt   Ru   (   i   i   (   i   i   gUUUUUUå?()   Rš   R   R   R›   Rœ   R   R�   R‰   RŠ   R‹   RŒ   RÂ   RÃ   R�   Rs   RŽ   R   R	   R\   R   Rž   Rg   R   Rr   R3   RŸ   RY   R^   R   R   R   R   Rh   Rb   Rc   R%   R|   Rz   R�   R…   Rˆ   (%   Rd   Re   R¡   R¢   R£   R¤   R¦   R§   R¨   R©   Rf   Rª   R«   Ro   Rp   R¬   R’   R­   R®   t
   extra_typet
   extra_pageR¯   R³   R°   R   R]   R´   R·   t   i_tt   i_cR¸   Rº   R    t   extra_labelR   R2   RÀ   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_tardy_eval.pyt    rmsd_start_final_plots_annealing?  sø    
?	
		
	

	
 	


		7'c         C   s8  t  |  d ƒ j ƒ  j ƒ  } x‰ | D]u } | j d ƒ r# | j d d ƒ d } | d | d k sh t ‚ | d d" k s~ t ‚ t j | d d !ƒ } Pq# q# Wt d	 ƒ ‚ xF | D]2 } | d
 k rË d } Pq¯ | d k r¯ d } Pq¯ q¯ Wt d ƒ ‚ xF | D]2 } | d k rd } Pqø | d k rø d } Pqø qø Wt d ƒ ‚ ~ t	 j
 ƒ  } | j ƒ  } | d k rmt j } n | d k r…t j } n t ‚ t j d | ƒ }	 g  }
 x! t |	 ƒ D] } |
 j i  ƒ q°WxÑ |  D]É } xÀ t  | ƒ j ƒ  j ƒ  D]¦ } | j d ƒ sqín  | j d  d ƒ } t | ƒ d k s2t ‚ t | d ƒ } t | d ƒ } t j t | d ƒ ƒ } |
 | j | ƒ s…t ‚ | |
 | | <qíWqÎWt ƒ  } x: t |	 ƒ D], } | t t |
 | j ƒ  ƒ ƒ c d 7<q±Wt | ƒ d k r| GHt d ƒ ‚ n  | j ƒ  d |	 k s#t ‚ | j ƒ  d } | t t t | ƒ ƒ ƒ k sWt ‚ g  } xH t |	 ƒ D]: } | j g  t t | ƒ ƒ D] } |
 | | ^ q‰ƒ qjWt } | d k rôt  d | d | d | d | d |	 d | d d  d! | ƒ n@ | d k r4t! d | d | d | d | d |	 d | d! | ƒ n  d  S(#   Ni    s   pdb_file = t    i   iÿÿÿÿt   "t   'i   s   pdb_file = "..." not found.s>   random_displacements_parameterization = *constrained cartesianRÄ   s>   random_displacements_parameterization = constrained *cartesianR`   sK   random_displacements_parameterization = constrained or cartesian not found.s#   algorithm = *minimization annealingR™   s#   algorithm = minimization *annealingRÅ   s0   algorithm = minimization or annealing not found.t   tables$   RESULT_cp_i_trial_random_seed_rmsd: i   i   s+   Unexpected random_seeds_found (see output).Rd   Re   R¡   R¢   R£   R¤   R¥   i2   R¦   (   RÍ   RÎ   ("   t   opent   readt
   splitlinest
   startswitht   splitR%   t   opt   basenamet   RuntimeErrorR   t   get_master_philt   extractR   t   common_parameter_trial_tablet   annealing_parameter_trial_tablet   number_of_trialsRœ   Rs   R   R|   Rž   R   R›   t   evalt   has_keyR   t   tupleR•   t   keyst   valuesRD   Rb   RÁ   RË   (   t   argst
   first_filet   lineRd   Re   Rn   t   tst_tardy_pdb_master_philR¡   R¢   R£   t   random_seed_rmsdR’   RN   t   fldst   random_seedR®   t   random_seeds_foundR¤   R¦   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_tardy_eval.pyt   eval_1Ç  sª    						*$	/
c            s  i d d 6d d 6d d 6d d 6‰  i d d	 6d d
 6d d 6d d 6} i d d 6d d 6} t  | ƒ t  | ƒ ‰ i d d 6d d 6} ‡  ‡ f d †  } g  t d ƒ D] } | ƒ  ^ q¡ } t ƒ  } xw|  D]o} t j d | ƒ }	 | |	 j } | |	 j t  | ƒ | |	 j }
 x%|	 j D]\ } } ˆ  | } | | |
 f } | | k sNt	 ‚ | j
 | ƒ t  | ƒ | | d | |
 <d } |	 j d k r¿x~ | D]% \ } } | d k r“| d 7} q“q“WnN |	 j d k rx< | D]+ \ } } } } | d k rÕ| d 7} qÕqÕWn t	 ‚ t  | ƒ | | | d d | |
 <qWqÆ Wt  | ƒ t  | ƒ d t  ˆ  ƒ ˆ k sit	 ‚ t g  | j ƒ  D] } t t | ƒ ƒ ^ qyƒ } xx t | ƒ D]j \ } } | | d Gd t t | d ƒ ƒ GHx5 | D]- } d j g  | D] } t | ƒ ^ qòƒ GHqßWHq§Wd  S(   Ni    Ri   i   Rj   i   Rk   i   Rl   s   gly_gly_box.pdbs   lys_pro_trp_box.pdbs   1yjp_box.pdbs   1yjp_no_water.pdbRÄ   R`   R™   RÅ   c             s   g  ˆ  D] }  d  g ˆ ^ q S(   N(   R   (   Rj   (   t   i_row_by_tct   n_cols(    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_tardy_eval.pyt
   make_tableA  s    i   RN   i
   s   omit_weight_10=%sRÌ   (   R|   Rœ   t   setR   t   loadRn   Rd   Re   R"   R%   R   Rš   R   Rß   t   reversedR   R    t   boolRa   (   Râ   t   i_col_majort   i_col_minort   i_tableRí   t   i_tabt   tabst   doneRN   RÀ   t   i_colRj   t   list_of_param_valuest   i_rowt   keyt   nR©   R«   Ro   Rp   t   itemt   table_it   tabt   rowR„   (    (   Rë   Rì   sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_tardy_eval.pyt   eval_2.  sb    



"	
  ,01%+c            s  i d d 6d d 6d d 6d d 6‰  i d d	 6d d
 6d d 6d d 6} i d d 6} t  | ƒ t  | ƒ ‰ i d d 6} ‡  ‡ f d †  } g  t d ƒ D] } | ƒ  ^ q“ } t ƒ  } xw|  D]o} t j d | ƒ }	 | |	 j } | |	 j t  | ƒ | |	 j }
 x%|	 j D]\ } } ˆ  | } | | |
 f } | | k s@t	 ‚ | j
 | ƒ t  | ƒ | | d | |
 <d } |	 j d k r±x~ | D]% \ } } | d k r…| d 7} q…q…WnN |	 j d k rùx< | D]+ \ } } } } | d k rÇ| d 7} qÇqÇWn t	 ‚ t  | ƒ | | | d d | |
 <q	Wq¸ Wt  | ƒ t  | ƒ d t  ˆ  ƒ ˆ k s[t	 ‚ t g  | j ƒ  D] } t t | ƒ ƒ ^ qkƒ } xx t | ƒ D]j \ } } | | d Gd t t | d ƒ ƒ GHx5 | D]- } d j g  | D] } t | ƒ ^ qäƒ GHqÑWHq™Wd  S(   Ni    Ri   i   Rj   i   Rk   i   Rl   s   gly_gly_box.pdbs   lys_pro_trp_box.pdbs   1yjp_box.pdbs   1yjp_no_water.pdbRÄ   R™   c             s   g  ˆ  D] }  d  g ˆ ^ q S(   N(   R   (   Rj   (   Rë   Rì   (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_tardy_eval.pyRí   t  s    RN   i
   RÅ   s   omit_weight_10=%sRÌ   (   R|   Rœ   Rî   R   Rï   Rn   Rd   Re   R"   R%   R   Rš   R   Rß   Rð   R   R    Rñ   Ra   (   Râ   Rò   Ró   Rô   Rí   Rõ   Rö   R÷   RN   RÀ   Rø   Rj   Rù   Rú   Rû   Rü   R©   R«   Ro   Rp   Rý   Rþ   Rÿ   R   R„   (    (   Rë   Rì   sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_tardy_eval.pyt   eval_2_orcac  s^    



"	
  ,01%+c         C   sY   |  d d k r$ t  d |  d ƒ n1 |  d d k rH t d |  d ƒ n t d |  ƒ d  S(   Ni    t   eval_picklesRâ   i   t   eval_pickles_orca(   R  R  Rê   (   Râ   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_tardy_eval.pyt   run–  s
    t   __main__Râ   i   ("   t
   __future__R    t   mmtbx.refinementR   R   t   scitbx.array_familyR   t   libtbx.math_utilsR   t   libtbxR   R   R   R   t   syst   ost   pathRÕ   R   t   ImportErrorR   t   objectR	   R\   Rg   Rh   RÁ   RË   Rê   R  R  R  RZ   t   argv(    (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_tardy_eval.pyt   <module>   s6   	  
w	$	{	ˆ	g	5	3	