ó
Â™xTc           @   s!  d  d l  m Z d  d l m Z d  d l Z d  d l Z d  d l Z d  d l m	 Z	 d  d l
 Z d  d l Z d  d l Z d  d l m Z d  d l m Z d  d l m Z m Z d  d l m Z d  d	 l m Z d
 Z d Z d „  Z d Z d Z d Z d „  Z d „  Z  e! d k re  ƒ  n  d S(   iÿÿÿÿ(   t   division(   t   findN(   t   monomer_library(   t   miller(   t   flex(   t   approx_equalt	   show_diff(   t   format_cpu_times(   t   StringIOs¬  CRYST1   15.000   15.000   15.000  80.00  70.00 100.00 P 1

HETATM    1  O   HOH X   1      20.319  10.959   7.882  1.00  1.00           O
HETATM    2  H1  HOH X   2      20.158  13.476  10.359  1.00  2.00           H
HETATM    3  O   HOH X   2      19.563  13.548   9.584  1.00  1.00           O

HETATM    4  O   HOH     1      17.253  15.650  10.892  1.00  2.00           O
HETATM    5  H1  HOH     1      18.134  15.627  11.321  1.00  2.00           H
HETATM    6  H2  HOH     1      17.375  15.320   9.977  1.00  2.00           H
HETATM    7  O   HOH     2       5.150  11.586  12.474  1.00  3.00           O

ATOM      8  CB  PHE A   1      11.914  10.410  11.811  1.00  2.00           C
ATOM      9  CG  PHE A   1      11.204   9.472  12.746  1.00  2.00           C
ATOM     10  CD1 PHE A   1      10.636   8.301  12.273  1.00  2.00           C
ATOM     11  CD2 PHE A   1      11.105   9.762  14.096  1.00  2.00           C
ATOM     12  CE1 PHE A   1       9.982   7.436  13.131  1.00  2.00           C
ATOM     13  CE2 PHE A   1      10.452   8.901  14.958  1.00  2.00           C
ATOM     14  CZ  PHE A   1       9.890   7.737  14.475  1.00  2.00           C
ATOM     15  C   PHE A   1      11.828  12.443  10.351  1.00  2.00           C
ATOM     16  O   PHE A   1      11.808  12.365   9.123  1.00  2.00           O
ATOM     17  OXT PHE A   1      12.531  13.314  10.864  1.00  2.00           O
ATOM     18  N   PHE A   1       9.929  10.880  10.444  1.00  2.00           N
ATOM     19  CA  PHE A   1      11.008  11.488  11.213  1.00  2.00           C

ATOM     20  O   HOH Q   1      15.736  13.074   8.108  1.00  4.00           O
ATOM     21  D1  HOH Q   1      14.756  13.074   8.108  1.00  4.00           D

ATOM     22  O   HOH S   1      14.337  16.126   9.974  1.00  5.00           O
ATOM     23  H2  HOH S   1      15.083  16.615   9.567  1.00  5.00           H
ATOM     24  O   HOH S   2       9.491  12.823  15.494  1.00  6.00           O
END
s  CRYST1   15.000   15.000   15.000  80.00  70.00 100.00 P 1
SCALE1      0.066667  0.011755 -0.028131        0.00000
SCALE2      0.000000  0.067695 -0.017615        0.00000
SCALE3      0.000000  0.000000  0.073308        0.00000
HETATM    1  O   HOH X   1      20.319  10.959   7.882  1.00  1.00           O
HETATM    2  H1  HOH X   1      19.339  10.959   7.882  1.00  1.00           H
HETATM    3  H2  HOH X   1      19.339  10.959   7.882  1.00  1.00           H
HETATM    4  H1  HOH X   2      20.024  13.469  10.445  1.00  2.00           H
HETATM    5  O   HOH X   2      19.563  13.548   9.584  1.00  1.00           O
HETATM    6  H2  HOH X   2      18.608  13.419   9.761  1.00  1.00           H
HETATM    7  O   HOH     1      17.253  15.650  10.892  1.00  2.00           O
HETATM    8  H1  HOH     1      18.146  15.616  11.293  1.00  2.00           H
HETATM    9  H2  HOH     1      17.357  15.408   9.948  1.00  2.00           H
HETATM   10  O   HOH     2       5.150  11.586  12.474  1.00  3.00           O
HETATM   11  H1  HOH     2       4.364  12.000  12.888  1.00  3.00           H
HETATM   12  H2  HOH     2       5.938  11.998  12.886  1.00  3.00           H
ATOM     13  CB  PHE A   1      11.914  10.410  11.811  1.00  2.00           C
ATOM     14  CG  PHE A   1      11.204   9.472  12.746  1.00  2.00           C
ATOM     15  CD1 PHE A   1      10.636   8.301  12.273  1.00  2.00           C
ATOM     16  CD2 PHE A   1      11.105   9.762  14.096  1.00  2.00           C
ATOM     17  CE1 PHE A   1       9.982   7.436  13.131  1.00  2.00           C
ATOM     18  CE2 PHE A   1      10.452   8.901  14.958  1.00  2.00           C
ATOM     19  CZ  PHE A   1       9.890   7.737  14.475  1.00  2.00           C
ATOM     20  C   PHE A   1      11.828  12.443  10.351  1.00  2.00           C
ATOM     21  O   PHE A   1      11.808  12.365   9.123  1.00  2.00           O
ATOM     22  OXT PHE A   1      12.531  13.314  10.864  1.00  2.00           O
ATOM     23  N   PHE A   1       9.929  10.880  10.444  1.00  2.00           N
ATOM     24  CA  PHE A   1      11.008  11.488  11.213  1.00  2.00           C
ATOM     25  O   HOH Q   1      15.736  13.074   8.108  1.00  4.00           O
ATOM     26  D1  HOH Q   1      14.941  12.899   7.563  1.00  4.00           D
ATOM     27  D2  HOH Q   1      16.514  12.892   7.541  1.00  4.00           D
ATOM     28  O   HOH S   1      14.337  16.126   9.974  1.00  5.00           O
ATOM     29  H2  HOH S   1      14.968  16.680   9.469  1.00  5.00           H
ATOM     30  H1  HOH S   1      14.734  15.233  10.041  1.00  5.00           H
ATOM     31  O   HOH S   2       9.491  12.823  15.494  1.00  6.00           O
ATOM     32  H1  HOH S   2       8.899  13.604  15.494  1.00  6.00           H
ATOM     33  H2  HOH S   2       8.914  12.031  15.494  1.00  6.00           H
END
c          C   s  d }  t  |  d ƒ } | j t ƒ | j ƒ  t j j d t ƒ  ƒ } | j d |  g ƒ \ } } | j	 ƒ  } | j
 d t d t ƒ } t j j d | ƒ } t j j d d  d	 | d
 | d | d | j j d d  ƒ } | j ƒ  t ƒ  }	 | j d |	 ƒ |	 j ƒ  j ƒ  }	 g  }
 x< |	 D]4 } | j d ƒ s7| j d ƒ r|
 j | ƒ qqWg  } xB t j ƒ  D]4 } | j d ƒ s‚| j d ƒ r^| j | ƒ q^q^Wt |
 ƒ t | ƒ k s´t ‚ xW t |
 | ƒ D]F \ } } | d  | d } | d  | d } t | | ƒ sÄt ‚ qÄWd } t j j  d d  d t! j" t j ƒ  ƒ ƒ j# ƒ  } t j j  d d  d t! j" |	 ƒ ƒ j# ƒ  } x“ t | j$ ƒ  | j$ ƒ  ƒ D]v \ } } | j% ƒ  j& ƒ  d k rŠ| j% ƒ  j& ƒ  | j% ƒ  j& ƒ  k sØt ‚ t' | j( | j( ƒ sót ‚ | d 7} qŠqŠW| d k st ‚ d  S(   Ns   add_h_to_hoh.pdbt   wt   logt   pdb_file_namest   show_energiest   assume_hydrogens_all_missingt   geometryt   refinement_flagst   processed_pdb_files_srvt   restraints_managert   xray_structuret   pdb_hierarchyt   outt   ATOMt   HETATMi   i<   i    t   source_infot   linest   Ht   Di   i   (   R   R   ()   t   opent   writet   input_modelt   closet   mmtbxt   utilst   process_pdb_file_srvR   t   process_pdb_filesR   t   geometry_restraints_managert   Falset   Truet
   restraintst   managert   modelt   Nonet   all_chain_proxiesR   t   add_hydrogenst   write_pdb_filet   getvaluet
   splitlinest
   startswitht   appendt   expected_resultt   lent   AssertionErrort   zipR   t   iotbxt   pdbt	   pdb_inputR   t
   std_stringt   xray_structure_simplet
   scattererst   element_symbolt   stripR   t   site(   t   pdb_file_namet   tmp_fR   t   processed_pdb_filet   pdb_inpR   R   R   R(   t   resultt   result1t   r1t   result2t   r2t   cntrt   xrs1t   xrs2t   s1t   s2(    (    sQ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_add_h_to_water.pyt   exercise_01[   sZ    
			
	  *(*s�	  CRYST1   15.000   15.000   15.000  80.00  70.00 100.00 P 1
ATOM      1  CB  PHE A   1      12.073   9.948  11.650  1.00  5.00           C
ATOM      2  CG  PHE A   1      11.316   9.114  12.643  1.00  5.00           C
ATOM      3  CD1 PHE A   1      10.646   7.971  12.240  1.00  5.00           C
ATOM      4  CD2 PHE A   1      11.276   9.472  13.980  1.00  5.00           C
ATOM      5  CE1 PHE A   1       9.949   7.202  13.152  1.00  5.00           C
ATOM      6  CE2 PHE A   1      10.581   8.706  14.897  1.00  5.00           C
ATOM      7  CZ  PHE A   1       9.916   7.570  14.482  1.00  5.00           C
ATOM      8  C   PHE A   1      12.110  11.913  10.097  1.00  5.00           C
ATOM      9  O   PHE A   1      12.051  11.781   8.875  1.00  5.00           O
ATOM     10  OXT PHE A   1      12.892  12.748  10.551  1.00  5.00           O
ATOM     11  N   PHE A   1      10.096  10.513  10.307  1.00  5.00           N
ATOM     12  CA  PHE A   1      11.240  11.067  11.021  1.00  5.00           C
HETATM   13  O   HOH     1      13.866  16.009  12.098  1.00  3.00           O
HETATM   14  H1  HOH     1      13.327  16.140  12.905  1.00  3.00           H
HETATM   15  H2  HOH     1      14.117  16.901  11.777  1.00  3.00           H
HETATM   16  O   HOH     2      17.215  16.288  11.122  1.00  3.00           O
HETATM   17  H1  HOH     2      17.912  15.900  10.553  1.00  3.00           H
HETATM   18  H2  HOH     2      17.641  16.523  11.973  1.00  3.00           H
HETATM   19  O   HOH     3       8.927  12.312  13.459  1.00  3.00           O
HETATM   20  H1  HOH     3       8.879  11.933  14.362  1.00  3.00           H
HETATM   21  H2  HOH     3       8.721  11.584  12.835  1.00  3.00           H
HETATM   22  O   HOH     4      16.005  11.974   8.964  1.00  3.00           O
HETATM   23  H1  HOH     4      16.817  12.516   9.046  1.00  3.00           H
HETATM   24  H2  HOH     4      15.632  12.153   8.076  0.00  3.00           H
HETATM   25  O   HOH     5      13.626   9.207   8.521  1.00  3.00           O
HETATM   26  H1  HOH     5      13.711   9.868   7.803  1.00  3.00           H
HETATM   27  H2  HOH     5      14.464   9.228   9.028  0.00  3.00           H
HETATM   28  O   HOH     6       9.841  14.509  11.210  1.00  3.00           O
HETATM   29  H1  HOH     6      10.096  14.540  12.156  1.00  3.00           H
HETATM   30  H2  HOH     6       9.341  13.676  11.079  0.00  3.00           H
END
s�	  CRYST1   15.000   15.000   15.000  80.00  70.00 100.00 P 1
ATOM      1  CB  PHE A   1      12.073   9.948  11.650  1.00  5.00           C
ATOM      2  CG  PHE A   1      11.316   9.114  12.643  1.00  5.00           C
ATOM      3  CD1 PHE A   1      10.646   7.971  12.240  1.00  5.00           C
ATOM      4  CD2 PHE A   1      11.276   9.472  13.980  1.00  5.00           C
ATOM      5  CE1 PHE A   1       9.949   7.202  13.152  1.00  5.00           C
ATOM      6  CE2 PHE A   1      10.581   8.706  14.897  1.00  5.00           C
ATOM      7  CZ  PHE A   1       9.916   7.570  14.482  1.00  5.00           C
ATOM      8  C   PHE A   1      12.110  11.913  10.097  1.00  5.00           C
ATOM      9  O   PHE A   1      12.051  11.781   8.875  1.00  5.00           O
ATOM     10  OXT PHE A   1      12.892  12.748  10.551  1.00  5.00           O
ATOM     11  N   PHE A   1      10.096  10.513  10.307  1.00  5.00           N
ATOM     12  CA  PHE A   1      11.240  11.067  11.021  1.00  5.00           C
HETATM   13  O   HOH     1      13.866  16.009  12.098  1.00  3.00           O
HETATM   14  H1  HOH     1      13.114  16.628  12.001  0.00  3.00           H
HETATM   15  H2  HOH     1      13.771  15.335  11.392  0.00  3.00           H
HETATM   16  O   HOH     2      17.215  16.288  11.122  1.00  3.00           O
HETATM   17  H1  HOH     2      16.474  16.378  10.487  0.00  3.00           H
HETATM   18  H2  HOH     2      17.045  15.476  11.644  0.00  3.00           H
HETATM   19  O   HOH     3       8.927  12.312  13.459  1.00  3.00           O
HETATM   20  H1  HOH     3       8.895  11.898  14.347  0.00  3.00           H
HETATM   21  H2  HOH     3       7.999  12.412  13.159  0.00  3.00           H
HETATM   22  O   HOH     4      16.005  11.974   8.964  1.00  3.00           O
HETATM   23  H1  HOH     4      16.427  11.730   9.814  0.00  3.00           H
HETATM   24  H2  HOH     4      16.642  11.748   8.255  0.00  3.00           H
HETATM   25  O   HOH     5      13.626   9.207   8.521  1.00  3.00           O
HETATM   26  H1  HOH     5      13.711   9.868   7.803  0.00  3.00           H
HETATM   27  H2  HOH     5      14.464   9.228   9.028  0.00  3.00           H
HETATM   28  O   HOH     6       9.839  14.506  11.213  1.00  3.00           O
HETATM   29  H1  HOH     6      10.483  13.917  10.766  0.00  3.00           H
HETATM   30  H2  HOH     6       9.067  14.586  10.614  0.00  3.00           H
END
s  
==================== Fit water hydrogens into residual map ====================


                    ----------find peak-candidates----------

Number of peaks found at mFobs-DFmodel map (map cutoff=6.50 sigma)= 9
Filter by distance & map next to the model:
   mapped sites are within: 0.981 - 1.005
   number of sites selected in [dist_min= 0.70, dist_max= 1.05]: 9 from: 9
   mapped sites are within: 0.981 - 1.005

peak=   26.730 closest distance to pdb=" O   HOH     1 " =    0.989
peak=   24.366 closest distance to pdb=" O   HOH     1 " =    0.984
peak=   26.526 closest distance to pdb=" O   HOH     2 " =    1.000
peak=   24.945 closest distance to pdb=" O   HOH     2 " =    0.998
peak=   24.980 closest distance to pdb=" O   HOH     3 " =    0.989
peak=   24.312 closest distance to pdb=" O   HOH     3 " =    0.984
peak=   24.152 closest distance to pdb=" O   HOH     4 " =    1.004
peak=   24.564 closest distance to pdb=" O   HOH     5 " =    0.988
peak=   24.243 closest distance to pdb=" O   HOH     6 " =    1.007

                  ----------6D rigid body fit of HOH----------

Fit quality:
 0.027
 0.040
 0.021
 0.020
 0.007
 0.025
c       	   C   sÎ  xL d t  f d t f g D]2 \ }  } t |  d ƒ } | j | ƒ | j ƒ  q Wt j j d d ƒ j ƒ  } t j j d d ƒ j ƒ  } t	 j
 d | j ƒ  d t d d ƒ } t | j d	 | d
 d d t ƒ j ƒ  ƒ } t j j j ƒ  } d | _ t | _ t j j d	 | d | d d d | ƒ } t j j ƒ  }	 t j j ƒ  }
 t j j d |	 d |
 d d ƒ } t j j d	 | d | j j d d  ƒ } t  ƒ  } t! j" ƒ  j ƒ  } d | _# t! j$ d | d | d | d | ƒ d  S(   Ns
   m_good.pdbs	   m_bad.pdbR	   t	   file_namet   crystal_symmetryt   anomalous_flagt   d_ming333333ã?R   t	   algorithmt   directt   cos_sin_tablet   sf_and_grads_accuracy_paramst   target_namet   ls_wunit_k1t   f_obst   mon_lib_srvt   ener_libR   R
   g      @t   fmodelR(   t   params(%   t
   model_goodt	   model_badR   R   R   R5   R6   R7   R9   R   t	   build_setRN   R$   t   abst!   structure_factors_from_scattererst   f_calcR   t   f_modelt#   sf_and_grads_accuracy_master_paramst   extractRQ   RS   R'   R   t   serverRY   t   pdb_interpretationt   processR(   R*   R   R)   R   t   find_hydrogenst   all_master_paramst
   map_cutofft   run(   RM   R   R?   t	   xrs_exactt   xrs_partt
   miller_setRW   t   sf_parRZ   RX   RY   R@   R(   R   R[   (    (    sQ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_add_h_to_water.pyt   exercise_02ô   sL    %									c           C   s   t  ƒ  t ƒ  t ƒ  GHd  S(   N(   RL   Rp   R   (    (    (    sQ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_add_h_to_water.pyt   exercise  s    t   __main__("   t
   __future__R    t   mmtbx.hydrogensR   Rh   t   mmtbx.utilsR   t   mmtbx.modelt   mmtbx.restraintsR   t(   mmtbx.monomer_library.pdb_interpretationt   mmtbx.monomer_library.servert	   iotbx.pdbR5   t   cctbxR   t   scitbx.array_familyR   t   libtbx.test_utilsR   R   t   libtbx.utilsR   t	   cStringIOR   R   R1   RL   R\   R]   t   expected_result2Rp   Rq   t   __name__(    (    (    sQ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_add_h_to_water.pyt   <module>   s.   ")	T"!	*	