ó
F™xTc           @   s¯   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 Z d d „ Z d	 „  Z d
 „  Z e d k r« d  d l Z e d e j d ƒ n  d S(   iÿÿÿÿ(   t   division(   t   flex(   t   StringION(   t   approx_equalsÖ  remark CRYST1   25.000   35.000   45.000  80.00 70.00 100.00 P 1           1
CRYST1    4.000    5.000    7.000  80.00 70.00 100.00 P 1           1
ATOM      1  CB  PHE A   1       7.767   5.853   7.671  1.00 15.00           C
ATOM      2  CG  PHE A   1       6.935   5.032   8.622  1.00 44.21           C
ANISOU    2  CG  PHE A   1     4894   5943   5958    725   -324    -10       C
ATOM      3  CD1 PHE A   1       5.918   4.176   8.140  1.00 17.66           C
ANISOU    3  CD1 PHE A   1     1321   2083   3304   1237   1214   2356       C
ATOM      4  CD2 PHE A   1       7.161   5.107  10.012  1.00 36.94           C
ANISOU    4  CD2 PHE A   1     4099   5961   3974    855     31     95       C
ATOM      5  CE1 PHE A   1       5.126   3.395   9.038  1.00 17.96           C
ATOM      6  CE2 PHE A   1       6.382   4.336  10.930  1.00 98.17           C
ATOM      7  CZ  PHE A   1       5.360   3.476  10.439  1.00 78.27           C
ATOM      8  C   PHE A   1       7.956   7.811   6.133  1.00 17.21           C
ANISOU    8  C   PHE A   1      816   2415   3307   1079   1332   2287       C
ATOM      9  O   PHE A   1       8.506   7.237   5.169  1.00 70.55           O
ANISOU    9  O   PHE A   1     8784   9152   8868     -8    122   -190       O
ATOM     10  OXT PHE A   1       8.143   9.010   6.428  1.00 27.61           O
ATOM     13  N   PHE A   1       5.875   6.461   6.183  1.00 17.13           N
ATOM     15  CA  PHE A   1       7.000   7.000   7.000  1.00 87.18           C
END
g{®Gáz„?c      	   C   s  |  j  ƒ  } t j j d |  d | d t ƒ } | j } | j } xÐt |  j ƒ  ƒ D]¼\ } } | j	 }	 |	 j
 ƒ  råxot d ƒ D]^}
 |  j ƒ  } |  j ƒ  } | j ƒ  } | j ƒ  } | j | ƒ } | j | ƒ } t j | | ƒ } t j | | ƒ } | |
 | | |
 <| |
 | | |
 <t | ƒ | | <t | ƒ | | <| j | | ƒ | j | | ƒ t j j d | d | d t ƒ } t j j d | d | d t ƒ } | j | j d | } | | |
 } t | | d ƒ s€ t ‚ q€ Wn  |	 j ƒ  rR |  j ƒ  } |  j ƒ  } |  j ƒ  } | j ƒ  } | j ƒ  } | j ƒ  } | j ƒ  } | | | | | <| | | | | <| j | | | ƒ | j | | | ƒ t j j d | d | d t ƒ } t j j d | d | d t ƒ } | j | j d | } | | } t | | d ƒ st ‚ qR qR Wd  S(   Nt   xray_structuret   restraints_managert   use_hdi   i   g-Cëâ6?(   t	   unit_cellt   cctbxt   adp_restraintst   adp_aniso_restraintst   Falset   gradients_aniso_cartt   gradients_isot	   enumeratet
   scattererst   flagst   use_u_anisot   xranget   deep_copy_scattererst   extract_u_cartR   t   doublet   listt
   set_u_cartt   targetR   t   AssertionErrort	   use_u_isot   extract_u_isot	   set_u_iso(   R   R   t   epst   uct   adp_rot   g_anisot   g_isot   i_seqt	   scatterert   flt   i_indt   xrs1t   xrs2t   sc1t   sc2t   us1t   us2t   m1t   m2t   adp_ro1t   adp_ro2t   g1t   g2t   sel(    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_adp_aniso_restraints.pyt   fd   sv    								
c          C   s¥  t  j j d ƒ s d GHd  St  j j d d ƒ d  k r? d GHd  Sd d l m }  d } t | d	 ƒ j t	 ƒ t
 ƒ  } |  j d
 | g d t d | ƒ } | j ƒ  } | j ƒ  } | j ƒ  j d t ƒ | j ƒ  j d | j ƒ  j ƒ  ƒ | j ƒ  j d | j ƒ  j ƒ  ƒ t j j d | d | d t ƒ } t t j | j ƒ d ƒ sIt ‚ t t j | j j ƒ  ƒ d ƒ spt ‚ t | j  d ƒ sˆt ‚ t! d | d | d d ƒ d  S(   Nt   mmtbxs/   Skipping exercise(): mmtbx module not availablet   relative_patht	   chem_datas6   Skipping exercise(): chem_data directory not availableiÿÿÿÿ(   t   pdb_interpretations    phe_tst_adp_aniso_restraints.pdbt   wt   argst   strict_conflict_handlingt   logt   statet
   iselectionR   R   R   g#YÎ×æ?gðGh t¾¿gd]ïï7ñ!@R   g-Cëâ6?("   t   libtbxt   envt
   has_modulet   find_in_repositoriest   Nonet   mmtbx.monomer_libraryR7   t   opent   writet   phe_pdbR   t   runR   t   geometry_restraints_managerR   R   t   flags_set_gradst   flags_set_grad_u_isoR   R=   t   flags_set_grad_u_anisoR   R   R	   R
   R   R   t   meanR   R   R   t	   as_doubleR   R3   (   R7   t	   file_namet   outt   processed_pdb_filet   geoR   t   adp_rm(    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_adp_aniso_restraints.pyt   exercise`   s:    					!'c         C   s(   t  |  ƒ d k s t ‚ t ƒ  d GHd  S(   Ni    t   OK(   t   lenR   RS   (   R9   (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_adp_aniso_restraints.pyRG      s    t   __main__R9   i   (   t
   __future__R    t   cctbx.array_familyR   t	   cStringIOR   t   cctbx.adp_restraintsR   t   libtbx.test_utilsR   t   libtbx.load_envR>   RF   R3   RS   RG   t   __name__t   syst   argv(    (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_adp_aniso_restraints.pyt   <module>   s   A		