ó
�™xTc           @   sg  d  d l  m Z d  d l m Z 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 Z d  d l m Z m Z d  d	 l m Z m Z d  d l Z d  d l Z d  d l Z e d
 „ Z d „  Z d „  Z e d k rce j d e  ƒ �O Z! e d d e j" k ƒ e# e! ƒ d k sGt$ e# e! ƒ ƒ ‚ e ƒ  e ƒ  Wd QXd GHn  d S(   iÿÿÿÿ(   t   division(   t   reflection_file_editort   file_reader(   t   master_phil(   t   miller(   t   crystalt   sgtbxt   uctbx(   t   flexN(   t   Exception_expectedt   approx_equal(   t   Sorryt   null_outc   B         sà$  t  j d t j d ƒ d t j dµ ƒ ƒ } t j d | d	 t d
 d ƒ } | j	 ƒ  j
 ƒ  d k sf t ‚ t j | j	 ƒ  j
 ƒ  d ƒ } t j | j	 ƒ  j
 ƒ  d ƒ } x& t d ƒ D] } d | d | d <q¯ Wx& t d ƒ D] } d | d | d <qØ W| j d | d | ƒ } | j ƒ  | j d t ƒ j ƒ  } | j d d ƒ } | j | d d ƒ| j ƒ  j d ƒ t j j d ƒ }	 t j d |	 ƒ j ƒ  }
 t j ‰  |  s«t ƒ  ‰  n  ‡  f d †  } d |
 j  j! d  _" y | |
 d! ƒ } Wn7 t# k
 r} d" t$ | ƒ k s t t$ | ƒ ƒ ‚ n Xt% ‚ d# d$ d% d& g |
 j  j! d  _& | |
 d! ƒ } | d  j' ƒ  j( d# d$ d% d& g k syt ‚ | d  j) ƒ  s�t ‚ | d  j* ƒ  } t j+ | ƒ d  k sºt ‚ d' |
 j  j! d  _" | |
 d! ƒ } | d  j' ƒ  j( d# d$ d% d& g k st ‚ | d  j) ƒ  st ‚ t, | d  j* ƒ  ƒ d k s?t ‚ t j+ | d  j* ƒ  ƒ d  k sdt ‚ d( |
 j  j! d  _" d |
 j  j! d  _- d# d$ d% d& g |
 j  j! d  _& d) |
 j  _. | |
 d) ƒ } t/ j0 d ƒ } | j1 j2 } | d  j* ƒ  } | d  j* ƒ  } | d  j) ƒ  st ‚ | j3 | ƒ r3| j4 | ƒ s9t ‚ d! |
 j  _. d( |
 j  j! d  _- d* |
 j  j! d  _5 y | |
 d! ƒ Wn7 t# k
 rµ} d+ t$ | ƒ k s¼t t$ | ƒ ƒ ‚ n Xt% ‚ d d, g |
 j  j! d  _& | |
 d! ƒ } | d  j6 ƒ  sût ‚ d- |
 j  j! d. _5 y | |
 d! ƒ Wn7 t# k
 rX} d/ t$ | ƒ k s_t t$ | ƒ ƒ ‚ n Xt% ‚ d0 d1 g |
 j  j! d. _& | |
 d! ƒ } | d. j6 ƒ  s�t ‚ t j d |	 ƒ j ƒ  }
 d2 |
 j  j! d  _7 | |
 d! ƒ } | d  j* ƒ  } | d  j8 ƒ  } | j
 ƒ  d3 k r| | j9 d2 ƒ s"t ‚ t j d |	 ƒ j ƒ  }
 d2 |
 j  j! d  _: | |
 d! ƒ } | d  j* ƒ  } t; t j< | ƒ d2 t j< | ƒ ƒ s—t ‚ t j d |	 ƒ j ƒ  }
 t |
 j  j! d  _= | |
 d! ƒ } | d  j* ƒ  j
 ƒ  } | d4 k sÿt | ƒ ‚ t j d |	 ƒ j ƒ  }
 d5 |
 j  j! d  _> | |
 d! ƒ } | d  j* ƒ  } t j< | ƒ d5 k sst t j< | ƒ ƒ ‚ t j d |	 ƒ j ƒ  }
 d6 |
 j  j! d  _? | |
 d! ƒ } | d  j* ƒ  } | d  j8 ƒ  } t; | d  d7 d8 d9 ƒsìt ‚ t j d |	 ƒ j ƒ  }
 d¶ |
 j  j! d  _@ | |
 d! ƒ } | d  j* ƒ  } | d  j8 ƒ  } t; | d  d7 d8 d9 ƒset ‚ t j d |	 ƒ j ƒ  }
 t |
 j  j! d  _A | |
 d! ƒ } | d  j* ƒ  } | j3 | ƒ sÅt ‚ d; |
 j  j! d  _B | |
 d! ƒ } | d  j* ƒ  } | j3 | d  ƒ s	t ‚ t j d |	 ƒ j ƒ  }
 d  |
 j  j! d  _: d |
 j  j! d. _" | |
 d! ƒ } d( |
 j  j! d. _" d |
 j  j! d. _- y | |
 d! ƒ } Wn t# k
 r«	} n Xt% ‚ t j d |	 ƒ j ƒ  }
 d2 |
 j  j! d. _7 y | |
 d! ƒ } Wn t# k
 r
} n Xt% ‚ t j d |	 ƒ j ƒ  }
 |
 j  j! d. j& jD d< ƒ y | |
 d! ƒ } Wn+ t# k
 r~
} d= t$ | ƒ k s…
t ‚ n Xt% ‚ |
 j  j! d. j& jE ƒ  |
 j  j! d  j& jE ƒ  y | |
 d! ƒ } Wn+ t# k
 ró
} d= t$ | ƒ k sú
t ‚ n Xt% ‚ t j d |	 ƒ j ƒ  }
 d> |
 j  j! d  _F d? |
 j  j! d. _F | |
 d! ƒ } | d  j' ƒ  jG ƒ  d@ k sit ‚ | d. j' ƒ  jG ƒ  d? k s‹t ‚ dA |
 j  j! d  _F y | |
 d! ƒ } Wn+ t# k
 rÞ} dB t$ | ƒ k såt ‚ n Xt% ‚ dC |
 j  j! d  _F y | |
 d! ƒ } Wn+ t# k
 r8} dB t$ | ƒ k s?t ‚ n Xt% ‚ d |
 j  j! d  _" | |
 d! ƒ } | d  j' ƒ  jG ƒ  dD k sƒt ‚ t j d |	 ƒ j ƒ  }
 t |
 j  jH _I d |
 j  jH _J y | |
 d! ƒ } Wn t# k
 rßn Xt% ‚ t |
 j  _K | |
 d! ƒ } | d j' ƒ  jG ƒ  dE k s#t ‚ t j d |	 ƒ j ƒ  }
 d2 |
 j  _L | |
 d! ƒ } t; | d  jL ƒ  d2 d8 dF ƒs{t ‚ t; | d. jL ƒ  d2 d8 dF ƒs t ‚ d  |
 j  _L d2 |
 j  j! d  _L | |
 d! ƒ } t; | d  jL ƒ  d2 d8 dF ƒsót ‚ t; | d. jL ƒ  d d8 dF ƒst ‚ t j d |	 ƒ j ƒ  }
 |
 j  jM jD d· ƒ |
 j  jM jD d¸ ƒ | |
 d! ƒ } | d  j	 ƒ  j
 ƒ  | j	 ƒ  j
 ƒ  d k s—t ‚ t j d |	 ƒ j ƒ  }
 dH |
 j  jN _O | |
 d! ƒ } | d  j ƒ  jP ƒ  d¹ k sït ‚ dM |
 j  jN _O y | |
 d! ƒ } Wn t# k
 r$n Xt% ‚ dN |
 j  jN _O dO |
 j  _. | |
 dO ƒ } | d  jQ dP tR ƒ | d. jQ dP tR ƒ k oŒd k n s—t ‚ d! |
 j  _. t j d |	 ƒ j ƒ  }
 t |
 j  jN _S | |
 d! ƒ } | d  j ƒ  jT ƒ  jU ƒ  d. k st ‚ t j d |	 ƒ j ƒ  }
 t j dQ ƒ |
 j  jN _V | |
 d! ƒ } | d  jW d | ƒ } | jX dR | ƒ \ } } | j8 ƒ  j3 | j8 ƒ  ƒ s�t ‚ t j d |	 ƒ j ƒ  }
 t j dS ƒ |
 j  jN _V | |
 d! ƒ } | d  j ƒ  jT ƒ  jU ƒ  dT k söt ‚ t j dU ƒ |
 j  jN _Y y | |
 d! ƒ } Wn+ t# k
 rN} dV t$ | ƒ k sUt ‚ n Xt% ‚ t j d |	 ƒ j ƒ  }
 t j dW ƒ |
 j  jN _V y | |
 d! ƒ } Wn+ t# k
 rÅ} dX t$ | ƒ k sÌt ‚ n Xt% ‚ t j d |	 ƒ j ƒ  }
 dY |
 j  j! d. _L dZ |
 j  _. | |
 dZ ƒ } | d. j* ƒ  j
 ƒ  d[ k s4t ‚ | d. j* ƒ  } t j d |	 ƒ j ƒ  }
 t |
 j  jH _Z x |
 j  j! D] } dZ | _[ qxWd\ |
 j  _. | |
 d\ ƒ } | d. j* ƒ  j
 ƒ  d] k sÈt ‚ t |
 j  jH _\ | |
 d\ ƒ } | d. j* ƒ  j
 ƒ  d^ k st ‚ tR |
 j  jH _\ d_ |
 j  _L | |
 d\ ƒ } | d. j* ƒ  j
 ƒ  d] k sTt ‚ t |
 j  jH _\ | |
 d\ ƒ } | d. j* ƒ  j
 ƒ  d` k s”t ‚ t j d |	 ƒ j ƒ  }
 t |
 j  jH _] tR |
 j  jH _^ da |
 j  _. | |
 da ƒ } | d. } | d. j* ƒ  d  k }  | d. j* ƒ  d. k }! |  j3 |! ƒ s0t ‚ t j d |	 ƒ j ƒ  }
 db |
 j  _. x |
 j  j! D] } da | _[ qaW| |
 db ƒ } | d. j* ƒ  d  k }" |  j3 |" ƒ s®t ‚ dY |
 j  j! d. _L dc |
 j  _. | |
 dc ƒ }# t j d |	 ƒ j ƒ  }
 t |
 j  jH _Z x |
 j  j! D] } dc | _[ qWdb |
 j  _. | |
 db ƒ } |# d. j_ dR | d. ƒ }$ | d. j_ dR |# d. ƒ }% |% j* ƒ  j3 |$ j* ƒ  ƒ s“t ‚ x |
 j  j! D] } da | _[ q Wdb |
 j  _. d  |
 j  j! d. _L tR |
 j  jH _^ | |
 db ƒ } | d. j_ dR | ƒ j* ƒ  d. k }" |  j3 |" ƒ s't ‚ t j d |	 ƒ j ƒ  }
 db |
 j  _. dd |
 j  jH _` t |
 j  jH _a y | |
 db ƒ } Wn+ t# k
 r©} de t$ | ƒ k s°t ‚ n Xt% ‚ tR |
 j  jH _^ | |
 db ƒ } | d }& |& j* ƒ  jb d. ƒ |& j* ƒ  j
 ƒ  }' |' df k r|' dg k  st ‚ dh |
 j  jH _` | |
 db ƒ } | d }( |( j* ƒ  jb d. ƒ |( j* ƒ  j
 ƒ  }' |' di k r€|' dj k  s†t ‚ | j d d ƒ }) | jc ƒ  }* |) j |* d d ƒ|) j ƒ  j dc ƒ t j j dk ƒ }	 t j d |	 ƒ j ƒ  }
 | |
 dl ƒ } | d  j6 ƒ  r$| d. j6 ƒ  s*t ‚ | j d d ƒ }) | jc ƒ  }* |* jW d t jd |* j* ƒ  j
 ƒ  d. ƒ ƒ }* |) j |* d d ƒ|) j ƒ  j dc ƒ y | |
 dl ƒ } Wn t# k
 rÀ} n Xt% ‚ tR |
 j  jH _Z tR |
 j  jH _e | |
 dl ƒ } | d. j* ƒ  j3 d. ƒ st ‚ | j d d ƒ }+ | j ƒ  j	 ƒ  }, |+ jf dm dn do dn ƒ jg dp |, d t j |, j
 ƒ  d ƒ ƒ |+ jf dm dq do dr ƒ jg dp |, d t j |, j
 ƒ  ds ƒ ƒ |+ jf dm dt do du ƒ jg dp |, d t j |, j
 ƒ  dv ƒ ƒ |+ jf dm dw do dr ƒ jg dp |, d t j |, j
 ƒ  d ƒ ƒ |+ j ƒ  j dx ƒ t j j dy ƒ }	 t j d |	 ƒ j ƒ  }
 y | |
 dz ƒ } Wn+ t# k
 rœ} d{ t$ | ƒ k s£t ‚ n Xt% ‚ |
 j  j! d. j& jD d| ƒ | |
 dz ƒ } |+ j ƒ  jh ƒ  }- |- d. ji ƒ  sôt ‚ tj jk |- d. ƒ }. |. dn dq dt dw d| g k s(t ‚ dn dq g |
 j  j! d. _& d* |
 j  j! d. _5 | |
 dz ƒ } | d. j) ƒ  syt ‚ | d. j' ƒ  jG ƒ  d} k s›t ‚ d~ |
 j  _. d |
 j  j! d. _5 d |
 j  j! d. _[ d€ |
 j  j! d. _( d� jl ƒ  |
 j  j! d. _& y | |
 d~ ƒ } Wn+ t# k
 r9} d‚ t$ | ƒ k s@t ‚ n Xt% ‚ t |
 j  _K | |
 d~ ƒ } | d. j' ƒ  jG ƒ  dƒ k s}t ‚ tm jn jo d„ d… t$ tm jp ƒ  ƒ d† ƒ |
 j  _. y | |
 dz ƒ } Wn t# k
 rÒ} n Xt% ‚ t j d |	 ƒ j ƒ  }
 g  |
 j  _! y | |
 dz ƒ } Wn t# k
 r%} n Xt% ‚ | jW d t j dM ƒ ƒ }/ t j d |/ d	 t d
 d ƒ }0 t j |0 j	 ƒ  j
 ƒ  d ƒ } t j |0 j	 ƒ  j
 ƒ  d ƒ }1 |0 j d | d |1 ƒ }2 |2 jq ƒ  |2 j d t ƒ j ƒ  }* |2 j d d‡ dˆ d‰ ƒ }) |) j |* d d ƒ|) j ƒ  j dŠ ƒ |2 j	 ƒ  j
 ƒ  d‹ k s7t ‚ t j j dŒ ƒ }	 t j d |	 ƒ j ƒ  }
 | |
 d� ƒ } | d  j	 ƒ  j
 ƒ  d k s’t ‚ tR |
 j  jN _r | |
 d� ƒ } | d  j	 ƒ  j
 ƒ  d‹ k sÒt ‚ t; | d  j' ƒ  js d‰ ƒ sôt ‚ dŽ |
 j  _s d� |
 j  _. | |
 d� ƒ } t; | d  j' ƒ  js dŽ ƒ s=t ‚ |2 j ƒ  j d d� dˆ d  ƒ }+ |+ j |* d d ƒ|+ j ƒ  j d‘ ƒ t j j d’ ƒ }	 t j d |	 ƒ j ƒ  }
 | |
 d� ƒ } t; | d  j' ƒ  js d‰ ƒ sÜt ‚ |2 j ƒ  j d d� dˆ dŽ ƒ }+ |+ j |* d d ƒ|+ j ƒ  j d‘ ƒ y | |
 d� ƒ } Wn+ t# k
 r` } t$ | ƒ d“ k sg t ‚ n Xt% ‚ d‰ |
 j  _s | |
 d� ƒ } t; | d  j' ƒ  js d‰ ƒ s¤ t ‚ t j j d” ƒ }	 t j d |	 ƒ j ƒ  }
 | |
 d� ƒ } t; | d  j' ƒ  js d‰ ƒ sÿ t ‚ t, |2 j	 ƒ  ƒ } t jt | ƒ }3 t jt | ƒ }4 t ju |3 |4 ƒ }5 |2 jW d |5 d d  ƒ j ƒ  }6 |6 j d d• ƒ j ƒ  j d– ƒ t j j d— ƒ }	 t j d |	 ƒ j ƒ  }
 | |
 d˜ ƒ } t  j d t j d ƒ d t j dº ƒ ƒ } t j d | d	 t d
 d ƒ } | j dœ d� dž d  ƒ } d  }7 x“ tv | j	 ƒ  ƒ D] \ }8 \ }9 }: }; |8 dŸ d  k r0"|9 d  k r0"|: d  k r0"|; d  k r0"| j* ƒ  |8 }< |< s¯"|7 d. 7}7 t | j* ƒ  |8 <q¯"q0"q0"W|7 d  k sÅ"t ‚ | j d d  ƒ j ƒ  j d¡ ƒ t j j d¢ ƒ }	 t j d |	 ƒ j ƒ  }
 y | |
 d£ ƒ } Wn t# k
 r4#n Xt% ‚ t |
 j  jH _w tR |
 j  jH _^ | |
 d£ ƒ } t  j d d» d§ d ƒ } t j d | d
 d¨ d	 t ƒ jx d© dª ƒ }= |= j d t j |= j
 ƒ  d ƒ d t j |= j
 ƒ  d ƒ ƒ } | j ƒ  | jy d« d¬ ƒ | j ƒ  j ƒ  } | jW d d¼ ƒ }> | jW d |> ƒ jx d© d° d
 d± ƒ } | j d d  ƒ j ƒ  j d² ƒ t j j d³ ƒ }	 t j d |	 ƒ j ƒ  }
 | |
 d´ ƒ } | \ }? }@ |? j ƒ  jz dR |@ ƒ }A |A j
 ƒ  d  k sÜ$t ‚ d  S(½   Nt   space_group_infot   P212121t	   unit_celli   i   i   iZ   t   crystal_symmetryt   anomalous_flagt   d_ming      ð?iU  g      Y@g      @i
   iÿÿÿÿi   i   g      @i   t   datat   sigmast   use_lattice_symmetryt   column_root_labels   I-obss   R-free-flagss   tst_data.mtzs‘  
mtz_file {
  output_file = tst1.mtz
  crystal_symmetry.space_group = P212121
  crystal_symmetry.unit_cell = 6,7,8,90,90,90
  miller_array {
    file_name = tst_data.mtz
    labels = I-obs(+),SIGI-obs(+),I-obs(-),SIGI-obs(-)
    output_labels = I-obs(+) SIGI-obs(+) I-obs(-) SIGI-obs(-)
  }
  miller_array {
    file_name = tst_data.mtz
    labels = R-free-flags
    output_labels = R-free-flags
  }
}t   sourcec            sA   t  j |  d ˆ  ƒ} | j ƒ  t j | ƒ } | j j ƒ  } | S(   Nt   log(   R   t   process_arrayst   finishR   t   any_filet   file_objectt   as_miller_arrays(   t   paramst	   file_namet   pt   mtz_int   miller_arrays(   R   (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/regression/tst_reflection_file_editor.pyt   run_and_reload;   s
    
t
   amplitudesi    s   tst1.mtzs   inconsistent withs   F-obs(+)s   SIGF-obs(+)s   F-obs(-)s   SIGF-obs(-)t   amplitudes_fwt   autos   tst2.mtzt   mergeds   too many column labelss   SIGI-obst	   anomalousi   s   not specified enoughs   R-free-flags(+)s   R-free-flags(-)g       @iA  iK  g     @Ÿ@g      4@gÈTÆ¿+R@t   epsgñhãˆµøä>g        gÍÌÌÌÌÈ@t   NULLs   number of output labelst   I_tstt   FREEs)   I_tst(+),SIGI_tst(+),I_tst(-),SIGI_tst(-)t   asdft   inconsistentt   F_tsts)   F_tst(+),SIGF_tst(+),F_tst(-),SIGF_tst(-)s   R-free-flags_2g{®Gáz„?i   s   b,a,cg      @g      @g       @g     €V@t   P222s   l,k,-hs   tst_c_o_b.mtzt   use_binningt   P21212t   othert   P21i   t   P4s   Input unit cellt   P6322s   incompatible with the specifiedg333333ó?s   tst_data2.mtziŠ   s	   tst4a.mtziÝ   iÞ   gš™™™™™é?i¬  s   tst_data3.mtzs   tst4.mtzs   tst_data4.mtzg333333Ã?t   resizingg�Âõ(\�Â?g×£p=
×Ã?gš™™™™™©?gJ+‡©?gé&1¬ª?s¦  
mtz_file {
  output_file = tst5.mtz
  crystal_symmetry.space_group = P212121
  crystal_symmetry.unit_cell = 6,7,8,90,90,90
  miller_array {
    file_name = tst_data4.mtz
    labels = I-obs(+),SIGI-obs(+),I-obs(-),SIGI-obs(-)
    output_labels = I-obs(+) SIGI-obs(+) I-obs(-) SIGI-obs(-)
  }
  miller_array {
    file_name = tst_data4.mtz
    labels = R-free-flags(+),R-free-flags(-)
    output_labels = R-free-flags
  }
}s   tst5.mtzt   labelt   Ft   typet   miller_indicest   SIGFt   Qg      @t   DANOt   Dg      $@t   SIGDANOs   tst_data5.mtzs¨  
mtz_file {
  output_file = tst6.mtz
  crystal_symmetry.space_group = P212121
  crystal_symmetry.unit_cell = 6,7,8,90,90,90
  miller_array {
    file_name = tst_data5.mtz
    labels = I-obs(+),SIGI-obs(+),I-obs(-),SIGI-obs(-)
    output_labels = I-obs(+) SIGI-obs(+) I-obs(-) SIGI-obs(-)
  }
  miller_array {
    file_name = tst_data5.mtz
    labels = F,SIGF,DANO,SIGDANO,merged
    output_labels = F SIGF DANO SIGDANO
  }
}s   tst6.mtzs   Five columnst   ISYMs   F,SIGFs   tst7.mtzt   Autos)   I-obs(+),SIGI-obs(+),I-obs(-),SIGI-obs(-)s)   I-obs(+) SIGI-obs(+) I-obs(-) SIGI-obs(-)s!   Duplicate column label 'I-obs(+)'s1   I-obs_2(+),SIGI-obs_2(+),I-obs_2(-),SIGI-obs_2(-)s   /foot   bars   data.mtzs   F-obst
   wavelengthg¤p=
×£ø?s   tst_data8.mtzi`  s“  
mtz_file {
  output_file = tst8.mtz
  crystal_symmetry.space_group = P212121
  crystal_symmetry.unit_cell = 6,7,8,90,90,90
  miller_array {
    file_name = tst_data8.mtz
    labels = F-obs(+),SIGF-obs(+),F-obs(-),SIGF-obs(-)
    output_labels = F-obs(+) SIGF-obs(+) F-obs(-) SIGF-obs(-)
  }
  miller_array {
    file_name = tst_data8.mtz
    labels = R-free-flags
    output_labels = R-free-flags
  }
}s   tst8.mtzgB`åÐ"Ûñ?s   tst9.mtzs   F-obs_2s   tst_data9.mtzs  
mtz_file {
  output_file = tst9.mtz
  crystal_symmetry.space_group = P212121
  crystal_symmetry.unit_cell = 6,7,8,90,90,90
  miller_array {
    file_name = tst_data8.mtz
    labels = F-obs(+),SIGF-obs(+),F-obs(-),SIGF-obs(-)
    output_labels = F-obs(+) SIGF-obs(+) F-obs(-) SIGF-obs(-)
  }
  miller_array {
    file_name = tst_data9.mtz
    labels = F-obs_2,SIGF-obs_2
    output_labels = F-obs_2 SIGF-obs_2
  }
  miller_array {
    file_name = tst_data8.mtz
    labels = R-free-flags
    output_labels = R-free-flags
  }
}s�   Multiple wavelengths present in input experimental data arrays: 1.116, 1.54.  Please specify the wavelength parameter explicitly.s“  
mtz_file {
  output_file = tst9.mtz
  crystal_symmetry.space_group = P212121
  crystal_symmetry.unit_cell = 6,7,8,90,90,90
  miller_array {
    file_name = tst_data8.mtz
    labels = F-obs(+),SIGF-obs(+),F-obs(-),SIGF-obs(-)
    output_labels = F-obs(+) SIGF-obs(+) F-obs(-) SIGF-obs(-)
  }
  miller_array {
    file_name = tst_data9.mtz
    labels = R-free-flags
    output_labels = R-free-flags
  }
}t   2FOFCWTs   tst_data10.mtzsù   
mtz_file {
  output_file = tst10.mtz
  crystal_symmetry.space_group = P212121
  crystal_symmetry.unit_cell = 6,7,8,90,90,90
  miller_array {
    file_name = tst_data10.mtz
    labels = 2FOFCWT,PHI2FOFCWT
    output_labels = 2FOFCWT PHI2FOFCWT
  }
}s	   tst10.mtzi<   iF   iP   t   fractiongš™™™™™¹?t   max_freeid   t
   FreeR_flags   tst_data11.mtzsý   
mtz_file {
  output_file = tst11.mtz
  crystal_symmetry.space_group = P212121
  crystal_symmetry.unit_cell = 60,70,80,90,90,90
  miller_array {
    file_name = tst_data11.mtz
    labels = FreeR_flag(+),FreeR_flag(-)
    output_labels = FreeR_flag
  }
}s	   tst11.mtzg=
×£p�F@g…ëQ¸žI@g�Âõ(\T@t   space_group_symbolg‡§WÊ2Äú?t   d_maxg#Ûù~jô@@R   s   tst_data12.scagìQ¸…›F@gD‹lçû™I@g33333T@gL7‰A`e8@geÂ/õó&ÿ?s   tst_flags.mtzs  
mtz_file {
  output_file = tst12.mtz
  crystal_symmetry {
    unit_cell = 45.215 51.203 80.425 90 90 90
    space_group = P 21 21 21
    output_unit_cell = 45.23 51.24 80.49 90 90 90
  }
  miller_array {
    file_name = tst_data12.sca
    labels = I(+),SIGI(+),I(-),SIGI(-),merged
    output_labels = I(+) SIGI(+) I(-) SIGI(-)
  }
  miller_array {
    file_name = tst_flags.mtz
    labels = FreeR_flag
    output_labels = FreeR_flag
  }
  r_free_flags {
    extend = True
    relative_to_complete_set = True
  }
}s	   tst12.mtz(   i   i   i   iZ   iZ   iZ   (   g      4@g      4@g      4@g        g        g        (   i   i   i   (   i   i   i   (   g      @g      @g       @g     €V@g     €V@g     €V@(   i<   iF   iP   iZ   iZ   iZ   (   g=
×£p�F@g…ëQ¸žI@g�Âõ(\T@iZ   iZ   iZ   (   gìQ¸…›F@gD‹lçû™I@g33333T@iZ   iZ   iZ   ({   R   t   symmetryR   R   R   R   R   t	   build_sett   Truet   indicest   sizet   AssertionErrorR   t   doublet   ranget   arrayt#   set_observation_type_xray_intensityt   generate_r_free_flagst   average_bijvoet_matest   as_mtz_datasett   add_miller_arrayt
   mtz_objectt   writet   libtbxt   philt   parseR   t   fetcht   extractt   syst   stdoutR   t   mtz_filet   miller_arrayt	   output_asR   t   strR	   t   output_labelst   infot   labelst   is_xray_amplitude_arrayR   t   mint   lent
   force_typet   output_fileR   R   t   file_serverR"   t   all_eqt   all_net   anomalous_dataR   t   filter_by_signal_to_noiseR   t   all_get   scale_factorR
   t   maxt   remove_negativest	   scale_maxt	   add_b_isot   add_b_anisot   shuffle_valuest   reset_values_tot   Nonet   appendt   popR   t   label_stringt   r_free_flagst   force_generatet	   new_labelt   resolve_label_conflictsR   t   exclude_reflectionR   t   change_of_basist
   parameterst   completenesst   Falset   expand_to_p1R:   t   numbert   output_space_groupt   customized_copyt   common_setst   space_groupt   extendR   t   relative_to_complete_sett   export_for_ccp4t   preserve_input_valuest
   common_setRF   t   adjust_fractiont   countt   generate_bijvoet_matest   intt   warn_if_all_same_valuet
   add_columnt	   set_realsR   t%   is_xray_reconstructed_amplitude_arrayR   t   guess_array_output_labelst   splitt   ost   patht   joint   getpidt#   set_observation_type_xray_amplitudet   eliminate_sys_absentRD   t   random_doublet   complex_doublet	   enumeratet   remediate_mismatchest   resolution_filtert   export_as_scalepack_unmergedt   lone_set(B   t   verboset   symmt   set1t   data0t   sigmas1t   it   array0t   flagst   mtz0t   new_philR   R#   R"   t   et   data1t   mtz_origt   orig_arrayst   data2R   R   t   n_reflt   data3t   data_bt   sigmas_bt   data_shuffledt
   data_resett   st   ma_newt
   array_origt   flags1t   mat
   f_obs_origt   free_selectiont   old_selectiont   new_selectiont   truncated_arrayst   common_flagst   common_flags2t   flags_expandedt   fraction_freet   flags_shrunkent   mtz2t   flags2t   mtz3RN   t   arraysRh   t   symm2t   set2t   sigmas2t   array2t   d1t   d2t   coeffs_datat
   map_coeffst	   n_flippedt   i_hklt   ht   kt   lt   flagt   mst   cs2t   f_obsR€   t   ls(    (   R   sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/regression/tst_reflection_file_editor.pyt   exercise_basic   s2   			
				("%$((++*""%%%%2/(!("""""
!"
%
%			!		!"			
				""""			"	"		"	
				(4
	
				!
		c       
   C   sn  t  j j d ƒ s d GHd  St  j j d d d t j j ƒ }  t  j j d d d t j j ƒ } t ƒ  } d } d } t j j | ƒ r” t j	 | ƒ n  y% t
 j d	 |  | d
 g d | ƒ } Wn. t k
 ré } t | ƒ j d ƒ sð t ‚ n Xt ‚ t
 j d	 |  | d
 d d | g d | ƒ } g  | j j ƒ  D] } | j ƒ  ^ q+d d d d d d d d g k sgt ‚ | j ƒ  t j | ƒ } | j j ƒ  }	 |	 d }
 |
 j ƒ  j ƒ  d k s·t ‚ |
 j ƒ  \ } } t | d d d ƒrót | d d d ƒsùt ‚ |	 d } | j ƒ  j ƒ  d k s!t ‚ | j ƒ  \ } } t | d d d ƒr]t | d d d ƒsct ‚ t
 j d	 |  | d d d | g d | ƒ } t j | ƒ } | j j ƒ  }	 |	 d j ƒ  \ } } |	 d j ƒ  \ } } | | k sêt ‚ | | k süt ‚ |	 d } |	 d } t
 j d	 |  | d d  d! d | g d | ƒ } t j | ƒ } | j j ƒ  }	 |	 d j ƒ  j ƒ  d k s~t ‚ |	 d j ƒ  j ƒ  d k s t ‚ |	 d } |	 d } t
 j d	 |  | d d  d" d# d | g d | ƒ } t j | ƒ } | j j ƒ  }	 t t |	 d j ƒ  ƒ ƒ d$ k s+t ‚ t t |	 d j ƒ  ƒ ƒ d% k sSt ‚ | j ƒ  d k } | j ƒ  d k } |	 d j ƒ  d& k } |	 d j ƒ  d& k } | | k j  t! ƒ d& k sÄt ‚ | | k j  t! ƒ d& k såt ‚ t  j j d d' d t j j ƒ } t
 j d	 | d( d) d* g d | ƒ } t j d+ ƒ } | j" j# d& j ƒ  j$ d, d- d. d/ g k sjt ‚ d  S(0   Nt   phenix_regressions)   phenix_regression not available, skippingt   relative_paths*   phenix_regression/reflection_files/enk.mtzt   tests.   phenix_regression/reflection_files/enk_r1A.mtzs   tst_hkl_editor_cmdline-1.mtzs   tst_hkl_editor_cmdline-2.mtzt   argss   dry_run=Truet   outs&   Duplicate column label 'R-free-flags'.s   resolve_label_conflicts=Trues   output_file=%st   Ht   Kt   Ls   I-obss   SIGI-obss   F-obss   R-free-flagss   R-free-flags_2iþÿÿÿgHáz®G&@R)   g{®Gáz„?g?5^ºIø?iÿÿÿÿg      ð?s   extend=Truei   s   extend=Falses   export_for_ccp4=Falses   export_for_ccp4=Trues   preserve_input_values=Falsei   i
   i    s'   phenix_regression/reflection_files/l.cvs   space_group=P212121s   output_file=l_new.mtzs%   unit_cell=28.17,52.857,68.93,90,90,90s	   l_new.mtzs	   F_INFL(+)s	   S_INFL(+)s	   F_INFL(-)s	   S_INFL(-)(%   R[   t   envt
   has_modulet   find_in_repositoriesRž   RŸ   t   isfileR   t   existst   removeR   t   runR   Re   t
   startswithRP   R	   RY   t   columnsR8   R   R   R   R   R   Rg   R   t	   d_max_minR
   Rk   t   setR   R•   Rˆ   Rn   R"   Rh   (   t   file1t   file2R   t	   test_filet
   test_file2R    Rµ   t   cR!   R"   RÃ   RJ   R   RÐ   t   d_max_firstt   d_min_firstt
   d_max_lastt
   d_min_lastt   old_r_free_1t   old_r_free_2t   old_flags_1t   old_flags_2t   new_flags_1t   new_flags_2t   cns_file(    (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/regression/tst_reflection_file_editor.pyt   exercise_command_line  s®    				%'


		

		""

		((!!				c          C   s!  t  j j d d d t j j ƒ }  |  d  k r6 d GHt St j	 |  ƒ } | j
 j d j ƒ  j } t j d |  d g d t ƒ  ƒ } t j	 d	 ƒ } | j
 j d j ƒ  j } t | | ƒ s¼ t ‚ t j d |  d d
 g d t ƒ  ƒ } t j	 d	 ƒ } | j
 j d j ƒ  j } t | d ƒ st ‚ d  S(   NRç   s;   phenix_regression/reflection_files/xds_correct_unmerged.hklRè   s<   phenix_regression not available, skipping exercise_xds_inputi    Ré   s   output_file=xds.mtzRê   s   xds.mtzs   wavelength=0.9792gKÈ=›Uï?(   R[   Rî   Rð   Rž   RŸ   Rñ   R|   Rˆ   R   R   Rn   R"   Rg   RD   R   Rô   R   R
   RP   (   t   xds_filet   xds_int   wlR    R!   t   wl2(    (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/regression/tst_reflection_file_editor.pyt   exercise_xds_inputm  s(    		t   __main__t   recordR«   s	   --verbosei   t   OK(%   t
   __future__R    t   iotbxR   R   t   iotbx.reflection_file_editorR   t   cctbxR   R   R   R   t   scitbx.array_familyR   t   libtbx.load_envR[   t   libtbx.test_utilsR	   R
   t   libtbx.utilsR   R   t   warningst   os.pathRž   R`   Rˆ   Rå   R	  R  t   __name__t   catch_warningsRM   t   wt   argvRk   RP   (    (    (    sY   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/regression/tst_reflection_file_editor.pyt   <module>   s0   ÿ ÿ ÿ 	^	$