ó
À™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 m Z d  d l m Z m Z d  d	 l m Z d  d
 l Z d „  Z d „  Z d „  Z e d k rç e ƒ  e ƒ  e ƒ  n  d
 S(   iÿÿÿÿ(   t   division(   t   make_fake_anomalous_data(   t   fmodel(   t   file_reader(   t   miller(   t   flex(   t   approx_equalt   Exception_expected(   t   null_outt   Sorry(   t   easy_runNc          C   s  t  j j d ƒ r" t  j d ƒ n  t j d d ƒ }  |  d d d d d d	 g } t j d
 | d t ƒ  ƒ t  j j d ƒ s€ t	 ‚ t
 j d ƒ } | j j d } | j ƒ  s± t	 ‚ | j ƒ  } t t j | j ƒ  ƒ d d d ƒsç t	 ‚ t j d |  ƒ j ƒ  } | j d k st	 ‚ d GHd  S(   Ns   tst_fmodel_anomalous.mtzt	   file_baset   tst_fmodel_anomalouss   high_resolution=1.0s   wavelength=1.116s   label=Fs	   type=reals)   output.file_name=tst_fmodel_anomalous.mtzs   r_free_flags_fraction=0.1t   argst   logi    gáz®Gá@t   epsg{®Gáz„?s1   mmtbx.fmodel_simple "%s" tst_fmodel_anomalous.mtzt   OK(   t   ost   patht   isfilet   removeR   t   write_pdb_input_cd_clR   t   runR   t   AssertionErrorR   t   any_filet   file_servert   miller_arrayst   anomalous_flagt   anomalous_differencesR   R   t   maxt   dataR
   t   fully_bufferedt   raise_if_errorst   return_code(   t   pdb_fileR   t   mtz_int   arrayt
   anom_diffst   result(    (    sN   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_fmodel_misc.pyt   exercise   s,    			*c          C   s1  t  j j d ƒ r" t  j d ƒ n  t j d d ƒ }  |  d d d d d d	 g } | d
 g } t j d | d t ƒ  ƒ t  j j d ƒ s� t	 ‚ t
 j d ƒ } | j j d j ƒ  s¸ t	 ‚ y t j d | d t ƒ  ƒ Wn t k
 rè n Xt ‚ y$ t j d | d g d t ƒ  ƒ Wn t k
 r&n Xt ‚ d  S(   Ns   tst_fmodel_anomalous.mtzR   R   s   high_resolution=1.0s   wavelength=1.116s   obs_type=intensitiess	   type=reals)   output.file_name=tst_fmodel_intensity.mtzs   r_free_flags_fraction=0.1s   label=ImodelR   R   s   tst_fmodel_intensity.mtzi    s
   format=cns(   R   R   R   R   R   R   R   R   R   R   R   R   R   R   t   is_xray_intensity_arrayR	   R   (   R"   R   t   args2R#   (    (    sN   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_fmodel_misc.pyt   exercise_intensity_output*   s4    			$c          C   sì  d }  t  d d ƒ j |  ƒ t  d d ƒ j d ƒ t j d d g d t ƒ  ƒ t j d ƒ } | j j d	 } t	 | ƒ j
 ƒ  } | j ƒ  } | j d
 | ƒ \ } } | j d | ƒ } t j d | d | j ƒ  d ƒ } | j d d ƒ j ƒ  j d ƒ | j d d ƒ j ƒ  } | j ƒ  } t j d ƒ } x¼ | j j j ƒ  D]¨ } | j d k r�| j ƒ  j d | j ƒ }	 | j |	 ƒ }
 |
 d k sät ‚ q<| j j ƒ  d k r<| j ƒ  j d | j ƒ }	 | j |	 ƒ }
 |
 d k  sät ‚ q<q<Wd S(   sý   
  Test that the atom selections for anomalous scatterers actually correspond
  to the intended xray scatterers.  This will be dependent on any re-ordering
  done by pdb_inp.construct_hierarchy(), which will move the SE atom in the
  structure below.
  s·  ATOM    920  N   LYS A 123      -3.350   9.199  20.988  1.00 21.23           N
ATOM    921  CA  LYS A 123      -2.285   8.581  20.226  1.00 21.43           C
ATOM    922  C   LYS A 123      -1.116   9.544  20.127  1.00 21.24           C
ATOM    923  O   LYS A 123      -1.316  10.753  19.966  1.00 22.19           O
ATOM    924  CB  LYS A 123      -2.800   8.221  18.845  1.00 21.81           C
ATOM    925  CG  LYS A 123      -3.908   7.201  18.856  1.00 21.27           C
ATOM    926  CD  LYS A 123      -4.383   6.912  17.424  1.00 23.64           C
ATOM    927  CE  LYS A 123      -5.534   5.898  17.333  1.00 26.54           C
ATOM    928  NZ  LYS A 123      -5.023   4.519  17.519  1.00 30.98           N
HETATM  929  N   MSE A 124       0.105   8.997  20.163  1.00 22.33           N
HETATM  930  CA AMSE A 124       1.288   9.830  20.208  0.50 19.27           C
HETATM  932  C   MSE A 124       2.339   9.438  19.174  1.00 21.61           C
HETATM  933  O   MSE A 124       2.500   8.250  18.848  1.00 22.32           O
HETATM  934  CB AMSE A 124       1.906   9.779  21.634  0.50 22.80           C
HETATM  936  CG AMSE A 124       0.966  10.314  22.733  0.50 18.31           C
HETATM  938 SE   MSE A 124       1.972  10.293  24.432  0.37 22.53          SE
HETATM  940  CE AMSE A 124       1.818   8.557  24.764  0.50 27.54           C
ATOM    942  N   LEU A 125       3.059  10.448  18.722  1.00 21.43           N
ATOM    943  CA  LEU A 125       4.237  10.292  17.862  1.00 21.15           C
ATOM    944  C   LEU A 125       5.364  10.848  18.730  1.00 22.73           C
ATOM    945  O   LEU A 125       5.445  12.049  18.960  1.00 23.20           O
ATOM    946  CB  LEU A 125       4.108  11.070  16.559  1.00 22.37           C
ATOM    947  CG  LEU A 125       5.197  11.005  15.504  1.00 22.27           C
ATOM    948  CD1 LEU A 125       4.812  11.903  14.306  1.00 22.88           C
ATOM    949  CD2 LEU A 125       6.533  11.408  15.996  1.00 26.02           C
s   tst_fmodel_misc.pdbt   ws   tst_fmodel_misc.effsë   pdb_file = tst_fmodel_misc.pdb
high_resolution = 1.0
output.file_name = tst_fmodel_misc.mtz
generate_fake_p1_symmetry = True
anomalous_scatterers {
  group {
    selection = element SE
    f_prime = -8.0
    f_double_prime = 4.5
  }
}
R   R   s   tst_fmodel_misc.mtzi    t   othert   phase_sourcet
   miller_setR   y               @t   column_root_labelt   ANOMs   anom.mtzt   resolution_factorg      Ð?t   SEt	   site_cartid   t   Oi   N(    t   opent   writeR   R   R   R   R   R   R   t   absR   t   average_bijvoet_matest   common_setst   phase_transferR   R$   R   t   as_mtz_datasett
   mtz_objectt   fft_mapt   apply_sigma_scalingt   real_map_unpaddedt   file_objectt	   hierarchyt   atomst   elementt	   unit_cellt   fractionalizet   xyzt   eight_point_interpolationR   t   strip(   t   pdb_strR#   t   f_modelt   danot
   map_coeffsR=   t   real_mapt   pdb_int   atomt   sitet   map_val(    (    sN   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_fmodel_misc.pyt   exercise_selection_consistencyK   s6    !	t   __main__(   t
   __future__R    t   mmtbx.regressionR   t   mmtbx.command_lineR   t   iotbxR   t   cctbxR   t   scitbx.array_familyR   t   libtbx.test_utilsR   R   t   libtbx.utilsR   R	   t   libtbxR
   R   R'   R*   RR   t   __name__(    (    (    sN   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_fmodel_misc.pyt   <module>   s    		!	H