ó
Ž™xTc           @   s  d  d l  m Z d  d l Z e j j d ƒ rQ d  d l m Z d  d l m	 Z	 n d 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 „  Z d „  Z d „  Z d „  Z e d k re ƒ  n  d S(   iÿÿÿÿ(   t   divisionNt   ccp4io(   t   reflection_statistics(   t   mtz(   t   flex(   t   miller(   t   crystal(   t   sgtbx(   t	   subgroups(   t   debug_utils(   t   StringIOc         C   sV  t  j d |  j d d ƒ d |  ƒ } t j d | d | d d ƒ } t j d	 | d
 t j d | j ƒ  j	 ƒ  ƒ ƒ } | j
 ƒ  } g  } g  } t j |  ƒ j ƒ  } xª t | ƒ D]œ \ }	 }
 | j d t j d |
 ƒ ƒ j ƒ  j ƒ  j ƒ  j ƒ  } d |	 } | j d d ƒ j ƒ  j d | ƒ } | j | j ƒ  j
 ƒ  j ƒ  ƒ | j | ƒ q¬ W| | f S(   Nt	   unit_cellt   volumeiè  t   space_group_infot   crystal_symmetryt   anomalous_flagt   d_mini   t
   miller_sett   datat   sizet   groups   tmp_refl_stats%d.mtzt   column_root_labelt   FOBSt	   file_name(   R   t   symmetryt   any_compatible_unit_cellR   t	   build_sett   arrayR   t   random_doublet   indicesR   t   expand_to_p1R   t   groups_parent_settingt	   enumeratet   customized_copyR   R   t   merge_equivalentst   as_reference_settingt#   set_observation_type_xray_intensityt   as_mtz_datasett
   mtz_objectt   writet   appendt	   f_sq_as_ft
   map_to_asu(   R   R   R   R   t   miller_arrayt   miller_array_p1t   miller_arrayst
   file_namest   subgrst
   i_subgroupt   subgroupt   subgroup_miller_arrayR   R&   (    (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/regression/tst_reflection_statistics.pyt   generate_mtz_files   s0    					!	-
	c         C   s!  t  ƒ  } z$ | t _ t j d d g | ƒ Wd  t j t _ d sH | ra t j j | j ƒ  ƒ n  Xt ƒ  } xf| j ƒ  j	 ƒ  D]R} | j
 d ƒ r~ | j ƒ  d d !\ } } }	 }
 } d j | | |	 g ƒ } t |
 ƒ }
 | | k r|
 d k rt | j ƒ  ƒ ‚ n  | j | ƒ n  | d k s(t ‚ | d	 k rÐt | ƒ d t |	 ƒ d } }	 | |	 j | ƒ j ƒ  j ƒ  } | | j d | ƒ \ } } t d | j | ƒ j ƒ  ƒ |
 k rÍt | j ƒ  ƒ ‚ qÍqÐq~ q~ Wt | ƒ } | | d d } |  r| d 9} n  t | ƒ | k st ‚ d  S(   Nt   argss!   --lattice_symmetry_max_delta=0.01i    s   CC i   i   t    g      ð?t   Obst   Anot   others   %6.3fi   (   R6   R7   (   R
   t   syst   stdoutR   t   runt
   __stdout__R'   t   getvaluet   sett
   splitlinest
   startswitht   splitt   joint   floatt   AssertionErrort   stript   addt   intt   change_basisR   R*   t   common_setst   correlationt   coefficientt   len(   R   R-   R.   t   verboset   outt   donet   linet   typet   it   jt   cct   cb_opt   keyt   ma_jt   ma_it   nt   expected_number_of_cc_lines(    (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/regression/tst_reflection_statistics.pyt   exercise_reflection_statistics/   s<    				"!%c      
   C   s�   xˆ t  t g D]z } |  j r, | Gd G| GHn  | rJ | j ƒ  j ƒ  rJ q n  t d | d | ƒ \ } } t d | d | d | d |  j ƒ q Wd  S(   Ns   anomalous_flag:R   R   R-   R.   RM   (   t   Falset   Truet   VerboseR   t
   is_centricR3   R[   (   t   flagsR   R   R-   R.   (    (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/regression/tst_reflection_statistics.pyt   run_call_backU   s    	 c           C   s0   t  d  k r d GHd  St j t j d t ƒ d  S(   NsL   Skipping iotbx/regression/tst_reflection_statistics.py: ccp4io not availablei   (   R   t   NoneR	   t   parse_options_loop_space_groupsR9   t   argvRa   (    (    (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/regression/tst_reflection_statistics.pyt   exercisec   s    c           C   s   t  ƒ  d GHd  S(   Nt   OK(   Re   (    (    (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/regression/tst_reflection_statistics.pyR;   k   s    t   __main__(   t
   __future__R    t   libtbx.load_envt   libtbxt   envt
   has_modulet   iotbx.command_lineR   t   iotbxR   Rb   t   cctbx.array_familyR   t   cctbxR   R   R   t   cctbx.sgtbxR   t   cctbx.developmentR	   t	   cStringIOR
   R9   R3   R[   Ra   Re   R;   t   __name__(    (    (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/regression/tst_reflection_statistics.pyt   <module>   s(   		&			