ó
DxTc           @   s  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	 m
 Z
 d  d	 l	 m Z d  d
 l m Z d  d l Z d  d l Z d  d l m Z d  d l m Z m Z m Z m Z d  d l m Z m Z 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! Z! d  d l" Z" d   Z# d   Z$ d   Z% d   Z& d e' d  Z( d   Z) d   Z* d   Z+ d   Z, d   Z- d   Z. d   Z/ d   Z0 d   Z1 d    Z2 d! d" d d#  Z3 d$   Z4 d% d& d' d( d) g d% d* d+  Z5 d,   Z6 d! d" d d-  Z7 d. d* d d/  Z8 d0 d1  Z9 d. e: e: d2  Z; d3   Z< d4   Z= d5   Z> d6   Z? d7   Z@ d8   ZA d9   ZB d:   ZC d;   ZD d<   ZE d=   ZF d>   ZG d?   ZH d@   ZI dA   ZJ dB   ZK dC   ZL dD   ZM dE   ZN dF   ZO dG   ZP dH   ZQ dI   ZR dJ   ZS dK   ZT dL   ZU dM   ZV eW dN k reV dO e" jX dP  n  d S(Q   i’’’’(   t   division(   t   crystal(   t   miller(   t   xray(   t   maptbx(   t   sgtbx(   t   uctbx(   t   random_structure(   t   debug_utils(   t   flexN(   t   complex_math(   t   approx_equalt   not_approx_equalt	   show_difft   Exception_expected(   t   Sorryt   Keept   null_out(   t   Auto(   t   StringIOc       &   C   sž  t  j d= d  }  t j d> d? f  } t j |  |  } t j |  | t  } t j |  | t  } | j   | k s{ t	  | j
   t k s t	  | j   } | | k	 s± t	  | j   | j   k sĻ t	  | j   | j   k sķ t	  | j   | j   k st	  | j
   | j
   k s)t	  | j   } | j   j | j    sVt	  | j   | j   k stt	  t j | j   | j    d k st	  | j
   | j
   k s¼t	  t | j   j    d@ k sąt	  t | j   j    dA k st	  t | j   j   d d	 g  s+t	  t | j   j   d
 d g  sRt	  t t | j   j    dB  syt	  t t | j   j    dC  s t	  t | j   d  s»t	  t | j   d d g  sÜt	  t | j   dD  s÷t	  t | j   d  st	  t | j d d  d  s3t	  | j   } | j   j    | j    k ohd k n sst	  | j d t  \ } } | j   j! | j    s¬t	  t" |  d d d d d d g k sÖt	  | j# d t  } | j# d d  } | j# d d  } t$ | j%    t$ |  k s0t	  | j&   j    d k sNt	  t | j'   j    dE dF f k sxt	  t | j' d t  j    dG dH f k sØt	  t | j' d t  j' d d  j    dI dJ f k sät	  t | j' d t  j' d d d t  j    dK dL f k s&t	  t j |  | t  } | j(   } t) | j    d k set	  | j   | j   k st	  | j*   dM dN f k s”t	  | j+   } | j,   }	 |	 dO k sĖt	  |	 d k sŻt	  | j, d  d!  }	 |	 d k r|	 d! k st	  | j- | j.    j,   }	 |	 d k s;t	  | j/   }
 t j | j   |
 j    d k sqt	  | j0   }
 t j | j   |
 j    d k s§t	  t j |  |  j1   j
   t k sŃt	  | j2 t j dP dQ dR f   t j |  |  }
 |
 j3   d k st	  |
 j1   j
   t k s8t	  |
 j1 d' d  j
   t k s\t	  |
 j1 d' d  j
   t k st	  |
 j1 d( dT  j
   t k s¤t	  |
 j1 d( dV  j
   t k sČt	  t4   } | j5 d+ |  t6 | j7   d, t) t   st	  t4   } | j- t j8 d g   j5 d+ |  t6 | j7   d- t) t   s[t	  | j9 d. d/  }	 |	 j   j t: j dW   st	  | j; d1 t< j d2 d3   } | j=   j   j! t j> t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t g$   sE	t	  | j= d4 t  j   j! t  sl	t	  | j?   } t) | j    d k s	t	  | j=   j   j! t  s·	t	  | j; d5 t j dX dY g   } xQ t t g D]C } | j@ d6 |  j   } | j   jA dZ | d |  så	t	  qå	Wt j d7 |  d5 t j d[ d\ f  d8 t  } | jB } t" |    t t g k s
