ó
Ò™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 Z	 d  d l	 m
 Z
 d  d l Z d  d l Z d  d l Z d d d	 „ Z d
 d „ Z d d
 d „ Z d „  Z d „  Z e d k rÜ e e j d ƒ n  d S(   iÿÿÿÿ(   t   division(   t   pdb(   t   flex(   t   approx_equalN(   t   easy_rung      ð?t   directc   	   	   C   s1  t  j j d d d t j j ƒ } t j d | ƒ j ƒ  } | j	 d d ƒ | j
 d |  d t d	 t d
 | ƒ j ƒ  } t | j d | ƒ j ƒ  ƒ } | j d d d d ƒ } | j d d ƒ } | j d | d d ƒ | j d t j | j ƒ  j ƒ  d ƒ ƒ } | j d | d d ƒ | j ƒ  } | j d d ƒ d  S(   Nt   relative_paths!   phenix_regression/pdb/enk_gbr.pdbt   testt	   file_namet   tablet   wk1995t   d_mint   anomalous_flagt   cos_sin_tablet	   algorithmt   xray_structuret   fractiong{®Gáz„?t   max_freei@ t   column_root_labelt   FOBSt   miller_arrayt   TESTt   datai   t   SIGMAs   enk_gbr.mtz(   t   libtbxt   envt   find_in_repositoriest   ost   patht   isfileR   t   inputt   xray_structure_simplet   scattering_type_registryt   structure_factorst   Falset   f_calct   abst!   structure_factors_from_scattererst   generate_r_free_flagst   as_mtz_datasett   add_miller_arrayt   arrayR   t   doubleR   t   sizet
   mtz_objectt   write(	   t
   resolutionR   t   pdb_fileR   R#   t   r_free_flagst   mtz_datasett   sigmasR,   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_group_biso.pyt   calculate_fobs
   s*    		*s   enk_gbr.mtzc         C   s†   t  j j d d d t j j ƒ } d | |  d d d d d	 d
 d d d d d d d d d d d d d d d g } t j | ƒ j ƒ  d  S(   NR   s#   phenix_regression/pdb/enk_gbr_e.pdbR   s   phenix.refines   main.number_of_macro_cycles=3s   strategy=group_adps9   fake_f_obs.structure_factors_accuracy.cos_sin_table=falses   main.target=lss    group_b_iso.use_restraints=Falses,   group_b_iso.run_finite_differences_test=trues   output.write_maps=falses#   output.write_map_coefficients=falses   output.write_geo_file=trues   output.write_def_file=falses   output.write_eff_file=falses<   structure_factors_and_gradients_accuracy.cos_sin_table=falses3   group_adp_refinement_mode=one_adp_group_per_residues6   fake_f_obs.structure_factors_accuracy.algorithm=directs9   structure_factors_and_gradients_accuracy.algorithm=directs   main.scattering_table=wk1995s"   fake_f_obs.scattering_table=wk1995s   --overwrites&   refinement.input.xray_data.labels=FOBSs!   main.bulk_solvent_and_scale=falses   output.prefix=ref1(	   R   R   R   R   R   R   R   t   fully_bufferedt   raise_if_errors(   t   hklR   t   cmd(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_group_biso.pyt
   exercise_1&   s6    	s   enk_gbr_e.pdbc         C   s•   t  j j d d d t j j ƒ }  d |  | d d d d d	 d
 d d d d d d d d d d d d d d d d d d d d g } t j | ƒ j ƒ  d  S(   NR   s#   phenix_regression/pdb/enk_gbr_e.pdbR   s   phenix.refines   main.number_of_macro_cycles=3s   strategy=group_adps9   fake_f_obs.structure_factors_accuracy.cos_sin_table=falses   main.target=lss    group_b_iso.use_restraints=Falses,   group_b_iso.run_finite_differences_test=trues   output.write_maps=falses#   output.write_map_coefficients=falses   output.write_geo_file=trues   output.write_def_file=falses)   group_adp_refinement_mode=group_selections   output.write_eff_file=falses<   structure_factors_and_gradients_accuracy.cos_sin_table=falses9   structure_factors_and_gradients_accuracy.algorithm=directs6   fake_f_obs.structure_factors_accuracy.algorithm=directs   main.scattering_table=wk1995s"   fake_f_obs.scattering_table=wk1995s   --overwrites&   refinement.input.xray_data.labels=FOBSs!   main.bulk_solvent_and_scale=falses   adp.group="chain A"s   adp.group="chain B"s   adp.group="chain C"s   adp.group="chain D"s   output.prefix=ref2(	   R   R   R   R   R   R   R   R4   R5   (   R   R6   R7   (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_group_biso.pyt
   exercise_2D   s@    	c          C   sî   xW t  d d ƒ j ƒ  j ƒ  D]: }  |  j d ƒ d k r |  j ƒ  }  t |  d ƒ } q q WxW t  d d ƒ j ƒ  j ƒ  D]: }  |  j d ƒ d k rv |  j ƒ  }  t |  d ƒ } qv qv Wt | | d ƒ sÌ t ‚ | d k  rä | d k  sê t ‚ d  S(	   Ns   ref1_001.pdbt   rs   REMARK Final: r_work =i   i   s   ref2_001.pdbgü©ñÒMbP?g{®Gáz„?(   t   opent   readt
   splitlinest   countt   splitt   floatR   t   AssertionError(   t   stt   r1t   r2(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_group_biso.pyt   check_resultg   s    ""c         C   s3  d  } t } xT |  D]L } | j d ƒ rG t | j d d ƒ d ƒ } n  | j d ƒ r t } q q W| r~ | d  k s~ t ‚ n  | d  k	 rŸ | t k sŸ t ‚ n  x� | d  k r½ t j ƒ  } n  d G| GHt	 j
 j ƒ  t j | ƒ t j d | ƒ t ƒ  t ƒ  t ƒ  t ƒ  t	 j
 j ƒ  | s¢ d G| GHPq¢ q¢ d  S(   Ns   --random_seed=t   =i   s	   --forevers   random_seed:t   values   random_seed last used:(   t   NoneR"   t
   startswitht   intR?   t   TrueRA   R   t   get_random_seedt   syst   stdoutt   flusht   randomt   seedt   set_random_seedR3   R8   R9   RE   (   t   argst   random_seedt   forevert   arg(    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_group_biso.pyt   runs   s4      		t   __main__i   (   t
   __future__R    t   iotbxR   t   cctbx.array_familyR   t   libtbx.test_utilsR   t   libtbx.load_envR   R   RP   RM   R   R3   R8   R9   RE   RW   t   __name__t   argv(    (    (    sM   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/tst_group_biso.pyt   <module>   s   #		