ó
³™xTc           @   s&  d  d l  m Z d  d l m Z d  d l Z d  d l Z d  d l 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 e j j d	 ƒ Z d  d
 l m Z e j d ƒ e	 j d ƒ d d „ Z e d k r"e j ƒ  Z e ƒ  d e j ƒ  e GHd GHn  d S(   iÿÿÿÿ(   t   division(   t   approx_equalN(   t   flex(   t   bulk_solvent(   t   adptbx(   t   sgtbx(   t   random_structuret   mmtbx_f_model_ext(   t   scaleri    s   C 2c         C   sŠ  t  j d |  ƒ } t j d | d d g d d d d t ƒ } t j d	 | j ƒ  ƒ } t j | j	 ƒ  t j
 | ƒ ƒ } | j d
 d ƒ j ƒ  } t j j j | j ƒ  | ƒ } g  } | j d d ƒ x< | j ƒ  j ƒ  D]( } | j ƒ  j | ƒ }	 | j |	 ƒ qÕ W| j ƒ  j ƒ  }
 d t j |
 ƒ d } t j j j | d d ƒ } t j | j ƒ  j ƒ  d ƒ } t j | j ƒ  j ƒ  d ƒ } x[ | D]S } |
 j | ƒ } | j | t j  | j | ƒ ƒ ƒ | j | t! j" d d ƒ ƒ qˆWt j j# d | d t$ | ƒ d | d | d | ƒ } | j ƒ  } | j% ƒ  } | j ƒ  } t$ | ƒ } | j& d t' ƒ } t( t) j* | j ƒ  | j ƒ  ƒ d ƒ s�t+ ‚ t, j- d | d | d | d | d | d d d  d! d" | d# t d$ t d% t d& t' ƒ } t( | j. d' d( ƒ sðt+ ‚ t( | j/ d) d( ƒ st+ ‚ t( | j0 d* d( ƒ s&t+ ‚ t( t) j* | j ƒ  t$ | j1 j ƒ j ƒ  d ƒ t) j* | j ƒ  t$ | j1 j ƒ j ƒ  ƒ ƒ s†t+ ‚ d  S(+   Nt   symbolt   space_group_infot   elementst   Ni2   t   volume_per_atomg      Y@t   random_u_isot   crystal_symmetryt   d_ming      ø?t   reflections_per_bing      ð?g      @gffffffÖ?g      T@i    i   i
   t   xray_structuret   f_obst   k_isotropict   k_anisotropict   k_maskt   use_lattice_symmetryt   f_calct   f_maskt   r_free_flagst   bin_selectionst   number_of_cyclesiô  t   auto_convergence_toleranceg•Ö&è.>t   sst   try_polyt   try_expanalt
   try_expmint   verbosegVñFæ‘?8?gñhãˆµøä>gñhãˆµøô>giUMu?(2   R   R
   R   R   t   TrueR   t,   random_traceless_symmetry_constrained_b_cartR   t   u_cart_as_u_start	   unit_cellt   b_as_ut   structure_factorsR   t   mmtbxt   f_modelt   extR   t   indicest   setup_binnert   binnert
   range_usedt	   selectiont   appendt
   d_spacingst   dataR   t   pow2R   t   doublet   sizet   selectt   set_selectedt   meant   randomt   randintt   managert   abst   f_maskst   generate_r_free_flagst   FalseR   R   t   r_factort   AssertionErrorR   t   runt   r_finalt   r_lowt   r_hight   core(   R	   R
   t   xrst   b_cartt   u_start   FR   R   t   i_bint   selR2   R   t
   k_mask_tmpR   R   t   st   dt   fmodelR   R>   R*   R   R   t   aso(    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/bulk_solvent/tst_scaler.pyt   run_0   sp    			!" 	-		*t   __main__s   Time: %6.4ft   OK(   t
   __future__R    t   libtbx.test_utilsR   t   mmtbx.f_modelR)   R:   t   timet   scitbx.array_familyR   R   t   cctbxR   R   t   cctbx.developmentR   t   boost.pythont   boostt   pythont
   import_extR+   t   mmtbx.bulk_solventR   t   seedt   set_random_seedRS   t   __name__t   t0(    (    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/bulk_solvent/tst_scaler.pyt   <module>   s&   @