ó
ª™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 m Z m Z d  d l m Z d  d l m Z m Z d  d l m Z m Z d  d l Z d  d l m Z d  d l  Z  d  d l! Z" d  d l# Z# d „  Z$ d „  Z% d „  Z& d „  Z' d „  Z( e) d k r~e( ƒ  e$ ƒ  e' ƒ  d GHn  d S(   iÿÿÿÿ(   t   division(   t   data_statistics(   t   xtriage(   t   fmodel(   t   file_reader(   t   crystal(   t   miller(   t   sgtbx(   t   flex(   t   approx_equalt   Exception_expectedt	   show_diff(   t   show_pickle_sizes(   t   dumpst   loads(   t   null_outt   SorryN(   t   StringIOc       
   C   sÈ  d }  d } t  | d ƒ j |  ƒ | d d d d d d	 d
 d d g
 } t j d | d t ƒ  ƒ t j d ƒ j d ƒ } | j j	 d j
 d ƒ } | j ƒ  } t j | j ƒ  d ƒ | j ƒ  d } | j d | ƒ } d } | j d d ƒ j ƒ  j | ƒ d } t  | d ƒ j d ƒ | | | d g }	 t j d |	 d t ƒ  ƒ }
 t |
 ƒ |
 j j d k sdt ‚ t |
 j j ƒ d k s‚t ‚ |
 j } t | j j d d d  ƒs¬t ‚ | j j ƒ  } | d! k sÓt | ƒ ‚ |
 j j  } t | j! d" d d# ƒsýt ‚ t | j" d$ d d# ƒst ‚ |
 j# } d% | j$ d& k s=t ‚ d% | j% d' k sVt ‚ t | j& d( d d  ƒstt ‚ t | j' d) d* d+ d, d- d. g ƒ sžt ‚ t | j( dh ƒ s¶t ‚ t |
 j) d1 ƒ sÎt ‚ t |
 j* d5 ƒ sæt ‚ t | j+ j d d6 d7 d8 d9 d: d; g ƒ st ‚ t | j+ j d d< d= d> d? d@ dA g ƒ sHt ‚ t, | j- j. j d ƒ dB k smt ‚ | j- j. j d di dj g k s’t ‚ t | j- j. j dB dD dE g ƒ sºt ‚ | j- j/ j d  k sÕt ‚ t, | j1 j j2 ƒ dF k söt ‚ | j1 j j2 d dG dH dI dJ g k s4t | j1 j j2 d ƒ ‚ |
 j3 } | j4 } t5 ƒ  } | j6 | ƒ t7 | j8 ƒ  dK ƒ sxt ‚ t |
 j% dL d d ƒs–t ‚ t |
 j9 dM d d ƒs´t ‚ |
 j: dB k sÉt ‚ t |
 j; dN d d ƒsçt ‚ t |
 j< dO d d ƒst ‚ t |
 j= dP d dQ ƒs#t ‚ dR |
 j> k s8t ‚ | j d d  ƒ } dS } | j d d ƒ j ƒ  j | ƒ | | | d g }	 t j d |	 d t ƒ  ƒ }
 |
 j? ƒ  | j@ ƒ  } dT } | j d d ƒ j ƒ  j | ƒ | | dU g }	 t j d |	 d t ƒ  ƒ }
 dk |
 j? ƒ  jA k st ‚ | j dX tB jC dl d^ ƒ ƒ } | jD d_ d` ƒ } | j dX | jE ƒ  ƒ } tF jG | ƒ } t5 ƒ  } | j6 d | ƒ da | j8 ƒ  k s°t | j8 ƒ  ƒ ‚ db | j8 ƒ  k sÈt ‚ tH jI dX tB jC dm dc ƒ d_ d` dd tJ ƒ } tF jG | ƒ } t5 ƒ  } | j6 d | ƒ de | j8 ƒ  k s2t ‚ t5 ƒ  } tF jK | ƒ } | j6 d | ƒ df | j8 ƒ  k s~t | j8 ƒ  ƒ ‚ | jL ƒ  j ƒ  } | jM | ƒ } | jM | ƒ } dT } | j d d ƒ j ƒ  j | ƒ | | | dg g } y t j d | d t ƒ  ƒ Wn tN k
 rn XtO ‚ t jP | j ƒ  tJ ƒ } x tQ dF ƒ D] } tR | | <qBW| jS | jM | ƒ ƒ } | j d d ƒ j ƒ  j | ƒ y t j d | d t ƒ  ƒ Wn tN k
 r½n XtO ‚ d  S(n   Nsu  CRYST1   23.000    6.666   25.000  90.00 107.08  90.00 P 1 21 1      2
ATOM      1  N   GLY A   1      -9.009   4.612   6.102  1.00 16.77           N
ATOM      2  CA  GLY A   1      -9.052   4.207   4.651  1.00 16.57           C
ATOM      3  C   GLY A   1      -8.015   3.140   4.419  1.00 16.16           C
ATOM      4  O   GLY A   1      -7.523   2.521   5.381  1.00 16.78           O
ATOM      5  N   ASN A   2      -7.656   2.923   3.155  1.00 15.02           N
ATOM      6  CA  ASN A   2      -6.522   2.038   2.831  1.00 14.10           C
ATOM      7  C   ASN A   2      -5.241   2.537   3.427  1.00 13.13           C
ATOM      8  O   ASN A   2      -4.978   3.742   3.426  1.00 11.91           O
ATOM      9  CB  ASN A   2      -6.346   1.881   1.341  1.00 15.38           C
ATOM     10  CG  ASN A   2      -7.584   1.342   0.692  1.00 14.08           C
ATOM     11  OD1 ASN A   2      -8.025   0.227   1.016  1.00 17.46           O
ATOM     12  ND2 ASN A   2      -8.204   2.155  -0.169  1.00 11.72           N
ATOM     13  N   ASN A   3      -4.438   1.590   3.905  1.00 12.26           N
ATOM     14  CA  ASN A   3      -3.193   1.904   4.589  1.00 11.74           C
ATOM     15  C   ASN A   3      -1.955   1.332   3.895  1.00 11.10           C
ATOM     16  O   ASN A   3      -1.872   0.119   3.648  1.00 10.42           O
ATOM     17  CB  ASN A   3      -3.259   1.378   6.042  1.00 12.15           C
ATOM     18  CG  ASN A   3      -2.006   1.739   6.861  1.00 12.82           C
ATOM     19  OD1 ASN A   3      -1.702   2.925   7.072  1.00 15.05           O
ATOM     20  ND2 ASN A   3      -1.271   0.715   7.306  1.00 13.48           N
ATOM     21  N   MET A   4      -1.005   2.228   3.598  1.00 10.29           N
ATOM     22  CA  MET A   4       0.384   1.888   3.199  1.00 10.53           C
ATOM     23  C   MET A   4       1.435   2.606   4.088  1.00 10.24           C
ATOM     24  O   MET A   4       1.547   3.843   4.115  1.00  8.86           O
ATOM     25  CB  MET A   4       0.616   2.241   1.729  1.00 20.00           C
ATOM     26  CG  MET A   4      -0.207   1.416   0.754  1.00 20.00           C
ATOM     27  SD  MET A   4       0.132  -0.349   0.876  1.00 20.00           S
ATOM     28  CE  MET A   4       1.822  -0.411   0.285  1.00 20.00           C
ATOM     29  N   GLN A   5       2.154   1.821   4.871  1.00 10.38           N
ATOM     30  CA  GLN A   5       3.270   2.361   5.640  1.00 11.39           C
ATOM     31  C   GLN A   5       4.594   1.768   5.172  1.00 11.52           C
ATOM     32  O   GLN A   5       4.768   0.546   5.054  1.00 12.05           O
ATOM     33  CB  GLN A   5       3.056   2.183   7.147  1.00 11.96           C
ATOM     34  CG  GLN A   5       1.829   2.950   7.647  1.00 10.81           C
ATOM     35  CD  GLN A   5       1.344   2.414   8.954  1.00 13.10           C
ATOM     36  OE1 GLN A   5       0.774   1.325   9.002  1.00 10.65           O
ATOM     37  NE2 GLN A   5       1.549   3.187  10.039  1.00 12.30           N
ATOM     38  N   ASN A   6       5.514   2.664   4.856  1.00 11.99           N
ATOM     39  CA  ASN A   6       6.831   2.310   4.318  1.00 12.30           C
ATOM     40  C   ASN A   6       7.854   2.761   5.324  1.00 13.40           C
ATOM     41  O   ASN A   6       8.219   3.943   5.374  1.00 13.92           O
ATOM     42  CB  ASN A   6       7.065   3.016   2.993  1.00 12.13           C
ATOM     43  CG  ASN A   6       5.961   2.735   2.003  1.00 12.77           C
ATOM     44  OD1 ASN A   6       5.798   1.604   1.551  1.00 14.27           O
ATOM     45  ND2 ASN A   6       5.195   3.747   1.679  1.00 10.07           N
ATOM     46  N   TYR A   7       8.292   1.817   6.147  1.00 14.70           N
ATOM     47  CA  TYR A   7       9.159   2.144   7.299  1.00 15.18           C
ATOM     48  C   TYR A   7      10.603   2.331   6.885  1.00 15.91           C
ATOM     49  O   TYR A   7      11.041   1.811   5.855  1.00 15.76           O
ATOM     50  CB  TYR A   7       9.061   1.065   8.369  1.00 15.35           C
ATOM     51  CG  TYR A   7       7.665   0.929   8.902  1.00 14.45           C
ATOM     52  CD1 TYR A   7       6.771   0.021   8.327  1.00 15.68           C
ATOM     53  CD2 TYR A   7       7.210   1.756   9.920  1.00 14.80           C
ATOM     54  CE1 TYR A   7       5.480  -0.094   8.796  1.00 13.46           C
ATOM     55  CE2 TYR A   7       5.904   1.649  10.416  1.00 14.33           C
ATOM     56  CZ  TYR A   7       5.047   0.729   9.831  1.00 15.09           C
ATOM     57  OH  TYR A   7       3.766   0.589  10.291  1.00 14.39           O
ATOM     58  OXT TYR A   7      11.358   2.999   7.612  1.00 17.49           O
TER      59      TYR A   7
HETATM    1 CA    CA A   8      10.431   1.858   3.216  1.00 30.00          CA
HETATM   60  O   HOH A   9      -6.471   5.227   7.124  1.00 22.62           O
HETATM   62  O   HOH A  10     -11.286   1.756  -1.468  1.00 17.08           O
HETATM   63  O   HOH A  11      11.808   4.179   9.970  1.00 23.99           O
HETATM   64  O   HOH A  12      13.605   1.327   9.198  1.00 26.17           O
HETATM   65  O   HOH A  13      -2.749   3.429  10.024  1.00 39.15           O
HETATM   66  O   HOH A  14      -1.500   0.682  10.967  1.00 43.49           O
END
s   tst_xtriage_in.pdbt   ws   high_resolution=1.5s
   k_sol=0.35s   b_sol=20s   wavelength=1.54s(   add_random_error_to_amplitudes_percent=3s   random_seed=12345s   output.type=reals   output.label=Fs'   output.file_name=tst_xtriage_fmodel.mtzt   argst   logs   tst_xtriage_fmodel.mtzt   hkli    gš™™™™™¹?g¸…ëQ¸ž?t   sigmass   tst_xtriage_in.mtzt   column_root_labelt   Fs   tst_xtriage_in.fas   > tst_xtriage
GNNMQNYs   log=tst_xtriage_1.logt   outi   s¤   Solvent content analysis
Copies             Solvent content    Matthews coeff.    P(solvent content)
1                  0.472              2.33               1.000
g o�Å�ø?t   epsgü©ñÒMbP?s+  ---------------------------------------------------------
| Resolution range  | N(obs)/N(possible) | Completeness |
---------------------------------------------------------
| 21.9858 - 10.4368 | [ 6/7 ]            | 0.857        |
| 10.4368 -  8.4369 | [ 3/3 ]            | 1.000        |
|  8.4369 -  7.4172 | [ 3/4 ]            | 0.750        |
|  7.4172 -  6.7606 | [ 4/4 ]            | 1.000        |
|  6.7606 -  6.2882 | [ 8/8 ]            | 1.000        |
|  6.2882 -  5.9252 | [ 4/5 ]            | 0.800        |
|  5.9252 -  5.6337 | [11/11]            | 1.000        |
|  5.6337 -  5.3922 | [ 7/7 ]            | 1.000        |
|  5.3922 -  5.1874 | [ 6/6 ]            | 1.000        |
|  5.1874 -  5.0106 | [ 7/7 ]            | 1.000        |
---------------------------------------------------------gçŒ(í@g-Cëâ6?gmV}®¶â@s   %.2fs   0.66s   14.51gH3Mg'å?gævqœ—6?gº‘Žü¨s?gv/fÇÑ2?g       €gÚßî@ž?g        goc³#Õo*@güþÍ‹×0@g)Z¹˜å)@gSAh�ð¦Ò<g£GBA‹±¿gS|˜wÜ�Ì¼g;�Šÿ;"@g6rÝ”òº#@g�¼s(C½ @gÅ ‰&Pt@gñ) Æ3˜@gN—ÅÄæ	@gPà�|z¬û?gÝµßÚY@gÍ>�QžÙ.@gH2«w¸@g9
P@gÝéÎÏ™@gü5Y£R@i   iÿÿÿÿg'õei§†@gÖVì/»
@i
   s	       3.897s
        1.000s      0.52s      1.00sþ  
                  ----------Wilson ratio and moments----------

Acentric reflections:


   <I^2>/<I>^2    :2.047   (untwinned: 2.000; perfect twin 1.500)
   <F>^2/<F^2>    :0.779   (untwinned: 0.785; perfect twin 0.885)
   <|E^2 - 1|>    :0.743   (untwinned: 0.736; perfect twin 0.541)

Centric reflections:


   <I^2>/<I>^2    :3.043   (untwinned: 3.000; perfect twin 2.000)
   <F>^2/<F^2>    :0.626   (untwinned: 0.637; perfect twin 0.785)
   <|E^2 - 1|>    :0.996   (untwinned: 0.968; perfect twin 0.736)

g…ëQ¸-@gòÒMbXÑ?gbX9´ÈÞ?gÏ÷Sã¥›Ô?gHáz®G%@g{®Gáz„?s   indicating pseudo-translationas   tst_xtriage_in_2.mtzs   tst_xtriage_in_3.mtzs   log=tst_xtriage_2.logsf   One or more symmetry operators suggest that the data has a higher crystallographic symmetry (P 2 1 1).s!   Point group and R-factor analysist   crystal_symmetryi   i   i   iZ   g33333óZ@s   P 21t   d_ming      ø?s$   max. difference between axes = 0.652s   elliptically truncatedt   P422t   anomalous_flags0   Resolution limits are within expected tolerancess1   | 1.9724 - 1.5094  | 368/1230    | 29.9%        |s   log=tst_xtriage_3.log(   goc³#Õo*@güþÍ‹×0@g)Z¹˜å)@gSAh�ð¦Ò<g£GBA‹±¿gS|˜wÜ�Ì¼(   i    iÿÿÿÿiÿÿÿÿ(   i    i   i   (   i   sf   One or more symmetry operators suggest that the data has a higher crystallographic symmetry (P 2 1 1).s!   Point group and R-factor analysis(   i   i   i   iZ   g33333óZ@iZ   (   i   i   i   iZ   iZ   iZ   (T   t   opent   writeR   t   runR   R   t   any_filet   assert_file_typet   file_servert   miller_arrayst   remove_conet   dataR   t   doublet   sizet   customized_copyt   as_mtz_datasett
   mtz_objectR   t    test_pickle_consistency_and_sizet   matthewst   n_copiest   AssertionErrort   strt   tablet   data_strength_and_completenessR	   t   data_strengtht   resolution_cutt   low_resolution_completenesst   formatt   anomalous_infot   measurabilityt
   high_d_cutt	   low_d_cutt   wilson_scalingt   iso_p_scalet   iso_b_wilsont   aniso_p_scalet   aniso_u_start   aniso_b_cartt   aniso_b_mint   aniso_range_of_bt   outlier_shell_tablet   lent   outlierst   acentric_outliers_tablet   centric_outliers_tablet   Nonet	   ice_ringst   _rowst   twin_resultst   wilson_momentsR   t   showR   t   getvaluet   aniso_b_ratiot   number_of_wilson_outlierst   l_test_mean_lt   l_test_mean_l_squaredt   i_over_sigma_outer_shellt   patterson_verdictt   summarize_issuest   expand_to_p1t   _issuesR   t   symmetryt   resolution_filterR   t   dst   analyze_resolution_limitsR   t	   build_sett   Falset   log_binned_completenesst   centric_flagst   selectR   R
   t   boolt   ranget   Truet   concatenate(   t   pdb_rawt   pdb_filet   fmodel_argst   mtz_int   f_obsR'   t   sigft   mtz_filet   seq_filet   xtriage_argst   resultR4   t   out1t   a_meast   wst   twt   wmR   t   f_obs_2t   f_obs_3t   resot
   miller_sett
   log_binnedt   cft   centricst	   acentricsR   t   selt   it   f_obs_4(    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/scaling/tst_xtriage.pyt
   exercise_1   s   F	&	
			!!%%!				
							!	c         C   s,   t  |  ƒ } d Gt | ƒ GHt |  d ƒ d  S(   NRo   s     (   R   RE   R   (   Ro   t
   result_pkl(    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/scaling/tst_xtriage.pyt   show_pickled_object_sizes1  s    c         C   s¿   t  ƒ  } |  j d | ƒ t |  ƒ } t | ƒ } | d k r\ d G| GHt |  ƒ t ƒ  ‚ n  | d k  st t | ƒ ‚ t | ƒ } t  ƒ  } | j d | ƒ t | j	 ƒ  | j	 ƒ  ƒ s» t ‚ d  S(   NR   i † s   Oversized pickle:(
   R   RN   R   RE   R‚   t   OverflowErrorR0   R   R   RO   (   Ro   t   all_outt   result_pkl_strt   pkl_sizeR�   t   all_out_pkl(    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/scaling/tst_xtriage.pyR-   7  s    		
	c          C   s¥   xž t  d d ƒ D]� }  t j d |  ƒ } | j d ƒ } t j d t j d | d | ƒ d t d	 d
 ƒ } t	 j
 | ƒ } |  d k r | j ƒ  d k  s� t ‚ q q Wd  S(   Ni   iç   t   numberi€8 R   t   space_group_infot	   unit_cellR   R   g      ø?i   gš™™™™™¹?(   Rc   R   R‰   t   any_compatible_unit_cellR   R]   R   RY   Rd   R[   R\   t   max_d_min_deltaR0   (   t   xt   sgt   uct   mst   arl(    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/scaling/tst_xtriage.pyt"   exercise_analyze_resolution_limitsF  s    				c          C   s�  t  j j d d d t j j ƒ }  |  d  k r> t j d ƒ d  St	 j
 |  ƒ j d ƒ } | j j d t d t j d d	 d
 d6 ƒ ƒ d } | j ƒ  j ƒ  } t j | ƒ } | j } t | d ƒ sÆ t ‚ t j d | d d ƒ } y t j | ƒ } Wn t k
 rn Xt ‚ t  j j d d d t j j ƒ } d  }	 | d  k	 röt	 j
 | ƒ j d ƒ }
 |
 j j } |
 j j d | ƒ } | j d | j ƒ  ƒ j ƒ  }	 t  |	 ƒ j! ƒ  }	 |	 j" ƒ  }	 | j# d |	 ƒ \ } }	 t$ d d ƒ j% | j& d | ƒ ƒ d } n  t' j( j) ƒ  } d | j* j+ j, _- t' j. d | d |	 d | d | d t$ d d ƒ ƒ } d  | j/ k  odd! k  n sot ‚ d" | j0 k  o‰d# k  n s”t ‚ | d  k	 r¸| j1 d  k	 s¸t ‚ n  t2 | ƒ t | j3 d$ d% d& ƒsàt ‚ t | j4 d' d% d& ƒsþt ‚ | j5 d k st ‚ t | j6 d( d% d& ƒs1t ‚ t | j7 d) d% d& ƒsOt ‚ t | j8 d* d% d& ƒsmt ‚ d+ | j9 k s‚t ‚ y d, d- l: m; } Wn t< k
 r©n< X| j= d. ƒ } | j> d/ | ƒ t$ d0 d ƒ j% | j? ƒ  ƒ | j@ d  k	 sút ‚ tA ƒ  } | j@ j> d/ | ƒ d1 | jB ƒ  k s.t ‚ t | jC d2 d" ƒ d3 d% d4 ƒsUt ‚ | d  k	 r‹|  | g } t' jD d5 | d/ tE ƒ  ƒ } n  d  S(7   Nt   relative_paths&   phenix_regression/wizards/p9_se_w2.scat   tests.   phenix_regression not available, skipping testR   t   merge_equivalentsR   t   space_group_symbolt   I4RŠ   gÛù~j¼|\@gé&1¬<@@iZ   i    gMø¥~Þ4@t   miller_arrayt
   n_residuesix   s   phenix_examples/p9-build/p9.pdbt   pdbR   t   others   tmp_xtriage.pdbR   i�   t
   miller_obst   miller_calct   paramst   unmerged_obst   text_outs   logfile3.logg      /@gÍÌÌÌÌÌ/@i
   i   g®GázT2@R   gš™™™™™¹?gF¶óýÔxá?gZd;ßO�ß?gw¾Ÿ/ÝÔ?g      
