ó
¾™xTc           @   sP  d  d l  m Z d  d l m Z d  d l Z d  d l m Z d  d l Z	 d  d l
 m Z d  d l
 m Z d  d l m Z d  d l m Z m Z d  d	 l m Z m Z d  d
 l m Z d  d l Z d  d l m Z d  d l Z d  d l Z d „  Z d „  Z d „  Z d „  Z  d „  Z! e" d k rLe ƒ  e  ƒ  e! ƒ  e ƒ  e ƒ  d GHn  d S(   iÿÿÿÿ(   t   division(   t
   model_1yjpN(   t   no_merge_original_index(   t   sgtbx(   t   uctbx(   t   flex(   t   approx_equalt   Exception_expected(   t   null_outt   Sorry(   t   easy_run(   t   StringIOc          C   s½  d }  t  j j d d  d |  ƒ } | j ƒ  } | j ƒ  } | j d d d d ƒ | j d d	 d d
 ƒ d } t | d d ƒ j	 | j
 d | ƒ ƒ t | j d d ƒ j ƒ  ƒ } | j ƒ  } | j d d ƒ } | j | d d ƒ| j ƒ  j	 | d ƒ t | d d ƒ j	 d ƒ g  d d d g D] } | | ^ q!}	 t j j d |	 d g d t j j d ƒ d t ƒ  d t ƒ }
 |
 j j j j d  k	 s’t ‚ |
 j d  k	 s§t ‚ |
 j j ƒ  } | d k  sÈt ‚ |
 j d ƒ t  j! j" d ƒ sít ‚ |
 j# ƒ  } t j j d |	 d g d t j j d ƒ d t ƒ  d t ƒ }
 t$ |
 j j j% d d d  ƒsZt ‚ |
 j& d! ƒ } | j d d" ƒ j ƒ  j' ƒ  } | j( d# d$ d% d& d' d( ƒ j) d) t* j+ | j, ƒ  d* ƒ ƒ } t | ƒ j- ƒ  } | j. ƒ  j) d | ƒ j/ ƒ  } t | d+ d ƒ } t0 j1 | d, | ƒt j j d- d d. t ƒ } t j j d g  d d d g D] } | | ^ qPd/ | g d | d t ƒ  d t ƒ }
 |
 j2 d  k	 sžt ‚ t  j j d d  d |  d0 ƒ } | j ƒ  } d } t | d d ƒ j	 | j
 d | ƒ ƒ yT t j j d g  d d d g D] } | | ^ qd | d t ƒ  d1 t3 d t ƒ }
 Wn t4 k
 r\n Xt5 ‚ t j j d g  d d d g D] } | | ^ qd | d t ƒ  d1 t3 d t d2 t ƒ }
 d  S(3   Ns  
ATOM     47  N   TYR A   7       8.292   1.817   6.147  1.00 14.70           N
ATOM     48  CA  TYR A   7       9.159   2.144   7.299  1.00 15.18           C
ATOM     49  C   TYR A   7      10.603   2.331   6.885  1.00 15.91           C
ATOM     50  O   TYR A   7      11.041   1.811   5.855  1.00 15.76           O
ATOM     51  CB  TYR A   7       9.061   1.065   8.369  1.00 15.35           C
ATOM     52  CG  TYR A   7       7.665   0.929   8.902  1.00 14.45           C
ATOM     53  CD1 TYR A   7       6.771   0.021   8.327  1.00 15.68           C
ATOM     54  CD2 TYR A   7       7.210   1.756   9.920  1.00 14.80           C
ATOM     55  CE1 TYR A   7       5.480  -0.094   8.796  1.00 13.46           C
ATOM     56  CE2 TYR A   7       5.904   1.649  10.416  1.00 14.33           C
ATOM     57  CZ  TYR A   7       5.047   0.729   9.831  1.00 15.09           C
ATOM     58  OH  TYR A   7       3.766   0.589  10.291  1.00 14.39           O
ATOM     59  OXT TYR A   7      11.358   2.999   7.612  1.00 17.49           O
TER
t   source_infot   linest   d_ming      ø?t   tablet
   n_gaussiant   photong¤p=
×£ø?t   sasakit   tmp_mmtbx_cmdlines   .pdbt   wt   crystal_symmetryt   column_root_labelt   Ft
   FreeR_flags   .mtzs   .fas   >Tyr
Y
t   argss   wavelength=1.54t   master_philt    t   outt   create_log_buffergü©ñÒMb`?s   tmp_mmtbx_cmdline_data.mtzs   energy=8050g£@ŸÈ“¤ø?t   epsg-Cëâ6?s   tst_mmtbx_cmdline.loggÍÌÌÌÌÌô?t   amplitude_errorg{®Gáz„?t   phase_error_degi   t   random_seedi90  t   sigmasi
   s   .scat   file_objectt   phil_stringt   enable_unmerged_datas   unmerged_data.file_name=%s.scasO   ATOM     59  UNK UNL A   7       0.000   0.000   0.000  1.00 20.00           X
t   process_pdb_filet   remove_unknown_scatterers(6   t   iotbxt   pdbt   inputt   Nonet   construct_hierarchyt   xray_structure_simplet   scattering_type_registryt   set_inelastic_form_factorst   opent   writet   as_pdb_stringt   abst   structure_factorst   f_calct   generate_r_free_flagst   as_mtz_datasett   add_miller_arrayt
   mtz_objectt   mmtbxt   command_linet   load_model_and_datat    generate_master_phil_with_inputsR   t   Truet   paramst	   xray_datat	   file_namet   AssertionErrort   sequencet   fmodelt   r_workt   save_data_mtzt   ost   patht   isfilet   create_model_managerR   t
   wavelengtht   start_log_filet   generate_bijvoet_matest   randomize_amplitude_and_phaset   customized_copyR   t   random_doublet   sizet	   f_as_f_sqt   expand_to_p1t#   set_observation_type_xray_intensityR   t   writert   unmerged_i_obst   FalseR	   R   (   t   pdb_strt   pdb_int	   hierarchyt   xrst	   file_baset   fct   flagst   mtzt   extt	   base_argst   cmdlinet   r_factort   modelt   logt   fc2t   i_obst   fR   (    (    sU   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_command_line_input.pyt   exercise_simple   s¤    		&				$	#		
&	&	c          C   s¦  d d l  m }  d d l } d d l } d d l m } d d l m } | j j j	 d |  ƒ } | j	 j
 ƒ  } t d d ƒ } | j | j j d	 | ƒ ƒ | j ƒ  t | j d
 d ƒ j ƒ  ƒ } | j d	 | j ƒ  j d | j d ƒ d | j d% ƒ ƒ ƒ } | j ƒ  }	 | j d d ƒ }
 |
 j |	 d d ƒ|
 j ƒ  j d ƒ | j j d d d g d | j j d ƒ d t d t d t ƒ  ƒ } | j  j ƒ  } t! | j ƒ  j" ƒ  d& ƒ s´t# ‚ t$ | j ƒ  ƒ d k sÒt# ‚ | j d	 | j ƒ  j d | j d ƒ ƒ ƒ } | j ƒ  } | j d d ƒ }
 |
 j | d d ƒ|
 j ƒ  j d  ƒ yC | j j d d d  g d | j j% ƒ  d t d t d t ƒ  ƒ } Wn+ t& k
 r³} d! t$ | ƒ k sºt# ‚ n Xt' ‚ | j d	 | j ƒ  j d | j d' ƒ ƒ ƒ } | j ƒ  } | j d d ƒ }
 |
 j | d d ƒ|
 j ƒ  j d# ƒ yC | j j d d d# g d | j j% ƒ  d t d t d t ƒ  ƒ } Wn+ t& k
 r›} d$ t$ | ƒ k s¢t# ‚ n Xt' ‚ d S((   sK   
  Test the extraction of symmetry from both a PDB file and an MTZ file.
  iÿÿÿÿ(   R   N(   R   (   R   t
   pdb_strings   tst_combine_symmetry.pdbR   R   R   g      ø?t   space_group_infot   P2t	   unit_cellgäÉåï5@gôlV}®v@gCëâ6z7@g     €V@g¾Á&SÅZ@R   R   R   s   tst_combine_symmetry.mtzR   R   R   R&   t   create_fmodelR   s   P 1 21 1t   P1s   tst_combine_symmetry_2.mtzs   Incompatible space groupsgioð…É Z@s   tst_combine_symmetry_3.mtzs   Unit cell mismatch(   gäÉåï5@gôlV}®v@gCëâ6z7@g     €V@g¾Á&SÅZ@g     €V@(   gäÉåï5@gôlV}®v@gCëâ6z7@g     €V@g¾Á&SÅZ@g     €V@(   gäÉåï5@gôlV}®v@gCëâ6z7@g     €V@gioð…É Z@g     €V@((   t   mmtbx.regressionR   t   mmtbx.command_linet   iotbx.pdb.hierarchyt   cctbxR   R   R)   RZ   R*   R-   R0   R1   R2   t   closeR3   R4   R5   RO   R   Rk   Rm   R6   R7   R8   R9   R;   R<   R=   RW   R>   R   t   xray_structureR   t
   parametersRB   t   strt   generic_simple_input_philR	   R   (   R   R:   R(   R   R   RY   R[   Rh   R5   R^   R_   Rb   t   symmt   f_calc_2t   flags_2t   st   f_calc_3t   flags_3(    (    sU   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_command_line_input.pyt   exercise_combine_symmetry|   s‚    
			c          C   s´   d d l  m }  |  j d d ƒ \ } } t j j t j j d ƒ d d ƒ } t j j	 | ƒ sd t
 ‚ d d	 | | | d
 g } t j d j | ƒ ƒ j ƒ  } d | j k s° t
 ‚ d  S(   Niÿÿÿÿ(   t   make_fake_anomalous_dataR\   t   tst_cmdline_exampleR:   t   exampless   simple_command_line_cc.pys   mmtbx.pythons   "%s"s   skip_twin_detection=Truet    s   CC(obs-calc): 0.999(   Rp   R€   t   generate_cd_cl_inputsRG   RH   t   joint   libtbxt   envt	   dist_pathRI   RB   R
   t   fully_bufferedt   raise_if_errorst   stdout_lines(   R€   t   pdb_filet   mtz_filet   scriptR   t   result(    (    sU   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_command_line_input.pyt   exercise_exampleÈ   s    			c          C   sh  d d l  m }  |  j d d ƒ \ } } d d l m } | d ƒ } | j j d j ƒ  } | j j d j ƒ  } t d	 d
 ƒ } t	 ƒ  } | j
 d | d | ƒ x: | j ƒ  j ƒ  D]& }	 d |	 k r± | j d |	 ƒ q± q± W| j ƒ  t j j d d d	 g d t j j ƒ  d t d t d t ƒ  ƒ }
 t	 ƒ  } |
 j j d | ƒ | j ƒ  d k sdt | j ƒ  ƒ ‚ d  S(   Niÿÿÿÿ(   R€   R\   t   tst_cmdline_cns(   t   any_files   tst_cmdline_cns.mtzi    i   s   tst_cmdline_cns.hklR   R#   t   r_free_flagst   {s   %s
R   s   tst_cmdline_cns.pdbR   R&   Rn   R   Rh   sI   Unit cell: (21.362, 23.436, 23.594, 90, 90, 90)
Space group: P 1 (No. 1)
(   Rp   R€   R„   t   iotbx.file_readerR’   t   file_servert   miller_arrayst   average_bijvoet_matesR0   R   t   export_as_cns_hklt   getvaluet
   splitlinesR1   Rt   R:   R;   R<   Rx   RW   R>   R   R   t   show_summaryRB   (   R€   RŒ   R�   R’   t   mtz_int   f_obsR^   Rh   R   t   lineRb   (    (    sU   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_command_line_input.pyt   exercise_cns_inputÙ   s4    			
		c          C   s  t  j d ƒ t j d ƒ d }  t j j j d t ƒ } | j	 ƒ  } | j
 d d d d ƒ t | j d d	 ƒ j ƒ  ƒ j ƒ  } | j ƒ  | j ƒ  } | j d
 d ƒ } | j | d
 d ƒ| j ƒ  j |  d ƒ | j ƒ  } | j d d ƒ | j d d ƒ j ƒ  } | j d d d d d d ƒ } t | j d | ƒ ƒ j d d ƒ } | j ƒ  t j d ƒ }	 | j ƒ  j d |	 d t  j | j ƒ  d ƒ ƒ }
 |
 j  d |  d ƒ t! |  d d  ƒ j t ƒ |  d |  d d! |  g } t" j# j$ d" d# d$ t% ƒ } t" j# j& d% g  d d g D] } |  | ^ qd& |  g d' | d( t' ƒ  d) t( d* t( d+ t% ƒ } | j ƒ  j d t  j | j ƒ  d ƒ ƒ } | j  d |  d, ƒ |  d |  d d- |  g } yb t" j# j& d% g  d d g D] } |  | ^ qÆd. |  g d' | d( t' ƒ  d) t( d* t( d+ t% ƒ } Wn1 t) k
 r?} t* | ƒ d/ k sFt+ | ƒ ‚ n Xt, ‚ t! |  d0 d  ƒ } |
 j- d1 d2 d( | ƒ | j. ƒ  |  d |  d d3 |  g } t" j# j& d% g  d d g D] } |  | ^ q­d4 |  g d' | d( t' ƒ  d) t( d* t( d+ t% ƒ } t/ j0 d? ƒ } |
 j d: | ƒ } t! |  d; d  ƒ } | j- d1 d2 d( | ƒ | j. ƒ  |  d |  d d< |  g } yb t" j# j& d% g  d d g D] } |  | ^ q}d= |  g d' | d( t' ƒ  d) t( d* t( d+ t% ƒ } Wn1 t) k
 rö} d> t* | ƒ k sýt+ | ƒ ‚ n Xt, ‚ d  S(@   Ni@â t   tst_load_unmergedRj   R   g¤p=
×£ø?R   R   R   g      ø?R   R   R   s   .mtzt   rms_differencegš™™™™™¹?gffffffö?R   g      ð?R    i    R!   t   othert   by_valuet   packed_indicesRl   Rk   R"   g      $@RA   s   .scas   .pdbR   s   unmerged_data=%s.scaR$   R   R%   R   s   unmerged_data.file_name=%s.scaR   R   Rn   R&   R   s   _p1.scas   unmerged_data=%s_p1.scas!   unmerged_data.file_name=%s_p1.scasI   Incompatible space groups in merged and unmerged data:P 1 21 1 versus P 1s   .cift
   array_typet   meass   unmerged_data=%s.cifs   unmerged_data.file_name=%s.cifi   g      @g     €7@iZ   il   Rm   s   _new_uc.cifs   unmerged_data=%s_new_uc.cifs%   unmerged_data.file_name=%s_new_uc.cifs!   Incompatible symmetry definitions(   i   g      @g     €7@iZ   il   iZ   (1   R   t   set_random_seedt   randomt   seedR(   R)   RZ   R*   R   R-   R/   R3   R4   R5   R˜   t#   set_observation_type_xray_amplitudeR6   R7   R8   R9   R1   RS   t   shake_sites_in_placeRN   t   concatenatet   sortR   Rk   RR   RO   t   doubleRQ   t   export_as_scalepack_unmergedR0   R:   R;   R=   R>   R<   R   RW   R	   Rw   RB   R   t   as_cif_simpleRt   R   Rm   (   t   baseRY   R[   R]   R^   R_   t   xrs_p1t   fc_p1t   fc_p1_extrat   sg_p2t   icR   R   R`   Rb   t   ic2R|   Rh   t   uc2t   ic3(    (    sU   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_command_line_input.pyt   exercise_load_unmergedù   sÂ    	$
		
	 		 	"
 		
 	"t   __main__t   OK(#   t
   __future__R    Rp   R   Rq   R:   t   iotbx.scalepackR   t	   iotbx.pdbR(   Rs   R   R   t   scitbx.array_familyR   t   libtbx.test_utilsR   R   t   libtbx.utilsR   R	   R†   R
   t   libtbx.load_envt	   cStringIOR   R©   t   os.pathRG   Ri   R   R�   R    R»   t   __name__(    (    (    sU   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_command_line_input.pyt   <module>   s4   	h	L		 	p