ó
È™xTc           @   sµ   d  d l  m Z 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 d	 d
 d „ Z d „  Z d „  Z e d k r± e ƒ  n  d S(   iÿÿÿÿ(   t   division(   t   xray(   t   flexN(   t   random_structure(   t   debug_utilsid   g       @i2   g333333Ó?c         C   s@  d  } x3| D]+} d G| GHt  j d |  d d	 g | d
 | d t ƒ } | j d | d t ƒ j ƒ  } t t | j ƒ  j	 ƒ  d | ƒ ƒ }	 t
 j d | ƒ }
 |
 j | j ƒ  |	  ƒ |
 j d | d t ƒ j ƒ  } t | ƒ } t | ƒ } t j | j ƒ  j	 ƒ  t ƒ } xM t | j ƒ  j	 ƒ  ƒ D]3 } t j ƒ  d | k  rJt | | <q!t | | <q!Wt j d | d | d d d | ƒ j d t ƒ \ } } t j d | d | d | ƒ j d t ƒ \ } } t j | j ƒ  ƒ d k sßt ‚ | j	 ƒ  | j	 ƒ  k sýt ‚ | j	 ƒ  t | j ƒ  ƒ j d ƒ k s*t ‚ t | ƒ t | ƒ k sHt ‚ t | ƒ | j	 ƒ  k sft ‚ t | ƒ d k s~t ‚ t | ƒ d k s–t ‚ t | ƒ d k rºt | ƒ d k sÀt ‚ t j d | d | j ƒ  j	 ƒ  |	 d |	 d d d d ƒ j ƒ  \ } } t j d | d | d | ƒ j d t ƒ \ } } t j | j ƒ  ƒ d k sWt ‚ | j	 ƒ  | j	 ƒ  k sut ‚ | j	 ƒ  t | j ƒ  ƒ j d ƒ k s¢t ‚ t | ƒ t | ƒ k sÀt ‚ t | ƒ | j	 ƒ  k sÞt ‚ t | ƒ d k söt ‚ t | ƒ d k st ‚ t | ƒ d k r2t | ƒ d k s t ‚ q Wd  S(!   Ng{®Gáz„?gš™™™™™©?gš™™™™™¹?g      à?g333333ã?s   >>> FRACTION MISSING = t   space_group_infot   elementst   Ct   volume_per_atomt   random_u_isot   d_mint   anomalous_flagi   t   special_position_settingsg      ð?t   f_obst   f_calct   free_reflections_per_bini2   t   flagst   show_summaryt   alphat   betag        t   ft   n_atoms_absentt   n_atoms_includedt   bf_atoms_absentg      9@t   final_error(   g{®Gáz„?gš™™™™™©?gš™™™™™¹?g      à?g333333ã?(    R   t   xray_structuret   Truet   structure_factorst   FalseR   t   intt   roundt
   scattererst   sizeR   t	   structuret   add_scattererst   absR   t   boolt   indicest   xranget   randomt   maxlikt   alpha_beta_estt
   alpha_betat   f_star_w_start   fs_wst   mint   datat   AssertionErrort   listt   countt   lent   maxt   alpha_beta_calc(   R   t   n_sitesR
   R   t   test_fractiont   frmt   fraction_missingR!   R   t   n_keept   partial_structuret   f_calc_partialR   R   t   iR   R   t   f_start   wstar(    (    sT   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/max_lik/tst_maxlik_comprehensive.pyt   exercise
   sr    			&	!-*		!-c         C   s   t  d | ƒ d  S(   NR   (   R?   (   R   R   (    (    sT   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/max_lik/tst_maxlik_comprehensive.pyt   run_call_backX   s    c           C   s    t  j t j d t ƒ d GHd  S(   Ni   t   OK(   R   t   parse_options_loop_space_groupst   syst   argvR@   (    (    (    sT   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/max_lik/tst_maxlik_comprehensive.pyt   run[   s    t   __main__(   t
   __future__R    t   cctbxR   t   cctbx.array_familyR   RC   R'   R(   t   cctbx.developmentR   R   R?   R@   RE   t   __name__(    (    (    sT   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/max_lik/tst_maxlik_comprehensive.pyt   <module>   s   J		