ó
F™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	 d  d l m
 Z
 d  d l m Z d  d	 l m Z d  d
 l Z d „  Z d d d d d „ Z d e f d „  ƒ  YZ d „  Z d „  Z e d k rø e ƒ  n  d
 S(   iÿÿÿÿ(   t   division(   t
   statistics(   t   miller(   t   crystal(   t   flex(   t   approx_equal(   t   adptbx(   t   debug_utils(   t   random_structureNc          C   sß   t  j d d ƒ }  t j d d d d f ƒ } t j |  | ƒ } t j d ƒ } t j d ƒ } t j | d
 | d | ƒj ƒ  } t	 j
 | ƒ } t | j d ƒ s¥ t ‚ t | j d ƒ s½ t ‚ t | j d d f ƒ sÛ t ‚ d  S(   Ni   i   i   t   F222i   i   i    iÿÿÿÿiþÿÿÿt   datat   sigmasg      à¿g      è?(   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i    i    i   (   iÿÿÿÿiþÿÿÿi   i   (   i   i   i   i   (   g      à¿g      è?(   iÿÿÿÿi   (   i   i   i   (   i   i   i   (   R   t   symmetryR   t   miller_indexR   t   sett   doublet   arrayt#   set_observation_type_xray_intensityR   t!   sys_absent_intensity_distributionR   t   xt   AssertionErrort   yt   indices(   t   xst   mit   msR
   R   t   f_obst   dist(    (    sT   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_statistics_graphs.pyt*   exercise_sys_absent_intensity_distribution   s    !g      ð?iÈ   i
   i    c         C   s¿  d* } t  j |  d | d d d d	 d
 t d t d t j d ƒ ƒj d | d | d d ƒ } d sf | ry | j ƒ  j ƒ  n  x?d d g D]1} t | j	 ƒ  ƒ } | j
 d t d | d | ƒ t j d | d | j ƒ  ƒ j ƒ  }	 |	 j | ƒ |	 j ƒ  }
 |
 j |	 ƒ x°|	 |
 f D]¢} | j ƒ  r8t j d | ƒ } n t j d | ƒ } |	 j ƒ  j ƒ  } i  } | d | d <| d | d <d | d | d <|  j ƒ  j ƒ  r,d  | j | d k  oÄd! k  n sÏt ‚ d" | j | d k  oñd# k  n süt ‚ d$ | j | d k  od% k  n s³t ‚ qd& | j | d k  oNd' k  n sYt ‚ d( | j | d k  o{d" k  n s†t ‚ d# | j | d k  o¨d$ k  n st ‚ qWq† Wd  S(+   Nt   Nt   Ct   Oi   t   elementst   volume_per_atomg      I@t   min_distanceg      ø?t   general_positions_onlyt   use_u_anisot   u_isoi
   t   anomalous_flagt   d_mint	   algorithmt   directi    i   t   auto_binningt   reflections_per_bint   n_binst
   miller_setR
   R   t   f_obs_sqgš™™™™™¹?i   g      à?i	   gÍÌÌÌÌÌì?gq=
×£pÍ?g{®GázÔ?g\�Âõ(\ß?g=
×£p=â?gÍÌÌÌÌÌä?gffffffæ?g{®Gáz´?gáz®GáÊ?g®Gáz®×?(   R   R   R   R   (   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   (   R   t   xray_structuret   Truet   FalseR   t   b_as_ut   structure_factorst   show_summaryt   abst   f_calct   setup_binnerR   R   R
   t#   set_observation_type_xray_amplitudet   use_binner_oft	   f_as_f_sqt   is_xray_amplitude_arrayR   t!   cumulative_intensity_distributiont   binnert   n_bins_usedt   groupt
   is_centricR   R   (   t   space_group_infoR&   R'   R+   R,   t   verboseR    R3   R6   R   R.   t   maR   R>   t   x_index(    (    sT   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_statistics_graphs.pyt*   exercise_cumulative_intensity_distribution   sP    		--0--t(   cumulative_intensity_distribution_pythonc           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   sü  | j  ƒ  |  _  | j ƒ  j ƒ  } t t g  t d | ƒ D] } d | t | ƒ ^ q7 d g | ƒ ƒ } | j ƒ  } | j | ƒ d } | j ƒ  j	 ƒ  |  _
 | j d t ƒ |  _ xá t j | j ƒ  | j ƒ  j ƒ  | j ƒ  ƒ D]² \ } } }	 | d 7} | |  j | ƒ }
 t |
 d ƒ } |
 | k r2| d 7} n  x[ t | t | | ƒ d d ƒ D]9 } d | | } | j | ƒ rS| | c d 7<qSqSqSWqÞ W| j ƒ  } | j ƒ  g  | D] \ } } t | ƒ ^ q±|  _ g  | D] \ } } | | ^ qÙ|  _ d  S(   Ni    s   %.2ft   use_binningi   i   g{®Gáz„?iÿÿÿÿ(   t   infoR=   R>   t   dictt   zipt   ranget   floatR:   R9   t
   n_bins_allR,   t   meanR0   t   mean_f_obs_sqt	   itertoolst   izipR
   t
   d_spacingsR   t   _get_mean_f_obs_sqt   roundt   intt   has_keyt   itemst   sortR   R   (   t   selfR   R>   t   iR
   R.   t   n_reflectionst	   intensityt	   d_spacingR   t   i_over_mean_it   rounded_i_over_mean_it   keyt   xy_dataR   R   (    (    sT   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_statistics_graphs.pyt   __init__J   s2    	=	4
'
(c         C   sN   x= t  d |  j ƒ D]) } | |  j j j | ƒ d k r Pq q W|  j j | S(   Ni    i   (   t   xrangeR,   RO   R=   t   bin_d_rangeR
   (   RY   R]   t   n_bin(    (    sT   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_statistics_graphs.pyRS   g   s    c         C   sn   t  ƒ  } d | _ |  j d k r@ | j d t |  j ƒ 7_ n  |  j | _ |  j | _ d | _ d | _ | S(   Ns!   Cumulative Intensity Distributioni    s   : s   z(%)s   N(z)(%)(   t   emptyt   titleRH   t   strR   R   t   xLegendt   yLegend(   RY   t   r(    (    sT   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_statistics_graphs.pyt   xy_plot_infom   s    				(   t   __name__t
   __module__Rb   RS   Rl   (    (    (    sT   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_statistics_graphs.pyRF   F   s   		c         C   s1   x* t  t f D] } t | | d |  j ƒq Wd  S(   NRB   (   R1   R0   RE   t   Verbose(   t   flagsRA   R&   (    (    sT   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_statistics_graphs.pyt   run_call_backx   s    c           C   s'   t  ƒ  t j t j d t ƒ d GHd  S(   Ni   t   OK(   R   R   t   parse_options_loop_space_groupst   syst   argvRq   (    (    (    sT   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_statistics_graphs.pyt   run|   s    t   __main__(   t
   __future__R    t   cctbxR   R   R   t   cctbx.array_familyR   t   libtbx.test_utilsR   R   t   cctbx.developmentR   R   Rt   R   RE   t   objectRF   Rq   Rv   Rm   (    (    (    sT   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_statistics_graphs.pyt   <module>   s    	-2		