ó
Ü™xTc           @   sU  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 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 „  Z d „  Z d „  Z e d k rQe j ƒ  Z e j e j d e d e  d e! ƒe e j	 d ƒ ƒ d e j ƒ  e GHn  d S(   iÿÿÿÿ(   t   division(   t   flex(   t   miller(   t   random_structure(   t   space_group_infoNt   cctbx_asymmetric_map_ext(   t   composite_omit_map(   t   maptbx(   t   debug_utils(   t   sgtbxc         C   sn  |  j  d |  j ƒ  d d ƒ } t j d | d |  ƒ } | j ƒ  | j ƒ  } t j d | d | ƒ } | j ƒ  | j ƒ  } | j ƒ  | j ƒ  k s˜ t ‚ | j ƒ  | j ƒ  k s¶ t ‚ t	 j
 ƒ  } x¥ | j ƒ  D]— } t j d |  j ƒ  d | j ƒ  d | j ƒ  d	 t	 j | g ƒ d
 t	 j
 d g ƒ ƒ }	 t	 j d | j |	 ƒ d | j |	 ƒ ƒ j ƒ  }
 | j |
 ƒ qÏ W| S(   Nt   d_mint   resolution_factorg      Ð?t   crystal_griddingt   fourier_coefficientst	   unit_cellt
   fft_n_realt
   fft_m_realt
   sites_cartt
   site_radiig      ø?t   xt   y(   R   R
   R   t   fft_mapt   apply_sigma_scalingt   real_map_unpaddedt   focust   AssertionErrort   allR   t   doubleR   R   t   grid_indices_around_sitesR   t   vec3_doublet   linear_correlationt   selectt   coefficientt   append(   t   mc1t   mc2t   xrsR   R   t   m1t   m2t   ccst	   site_cartt   selt   cc(    (    sQ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/maps/tst_composite_omit_map_3.pyt   get_cc   s2    			
		
	0c         C   su  t  j d |  d d d t d d+ d
 d d ƒ } | j d d ƒ t | j d d ƒ j ƒ  ƒ } t j j	 d | d | ƒ } | j
 ƒ  | j ƒ  j d d d t d t d t ƒ } | j ƒ  j d | j ƒ  j ƒ  d t j d d ƒ } t j d | d | j ƒ  d d d t d d  d! d" d# d$ d% t ƒ } t d& | d' | j d( | ƒ } | d) k j t ƒ | j ƒ  k sqt t | ƒ ƒ ‚ d* S(,   sL   
  Make sure it work for all space groups and boxes with non-zero origin.
  R   t   volume_per_atomi2   t   general_positions_onlyt   elementst   Ct   Nt   Ot   Si
   t   min_distanceg      ø?t   tablet   wk1995R
   i   t   xray_structuret   f_obst   map_types   2mFo-DFct
   isotropizet   exclude_free_r_reflectionst   fill_missingt   symmetry_flagsR   g      Ð?R   t   fmodelt   Fot   full_resolution_mapt   n_debias_cyclesi   t    neutral_volume_box_cushion_widthi    t   box_size_as_fractiongš™™™™™¹?t   logR"   R#   R$   gš™™™™™é?N(   R/   R0   R1   R2   (   R   R6   t   Falset   scattering_type_registryt   abst   structure_factorst   f_calct   mmtbxt   f_modelt   managert   update_all_scalest   electron_density_mapt   map_coefficientsR7   R   R
   R   t   use_space_group_symmetryt   cfomt   runt	   deep_copyR+   t   countt   Truet   sizeR   t   list(   R   R$   R7   R=   R"   R   t   rR'   (    (    sQ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/maps/tst_composite_omit_map_3.pyRQ   *   s@    	
		
					c         C   s   t  | ƒ d  S(   N(   RQ   (   t   flagsR   (    (    sQ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/maps/tst_composite_omit_map_3.pyt   run_call_backR   s    t   __main__i   t   symbols_to_stdoutt   symbols_to_stderrs   R3:Rs   Time: %6.4f("   t
   __future__R    t   scitbx.array_familyR   t   cctbxR   t   cctbx.developmentR   t   cctbx.sgtbxR   t   boost.pythont   boostt   pythont
   import_extt   asu_map_extt
   mmtbx.mapsR   RP   R   t   mmtbx.f_modelRI   t   timet   sysR   R	   R+   RQ   RY   t   __name__t   t0t   parse_options_loop_space_groupst   argvRT   RD   (    (    (    sQ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/maps/tst_composite_omit_map_3.pyt   <module>   s*   		(	