t	  t" | d9 d d: d   t t g k s°
t	  t" | d9 d;   t t g k s×
t	  t" | d9 d<   t t g k sž
t	  t" | d: d;   t t g k s%t	  t" | d: d<   t t g k sLt	  t" | d9 d< d: d;   t t g k syt	  t" | d9 d; d: d<   t t g k s¦t	  |  jC d5 t j d] g  d8 t  } | j   j    d k sčt	  | j
   sśt	  d  S(^   Ni   i   i   s   P 2 2 2i   i   i    gń
éWē?g{®Gįzä?g ¬÷ić?gü©ńŅMbą?gj¾J>v×ņ?g      ō?g&šĖWĒ?g{®GįzÄ?g#Pm0:§@t	   toleranceg¹?g&0c õ @i   t   return_iselectiont   auto_binningt   reflections_per_bint   n_binsi   i	   t   reverset   by_valuet   packed_indicess   P m m mg     jų@t
   multiplierid   i’’’’iž’’’iż’’’iü’’’iū’’’t   min_n_bijvoet_pairst   min_fraction_bijvoet_pairsg      @g-Cėā6?t   fs  Number of Miller indices: 36
Anomalous flag: %s
Unit cell: (3, 4, 5, 90, 90, 90)
Space group: P 2 2 2 (No. 16)
Systematic absences: 0
Centric reflections: 27
Resolution range: 5 1.1776
Completeness in resolution range: 1
Completeness with d_max=infinity: 1
sÖ   Number of Miller indices: 1
Anomalous flag: %s
Unit cell: (3, 4, 5, 90, 90, 90)
Space group: P 2 2 2 (No. 16)
Systematic absences: 0
Centric reflections: 1
Resolution range: 5 5
Completeness with d_max=infinity: 1
t   cb_ops   k,h,-liZ   t   space_group_infot   numberi   t   integral_onlyt   indicest   degt   crystal_symmetryt   anomalous_flagt   d_maxt   d_mingń?g333333ó?(   i   i   i   (   i   i   i   (   i    i    i   (   i   i   (   i   i   (   gj¾J>v×ņ?g      ō?(   g&šĖWĒ?g{®GįzÄ?(   g      ō?gj¾J>v×ņ?(   i    i    i   (   i   i   i   (   i   i   i   (   i    i    i   (   i    i    i   (   i   i   i   (   i   i   i   (   i    i    i   (   i    i    i   (   i   i   i   g    šiųĄ(   i’’’’iž’’’iż’’’(   i   i   i   (   iż’’’iü’’’iū’’’gé?gø@āĒé?gé?g|ņ°Pké?(   i   i   i   iZ   iZ   iZ   (   i   i   i   (   i    i    i   (   i    i    i   (   i   i   i   (   i    i    i    (   i   i   i   (D   R   t   symmetryR	   t   miller_indexR   t   sett   Falset   TrueR$   t   AssertionErrorR'   t   copyt	   unit_cellR!   t	   deep_copyt   is_similar_tot   space_groupt   ordert   tuplet   multiplicitiest   datat   epsilonsR   t	   d_star_sqt   d_star_cubedt
   d_spacingst   sin_theta_over_lambda_sqR)   t	   d_max_mint   resolution_ranget!   minimum_wavelength_based_on_d_mint   expand_to_p1t   sizet   all_eqt   listt   setup_binnert   idt   binnert   limitst   sortt   patterson_symmetryt   strt   min_max_indicest   complete_sett   completenesst   selectt   all_selectiont
   map_to_asut   remove_systematic_absencest   auto_anomaloust   extendt   n_bijvoet_pairsR   t   show_comprehensive_summaryR   t   getvaluet   size_tt   change_basisR   t   customized_copyR   t   sys_absent_flagst   boolt   reflection_intensity_symmetryt0   random_phases_compatible_with_phase_restrictionst   is_valid_phaset   resolution_filter_selectiont
   miller_set(   t   xst   mit   mst   mct   p1t   p1bt
   iselectiont   bt   mpt   ct   mat   st   rR%   t   p(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   exercise_set   sī    !*$$'''!4!*$*0***					
	%	$-'!!)			!-''''--$c          C   sr  t  j d d d d  }  t j |  t j    } t j d | g  } | j |  sZ t  t	 | j
    d k sx t  t j |  t j d d f   } t j d | g  } t | j
    d d g k sŅ t  t j d | | g  } t | j
    d d g k st  t j |  t j d d f   } t j d | | g  } t | j
    d d d g k snt  d  S(   NR1   i
   iZ   t   space_group_symbolt   P1t   miller_setsi    i   iž’’’i   iü’’’iū’’’(   i
   i
   i
   iZ   iZ   iZ   (   i   iž’’’i   (   i    i    iü’’’(   i    i    iü’’’(   i   iž’’’i   (   i    i    iü’’’(   i   iž’’’i   (   i   iž’’’i   (   i    i    iū’’’(   i    i    iū’’’(   i    i    iü’’’(   i   iž’’’i   (   R   R*   R   R,   R	   R+   t   union_of_setst   is_similar_symmetryR/   t   lenR$   t   sorted(   Rb   Rd   t   ut   ms2(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   exercise_union_of_setsØ   s    !$$!c          C   sč   d d l  m }  t j d d  } t j d d f  } t j d  } t j d  } t j | |  } t j	 |  } t j	 | d | d | j
 |  j    } | j   } | j   d	 d	 k sČ t  | j   d d	 k sä t  d  S(   Ni’’’’(   t   observation_typesi   i   i   s   P 2 2 2i   iž’’’i    iü’’’i   R8   t   sigmas(   i   i   i   (   i   iž’’’i   (   i    i    iü’’’(   i’’’’iž’’’(   i   i   (   t
   cctbx.xrayR{   R   R*   R	   R+   t   doubleR   R,   t   arrayt   set_observation_typet	   intensityt   enforce_positive_amplitudesR8   R/   (   R{   Rb   Rc   R8   R|   Rd   Rl   t   new_ma(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt$   exercise_enforce_positive_amplitudes·   s    c   	      C   sp  xit  t g D][} |  j d d  } t j d | j   d t j d   } t j	 d | d	 | d
 d  } | j
 d t   } | j | j    } | j d | d | j   d t j | j   j   d  d t j | j   j   d   } | j   j   } | j   } | j   j   | j   j   k s3t  t j	 d | d	 | d
 d  } | j
 d t   } | j d d  d d  d t  d d  } t t | j   j    | j   j d  d d d sĒt  t t | j   j    | j   j d  d d d st  t t | j   j    | j   j d  d d d sGt  | j   j d  d k s t  q Wd  S(   Nt   volumei2   iP   id   R1   R4   Rr   R&   R'   R)   g      @t   use_lattice_symmetryR$   R8   g       @R|   g      š?t   fractiont   max_freet   return_integer_arrayt   n_partitionsi   i    t   epsg¹?i   i   i   i (   R.   R-   t   any_compatible_crystal_symmetryR   R*   R1   R   R4   R   t	   build_sett   generate_r_free_flagsRO   R8   RZ   R$   R	   R~   RB   t   merge_equivalentsR   RA   R/   t)   generate_r_free_flags_on_lattice_symmetryt   NoneR   t   floatt   count(	   t   sg_infot   an_flagt   full_xst   low_xsRa   t
   free_flagst   fake_data_in_lat_symt   fake_data_in_p1t   integer_flags(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt(   exercise_generate_r_free_flag_on_lat_symÅ   sF    			!*				===i    c         C   s¾  xt  t g D]u} t j d t j d d* d d  d	 | d
 d  } x<t d  D].} | d k rk | } nc | j t j	 d | j
   j     } | d k rĪ | j t j d | j
   j    d k   } n  | j d |  } | d k rĪt   } | j d | d d  |  r*t j j | j    n  | j   j   } t |  d k sTt  x# | D] }	 |	 j d  s[t  q[W| j   }
 |
 j j   |
 j j   k sŖt  |  rĪd Gt |
 j |
 j  GHqĪn  | s%| d k  r| j
   j   d k sžt  | j   j t  d k s"t  qnt| d k  rR| j
   j   d k sRt  n  | j   \ } } | j   j | j    st  | d k  rĪ| j   j t  | j    j   j t  d k sĪt  n  | j!   } | d k  r^| j
   j   d k st  | j   j t  d k s%t  | j"   j# |  } | j   j | j    s^t  n  | j t j$ | j
   j   | j%   d j& d    } | j' d d d t  } | j   j(   } | d | d  } t j) |  d k sšt  t j* |  d  k st  | j d! d d |  } | sM| j   j t  d k s~t  qP d | j   j t  k osd  k n sP t  qP Wq Wx1t  t g D]#} t j d t j d d+ d d  d	 | d
 d"  } | j d# d$ d! d% d t d& d'  } | j d# d$ d! d% d t d& d(  } t+ | j   t j,  s/t  t+ | j   t j,  sMt  | rn| j!   } | j!   } n  y. | j d# d$ d! d% d t d) t d& d(  } Wn t- k
 rÆqXt.  qWd  S(,   NR&   R1   gC,<@gV-²mJ@gś~j¼t;Q@iZ   Rq   s
   P 21 21 21R'   R)   i   i
   i    RB   i   gé?R   t   outt   prefixs   $#i   s   r_free_flags_accumulation:i   i   iŌ   i   t   -R   t
   resolutionR   i’’’’i   R   g      š?R   g¹?iŠ  t   formatt   shelxt   ccp4t   use_dataman_shells(   gC,<@gV-²mJ@gś~j¼t;Q@iZ   iZ   iZ   (   gC,<@gV-²mJ@gś~j¼t;Q@iZ   iZ   iZ   (/   R-   R.   R   R   R   R*   t   xrangeRO   R	   t   random_permutationR$   RB   t   random_doubleR   R   t   show_r_free_flags_infot   syst   stdoutt   writeRW   t
   splitlinesRv   R/   t
   startswitht   r_free_flags_accumulationt   reflection_countst   free_fractionst   zipR8   R   t   hemispheres_acentricsRC   t   select_centrict   average_bijvoet_matest   generate_bijvoet_matest	   adopt_setR\   t   match_bijvoet_matest   pairs_hemisphere_selectionRI   Rh   t   mint   maxt
   isinstancet   intR   R   (   t   verboseR   R'   Ra   t   i_trialt	   trial_sett   flagsR   t   linest   linet   accut   fpt   fmt   flags_non_anomaloust	   flags_gent   iselt   flag_distancest   flags1t   flags2t
   flags1_avet
   flags2_ave(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   exercise_generate_r_free_flagsó   sø    					!*	 $'!!+!	$ $9									 c          C   sē  t  j d d d d  }  xt t g D]} t j d |  d | d d  } | j d	 d
  t   } | j   j	 d | d d  | j
   d k s t  t   } | j   j	 d | d d d d  | j
   d k sŁ t  t j d |  d | d d  } | j |  t   } | j d t  j d | d d  | j
   d k sGt  | j d t  j d d  } | j   d d d g d d d g d d d g d d  d g g k s­t  t   } | j d t  j d! t d |  | j
   d" k sšt  t   } | j d t  j d! t d | d d# d$ d%  | j
   d& k s?t  t   } | j d t  j d' t d |  | j
   d( k st  t   } | j d t  j d) t d |  | j
   d* k sÅt  t   } | j d t  j d! t d' t d) t d |  | j
   d+ k st  t   } | j d t  j d, t d) t d |  | j
   d- k s]t  t   } | j d t  j d! t d d. d) t d |  | j
   d/ k s% t  q% W| j d0 t j    } | j |  t   } | j d t  j d |  | j
   d1 k st  t j | j    } t j |  } t   } | j   j	 d |  t   } | j	 d |  t | j
   | j
    st  t d2 d3 d2 g d2 d3 d2 g d2 d3 d2 g d2 d3 d3 d2 g d2 d4 d2 g d2 d4 d2 g d2 d4 d2 g d2 d3 d3 d3 d2 g d2 d4 d3 d2 g d2 d
 d2 g d2 d
 d2 g d2 d
 d2 g d2 d3 d3 d3 d3 d2 g d2 d4 d4 d2 g d2 d5 d2 g d2 d5 d2 g d2 d5 d2 g d2 d5 d2 g d2 d3 d3 d3 d3 d3 d2 g d2 d4 d3 d4 d2 g d2 d
 d4 d2 g d2 d6 d2 g d2 d6 d2 g d2 d6 d2 g d2 d6 d2 g g  }	 x t d3 d7  D] }
 | j t j t |
    } xg t d3 |
 d3  |
 d3 |
 d g D]@ } | j d8 |  t | j   j    |	 j    k sOt  qOWqW| j d9 d: d d; d8 d
  t | j   j    d4 d
 d4 d3 g k sćt  d  S(<   NR1   s   14.311  57.437  20.143Rq   s   C m c mR&   R'   R)   i
   R   i   R   R   s   ..sŖ   ..unused:         - 28.7186 [0/0]
..bin  1: 28.7186 - 14.1305 [3/3]
..bin  2: 14.1305 - 11.4473 [3/3]
..bin  3: 11.4473 - 10.0715 [2/2]
..unused: 10.0715 -         [0/0]
t    t   bin_range_ast   stols„    unused:         -  0.0174 [0/0]
 bin  1:  0.0174 -  0.0354 [3/3]
 bin  2:  0.0354 -  0.0437 [3/3]
 bin  3:  0.0437 -  0.0496 [2/2]
 unused:  0.0496 -         [0/0]
i   t   use_binnings   . sĀ   . unused:         - 28.7186 [0/0]
. bin  1: 28.7186 - 14.1305 [3/3] 1.000
. bin  2: 14.1305 - 11.4473 [3/3] 1.000
. bin  3: 11.4473 - 10.0715 [2/2] 1.000
. unused: 10.0715 -         [8/8] 1.000
t
   data_labelt   Completenesss   Resolution ranges   N(obs)/N(possible)s   28.7186 - 14.1305s   [3/3]s   1.000s   14.1305 - 11.4473s   11.4473 - 10.0715s   [2/2]t   show_bin_numbers           - 28.7186 [0/0]
28.7186 - 14.1305 [3/3] 1.000
14.1305 - 11.4473 [3/3] 1.000
11.4473 - 10.0715 [2/2] 1.000
10.0715 -         [8/8] 1.000
t	   two_thetat
   wavelengthg'I×L¾ę?s           -  1.4180 [0/0]
 1.4180 -  2.8822 [3/3] 1.000
 2.8822 -  3.5579 [3/3] 1.000
 3.5579 -  4.0441 [2/2] 1.000
 4.0441 -         [8/8] 1.000
t   show_d_ranges^   unused: [0/0]
bin  1: [3/3] 1.000
bin  2: [3/3] 1.000
bin  3: [2/2] 1.000
unused: [8/8] 1.000
t   show_countss   unused:         - 28.7186
bin  1: 28.7186 - 14.1305 1.000
bin  2: 14.1305 - 11.4473 1.000
bin  3: 11.4473 - 10.0715 1.000
unused: 10.0715 -         1.000
s   
 1.000
 1.000
 1.000
 1.000
t   show_bin_ranges@   unused:
bin  1: 1.000
bin  2: 1.000
bin  3: 1.000
unused: 1.000
R:   sr           -  0.0012
 0.0012 -  0.0050 1.000
 0.0050 -  0.0076 1.000
 0.0076 -  0.0099 1.000
 0.0099 -         1.000
R$   s²   unused:         - 28.7186 [0/0]
bin  1: 28.7186 - 14.1305 [0/3] 0.000
bin  2: 14.1305 - 11.4473 [0/3] 0.000
bin  3: 11.4473 - 10.0715 [0/2] 0.000
unused: 10.0715 -         [0/0]
i    i   i   i   i   i   R   R(   i   i   (!   R   R*   R-   R.   R   R   RE   R   RG   t   show_summaryRW   R/   t   use_binning_ofRN   t   showt   as_simple_tablet   exportRZ   R	   R+   t   picklet   dumpst   loadsR   t   iterR„   RO   RX   t   ranget   setup_binner_counting_sortedRD   t   countst   next(   R&   R'   t   set1Rm   t   set2t   tRo   t   lt   slt   expected_countst   nR   (    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   exercise_binnerR  s¼    							"				"				"				"		"											"$3ETr,2	c          C   s   t  j d d d d  }  t j |  d	 t d
 d } t j d t d d d t d t d t  } | j d | d d d d  j	   } | j
   d k s t  d  S(   NR1   g×ņAĻŅW@g³źsµX@gź46W@gX9“ČvĪ\@gųSć„“]@Rq   s   Hall: C 2y (x+y,-x+y+z,z)R'   R)   g      @t   use_space_group_symmetryt   use_space_group_ltri    t   use_seminvariantst   use_normalizer_k2lt   use_normalizer_l2nt   symmetry_flagst   resolution_factori   g      @t   mandatory_factorsi   id   (   g×ņAĻŅW@g×ņAĻŅW@g³źsµX@gź46W@gX9“ČvĪ\@gųSć„“]@gUUUUUUÕ?(   i   i   i   (   id   id   id   (   R   R*   R   R   R-   R   t   search_symmetry_flagsR.   t   crystal_griddingt   tagst   n_realR/   (   R&   t   f_obsRõ   t   crystal_gridding_tags(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   exercise_crystal_griddingė  s    					c    N      C   sā6  t  j dd  }  t j ddf  } t j d } t j d } t j |  |  } t j |  } t j | |  } t   } | j	 d | d d  t
 |  j   j   | j   j   j    sŹ t  |  j   j   j   | j   j   j   j   k st  | j   d k st  t j | | |  } | j d d k sNt  | j d d k sit  | j d	 d k st  t   } | j	 d | d d  | j   d k s»t  t j | | |  j d  } | j   | k sńt  | j   | k s	t  | j   | k s!t  | j   d k s9t  | j   d  k sQt  | j   d	 k sit  | j t j d d d d d d g   t | j    d k sÆt  | j   j    d k sĶt  | j t j d d d d d d g d t!   t | j    d k st  | j   j    d k s7t  | j | j   j" d t!   | j   j    d  k stt  | j d!  | j   d! k st  | j"   } | j   d  k s½t  | j" d" t#  } | j   d! k sēt  | j$   | j%   st  | j&   | j'   st  | j(   } t j) | j   | j    d k sUt  t j) | j   | j    d k st  | j   d! k st  | j'   s©t  | j*   }	 |	 j%   sĒt  |	 j*   |	 k sßt  |	 j+   }
 |
 j'   sżt  t
 |
 j   | j    st  |
 j+   |
 k s6t  |	 j,   |	 k sNt  | j-   s`t  | j- d# d$  sxt  | j- d# d$ d% d&  st  | j- d# d$ d% d'  sµt  | j- d# d(  sĪt  | j(   } | j. d
 } | j   j   | j   j   k od k n s#t  | j/ d) |  } | j   j   d k sSt  t j d* t j d+ t  j d, |	 j   d- d.  d/ |	 j    d0 |	 j    }	 |	 j,   } | |	 k	 sæt  t0 | j    dk sŻt  |	 j1   } | |	 k	 sūt  t0 | j    dk st  t   } |	 j, d1 | d d2  t2 | j   d3  sTt  t   } |	 j, d4 t! d1 | d d2  t2 | j   d5  st  |	 j" d0 t j3 ddg   }	 t   } |	 j, d1 | d d2  t2 | j   d8  sńt  |	 j" d0 t j4 d d9 g  d: t!  j5   j" d+ |	  }	 t   } |	 j, d1 | d d2  t2 | j   d;  set  x d  t6 t! g D] } | j7 d< |  } t0 | j    ddf k s±t  | d  k rį| j   j8 | j    s	t  qut
 | j   d= d	 g  sut  quWt j dddddf  } t j d } t j d } t j |  | d: t! } t j | | |  } | j   j9 j: dC k s	t  | j   j;   | j;   k s±	t  | j   j   | j   k sÕ	t  | j<   j   d  k só	t  | j=   } t0 | j    ddf k s#
t  t
 t0 | j    d sD
t  t
 t0 | j    t> j? dE  dB f  st
t  x| j@ dF  | j@ dG  f | jA   f D]Ų \ } } t0 | j    ddf k sĻ
t  t
 t0 | j    d sš
t  t
 t0 | j    d  st  t0 | j    d!d"f k s5t  t
 t0 | j    d# sVt  t
 t0 | j    d$ s
t  q
Wt
 | jB   dH  st  | jC   dI k s®t  t
 | jD   dJ  sÉt  t
 | jD dK t6  dL  sźt  | jE dM d  | jD dN t!  } t j d d@  } t j | | |  } | jC   dB k sKt  t j t  j   | d: t! } t j | | |  } | j=   } t0 | j    d%d&f k s®t  x| j@ dF  | j@ dG  f | jA   f D]Ų \ } } t0 | j    d'd(f k s	t  t
 t0 | j    d) s*t  t
 t0 | j    d* sKt  t0 | j    d+d,f k sot  t
 t0 | j    d- st  t
 t0 | j    d. sŁt  qŁWt
 | jB   dH  sŠt  t0 | jF    t! t! t! t! t! f k sżt  x­ | jG t jH t! t6 t6 t! t6 f   | jG t jI d/  f D]l } t0 | j    d0d1f k sgt  t
 t0 | j    d2 st  t
 t0 | j    d3 s=t  q=Wt jJ |  d: t6 dO d } | jK   sŚt  | jL   | k sņt  t j |  } | jM   } | j   j   | j   j   k s7t  | jM dB  } | j   j   d k sdt  | jM dO d	  } | j   j   dP k st  | jM dO d	 dQ t!  } | j   j   dR k sŹt  | jN   } t j | | j   | j   j(    } | j   j   dS k st  t j d4d5d6f  } | jO d/ |  jP dT dU  } | j   j   d	 k sot  t
 | j   d7d8f  st  | jO d/ | dV t!  jP dT dU  } | j   j   d k sŅt  t
 | j   d9d:d;f  söt  | jO d/ | dQ t!  } | j   j   dW k s,t  | jO d/ | dV t! dQ t!  } | j   j   dX k sht  x& | D] } | | j   k sot  qoWt j |  t j d<d=d>f   } t j | t j d? dY t j d@ } t j dB } y | jO d/ |  } Wn/ tQ k
 r5} t2 t |  d[  s<t  n XtR  | jS dB  } | j   j   dS k sit  | jS d	  } | j   j   d k st  x$ dCD] } | j   | c d <qW| jS d	  } | j   j   d k sźt  t
 | jT t6 t6  d`  st  t
 | jT t6 t!  da  s,t  | jE dM d  t
 | jT t! t6  j d d= !dD sgt  t
 | jT t! t!  j d d= !dE st  t
 | jU t6 t6  dh  s³t  t
 | jU t6 t!  di  sŌt  t
 | jU t! t6  j d d= !dF s’t  t
 | jU t! t!  j d d= !dG s*t  t
 | jV t6 t6  dp  sKt  t
 | jV t6 t!  dq  slt  t
 | jV t! t6  j d d= !dH st  t
 | jV t! t!  j d d= !dI sĀt  t
 | jW t6 t6  dx  sćt  t
 | jW t6 t!  dy  st  t
 | jW t! t6  j d d= !dJ s/t  t
 | jW t! t!  j d d= !dK sZt  t
 | jX t6 t6  d	 dh  st  t
 | jX t6 t!  d	 di  s¤t  t
 g  | jX t! t6  j d d= !D] } | d	 ^ qÄ| jU t! t6  j d d= ! süt  t
 g  | jX t! t!  j d d= !D] } | d	 ^ q| jU t! t!  j d d= ! sTt  x_t6 t! f D]Q} xHt6 t! f D]:}  | jY d= | |   } | j   j   d k s­t  | jY d | |  t6  } | j   j   | j   j   k sļt  | jY d= | |  dQ t! } | j   j   | j   j   k s4t  | jY d | |  dQ t! } | j   j   d k smt  | jY dI | |   } | j   j   dLdMf | |  k stt  qtWqaWt
 | jZ   d  sŃt  t   } | j[ d d	  j\ d |  t2 | j   d  st  t   } | j[ d d	 d t!  j\ d |  t2 | j   d  sYt  t
 t0 | jZ t!   dN s}t  | j]   }! t
 |! j   d d  sØt  t
 |! j   d d  sĒt  | j^ d d  }! t
 |! j   d d  sųt  t
 |! j   d d  st  | j^   }! t
 |! j   d d  sBt  t
 |! j   d d  sat  | d }" t
 t0 |" j    t0 | j   d   st  | | }" t
 t0 |" j    t0 | j   d	   s×t  t
 t0 |" j    t0 | j   t> j? d	    st  xd d g D]
}# xd d g D]ó }$ | j_ d |$  } | j` d |#  }% t
 | j   |% j    s|t  ta | j   |% j    st  t j | | j    j_ d |$  } | j` d |#  }% t
 | j   |% j    sōt  | j   d  k st  |% j   d  k s1t  q1WqWt j |  } | } | j   d  k sZt  | j   d  k srt  t j | t j dO  } | } | j   j8 | j    sµt  | j   d  k sĶt  t j | t j dP t j dQ  } | } | j   j8 | j    st  | j   j8 | j    s=t  t  j dRd  }  t j dSdTdUdVf  } t j |  |  } t j |  jb   } t0 | j    dWdXf k sµt  t j |  jb dQ t!  } t0 | j    dYdZf k sōt  t j | t j d[ t j d\  } | jP dT d  } t0 | j    d]d^d_d`f k sWt  t
 | j   da srt  t
 | j   db st  | jP dT d d t!  } t0 | j    dcdddedff k sĻt  t
 | j   dg sźt  t
 | j   dh st  | jP dT dU d t!  } t0 | j    didjdkdlf k sGt  | jP dT d0  } t
 | j   dm stt  | jP dT d0 d t!  } t
 | j   dn s§t  | jP dT d  } t
 | j   do sŌt  | jP dT d d t!  } t
 | j   dp st  | jP dT t j dq  } t0 | j    drdsdtduf k sLt  | jP dT t j dv d t!  } t0 | j    dwdxdydzf k st  | jc |  }	 t0 |	 j    t0 | j    k sŠt  t
 |	 j   | j    sńt  t
 |	 j   | j    s t  | jd d dP  } t
 t je | j    dP  sH t  t
 t je | j    d  sl t  | jd d d  } t
 t je | j    d  s¢ t  t
 t je | j    d  sĘ t  t j t j |  | t6  | |  jf   } t | j;    d  k s!t  | j   | k s&!t  | j   | k s>!t  | j   | k sV!t  t j t j |  t j d{d|f   t j d}  }& t j t j |  t j d~df   t j d t j d  }' t j t j |  t j ddddf   t j d t j d  }( |& jg d) |' d£ d\  }) |) j   |' j   k sL"t  t
 |) j   d sg"t  |' jg d) |& d£ d¤ d„ d¦  }* |* j   |& j   k s£"t  t
 |* j   d s¾"t  t
 |* j   d sŁ"t  |' jg d) |( d£ |( j   d„ |( j    }+ |+ j   |( j   k s!#t  t
 |+ j   d s<#t  t
 |+ j   d sW#t  |& jh |'  }, t0 |, j    dk s#t  t0 |, j    dk s¢#t  |' jh |&  }- t0 |- j    dk sĻ#t  t0 |- j    dk sķ#t  t0 |- j    dk s$t  |& ji |'  }. tj |. j    dg k s;$t  tj |. j    d	 g k s\$t  |' ji |&  }/ tj |/ j    dg k s$t  tj |/ j    d g k s­$t  |& jk |'  \ }. }/ tj |. j    dg k sć$t  tj |/ j    dg k s%t  t0 |, jc |-  j    dk s+%t  t j t j |  t j ddf  t6  t j d  }0 |0 j5 d§ t!  \ }1 }2 tj |2  d d d g k s%t  |1 j   j   d k s»%t  t
 t0 |1 j    d sÜ%t  |1 j   d  k sō%t  t j t j |  t j ddf  t6  t j d  t j d”  }0 |0 j5   }1 |1 j   j   d k sc&t  t
 t0 |1 j    d¢ s&t  t
 t0 |1 j    d£ s„&t  |0 j" d0 t jH t6 t! g  dY d   }0 |0 j5   }1 |1 j   j   d k sö&t  |1 j   j8 t jH t6 t! t! g   s#'t  |0 j" d0 t j4 d d g   }0 |0 j5   }1 |1 j   j   d k sn't  |1 j   j8 t j4 d d d g   s't  t  j d¤d  }  t j d„d¦f  } t j d§ } t j t j |  |  |  }3 t j dØ }4 |3 jl |4 d< t! }5 t
 |5 jm   j   |3 j    s:(t  t
 |5 jn   j   t jo |3 j     sj(t  t
 |5 jp d< t!  j   d© s(t  |4 t> jq d© }4 |3 jl |4 d< t6 }5 t
 t0 |5 jm   j    |3 j    sä(t  t
 t0 |5 jp d< t!  j    dŖ s)t  |3 jl |5 j    }6 t
 t0 |6 jm   j    |3 j    sS)t  t
 t0 |6 jp d< t!  j    d« s)t  t j d* |3 d0 t j3 d¬d­g   }3 |3 jr   }6 t
 |3 j   t js |6 j     sŻ)t  t jJ d+ t  j d, d®d- d®  d: t! dO d  } }7 t j d* | d0 t j tt | j   j      } | ju dÆ dP  j   j   d° k sn*t  | j$   | jv   j   j   dS k s*t  | jw   j   j   d k sĄ*t  | jE d± t!  jx d² t6 d³ t6  | jy   jx   d g dP k s+t  x~d d g D]p}8 |8 d k r5+| j_   } n  t
 | jz   d“  sP+t  t
 | j{   dµ  sk+t  | jE d± t!  jx d³ t6  t   } | jz dN t!  j\ d |  | j   d¶ k sÄ+t  t   } | j{ dN t!  j\ d |  | j|   \ }9 }: | jM dO d· dø |9  j}   }; | jM dO |: dø d·  j} dø d·  }< | jM   j}   }= t
 |; |< |= d¹  sl,t  | j   dŗ k s+t  q+W| jy   d  k	 s ,t  t~ j t~ j |   }> t   } t   }? | jy   j d |  |> jy   j d |?  t2 |? j   | j    s-t  | j   | jy   d  k s:-t  t~ j t~ j |   }> |> jy   d  k sj-t  t   } t   }? | j d |  j	 d |  |> j d |?  j	 d |?  | j   |? j   k sŅ-t  xJd d d	 g D]9}8 |8 d k r.t j d» | j   j    }@ nL |8 d k r0.|@ dB k  }@ n1 t j4 tj t j d» | j   j    d   }@ | j" d/ | j   j | j    d0 |@ j |@   }5 |5 j   }A t   } |A j dM d d¼ | d d½  |8 d k r’.t2 | j   j d¾ dæ  dĄ  s/t  qā-t2 | j   dĮ  sā-t  qā-W| j t j d dĀ dĆ t  j d, dÆdÅ dĘ    | j   sb/t  | j   } | j s~/t  | j s/t  t2 | j dĒ dČ  dÉ  s°/t  t  j d°d  }  t j d±d²f  } t j d³ } t j d“ j   } t j |  |  } t j | |  } | j   d  k s70t  t j | | |  } t
 | j   dŹ  sg0t  d | d <t
 | j   d  s0t  d= | d	 <t j | | |  } y | j   Wn t k
 rĢ0n XtR  t j |  d/ t j   j d0 t j   dY t j    } | j   d  k s$1t  t j | | d	   } | j d) |  }B |B j   s_1t  t j |  | d: t! } t j | | d	   } | j d) |  }B |B j   s±1t  | | }B t
 |B j   d d g  sÜ1t  | | j   }B t
 |B j   d d g  s2t  | j d0 t j3 dµd¶g  dY t j d·  } | j*   }B |B j%   s[2t  t
 |B j   død¹g  s|2t  t
 |B j   dŗ s2t  | j+   }C |C j'   sµ2t  t
 |C j   d d\ g  sÖ2t  t
 |B j+   j   d d\ g  sż2t  t
 |B j+   j   |C j    s$3t  t
 |C j*   j   d»d¼g  sK3t  |C j d   |C j   d  k sp3t  |C j |B j+   j    t
 |B j+   j   |C j    s°3t  t jJ d+ |  d: t6 dO d	  } | j   j   }D |D dP k sņ3t  t j dĖ d  }E | j d0 t j3 |E j |D  d	 d |E j |D  d	 d   }F | j d0 |E j |D   }G |F j*   } xn |F | g D]` }H | j dĢ |H  }I |I j t!  d k s«4t  |G j dĢ |H  }I |I j t!  d¢ k sx4t  qx4Wt  j d½dŠ  }  t j d¾dædĄdĮf  } t j |  | t6  } t j | d0 t j d d	 d d g  } | j dŃ dŅ dÓ d  }B t
 |B j   dI d g  s5t  | j dŃ dŌ dÕ d dÖ d	  }B t
 |B j   dI d¹ g  sĄ5t  t j d+ t  j d, dĀd- dŪ  d/ t j dĆdÄdÅdĘdĒdČdÉdŹdĖdĢdĶdĪf   } | j d0 t j dĻ dY t j dŠ  j&   }J | j d0 t j dŃ  j&   }K t   } |J j |K d¼ | }L |L j j   dÄ k s”6t  t2 | j   d s½6t  |J j dŅ }M |M då k sŽ6t  d  S(Ó  Ni   i   i   s   P 2 2 2i   iž’’’i    iü’’’i   g¹?gÉ?R   R   s   : s"   : (1, -2, 3) 1.0
: (0, 0, -4) 2.0
g       @s    :s*    :(1, -2, 3) 1.0 0.1
 :(0, 0, -4) 2.0 0.2
t   testt   sourcet   filet   labelst   aRi   Rk   s
   file:a,b,cs   a,b,ct   mergeds   file:a,b,c,mergeds   a,b,c,mergedt   systematic_absences_eliminateds+   a,b,c,merged,systematic_absences_eliminatedt   Testt   infot   epsilong333333Ć?t   critical_ratiogRøėQą?g\Āõ(\ß?g      Š?t   otherRa   R&   R1   Rq   t   F222R$   R8   t   logs   %^s   %^Removing 1 systematic absence:
%^  Average absolute value of:
%^    Absences: 1
%^      Others: 1.41421
%^       Ratio: 0.707107

R#   s   %^Removing 1 integral systematic absence:
%^  Average absolute value of:
%^    Absences: 1
%^      Others: 1.41421
%^       Ratio: 0.707107

y              š?y               @s   %^Removing 1 systematic absence:
%^  Average absolute value of:
%^    Absences: 1.41421
%^      Others: 2.82843
%^       Ratio: 0.5

i   R'   s#   %^Removing 4 systematic absences.

R%   i’’’’iż’’’i   g333333Ó?gŁ?g      ą?R,   g      šæg©?t   +R   g<ī„:.4ą?g      š?gfõOs?t   relative_to_complete_setgvWUUå?R   RŅ   R)   i
   t   negatei&   i0   R   R   t   map_indices_to_asui.   i-   R|   g333333ć?s\   cctbx.miller.array.select_indices(): This method can only be used reliably on a merged arrayi   i   i   i'   gkÉōQVś?g[R’j<ų?g°«ÉSVÓ@g-»ć² ō?gżš&ń?gü“W @gõz	$ō?gntĀV?ń?g:īļĒH”
@gŲ{NU@gŪų@g\”Y#lł?g5xÜ#ņ?g§Ļø®8@g­šwł?g£7ņ?gņ%9½ĄS@g¹-R@g®ĒµaeG@g4:É¤6@gØDÓ&#@gęxź$Ł»E@g0ųs"Ø6@gĒ5¦Ag#@gžöųc@gVļf½õ’_@gi¬żµ>^@gŗŅæ§<@g/wMśh$@g“ß[e:Y@gkź{¦<@g2¹ŅS ļ$@id   i$   i!   i   gšk$	Āö?t   data_value_to_countsĶ   unused:        - 5.0001 [ 0/0 ] 0 0.0000
bin  1: 5.0001 - 1.4346 [21/21] 1 0.0476
bin  2: 1.4346 - 1.1432 [18/18] 0 0.0000
bin  3: 1.1432 - 1.0000 [ 9/10] 0 0.0000
unused: 1.0000 -        [ 0/0 ] 0 0.0000
t   count_not_equalsŅ   unused:        - 5.0001 [ 0/0 ]  0 0.0000
bin  1: 5.0001 - 1.4346 [21/21] 20 0.9524
bin  2: 1.4346 - 1.1432 [18/18] 18 1.0000
bin  3: 1.1432 - 1.0000 [ 9/10]  9 1.0000
unused: 1.0000 -        [ 0/0 ]  0 0.0000
g„¤”ÕIü?gV¶yĖUó?g8£Ae×ļ?g®-</Ū	@i/   gótjMt?t   d_star_powergDµŅµ@gØr5„ļ?gŹ£p @gHó”ń?t   xtal_3_7t   crystalst   simplet   shelxlt	   algorithms   P 1 1 21R    R   t   abst
   target_maxt   factori   s	   P 1 1 2/miū’’’i   t   data_substitutei   t   sigmas_substitutei   R   i   i“   y              @i   iZ   ix   t   P31mt   fraction_percenti+   R   t   include_acentrict   include_centricgķCb Óż?gąĻ+Ćē?s  unused:         - 13.0001 [ 0/0 ]
bin  1: 13.0001 -  5.9727 [ 7/6 ]  2.1658
bin  2:  5.9727 -  4.8197 [ 8/8 ]  1.1899
bin  3:  4.8197 -  4.2345 [ 5/4 ]  1.6278
bin  4:  4.2345 -  3.8585 [ 6/6 ]  1.2952
bin  5:  3.8585 -  3.5881 [ 4/4 ]  1.0429
bin  6:  3.5881 -  3.3805 [ 8/8 ]  1.2980
bin  7:  3.3805 -  3.2139 [ 2/2 ]  1.0234
bin  8:  3.2139 -  3.0759 [11/10]  1.2283
unused:  3.0759 -         [ 0/0 ]
g      @R(   g      @s  unused:         - 13.0001 [ 0/0 ]
bin  1: 13.0001 -  5.9727 [ 7/6 ]  0.6007
bin  2:  5.9727 -  4.8197 [ 8/8 ]  0.9349
bin  3:  4.8197 -  4.2345 [ 5/4 ]  0.7079
bin  4:  4.2345 -  3.8585 [ 6/6 ]  0.9247
bin  5:  3.8585 -  3.5881 [ 4/4 ]  0.9892
bin  6:  3.5881 -  3.3805 [ 8/8 ]  0.9079
bin  7:  3.3805 -  3.2139 [ 2/2 ]  0.9941
bin  8:  3.2139 -  3.0759 [11/10]  0.9134
unused:  3.0759 -         [ 0/0 ]
RB   R   s   @#s   -0.0000s    0.0000s  @#R-linear = sum(abs(data - mean(data))) / sum(abs(data))
@#R-square = sum((data - mean(data))**2) / sum(data**2)
@#In these sums single measurements are excluded.
@#                             Redundancy       Mean      Mean
@#                           Min  Max   Mean  R-linear  R-square
@#unused:         - 13.0001
@#bin  1: 13.0001 -  4.3977    2    2  2.000    0.0000    0.0000
@#bin  2:  4.3977 -  3.5133    2    2  2.000    0.0000    0.0000
@#bin  3:  3.5133 -  3.0759    2    2  2.000    0.0000    0.0000
@#unused:  3.0759 -
s  @#                             Redundancy
@#                           Min  Max   Mean
@#unused:         - 13.0001
@#bin  1: 13.0001 -  4.3977    2    2  2.000
@#bin  2:  4.3977 -  3.5133    2    2  2.000
@#bin  3:  3.5133 -  3.0759    2    2  2.000
@#unused:  3.0759 -
t   faket   crystal_symmetry_from_filei   R4   t   P6t   data_descriptions   made ups  Working crystal symmetry is not compatible with crystal symmetry from reflection file:
  made up: fake
  Unit cell from file: (10, 10, 12, 90, 90, 120)
    Working unit cell: (11, 11, 13, 90, 90, 120)
  Space group from file: P 6
    Working space group: P 3 1 mg      @t   seedt   f_calciU   i_   ii   s   P 1t   axisRė   t   slice_indext   ht   slice_startt	   slice_endgoĄŹ!@g~¹k	y!@gé·ÆēĢ%@gåŠ"Ūł¾Y@s   P 1 21 1i	   g¤p=
×ĆF@gĶĢĢĢĢĢĄg33333e@g)\Āõ(ųægģQøė2@gffffffĄg®GįzÄ@gėQø×„@g     ŗ@g\Āõ(ś@g)\Āõ@g
×£p=ī@g{®Gįz@gĶĢĢĢĢĢ@g      @g\Āõ(\@g{®Gįz@gįz®Gį@g®GįzT6@g®Gįz¶@gq=
×£(f@gøėQø0@g\Āõ(\0@g      1@gq=
×£šF@g\Āõ(\ļ?g¤p=
×ėc@gėQø@g=
×£p½6@gøėQø?g=
×£p[@g)\Āõ<±@g®GįŗĄ¾@g×£p=
³@gįz®Gć@gėQøy@s+    h   k   l       Fo^2      Fc^2   |Fo^2-Fc^2|/sig(F^2)   Fc/max(Fc)  d spacing(A)
  1   1   2    6685.00   7872.73             6.70              1.00          3.60
  1   1   3     959.27    886.38             4.36              0.34          2.81
  1   1   1    2795.86   4412.96             2.44              0.75          4.72
  1   1   0     856.51    907.43             2.28              0.34          5.73
  1   0   9     168.10    159.37             1.94              0.14          1.13
  1   0   8      -3.10      0.98             1.32              0.01          1.26
  1   1   4    1125.99   1144.82             1.15              0.38          2.27
  1   0  10      -1.51      2.39             1.14              0.02          1.02
  1   1   5     765.78    783.14             1.02              0.32          1.89
  1   0  11      18.92     22.74             0.93              0.05          0.93
  1   0  12      -6.10      0.03             0.91              0.00          0.86
  1   0   7      45.53     45.88             0.11              0.08          1.43
(   i   i   i   (   i   iž’’’i   (   i    i    iü’’’(   i   i   (   g¹?gÉ?(   i    i    iü’’’(   i    i    iü’’’(   i    i    iü’’’(   i    i    iü’’’(   i    i    iü’’’(   (   i    i    iü’’’(   i   iž’’’i   (   (   i   iž’’’i   y      š?      š?y       @       Ą(   i   i   i   (   i    i    i   (   i   i   i   (   i’’’’iž’’’iż’’’(   i   i   i   (   iž’’’iż’’’iü’’’(   i   i   i   (   i   i   i   i   i   (   g¹?gÉ?g333333Ó?gŁ?g      ą?(   i   i   i   (   i   i   i   (   g      šæg       @(   i   i   i   (   i   i   i   (   i   i   (   g¹?g333333Ó?(   i’’’’iž’’’iż’’’(   iž’’’iż’’’iü’’’(   i   i   (   gÉ?gŁ?(   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   (   g¹?g333333Ó?(   i’’’’iž’’’iż’’’(   iž’’’iż’’’iü’’’(   i   i   (   gÉ?gŁ?(   i    i   (   i   i   i   (   iž’’’iż’’’iü’’’(   i   i   (   g¹?gŁ?(   iż’’’i    i    (   i   i   i   (   i    i   i   (   i    i   i   (   i   i   i   (   i    i   i   (   i   i   i   (   i   i    i    (   i    i    i   (   i    i    i   (   i    i    i   (   i   i   i   (   gŁ?g¹?g333333ć?(   i    i    i   (   (   i    i    i   (   i   i   i   i   i'   (   g°«ÉSVÓ@g-»ć² ō?gżš&ń?(   gü“W @gõz	$ō?gntĀV?ń?(   gŪų@g\”Y#lł?g5xÜ#ņ?(   g§Ļø®8@g­šwł?g£7ņ?(   g®ĒµaeG@g4:É¤6@gØDÓ&#@(   gęxź$Ł»E@g0ųs"Ø6@gĒ5¦Ag#@(   gi¬żµ>^@gŗŅæ§<@g/wMśh$@(   g“ß[e:Y@gkź{¦<@g2¹ŅS ļ$@(   i$   i!   (   i   i   (   g„¤”ÕIü?gV¶yĖUó?g8£Ae×ļ?(   i   i   (   i   i   (   i   i   (   i   i   i   (   i    i    i   (   i    i    i   (   i    i    iż’’’(   i    i    iü’’’(   i    i    i   (   i    i    iü’’’(   i    i    i   (   i    i    iż’’’(   i   i   i   iž’’’(   g333333Ó?gŁ?g¹?gÉ?(   i    i    i   (   i    i    i   (   i    i    iż’’’(   i    i    iü’’’(   i   i   i   iž’’’(   g333333Ó?gŁ?g¹?gÉ?(   i    i    iü’’’(   i    i    iż’’’(   i    i    i   (   i    i    i   (   iž’’’i   i   i   (   gÉ?g¹?gŁ?g333333Ó?(   i    i    i   (   i    i    i   (   i    i    iż’’’(   i    i    iü’’’(   i   i   i   iž’’’(   iž’’’i   i   i   (   i   i   iž’’’i   (   i   iž’’’i   i   (   i   i   i   i   (   i    i    iż’’’(   i    i    i   (   i    i    iü’’’(   i    i    i   (   i   i   i   i   (   i    i    i   (   i    i    iü’’’(   i    i    i   (   i    i    iż’’’(   i   iž’’’i   (   i    i    iü’’’(   i   i   (   i    i    iū’’’(   i   iž’’’i   (   i   i   (   i   i   (   i   i    i   (   i    i    iü’’’(   i    i    iū’’’(   i   iž’’’i   (   i   i   i   i   (   i   i   i   i   (   i   i   (   i   i   (   i   i   (   i   i   i   i   (   i   i   i   i   (   i   iž’’’i   (   (   i   iž’’’i   (   i   (   i   iž’’’i   (   (   i   iž’’’i   (   i   (   i   (   i    i    iü’’’(   i    i    iū’’’(   i    i    iü’’’(   i    i    iū’’’(   i   iž’’’i   (   (   i   iž’’’i   (   i    i    iū’’’(   i   iž’’’i   (   i   i   (   i   i   i   (   i    i    iū’’’(   i   iž’’’i   (   i   i   (   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   iž’’’i   (   i    i    iü’’’(   i   i   (   i
   i   (   i
   i    (   i
   i    (   i
   i    y      š?       @y       @      Ą(   i   i   i   iZ   iZ   ix   (   i
   i
   i   iZ   iZ   ix   (   i   i   i   (   i   iž’’’i   (   i    i    iü’’’(   i   i   i   i   (   g¹?gÉ?g333333Ó?gŁ?y      š?       @y       @      Ą(   i   i   gØōwć@góYaD+Ų@(   i   i   gØōwć@góYaD+Ų@(   i   i   i   iU   i_   ii   (   i   i   i   (   i   i    i   (   i   i   i   (   i    i   i   (   goĄŹ!@g~¹k	y!@gé·ÆēĢ%@iZ   gåŠ"Ūł¾Y@iZ   (   i   i    i   (   i   i    i   (   i   i    i	   (   i   i    i
   (   i   i    i   (   i   i    i   (   i   i   i    (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   g¤p=
×ĆF@gĶĢĢĢĢĢĄg33333e@g)\Āõ(ųægģQøė2@gffffffĄg®GįzÄ@gėQø×„@g     ŗ@g\Āõ(ś@g)\Āõ@g
×£p=ī@(   g{®Gįz@gĶĢĢĢĢĢ@g      @g\Āõ(\@g{®Gįz@gįz®Gį@g®GįzT6@g®Gįz¶@gq=
×£(f@gøėQø0@g\Āõ(\0@g      1@(   gq=
×£šF@g\Āõ(\ļ?g¤p=
×ėc@gėQø@g=
×£p½6@gøėQø?g=
×£p[@g)\Āõ<±@g®GįŗĄ¾@g×£p=
³@gįz®Gć@gėQøy@(   i   i   i   (   R   R*   R	   R+   R~   R   R,   R   R   t
   show_arrayR   R1   t
   parametersR&   R/   R4   t   typet   lookup_symbolRW   t   first_indext   data_at_first_indext   sigma_at_first_indext   set_infoR$   R8   R|   R  t   observation_typeR   RB   t
   array_infoRK   t   label_stringR.   RZ   R   t#   set_observation_type_xray_amplitudet   is_xray_amplitude_arrayt#   set_observation_type_xray_intensityt   is_xray_intensity_arrayR2   R5   t   as_amplitude_arrayt   as_intensity_arrayt   eliminate_sys_absentt   sigmas_are_sensiblet   delete_indext   delete_indicesR6   t   select_sys_absentR   t   complex_doubleR¼   RA   R-   RQ   RC   t	   __class__t   __name__R!   t   discard_sigmast   anomalous_differencest   matht   sqrtt   hemisphere_acentricsR²   t   anomalous_signalt   measurabilityt   anomalous_completenessRE   RP   RO   R\   RX   R   t   is_unique_set_under_symmetryt   unique_under_symmetryt   resolution_filterR<   t   select_indicesRI   t   RuntimeErrorR   t   sigma_filtert   meant   mean_sqt   sumt   sum_sqt   rmst
   rms_filtert   statistical_meant   count_and_fraction_in_binsRŻ   t   remove_patterson_origin_peakt!   quasi_normalize_structure_factorst	   f_as_f_sqt	   f_sq_as_fR   RR   R¶   t   apply_scalingRŗ   RJ   t   matching_sett
   common_sett   lone_setRD   t	   lone_setst   phase_transfert
   amplitudest   intensitiest   pow2t   phasest   pit	   conjugatet   conjR„   t   remove_conet   select_acentricR³   t   counts_completeRG   t   second_moment_of_intensitiest   wilson_ratioR>   RN   Rą   Rā   Rį   RŪ   t   clear_binnerR§   t   random_size_tt   concatenateR   t   replacet	   is_in_asut6   crystal_symmetry_is_compatible_with_symmetry_from_filet   unit_cell_is_compatiblet   space_group_is_compatiblet   format_error_messaget   reversedt   min_f_over_sigmat   combineR'   t
   set_sigmast   mersenne_twistert"   f_obs_f_calc_fan_outlier_selectionR   t   slicet   show_disagreeable_reflectionst   delta_f_sq_over_sigmat   value_at_index(N   Rb   Rc   R8   R|   Rd   Rl   Rm   t   ma2t   act   aat   ait   ma_copyt   ma_filtt   ma_filt2t   aet   a_sR%   t   asut   adt   hpt   hmt   acbt   sigma_test_meast   m_test_meast   saR$   t   indexRy   t   et   it   xRŅ   t   use_multiplicitiest   not   sut   f_sq_as_f_algorithmt   f_as_f_sq_algorithmt   vt   a1t   a2t   a3t   m1t   m2t   m3t   c1t   c2t   l1t   l2t   sgRf   RČ   R  t   phRi   Rk   Ra   R¾   R(   R)   t   clt   cht   cat   mlRģ   t   dt   mt   maat   mait   szt   mtRe   t   mbt   fct   selt   fo2t   fc2Rn   R   (    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   exercise_arrayü  sŅ   	!'			

**!:						!	0		$$%$$$!0$!!$!%$$!!$!%-'$!%*'	!	$	$*	!!!!!!!!%%3%3%**%				
1
1:!!$! !'!!$$'****!**!!$$$$*$!!!!!!'!!!!!!'-!-'0'----'*				$*
$$% 							"
		!1			

  
!!	'!!''''			*!!			c       	   C   s¬  t  j d= d  }  t j d> d? f  } t j |  | t  } | j } t | d d  j	   d d g  so t
  t | d d  j	   d d g  s t
  t | d d d d d d d g  j	   d d g  sÕ t
  t | d d d d d d  d! g  j	   d" d# g  st
  t | d$ d d d d d d g  j	   d% d& g  sMt
  t | d' d( d) d* d+ d, d- g  j	   d. d/ g  st
  | j d0 t j d	 d g  d1 t j d d g   } | j } | d d  } t | j	   d2 d3 g  sųt
  t | j   d4 d5 g  st
  | d d d d d d d g d6 t  } t | j	   d7 d8 g  sat
  t | j   d d g  st
  | d d9 d: d;  | d d9 d< t  d  S(@   Ni   i   i   iU   i_   ii   s   P 1i   i   iž’’’iż’’’t   u_isog{®Gįz?gó1i*ė?g<|>oĻź?t   b_isog)\Āõ(š?gĪąļóé?gn²é?t   u_cartgøėQø®?g{®Gįz¤?g©?g{®Gįz?gøėQø?gĢLp¤Ī?gžo6gŅ?t   b_cartgö(\Āõš?g¤p=
×£š?gĶĢĢĢĢĢš?gRøėQš?g{®Gįzš?g		bźxį?g²Wć$Cå?t   u_cifgÄh)õŠ?g©>eDŚ?t   u_starg-Cėā6:?ga2U0*©C?gü©ńŅMb@?g-Cėā6?g-Cėā6*?ga2U0*©3?g¹šĶÄ é?gģHäģė?R8   R|   gg	2*ū?g µ@g$Aø*@gŪ„„Į@t   apply_to_sigmasgĢLp¤Ž?gąż§ŃÕė?i’’’t   exp_arg_limiti<   t   truncate_exp_arg(   i   i   i   iU   i_   ii   (   i   i   i   (   iž’’’i   iż’’’(   R   R*   R	   R+   R   R,   R-   t   debye_waller_factorsR   R8   R/   R   R~   t   apply_debye_waller_factorsR|   R.   (   Rb   Rc   Rd   t   dwRl   t   apR²  (    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   exercise_debye_wallerŠ  s@    	$$$$6	!!'!!c          C   s  t  j d d  }  t j d d d g  } t j t j |  |  d
 t j d d d g  } t j t j |  |  d
 t j d d d g  } t	 | j
 | d t d  s“ t  | j t j | j     } | j t j | j     } t	 | j
 |  d  st  t	 | j
 | d t d  s2t  | d 9} t	 | j
 | d d d  s`t  t	 | j
 | d t d  st  | d 9} t	 | j
 | d d d t d  søt  | j   j d  | j   j d  y | j
 |  t } Wn t k
 rt } n X| st  d  S(   Ni   i   i   s   P21/ai’’’’i    iż’’’i   iž’’’R8   i
   i   y              @y              š?y               @t   assume_index_matchinggī>ĒG3Ü?t   scale_factorgēg¼ļŃ?i   g      ą?(   i   i   i   (   i   i’’’’i   (   i   i    iż’’’(   i   i   iž’’’y      @      @y       @      šæy      š?       @(   i   i   i   (   R   R*   R	   R+   R   R   R,   R~   RC  R   t	   r1_factorR.   R/   RO   R¦   RB   R   R$   t   appendR8   R-   (   t   csRc   t   f_ot   f_ct   f1_ot   f1_ct   raised(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   exercise_r1_factorō  s4    $
$$
'

c    	      C   s¤  t  j d  t j d d d	 d
  }  t j d |  d t d d  } | j d t  j t  j	 | j
   d  t  j	 | j
   d t j    } | j   } | j   } t | j |  d  sĀ t  t | j |  d  są t  t | j | d d d  st  t  j	   } | j d t  j | j    |  } | j   | j   } t | j |  |  sit  t | j | d d | |  st  | j d | t  j | j    t  j	 | j
    d d d t  j	 | j
     } | j   | j   } d t  j | j    } t | j | d | | d d s?t  t | j | d | d d |  t | j | d | |  k st  d t  j | j    } t | j | d | | | d d sŠt  t | j | d | d d | |  t | j | d | | |  k s"t  | j d d  xk | d  g D]] } | j | d | d t } t | t j  sxt  t | j  | j j    k s?t  q?Wd  S(   Ni    R1   i
   i   i   iU   i_   id   Rq   s   P 1R&   R'   R)   i   R8   g      š?t   cutoff_factorgĶĢĢĢĢĢģ?i   R|   t   weightsR   g¹?g      ą?R   RŅ   (   i
   i   i   iU   i_   id   (!   R	   t   set_random_seedR   R*   R   R   R-   R   t   polarR§   RB   RH  Rj  R<  R=  R   RĖ  R/   RZ   R  R8   R8  R^  Rh  R|   RE   R   R.   R»   t   binned_dataRv   RG   t
   n_bins_all(	   R&   Ra   RŠ  RĻ  t   f_sq_oRĖ  RÖ  t   wRŁ  (    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   exercise_scale_factor  s`    					%!%
	
(c         C   s/  |  j  d d  } xt t f D]{} t j | | d d } xZd  t j t d | j	   j
   d   f D]*} t j | d t j t | j	   j
     d | } | j   } t j t j | | j	   | j    | j   | j    } | j   } | j   j d d d t  }	 t j | j	   | j   j	   j |	   d	 k sSt  t | j   | j   j   j |	   st  | d  k	 rö| j   j   j |	  }
 | j   j   j |	  } |
 t j | j    } t | |  söt  n  | j t j d
 | j	   j
     j   } | j	   j
   | j   j	   j
   k sSt  | j   j | j    j	   j
   | j   j	   j
   k st  | j   } | j   s| j   } | j |  j    d k sŻt  | d  k	 rt j! | j   | j    j    d k st  qql | d  k	 rX| j" d t j | j   j
   d   } n  | j   } | j#   \ } } | j	   j | j$   j% d	   } | j   j | j$   j% d	   | j   j | j$   j% d   d } xU d D]M } | j& |  } | j' | j	   j |   | j' | j   j |   qėWt j d t j d | d | d t  d |  j( |  } | j |  j    d k sl t  ql Wq Wt j) d g  } t j# t* j+   |  } | j$   j
   d	 k sęt  t, | j& d   d	 g k s
t  | j& d  j
   d	 k s+t  d  S(   NR   i<   R)   i   R8   R|   R   R   i    RB   gķµ ÷Ę°>i   R  R   Ra   R&   R$   R'   gé!ēż’ļ?gé!ēż’ļ?(   R  R   gé!ēż’ļ?(   i    i    i    (-   R   R-   R.   R   R   R   R	   R~   R„   R$   RB   R   RA   R,   R'   R8   R|   R   t   sort_permutationR5   RO   R/   R   t   redundanciesRI  t	   as_doubleR¦   RO  RQ   Rb  R“   t   correlationt   coefficientt   linear_correlationRZ   R·   t   pairst   columnt   singlesRT   R¶   R+   R   t   space_group_typeRD   (   R!   Rb   R'   t   stR|   RŖ  Rf   t   psR±  Ro   Rm   Rn   t   srt   ust   origt   aveR  t   matchest   vfy_indicest   vfy_datat   signRø  t   vfyRc   (    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   exercise_array_2F  sr    5!		90-0$!!0	$$!) 			)$c         C   sµ  |  j  d d  } xt t g D]} t j d | d | d d  } | j   j   d k sa t  | j d t	 j
 d	 | j   j     } t	 j
 d	 | j   j   d
 d t j  } | j d | d t  } | j   j   } x_ t	 j t	 j g D]K } t | | j d t  j   j |   | | j |    sō t  qō W| j   j d |  }	 xOt d f t t j d f g D].\ }
 } |	 j d |
  } |	 j   j d |
  } | j d |
  } xO t	 j t	 j g D]; } t | | j   |  | | j   |   sÖt  qÖW| j d |
  } | j d |
  j d |  } | j d |
  } xO t	 j t	 j g D]; } t | | j   |  | | j   |   sjt  qjWq{Wq Wd  S(   Nt
   asu_volumeiČ   R&   R'   R)   i   i   R8   RB   R  t   phase_sourceR%   i   i“   t	   phase_deg(   R   R-   R.   R   R   R$   RB   R/   R   R	   R§   RH  Rj  Re  t   centric_flagsR8   t   cost   sinR   Ri  RO   RA   RZ   RQ   (   R!   R&   R'   Ra   t   amplt
   phases_radt   cmplxt   acentrict   trigt	   cmplx_expR%   R   t
   phases_expt   cmplx_exp_asu_phasest   phases_exp_asuRi  (    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   exercise_map_to_asu  sH    					!	"$"	,#	c          C   sF  t  j d d  }  t j d |  d t d d  } | j   j   } xżd  t j	 |  g D]ę} | j
 d	 t j	 d
 | j   j    d |  } | j   } | j   j | j    s» t  t j d
 |  | d d  } | j |  } | j d d  } | j   j   | j   k st  | j   d k } | j t  | j   k sQt  | d  k rx| j   d  k sĄt  nH | j   d k }	 |	 j t  | j   k s«t  |	 j |  sĄt  t j d
 |  | d d  } | j |  } | j d d  }
 |
 j   d k  st  t |
 j d d  j   d  sX t  qX Wd  S(   NgĶĢĢĢĢĢ @i   i   s   P 2 2 2R&   R'   R)   i   R8   RB   R|   i   i    (   gĶĢĢĢĢĢ @i   i   (   R   R*   R   R   R-   R$   RB   R   R	   R§   R   t   complete_arrayRC   R/   R¦   RO   R8   R   R.   R|   RN   R   RP  (   R&   R,   t   niR|   R   t   complRø  t   selectedt   new_data_selt   new_sigmas_selt   compl_to_4_angstrom(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   exercise_complete_array­  s:    				!$!!c          C   sK  t  j d d  }  t j d d f  } xt t f D]} t j |  | d	 | } t j | t j	 d   } | j
   } t | j   d  s t  | j   d  k s¬ t  t | j   d  sĒ t  | j   | k sß t  | j   j   d k sż t  | j d t  j   st  | r4 | j   j   d k sCt  q4 q4 Wd  S(   Ni   i   i   s   P 2 2 2i   iž’’’i    iü’’’R'   i   g      š?t   in_place(   i   i   i   (   i   iž’’’i   (   i    i    iü’’’(   i   i   gUUUUUUÕ?(   R   R*   R	   R+   R-   R.   R   R,   R   RC  t   fft_mapR   Rö   R/   Rõ   R   t	   max_primeR'   t   real_mapRB   t   real_map_unpaddedt	   is_paddedt   complex_map(   Rb   Rc   R'   Rd   Rl   R  (    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   exercise_fft_mapĶ  s    i   i   c         C   s2  t  j |  d d g | d d d d d t d d	 } d
 s@ | rS | j   j   n  t j | | j   j    } | j	 d | d t
  j   } | j d d  } t |  } t | j   | j   j    sÕ t  t | j d t  j   t j d | j   j    st  | j d t  | j   } d }	 t j | |	  }
 d
 sS| r_d G|
 GHn  | j   j | j    } t j | d t j d |
  } t j d | d | j   |  } | j |  j  d |	 d | d |  j!   } t j" |  } | j# |  } | j$ |  } | j% | j    } t | d	  sBt  d
 sN| rZd | GHn  | d k  slt  xæ t
 t f D]± } xØ t
 t f D] } | j& d t' j( d |	 d | d | d |  } t' j) | j*    } | j+ | j,   j-   t' j(  | j.   d
 k st  | j/ | j!    st  qWqyWd  S(   Nt   elementst   constt   volume_per_atomiō  t   min_distanceg      @t   general_positions_onlyR¼  g        i    R)   R'   R   R  R%   i“   R   i   g      @s   u_base:i   Ra   R8   Rö   t   f_000s   mean_weighted_phase_error: %.2fRõ   t
   sharpeningt   origin_peak_removalgUUUUUUÕ?(0   R   t   xray_structureR.   RŪ   t   show_scatterersRH  RI  R4   t   order_zt   structure_factorsR-   R'  RI   R  R   R8   Rf  R/   Ri  Rj  RE   R]  R   t   calc_u_baseR1   R:   R$   R	   t   expR   R   Re  R  R  Rh  t   structure_factors_from_mapt   mean_weighted_phase_errort   mean_phase_errort   patterson_mapR   Rš   t	   grid_tagsRū   t   buildR!   R/  t   n_grid_missest   verify(   R!   t   n_scatterersR)   R½   t	   structuret   e_000R'  R   R  t   grid_resolution_factort   u_baseR:   RĒ  t   ebt   eb_mapt	   eb_map_sqt   eb_sqt   mwpet   mpeR  R  R%  R&  (    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt#   exercise_squaring_and_patterson_mapŻ  sh    		'#""			
c       
   C   sŲ  t  j d d d d  }  d } t j d |   } | j d | d	 t  j   } | j d
 d  } t j	 | j
    d k s t  t j | j
    d k s¢ t  t j   } t j   } d d l m } |  j   j   \ } }	 }
 } } } x t d  D] } t j d d d t j t j d | |	  | |	 f d d d d  } | j |  | j | j j | j    | j | j  qū W| j d | d	 t  j   } | j d
 d  } | j
   } t j d | j   d | j     } | j! t" | j    d    } t j#   } | j$ | j%   d  | j& | | k d  d d l' m( } | | j   | j)   j*   | j+   | | j,   d d d d } t j- | j.   j   | j/ j.   j    } | j0   d k sŌt  d  S(!   NR1   i
   iZ   Rq   Rr   i   R&   R)   R'   t   radiusg      @i    i’’’’(   t   van_der_waals_radiit   siteg¹?i   t   scattering_typet   SRx   g{®Gįz?g      ų?R8   t   n_slotsi   g333333ė?(   t   around_atomst   solvent_radiust   shrink_truncation_radiusgĶĢĢĢĢĢģ?(   i
   i
   i
   iZ   iZ   iZ   g433333Ć?(1   R   R*   R   R+  R  R-   R'  t   local_standard_deviation_mapR	   Rŗ   R  R/   R¹   R~   t   vec3_doublet   cctbx.eltbxR7  R1   R.  R„   t	   scattererRH  Rł  Rj  t   add_scattererRĶ  t   vdwt   tablet   element_symbolR8  t	   histogramt   as_1dRB   t
   get_cutoffR¼   RX   t   resizet   accessort   set_selectedt   cctbx.masksR<  R4   R  t
   sites_fracRū   Rć  Rą  R8   Rā  (   R*   R)   R+  R'  t   lsdt   atmradt   xyzfR7  R  Ri   Rk   t   _t   kRB  t   lsd_mapt   histt   cutofft   maskR<  R£  t   corr(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   exercise_lsd_map  sV    			!!$	/		$			'g      š?t   directgffffffę?g333333ó?gffffffö?i   c         C   s’  t  j d" d  } t  j |  } t j t j d d# d d d	 d
 g  } t j | |  } | j d |  d |  j	   } t
 |  }	 | j d | d d | d
 d | d  }
 |
 j d |  d |  j	   } x)d  |	 j d t j |	 j   j   d
   g D]÷ } |	 j d | d | d |  } d d l m } | j d | d | j  } | j   | j   | j   } | j   } | j d | j   d |  } | j   j   d
 k s·t  d d$ d d% d d& g } t | | j   d d  d! s t  q Wd  S('   Ni   iZ   s   P 1Rk   gÉ?g333333Ó?gŁ?Rx   t	   occupancyi   R)   R  R  i    t   yt   zi   R8   Rõ  R'  t   fomi’’’’(   R   Rö   Rõ   R.  t   mapg      š?gffffffę?g333333ó?gffffffö?R   g{®Gįz?(   i   i   i   iZ   iZ   iZ   (   gÉ?g333333Ó?gŁ?gėQøėĮ?gøėQøĪ?gėQøėŃ?(   R   R*   t   special_position_settingsR	   t   xray_scattererR   RB  R+  R  R'  R  t	   translateR   R   R~   R8   RB   t!   phased_translation_function_coefft   cctbxR   R  Rš   t   apply_fourier_scalingt   apply_sigma_scalingR  Rś   t   peak_searcht   peak_search_parameterst   sitesR/   R   (   R)   R  t   shiftRö   RĪ  t   spt
   scattererst   xrsR'  Rü   t   xrs_tt   f_calc_tR^  t   resultR   R  t   fft_map_dataRż   t   cluster_analysist   expected_shift(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt!   exercise_phased_translation_coeffG  s8    $*7		

		c   
      C   s'  |  \ } } | j  |  } | j  |  } | ru | j   j | j    sQ t  | j   j | j    su t  n  | j |  \ } } | j   j | j    s« t  | j   j | j    sĢ t  | j |  \ } }	 | j   j |	 j    st  | j   j | j    s#t  d  S(   N(   Rb  R$   RC   R/   t   common_sets(
   t   .0t   permutation_onlyR  Ri   t   abt   bat   aabt   babt   abat   bba(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   exercise_common_seth  s    	!$!!!c         C   s°  g  } x] t  d  D]O } t j |  d d g | } | j t | j d | | d  j     q W| d j t j	 d | d j
   j     | d <t | d | d j t j	 d | d j
   j     f d	 t t | d	 t x½t t g D]Æ} | r| d j   | d <n  t | d j | d  j   d  sHt  t | d j | d  j   | d j | d  j    st  | d j d
 t  | d j | d  xL | d j | d d t j D]* } | d  k	 rÕt | d  s’t  qÕqÕW| d j | d d t j }	 | d j | d d t j }
 xb t |	 |
  D]Q \ } } | d  k | d  k k s}t  | d  k rqSn  t | |  sSt  qSWqł Wd  S(   Ni   R  R  R)   g      ą?i   RB   i    Rw  R   RŅ   (   R„   R   R  RĶ  R  R  R'  RO   R	   R¦   R$   RB   R~  R.   R-   Rµ   R   Rį  Rā  R/   RE   RÜ   R8   R   R±   (   R!   R*  R)   R½   t   arraysR  R+  R'   RX  t   corr0t   corr1t   c0R¦  (    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   exercise_array_correlationu  s<    1
)(,&'   i   c      
   C   sZ  t  j   } |  j   j } x8t t g D]*} t j |  d d g | d d d t } | j d | d | d d	  j	   } t
 j t
 j | j     }	 | j   |	 d
 }
 x£ t | j   |
  D] \ } } | |  } t | | j |   d k  s’ t  t  j d | j   d | d d  } | | |  } t | |  d k  sĀ t  qĀ Wq( Wd  S(   NR  R  R  iČ   t   random_f_double_primeR)   R'   R  RZ  gffffffī?gķµ ÷Ę°>t   centric_flagt   phase_integralt   max_figure_of_meriti   g¹?gé!ēż’ļ?(   R   t   phase_integratort   groupt   phase_restrictionR-   R.   R   R  R  R'  R	   Rŗ   R  R8   R±   R$   t   valid_structure_factorR/   t   as_hendrickson_lattmant
   is_centric(   R!   R*  R)   R½   R  R  R'   R+  R'  t
   max_f_calct   phase_integralsR*  t   pi_calct
   phase_infot   hlt   pi_int(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   exercise_as_hendrickson_lattman  s.    		"%		gü©ńŅMbP?c         C   sH   |  t  j    d } | d k  r4 | | k rD | Sn | | k  rD | S| S(   Ng      ą?i    (   t   random(   R   t	   min_coeffRp  (    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   one_random_hl±  s      c      
   C   s©  |  j    j } t j   } xu|  j   D]g} | |  } | j   r0d } | d  k	 ra d } n  t | t j   d  }	 | d  k	 r |	 | }	 n  t j   d k  r² |	 d 9}	 n  | j	   }
 |	 t
 t j |
  t j |
   } t | | j |   d k  st  | j t j d t d	 | d
 d   q( d | t j   } g  t d  D] } t |  ^ qQ} | d  k	 r| | d <n  | j |  q( Wt j d |  d |  S(   Ng{®Gįz?g      š?gź-q=gffffffī?g      ą?i’’’’gķµ ÷Ę°>R  R  R  i   i   i   i    Ra   R8   gŃÜ’’’’ļ?gé!ēż’ļ?(   R4   R  R	   t   hendrickson_lattmanR$   R  R   Rŗ   R  t   ht_anglet   complexRH  Rų  Rł  R  R  R/   RĶ  Rd  R.   R„   R  R   R   (   Ra   t   coeff_ranget   max_centric_multipliert   set_aR  R  R*  R  t   min_fomR^  t   angleR   R  t   coefs(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   generate_random_hl¹  s4    	 %%%c         C   s   |  j    } | j   j |   } | j    j |  } | j   j |  } t | j   | j    sl t  t | j   | j    s t  d  S(   N(   R“   Rµ   R¶   R   R8   R/   (   R  t   hl_ave1t   hl_gen1t   hl_ave2t   hl_gen2(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt.   exercise_average_and_generate_bijvoet_mates_hlÖ  s    !c         C   sĢ  |  j  d d  } |  j   j } x¤t t g D]} t j d | d | d d  } | j   j   d k sp t	  t
 d |  } | r t |  n  | j   } | j d	 d"  } | j   } | j   }	 |	 j   j | j    sé t	  xCt | j   | j   |	 j    D]\ }
 } } | |
  rūt j j t j |  t j |   d k rd G|
 G| G| GHd Gt j |  GHd Gt j |  GHt	  n  d t |  t |  k  o»d k  n s+d G|
 G| G| GHd Gt |  GHd Gt |  GHt	  q+qt | |  d k rd G|
 G| G| GHt	  qqWt j d | d t j d | j   j     } x d  d# g D]v } | j d | d |  } t j t j | j   t |  j     d k  sÄt	  | j d |  d k  slt	  qlWt
 d | d d d d  } | j t t t  } | d k  s(t	  t
 d | d d d d  } | j t t t  } | j   t  j! d  j   k r| d k st	  n  | j   t  j! d   j   k r. | d! k sÄt	  q. q. Wd  S($   NRō  iČ   R&   R'   R)   i   i   Ra   t   n_stepsih  i   gķµ ÷Ę°>s   Error:s   arg(pi_p1):s   arg(pi_p1_sg):g      ą?g      č?s   abs(pi_p1):s   abs(pi_p1_sg):R8   RB   Rõ  t   phase_integrator_n_stepsR  gź-q=R  gü©ńŅMbP?R  g     łõ@Rr   gffffff @s   P-1g®Gįz®ļ?iH   iH   ("   R   R  R  R-   R.   R   R   R$   RB   R/   R”  R¦  RA   R  RC   R±   R8   t   scitbxRH  t   phase_errorR
   t   argR  R   R	   R§   R   Re  Rŗ   R#  t   phase_entropyR4   R   R!   (   R!   R&   R  R'   Ra   t   sg_hlt   p1_hlt   sg_phase_integralst   p1_phase_integralst   p1_sg_phase_integralsR*  t   pi_p1t   pi_p1_sgt   amplitude_arrayRØ  t   with_phasest   mean_entropy(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   exercise_phase_integralsŽ  sn    				!		,	!		%	!!c    
   	   C   sJ  t  j d t j d d  d d g d  }  |  j   } | j d d  t j d	 |  j   d |  j   d
 d d d  } |  j	 d
 d d d  j
   } | j d | d d  j
   } | j d |  } t j d | d |  } | j   } t j d | d |  } | j   } t j | j   | j    j   }	 t | |	  sFt  d  S(   NR!   R"   i   R  t   Ci   t   shift_lengthg333333Ó?R1   R)   g      ą?Rö   g¹?R  RZ  R  R
  Rł   t   fourier_coefficients(   R   R  R   R!   t   deep_copy_scattererst   shift_sites_in_placeR   Rł   R1   R  R'  t!   structure_factors_from_scattererst   map_correlationR   R  R  R	   Rć  RH  Rā  R   R/   (
   t   xrs1t   xrs2t   cgt   fc1Rŗ  t   cc1R  R£  R¤  t   cc2(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   exercise_map_correlation  s0    							$c    	      C   s  t  j d d  }  t j d d f  } t j d  } t j d  } t j |  |  } t j | | |  } t j d d f  } t j d  } t j d  } t j |  |  } t j | | |  } | j d |  } t	 | j
   d d d d g  s’ t  t	 | j   d d d d g  s&t  t	 | j   d
 d d d g  sMt  t j d  d! f  } t j d"  } t j |  |  } t j | |  } | j d |  } t	 | j
   d# d$ d% d& g  sĪt  t	 | j   d d d d g  sõt  | j   d  k st  d  S('   Ni   i   i   s   P 2 2 2i   iž’’’i    iü’’’i   g¹?gÉ?i   ių’’’gŁ?R
  g      š?g       @g      @(   i   i   i   (   i   iž’’’i   (   i    i    iü’’’(   i   i   (   g¹?gÉ?(   i   iü’’’i   (   i    i    ių’’’(   i   i   (   gÉ?gŁ?(   i   iž’’’i   (   i    i    iü’’’(   i   iü’’’i   (   i    i    ių’’’(   i   iü’’’i   (   i    i    ių’’’(   i   i   (   i   iž’’’i   (   i    i    iü’’’(   i   iü’’’i   (   i    i    ių’’’(   R   R*   R	   R+   R~   R   R,   R   Rt  R   R$   R/   R8   R|   R   (	   Rb   Rc   R8   R|   Rd   t   ma1R  Rp  t   ma3(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   exercise_concatenate8  s.    '''''c         C   sS   t  |  t |  t | d |  j t |  t |  t |  t |  d  S(   NR½   (   Ró  R  R5  t   VerboseR  R  R·  R   (   RĄ   R!   (    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   run_call_backR  s    




c          C   sa  t  j d d  }  t j |  t j d d f   } t j | d t j d  } t j | d t j d  } | j	 d d d |  } t
 t | j    d  sØ t  t  j d d  }  t j |  t j d d f   } t j | d t j d  } t j | d t j d  } | j	 d d d |  } t
 | j   j   d  sPt  |  j   j | j   d  j   s|t  t
 | j   d d  st  |  j   j | j   d  } | j   sĢt  | j d d t d k sķt  t
 | j   d d  st  t j | d t j d   } | j	 d d d |  } t
 | j   d!  s]t  d  S("   Ni   Rr   i   iž’’’i   i    iü’’’R8   y               @y              @t   f_obs_factorR'  y              šæt   P23iZ   R%   i’’’’y              @y              š?(   i   i   i   (   i   iž’’’i   (   i    i    iü’’’(   i   i   (   y               @y              @(   y              šæy              šæ(   i   i   i   (   i   iž’’’i   (   i    i    iü’’’(   i   i   (   y               @y              @(   i   i   (   y              @y              @(   y              š?y              š?(   R   R*   R   R,   R	   R+   R   R~   RC  t   f_obs_minus_f_calcR   R6   R8   R/   Rf  R4   R  R$   R  t   nearest_valid_phaseR.   (   RĪ  Rc   RĻ  RŠ  t   difft   ph_restrict(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   exercise_difference_map[  s*    !!!!,!c          C   sn  t  j d t j d d  d d g d  }  t |  j d d  j    } t | j    } t t	 j
 | j   | j    t	 j
 | j   | j    d	  s¦ t  | j d
 | j   d  } t t	 j
 | j   | j    t	 j
 | j   | j    d  st  | j d |  } t t	 j
 | j   | j    t	 j
 | j   | j    d	  sjt  d  S(   NR!   R"   i   R  Rø  i
   R)   i   i   R8   g¹?R
  (   R   R  R   R!   R  R  R'  R2   R   R	   RV  R8   R/   R   t
   multiscale(   Rm  t   f1t   f2(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   exercise_multiscaler  s    	HHc    	   	   C   sL  d d l  m }  t j d  } t j | d  } t j | t j	 d d d d f  d	 t
 } t j t j d
   } t j | t j d d d d f   } d d d d d d d d g } d t j d t g  | D]  } t |  |  |  d ^ q×  t g  | D] } t |  ^ q } t | j |  | d d sHt  d  S(   Ni’’’’(   t   phasei   i   i   iZ   ie   s   P 1R'   s   -x,y,-z+1/2y              š?R   gü©ńŅMbP?(   i   i   i   iZ   ie   iZ   (   i   i   i   (   i’’’’i   i’’’’(   i’’’’i   i   (   i   i   i’’’’y      š?      š?y      šæ      š?y      š?      šæy      šæ      šæy      š?      š?y      š?      š?y      šæ      š?y      šæ      š?y      š?      šæy      š?      šæy      šæ      šæy      šæ      šæ(   t   cmathRÖ  R   R1   R   R*   R   R,   R	   R+   R.   R   t   change_of_basis_opt   rt_mxR   RC  RH  Rj  RV  R  R   t   symmetry_agreement_factorR/   (	   R«  t   ucRĪ  Rc   R    Rl   t   ccR]  t   expected(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt"   exercise_symmetry_agreement_factor  s    	!"ec          C   sK  t  j d d  }  t j d d f  } t j |  | d	 t } t j d d f  } t j d | d |  } d } d } | j	 d | d |  } t
 | d d g  s« t  t j |  j   d | d | } | j   j   }	 t j | j | d |	 d t  d  t j | j | d |	 d t  d  g }
 t
 | |
  sGt  d  S(   Ni   i   i   s   P 2 2 2i   iž’’’i    iü’’’R'   y               @i   y              @Ra   R8   g)\Āõ(Ü?g'I×L¾ę?R  R×   gå&õń0żļ?gŁČMųļ?t   value(   i   i   i   (   i   iž’’’i   (   i    i    iü’’’y      š?       @y       @      @(   R   R*   R	   R+   R   R,   R.   RC  R   t   shelxl_extinction_correctionR   R/   R   t   shelx_extinction_correctionR1   R=  R8   RH  RI  t   computeR-   (   RĪ  Rc   Rd   R8   R·  t   exti_valR×   RX  t   ect   fc_sqt   coef(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt%   exercise_shelxl_extinction_correction  s    	'-c          C   sś  t  j d d  }  t j d  } t j |  | d t } | j d d	 d
 d  } | j   j	   } t j
 | d  } t j | |  } t j
 | d  } t j | |  } t j | d  }	 | j |	  }
 | j |	  } |
 j |  } | j   j	   | j   j	   k st  | j d d  } | j d d  } | j   j | j    sZt  | j |  j   j d  s~t  | j |  j   j d  s¢t  | j   d k }	 | j |	  j d d  j   j | j d d  j    söt  d  S(   Ni   i   i   Rr   i    i   R'   R)   i   R(   i’’’’g      ą?R   R   (   i   i   i   (   i    i    i   (   (   i    i    i   (   R   R*   R	   R+   R   R,   R-   RM   R$   RB   R~   R   t   random_boolRO   t   complete_withR8   R/   RI   RC   Rb  Rc  (   Rb   Rc   Rd   t   cmst   cms_sizet   data1RĘ  t   data2R  Rø  t   ma1it   ma1delt   ma1cR  R\  (    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   exercise_complete_with1¤  s,    *!$$!c          C   s  t  j d d  }  t j d d f  } t j |  | d t } t j d d g  } t j | |  } t j d d d f  } t j |  | d t } t j d d	 d
 g  } t j | |  } | j	 d |  }	 t
 |	 j    d d d d g k sü t  t
 |	 j    d d d d g k s&t  | j	 d |  }
 t
 |
 j    d d d d g k sbt  t
 |
 j    d d d d g k st  d  S(   Ni   i   i   Rr   i    i   i   R'   i’’’’iž’’’R
  g      š?g       @g        g       Ąg      šæ(   i   i   i   (   i    i    i   (   i    i    i   (   i    i    i    (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i    (   i    i    i   (   i    i    i    (   i    i    i   (   i    i    i   (   i    i    i   (   R   R*   R	   R+   R   R,   R-   R~   R   Ré  RD   R$   R/   R8   (   Rb   t   mi1t   ms1t   d1RĘ  t   mi2Ry   t   d2R  Rš  t   ma2c(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   exercise_complete_with2æ  s    ***c          C   s»  t  j d d  }  t j d d d d d d d  d! d" d# d$ d% d& d' f  } t j |  | d t } t j d d  } t j | |  } t j d( d) d* d+ d, d- d. d/ f  } t j |  | d t } t j d d  } t j | |  } | j	 |  }	 |	 j
   }	 |	 j   j | j    s&t  t |	 j    d d d d d d d d d d d d d d g k snt  | j	 | j d d
   }	 |	 j
   }	 t t |	 j    d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 f
  sŌt  t |	 j    d d d d d d d d d d g
 k st  | j	 | j d d   }	 |	 j
   }	 t t |	 j    d: d; d< d= d> d? d@ dA dB dC f
  svt  t |	 j    d d d d d d d d d d g
 k s²t  | j	 | j d d d d   }	 |	 j
   }	 t t |	 j    dD dE dF dG dH dI dJ dK dL dM f
  st  t |	 j    d d d d d d d d d d g
 k sZt  | j	 |  }
 |
 j
   }
 |
 j   j | j    st  t |
 j   | j    s·t  d  S(N   Ni   i   i   Rr   i    i   i   i   i   i   i   i   i	   i
   i   i   i   i   R'   R)   g      š?g       @R(   g      @(   i   i   i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i	   (   i    i    i
   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i	   (   i    i    i
   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i	   (   i    i    i
   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i	   (   i    i    i
   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i	   (   i    i    i
   (   i    i    i   (   i    i    i   (   R   R*   R	   R+   R   R,   R-   R~   R   Ré  RI   R$   RC   R/   RD   R8   RP  R   (   Rb   Rņ  Ró  Rō  RĘ  Rõ  Ry   Rö  R  t   mi2at   ma1a(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   exercise_complete_with3Ó  sD    !!H!<$<!!<!c          C   s×   t  j d d  }  t j d d d d d d d d d  d! d" d# d$ d% f  } t j |  | d t } | j   } | j d t j	 | j
   j   d   } t j | j
   j   d  } t j | |  } | j   d  S(&   Ni   i   i   Rr   i    i   i   i   i   i   i   i   i   i	   i
   i   i   i   i   R'   t	   selectiong333333Ó?(   i   i   i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i	   (   i    i    i
   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   R   R*   R	   R+   R   R,   R-   RM   RO   Rč  R$   RB   R~   R   t   complete_with_bin_average(   Rb   Rc   Rd   R°  Rl   (    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt0   exercise_complete_with_complete_with_bin_averageü  s    !*c          C   sÖ   t  j d d  }  t j d d g  } t j |  | d t } t j d d g  } t j d	 d
 g  } t j | d | d | } | j	   j   } t
 | j   d g  s“ t  t
 | j   d
 g  sŅ t  d  S(   Ni
   Rr   i   i   i   R'   g        gg  }ŗd@g  M>g%  £b@R8   R|   (   i
   i
   i
   (   i   i   i   (   i   i   i   (   R   R*   R	   R+   R   R,   R-   R~   R   R   R   R8   R/   R|   (   Rb   Rc   Rd   R°  Rm   Rl   t   me(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt(   exercise_merge_equivalents_special_cases  s    c       
   C   sA  t  j d t j d d  d d g d  }  |  j d d d	 d
  j   } xń t d  D]ć } | j d d  } | j   | j	   } | j
 d | d t d t d t  } t | j d |  d  sÉ t  t |  j   t |  j   } t t j |  t j |  t j |  g d d d g  s-t  | j   } qV Wd  S(   NR!   R"   i   R  Rø  i
   R)   g      ų?R  RZ  Rö   g¹?R_  t	   use_scaleR'   t   use_sgRõ  i    (   R   R  R   R!   R  R'  R„   R  t   apply_volume_scalingR  R"  R.   R-   R   R$  R/   R  R8   R	   R¹   Rŗ   RT  R2   (   Rm  RĀ  t   cntrR  t   map_dataRŗ  RĻ  (    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt#   exercise_structure_factors_from_map  s"    	
		!"Bc          C   s  t  j d t j d d  d d g d  }  |  j d d d	 d
  j   } | j d d d d d d  d d  d d  d d d t  } | j	   } g  | D] } t
 | d  ^ q } | j d |  } | j   d } x1 d d d g D]  } | | | | k są t  qą Wd  S(   NR!   R"   i   R  Rø  i
   R)   g       @R  RZ  Rö   gÉ?t	   grid_stepRõ   R÷   R  i   t   assert_shannon_samplingt	   max_indexi   i    i   (   R   R  R   R!   R  R'  Rł   R   R.   Rū   R¼   RM   RL   R/   (   Rm  t   sphereRł   Rū   R  R	  t   boxt   bi(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt"   exercise_build_set_using_max_index%  s$    			# c          C   sĒ  t  j d t j d d  d d g d  }  |  j d d  j   } | j   } t j   } xr t	 t
 |   D]^ } | d	 k rn | d t
 |  d k  rn | j | | d j t  | | j t   qn qn W| j   d
 k sč t  t t j |  d d  s	t  xA t	 d d  D]0 } | j d |  } | t
 |  k st  qWxs t d d d  D]_ } | j d |  } xD t |  D]6 \ } } | d	 k r| j t  | k s»t  qqWq`Wd  S(   NR!   R"   i   R  Rø  i,  R)   g      š?i    i   g       @g{®Gįz?i   i
   t   max_number_of_binsid   iø  iō  t   min_reflections_in_bin(   R   R  R   R!   R  R'  t   log_binningR	   R~   R„   Rv   RĶ  R   R.   RB   R/   R   RT  Rä   t	   enumerate(   Rm  R·  t   lbRn   R  Rź   Rm   (    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   exercise_log_binning8  s&    	&6! c          C   s`  t  j d d  }  t j d d d d d g  } t j |  | d t } t j d d d d d g  } t j | d	 | } t j d d d d d  g  } t j |  | d t } t j d d
 d d d g  } t j | d	 | } t	 t
 | j d |  j    d d d d d g  s t  t	 t
 | j d |  j    d d d d d g  s\t  d  S(!   Ni
   Rr   i   i   i   i   i   R'   R8   i   i   R
  g      š?g      @g      @g      @g      ą?g       @g      @g       @g      $@(   i
   i
   i
   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   R   R*   R	   R+   R   R,   R-   R~   R   R   RD   t   scaleR8   R/   (   RĪ  Rc   Rd   R°  RĘ  R  (    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   exercise_scaleN  s    <c          C   s  t  j d d  }  t j d d d d d g  } t j |  | d	 t } t j d d d d d g  } t j d d d d d g  } t j | d
 | } | j	 d | d t
  } t j d d d d d g  } t j |  | d	 t } t j d d d d d g  } t j d d d d d g  } t j | d
 | } | j	 d | d t
  } | j d | d t
  } | j   } t t | j d t
  j    d d d d d d g  s³t  | j d | d t
  } | j   } t t | j d t
  j    d d d d d d g  st  d  S(   Ni
   Rr   i    i   i   i   i   i   R'   R8   Rõ  R%   i   i   i(   i2   i<   R
  t   replace_phases(   i
   i
   i
   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   i    i    i   (   R   R*   R	   R+   R   R,   R-   R~   R   Re  R.   Ré  RI   R   RD   Ri  R8   R/   (   RĪ  Rc   Rd   R°  Ro   RĘ  R  Rn   (    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   exercise_complete_with4\  s&    ?c          C   sy   t  j d t j d d  d d g d  }  |  j d d  j   } | j d	 d
 d d
  | j d	 d
 d d
 d d  d  S(   NR!   R"   i   R  Rø  i,  R)   g       @t
   mean_scalei   t   n_iterations(   R   R  R   R!   R  R'  t   hoppe_gassmann_modification(   Rm  R·  (    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt$   exercise_hoppe_gassmann_modificationt  s    	c             sę   t  j d t j d d  d d g d  }  |  j d d  j       f d   } t | d	 d	  d  sp t  xo t t	 d	 d
 d   D]U } | | d |  } t | d	 | d d  sĀ t  t | d | d  s t  q Wd  S(   NR!   R"   i   R  Rø  i,  R)   c            s     j  d |  d | d d  } t j   j    t j | j    } } t j t j | |   t j t j | |   d } |   j d |  f S(   Nt   amplitude_errort   phase_error_degt   random_seedi© i   Rõ  (   t   randomize_amplitude_and_phaseR	   R  R8   RV  R$  (   R  Ro   t   fc_Rō  Rö  Rn   (   R·  (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   run  s
    +:i    i[   i
   g      Y@g{®Gįz?(   i    i    (
   R   R  R   R!   R  R'  R   R/   RD   R„   (   Rm  R!  R  Rn   (    (   R·  sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt&   exercise_randomize_amplitude_and_phase|  s    	 c          C   s5  t  j d t j d d  d d g d  }  |  j d d  j   } | j d	 d
 d d  } | j d d
  } | j d	 d
  } | j d	 d
  } | j d d
  } | j   j	   | j   j	   k sĶ t
  | j   j | j    sī t
  | j   j | j    st
  | j   j | j    s1t
  d  S(   NR!   R"   i   R  Rø  i,  R)   g      š?R(   gń?i    (   R   R  R   R!   R  R'  t   permute_d_rangeRP  R8   RB   R/   R$   RC   (   Rm  R·  t   fc_permt   fc_othert   fc_hight   fc_perm_hight   fc_perm_other(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   exercise_permute  s    	*!!c          C   sŠ   t  j d d  }  t j d |  d t d d  } | j   \ } } } t | | | g d	 d
 d g  sl t  t  j d d  } | j d |  } | j   \ } } } t | | | g d	 d
 d g  sĢ t  d  S(   Ni   i(   i2   s   P 2 2 2R&   R'   R)   g333333@g      @gN{JĪ@g£=^H@i<   g/įŠ[<<@(   i   i(   i2   (   i   i(   i<   (	   R   R*   R   R   R.   t   d_min_along_a_b_c_starR   R/   RZ   (   Rb   Rd   t   dat   dbt   dct   xs2(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   exercise_diagnostics  s    'c          C   s  t  j d d  }  t j d |  d t d d  } t j | j   j   d	  } t j	 | d
 | } | j
   \ } } | j   j d	  } t j | j   d  } | j |  } t j | j   |  } | j |  } | j   d k  sń t  | j   st  | j d d  } | j   d k  s-t  | j   s?t  | j d d  } | j   d k sit  | j   t k st  d  S(   Ni   i(   i2   Rr   R&   R'   R)   g       @i    R8   gffffffę?gėQøå?t	   thresholdg¹?g      ą?g®Gįz®ļ?(   i   i(   i2   (   R   R*   R   R   R.   R	   R~   R$   RB   R   R·   Rä  Rå  Rč  RO   R\   RN   R/   R'   t6   convert_to_non_anomalous_if_ratio_pairs_lone_less_thanR-   (   Rb   Rd   R°  Rl   R  Rī  Rø  t   sel_(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt?   exercise_convert_to_non_anomalous_if_ratio_pairs_lone_less_than§  s$    c          C   s1  t  j d t  <}  d8 d: d< d> d@ dB dD g } dE dF dG dH dI dJ dK g } xä t |  D]Ö \ } \ } } } t j d$ | d% |  } t j d& | d' t d( d)  } | j	 d* t
 j | j   d+   }	 |	 j | d, t   }
 t |
 j   j   | | d- d. s