@s,   No significant pseudotranslation is detectediÿÿÿÿ(   t   xtriage_jsons   p9.scaR   s   xtriage.jsons   R-merge: 0.073t   min_i_over_sigmag;ßO�—nÿ?gü©ñÒMbP?R   (   gÛù~j¼|\@gÛù~j¼|\@gé&1¬<@@iZ   iZ   iZ   (F   t   libtbxt   envt   find_in_repositoriest   ost   patht   isfileRI   t   warningst   warnR   R"   R#   t   file_objectt   as_miller_arraysR^   R   RY   R•   t   arrayR[   t   i_sigi_completeness_statsR5   R	   R0   R<   t   possible_outliersR
   t	   hierarchyt   xray_structure_simplet   structure_factorsR   t   f_calct   abst   generate_bijvoet_matest#   set_observation_type_xray_amplitudet   common_setsR   R    t   as_pdb_stringR   t   master_paramst   extractt   scalingt   inputt   asu_contentsR™   t   xtriage_analysesRB   RC   t   relative_wilsonR-   R>   RP   RQ   RR   RS   RT   RU   t   phenix_dev.phenix_cloudR¡   t   ImportErrort   json_outputRN   t   exportt   merging_statsR   RO   t   estimate_d_minR!   R   (   t   hkl_filet   hkl_int	   i_obs_rawt   i_obst   cstatst	   d_min_cutRr   RF   Rg   R³   t   pdb_inR°   t   xrsRž   Ro   R¡   t   json_outR   R   (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/scaling/tst_xtriage.pyt
   exercise_2V  sš    					
		%%
	t   __main__t   OK(*   t
   __future__R    t   mmtbx.scalingR   R[   R   t   mmtbx.command_lineR   t   iotbxR   t   cctbxR   R   R   t   cctbx.array_familyR   t   libtbx.test_utilsR	   R
   R   t   libtbx.developmentR   t   libtbx.easy_pickleR   R   t   libtbx.utilsR   R   t   libtbx.load_envR£   t	   cStringIOR   R©   t   os.pathR¦   t   sysR€   R‚   R-   R’   RÏ   t   __name__(    (    (    sG   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/scaling/tst_xtriage.pyt   <module>   s8   	ÿ 				`