ó
œ™xTc           @   sÊ   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	 m
 Z
 d  d l Z d  d l m Z d  d l Z d Z d „  Z d	 d
 „ Z d „  Z e d k rÆ e ƒ  n  d S(   iÿÿÿÿ(   t   division(   t   flexN(   t   monomer_library(   t   format_cpu_times(   t   approx_equals°  
CRYST1   15.360   12.804   11.094  90.00  90.00  90.00 P 1
ATOM      1  N   TYR A  28       4.991   8.496   8.094  1.00 10.00           N
ATOM      2  CA  TYR A  28       4.269   8.897   6.892  1.00 10.00           C
ATOM      3  CB  TYR A  28       5.247   9.154   5.742  1.00 10.00           C
ATOM      4  CG  TYR A  28       6.111   7.964   5.384  1.00 10.00           C
ATOM      5  CD1 TYR A  28       5.722   7.071   4.393  1.00 10.00           C
ATOM      6  CE1 TYR A  28       6.509   5.983   4.062  1.00 10.00           C
ATOM      7  CZ  TYR A  28       7.702   5.779   4.723  1.00 10.00           C
ATOM      8  OH  TYR A  28       8.488   4.698   4.396  1.00 10.00           O
ATOM      9  CE2 TYR A  28       8.111   6.652   5.709  1.00 10.00           C
ATOM     10  CD2 TYR A  28       7.318   7.736   6.033  1.00 10.00           C
ATOM     11  C   TYR A  28       3.254   7.833   6.490  1.00 10.00           C
ATOM     12  O   TYR A  28       3.415   6.655   6.811  1.00 10.00           O
ATOM     13  HA  TYR A  28       3.000   9.699   6.300  1.00 10.00           H
ATOM     14  HB2 TYR A  28       5.686   9.708   5.036  1.00 10.00           H
ATOM     15  HB3 TYR A  28       6.560   9.804   5.984  1.00 10.00           H
ATOM     16  HD1 TYR A  28       4.141   7.504   4.239  1.00 10.00           H
ATOM     17  HD2 TYR A  28       8.391   8.181   6.844  1.00 10.00           H
ATOM     18  HE1 TYR A  28       6.770   5.906   3.690  1.00 10.00           H
ATOM     19  HE2 TYR A  28       9.769   7.010   5.242  1.00 10.00           H
ATOM     20  HH ATYR A  28       8.000   3.505   4.139  0.50 10.00           H
ATOM     21  DH BTYR A  28       7.469   4.025   3.773  0.50 10.00           D
TER
HETATM   25  O   HOH C   1      11.274   5.928   4.656  1.00 10.00           O
HETATM   26  D1  HOH C   1      12.360   4.699   5.619  1.00 10.00           D
HETATM   27  D2  HOH C   1      10.422   5.411   6.216  1.00 10.00           D
TER
END
c         C   sE   t  j |  d | d d |  d | d d |  d | d d ƒ S(   Ni    i   i   (   t   matht   sqrt(   t   at   b(    (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/monomer_library/tst_neutron_distance.pyt   dist+   s    gü©ñÒMbP?c         C   s¿  xXt  t g D]J} t j j ƒ  } t j j ƒ  } t j j d | d | d t j t	 j
 ƒ  ƒ d i | d 6d t  ƒ } | j d t d d	 ƒ } t j j d
 | d t  ƒ } | j ƒ  } | j j } | j d d ƒ t j j d | d | d | ƒ }	 |	 j d t  d t  d t  d t  d t  d t  ƒ | j |	 j ƒ d }
 | rCd }
 n  | j d d |
 ƒ q Wd } t j j d d ƒ j ƒ  } xô| D]ì} | j j ƒ  } xÔ| D]Ì} | j j ƒ  } | | g d d g k s| | g d d g k s| | g d  d! g k s| | g d" d# g k rHt t | j | j ƒ d$ |  ƒ s;t ‚ | d% 7} n  | d& k r”| d: k r”t t | j | j ƒ d) |  ƒ s‡t ‚ | d% 7} n  | | g d* d+ g k sÜ| | g d* d, g k sÜ| | g d- d. g k rt t | j | j ƒ d/ |  ƒ st ‚ | d% 7} n  | d0 k rŸ| d; k rŸ| j  d3 k rŸt t | j | j ƒ d) |  ƒ s^t ‚ | d% 7} qŸqŸWqƒW| d4 k s‹t | ƒ ‚ d } t j j d d5 ƒ j ƒ  } xô| D]ì} | j j ƒ  } xÔ| D]Ì} | j j ƒ  } | | g d d g k sD| | g d d g k sD| | g d  d! g k sD| | g d" d# g k rxt t | j | j ƒ d6 |  ƒ skt ‚ | d% 7} n  | d& k rÄ| d< k rÄt t | j | j ƒ d7 |  ƒ s·t ‚ | d% 7} n  | | g d* d+ g k s| | g d* d, g k s| | g d- d. g k r@t t | j | j ƒ d8 |  ƒ s3t ‚ | d% 7} n  | d0 k rÏ| d= k rÏ| j  d3 k rÏt t | j | j ƒ d9 |  ƒ sŽt ‚ | d% 7} qÏqÏWq³W| d4 k s»t | ƒ ‚ d  S(>   Nt   mon_lib_srvt   ener_libt   raw_recordst   restraints_loading_flagst   use_neutron_distancest   force_symmetryt   show_energiest   plain_pairs_radiusg      @t   geometryt   normalizationt	   file_names	   input.pdbt   restraints_managert   xray_structuret   pdb_hierarchyt   bondt	   nonbondedt   anglet   dihedralt	   chiralityt	   planarityt   Xt   Ns   output_%s.pdbi    s   output_X.pdbt   CD1t   HD1t   CD2t   HD2t   CE1t   HE1t   CE2t   HE2gÃõ(\�Âí?i   t   OHt   HHt   DHgáz®Gáê?t   CBt   HB2t   HB3t   CAt   HAg
×£p=
ï?t   Ot   D1t   D2t   HOHi   s   output_N.pdbgHáz®Gñ?g\�Âõ(\ï?gq=
×£pñ?gffffffî?(   R)   R*   (   R1   R2   (   R)   R*   (   R1   R2   (!   t   Truet   FalseR   t   serverR   t   pdb_interpretationt   processR   t
   std_stringt   pdb_strt
   splitlinest   geometry_restraints_managert   mmtbxt
   restraintst   managerR   t   all_chain_proxiesR   t   write_pdb_filet   modelt   geometry_minimizationt   adopt_xray_structuret   iotbxt   pdbt   inputt   atoms_with_labelst   namet   stripR   R	   t   xyzt   AssertionErrort   resname(   t	   toleranceR   R
   R   t   processed_pdb_fileR   R   R   t   pht   mmodelt   suffixt   cntrt   awlt   a1t   n1t   a2t   n2(    (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/monomer_library/tst_neutron_distance.pyt   exercise.   s”    					 	00''0'''00''0'''c           C   s   t  ƒ  t ƒ  GHd  S(   N(   RY   R   (    (    (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/monomer_library/tst_neutron_distance.pyt   run|   s    t   __main__(   t
   __future__R    t   cctbx.array_familyR   t   mmtbx.modelR=   R   t   mmtbx.monomer_library.servert(   mmtbx.monomer_library.pdb_interpretationt   libtbx.utilsR   t	   iotbx.pdbRE   t   libtbx.test_utilsR   R   R:   R	   RY   RZ   t   __name__(    (    (    sX   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/monomer_library/tst_neutron_distance.pyt   <module>   s   	N	