t  |
 j   d/ k sX t |
 j     qX Wt |   d0 k sJt  Wd  QXt  j d t  É }  dM dO g } x t |  D] \ } \ } } } t j d$ | d% |  } t j d& | d' t d( d4  } | j	 d* t
 j | j   d+   }	 |	 j | d, t   d5 t }
 q~Wt |   d6 k s't  Wd  QXd  S(P   Nt   recordi
   i   i   gyV@iK   gfffffV@Rr   t   P2iZ   gĶĢĢĢĢ|V@t   P21t   P21212g
×£p=z_@gNbX9_@g®Gįz“d@g²q¬{V@g+ŁnV@g&ĀN@t   P63s   P63 (-a,b,-c)gĶĢĢĢĢD@gD@iA   gėQø~V@gįz®GV@g33333^@t   P222t   P4gć6Ą[=@g”ų1ę®eU@g_@ix   gīZB>čD@g33333D@R1   Rq   R&   R'   R)   g      ų?R8   g      š?R  R   gü©ńŅMbP?g®Gįz®ļ?i    g     C@gYD@g33333C^@g      @t   expand_to_p1_if_necessaryi   (   i
   i   i   gyV@iK   gfffffV@(   (   i
   i   i   gyV@iK   gfffffV@s   P1R5  (   i
   i   i   iZ   gĶĢĢĢĢ|V@iZ   (   (   i
   i   i   iZ   gĶĢĢĢĢ|V@iZ   R6  R7  (   g
×£p=z_@gNbX9_@g®Gįz“d@g²q¬{V@g+ŁnV@g&ĀN@(   (   g
×£p=z_@gNbX9_@g®Gįz“d@g²q¬{V@g+ŁnV@g&ĀN@s   P1R8  (   g
×£p=z_@gNbX9_@g®Gįz“d@g²q¬{V@g+ŁnV@g&ĀN@(   (   g
×£p=z_@gNbX9_@g®Gįz“d@g²q¬{V@g+ŁnV@g&ĀN@s   P1s   P63 (-a,b,-c)(   gĶĢĢĢĢD@gD@iA   gėQø~V@gįz®GV@g33333^@(   (   gĶĢĢĢĢD@gD@iA   gėQø~V@gįz®GV@g33333^@s   P1R8  (   gĶĢĢĢĢD@gD@iA   iZ   iZ   iZ   (   (   gĶĢĢĢĢD@gD@iA   iZ   iZ   iZ   R9  R:  (   gĶĢĢĢĢD@gD@iA   iZ   iZ   iZ   (   (   gĶĢĢĢĢD@gD@iA   iZ   iZ   iZ   R9  s   P1(   i
   i   gć6Ą[=@iZ   g”ų1ę®eU@iZ   (   i
   i   i   iZ   iZ   iZ   (   g_@g_@g®Gįz“d@iZ   iZ   ix   (   g_@g_@g®Gįz“d@iZ   iZ   ix   (   gīZB>čD@gīZB>čD@iA   iZ   iZ   ix   (   g33333D@g33333D@iA   iZ   iZ   iZ   (   gĶĢĢĢĢD@gD@iA   iZ   iZ   iZ   (   g     C@gYD@iA   gėQø~V@gįz®GV@g33333C^@(   (   g     C@gYD@iA   gėQø~V@gįz®GV@g33333C^@s   P1R8  (   gĶĢĢĢĢD@gD@iA   iZ   iZ   iZ   (   (   gĶĢĢĢĢD@gD@iA   iZ   iZ   iZ   R9  s   P1(   t   warningst   catch_warningsR.   R  R   R*   R   R   R-   R   R	   R~   RB   t   change_symmetryR   R   R1   R.  R/   RN   Rv   (   RÜ  t   test_inputst   expected_unit_cellst   i_inpt   uc_oldt   sg_oldt   sg_newRĪ  Rd   Rl   t   ma_new(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   exercise_change_symmetry»  sZ     		"				$(	"				$c    	      C   s©  t  j t j d  d d g d }  |  j d d  j   } t |  j   j   } | j	 d t j d  d	 t
 j | j   d
   } | j   } | j d |  } | j d t
 j | j   d  d	 t
 j | j   d   } | j d |  j   } t   } | j d |  } | j   j d  d k s6t  | j   } | j d |  } | j sct  | j	 d	 d   } y | j d |  } Wn t k
 rn Xt  d  S(   NR7  R  R  id   R)   g      @R!   R9  R|   g      š?R
  R8   g©?g¹?R   s%     (   0,    3,    0): i/sigi =    0.5i   (   R   R  R   R!   R  R'  R  R^  R:  RZ   R	   R~   RB   RM   Rc  R   Rt  R   t%   show_all_possible_systematic_absencesRW   R   R/   R_  t   input_amplitudesR   R   (	   Rm  R'  t   i_calcRM   Rc  t   i_absR   t   absencesR·  (    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt!   exercise_systematic_absences_infoņ  s2    	!	!c         C   sG  t    t   t   t   t   t   t   t   t   t	   t
   t   t   t   t   t   t   t   t   t   t   t   t   t   t d t d d |  k  t d t d d |  k  t   t   t   t   t   t    t!   t"   t#   t$   t%   t&   t' j( |  t)  d GHd  S(   NR   R½   s	   --verboset   OK(*   RL  RF  R3  R/  R"  R  R  R  R  R  R  Rž  Rń  Rų  Rū  RY  Rē  RŽ  RÕ  RŃ  RČ  Rt  Rp   Rz   RĪ   R-   R.   R   Rļ   R»  RÉ  RŌ  RŻ  R  Rž   R  RÅ  R   R)  R   t   parse_options_loop_space_groupsRŹ  (   t   args(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyR!  	  sT    t   __main__RO  i   (Y   t
   __future__R    Rd  R   R   R   R   R   R   t   cctbx.developmentR   R   t   cctbx.array_familyR	   t   scitbx.mathR©  t   libtbxR
   t   libtbx.test_utilsR   R   R   R   t   libtbx.utilsR   R   R   R   t	   cStringIOR   R<  Rą   R  RH  R©   Rp   Rz   R   R   R-   RĪ   Rļ   Rž   R»  RÉ  RŌ  RŻ  Ró  R  R  R  R5  RY  Rt  R~  R  R  R  R   R”  R¦  R·  RÅ  RČ  RŹ  RŃ  RÕ  RŽ  Rē  Rń  Rų  Rū  Rž  R   R  R  R  R  R  R  R"  R)  R/  R3  RF  RL  R!  RE  t   argv(    (    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_miller.pyt   <module>   s¦   "				._			’ ’ Ö	$		6	A	&	 	6	1			@											)											
		7		,