ó
Ç™xTc           @   sá   d  d l  m Z d  d l m 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
 d „ Z d d d d „ Z d d d „ Z d „  Z d „  Z d „  Z e d k rÝ e ƒ  n  d S(   iÿÿÿÿ(   t   division(   t   flexN(   t   xray(   t   crystal(   t   max_like_non_uniform(   t   random_structure(   t   debug_utilsid   gÍÌÌÌÌÌü?c         C   sX  xQd D]I} | d k r" d } n d } x%d D]} t  j d |  d	 | g | d
 | d t ƒ } | j d | d t d d ƒ j ƒ  } t j d | d | d | j ƒ  | ƒ } | j ƒ  }	 |	 j	 ƒ  }
 |
 j
 ƒ  j ƒ  d k r"|
 j |
 ƒ } t j t j | j ƒ  |
 j ƒ  ƒ ƒ d k  s"t ‚ n  t j t j |	 j ƒ  ƒ ƒ d k  s/ t ‚ q/ Wq Wd  S(   Ni   i
   g      0@g      @t   Ct   Ot   Nt   space_group_infot   elementst   volume_per_atomt   random_u_isot   d_mint   anomalous_flagt	   algorithmt   fftt	   structuret   fot	   grid_stepi    g�íµ ÷Æ°>g      ð?(   i   i
   (   R   R   R	   (   R   t   xray_structuret   Falset   structure_factorst   f_calcR   t   ordered_solvent_distributionR   t   fcalc_from_distributiont   select_centrict   indicest   sizet   phase_transferR   t   maxt   abst   datat   AssertionError(   R
   R   R   t   n_atomst   denomt   elementR   t   fct   managert   f_water_distt   centricst   ideal(    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/max_lik/tst_max_lik.pyt   test_less_one   s.    				7i2   g       @c      
   C   s@  d } x3| D]+} t  j d d ƒ } t j d	 | j ƒ  d
 d g |  d | d t ƒ } | j d | d t d d ƒ j ƒ  } t j	 d | d | d | ƒ } | j
 ƒ  }	 |	 j ƒ  }
 |
 j ƒ  j ƒ  d k r|
 j |
 ƒ } t j t j | j ƒ  |
 j ƒ  ƒ ƒ d k  st ‚ n  t j t j |	 j ƒ  ƒ ƒ d k  s t ‚ q Wd  S(   Ngš™™™™™É?gš™™™™™Ù?g333333ã?gffffffæ?gÍÌÌÌÌÌì?g      ð?t   space_group_symbolt   P1R
   R   R   R   R   R   R   R   R   R   R   R   i    g�íµ ÷Æ°>(   gš™™™™™É?gš™™™™™Ù?g333333ã?gffffffæ?gÍÌÌÌÌÌì?g      ð?(   R   t   symmetryR   R   R
   R   R   R   R   R   R   R   R   R   R   R   R   R    R!   R"   (   t   n_sitesR   R   R   t   stepR.   R   R&   R'   R(   R)   R*   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/max_lik/tst_max_lik.pyt   test_grid_step3   s(    			7g333333ã?g      @c         C   s¶  d } |  j  ƒ  j ƒ  j ƒ  } | d k r²x…| D]z} xq| D]i} x`| D]X} t j d |  j d d	 ƒ d
 |  ƒ } t j d | ƒ }	 t j d | | | f d d d d d d ƒ }
 |	 j	 |
 ƒ |	 j
 d | d t d d ƒ j ƒ  } t j d |	 d | d | ƒ } | j ƒ  } | j ƒ  } | j ƒ  j ƒ  d k ry| j | ƒ } t j t j | j ƒ  | j ƒ  ƒ ƒ d k  syt ‚ n  t j t j | j ƒ  ƒ ƒ d k  sK t ‚ qK Wq> Wq1 Wn  d  S(   NgÍÌÌÌÌÌð¿gš™™™™™¹¿g        gÍÌÌÌÌÌð?gš™™™™™¹?i   t	   unit_cellt   volumeiÐ  R
   t   crystal_symmetryt   sitet   ut	   occupancyg      ð?t   scattering_typeR   R   R   R   R   R   R   R   i    g�íµ ÷Æ°>(   gÍÌÌÌÌÌð¿gš™™™™™¹¿g        gÍÌÌÌÌÌð?gš™™™™™¹?(   t   typet   groupt   n_smxR   R.   t   any_compatible_unit_cellR   R   t	   scatterert   add_scattererR   R   R   R   R   R   R   R   R   R   R   R   R    R!   R"   (   R
   R0   R   t   rt   n_symt   xt   yt   zR.   R   R=   R&   R'   R(   R)   R*   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/max_lik/tst_max_lik.pyt   test_rQ   s8    					7c         C   s   t  d | ƒ d  S(   NR
   (   R+   (   t   flagsR
   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/max_lik/tst_max_lik.pyt   run_call_back{   s    c         C   s   t  d | ƒ d  S(   NR
   (   RD   (   RE   R
   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/max_lik/tst_max_lik.pyt   run_call_back_1~   s    c           C   sV   t  j t j d t d t d t ƒt  j t j d t d t d t ƒt ƒ  d GHd  S(   Ni   t   symbols_to_stdoutt   symbols_to_stderrt   OK(	   R   t   parse_options_loop_space_groupst   syst   argvRG   t   TrueR   RF   R1   (    (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/max_lik/tst_max_lik.pyt   run�   s    t   __main__(   t
   __future__R    t   cctbx.array_familyR   RL   t   cctbxR   R   t   mmtbx.max_likR   t   cctbx.developmentR   R   R+   R1   RD   RF   RG   RO   t   __name__(    (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/max_lik/tst_max_lik.pyt   <module>   s&   %(			