ó
£™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
 m Z d  d l m Z d  d l Z d  d	 l m Z m Z d  d
 l m Z d  d l Z d „  Z d „  Z e d k rè e ƒ  e ƒ  d GHn  d S(   iÿÿÿÿ(   t   division(   t   find_rotarama_data_dir(   t   rotalyze(   t   file_reader(   t   pdb(   t	   show_difft   Exception_expected(   t   SorryN(   t   loadst   dumps(   t   StringIOc          C   s·  t  j j d d d t j j ƒ }  |  d  k r6 d GHd  St d t ƒ d  k rT d GHd  St	 j
 d |  ƒ } | j j } t j d |  ƒ } t j d | d	 t ƒ } t ƒ  } | j d
 | d t ƒ | j ƒ  } | j d ƒ d k sñ t | j d ƒ ƒ ‚ | j d ƒ d k st | j d ƒ ƒ ‚ | j ƒ  } t | ƒ d k s?t ‚ x- | D]% } t | d d !ƒ d k sFt ‚ qFWt j d | d	 t ƒ } xÝt t g D]Ï}	 |	 rµt t | ƒ ƒ } n  t ƒ  } | j d
 | d t ƒ x, | j D]! }
 t |
 j ƒ d k sÞt ‚ qÞW| j ƒ  } | j d ƒ d k s*t ‚ | j d ƒ d k sTt | j d ƒ ƒ ‚ | j d ƒ d k sot ‚ | j d ƒ d k sŠt ‚ | j d ƒ d k s¥t ‚ | j ƒ  } t | ƒ d k sÉt ‚ d d d d  d! d" d# d$ d% d& d' d( g } d) d* d+ d, d- d. d/ d0 d1 d2 d3 d4 g } xC t | | ƒ D]2 \ } } | | | k s-t | | | f ƒ ‚ q-Wq”Wt  j j d d5 d t j j ƒ }  |  d  k r�d6 GHd  St	 j
 d |  ƒ } | j j } t j d |  ƒ } t j d | d	 t ƒ } t ƒ  } | j d
 | d t ƒ | j ƒ  j ƒ  } | d7 k s(t ‚ t j d | d	 t ƒ } xp t t g D]b }	 |	 rnt t | ƒ ƒ } n  t ƒ  } | j d
 | d t ƒ | j ƒ  } t | d8 ƒ sMt ‚ qMWd  S(9   Nt   relative_paths   phenix_regression/pdb/jcm.pdbt   tests?   Skipping exercise_rotalyze(): input pdb (jcm.pdb) not availablet   optionalsC   Skipping exercise_rotalyze(): rotarama_data directory not availablet	   file_namet   pdb_hierarchyt   outliers_onlyt   outt   verboset   OUTLIERiâ   t   :iˆ  iq   i   i   g      ð?i   i  t   piy   t   miM  t   tiï  iƒ  i    i   i   i*   i+   i¨   i©   iÂ  iK  iŠ  i�  i‚  s2    A  14  MET:1.00:3.3:29.2:173.3:287.9::Favored:ptms-    A  15  SER:1.00:0.1:229.0::::OUTLIER:OUTLIERs'    A  16  SER:1.00:4.2:277.9::::Favored:ms/    A  58  ASN:1.00:2.0:252.4:343.6:::Favored:m-20s,    A  59  ILE:1.00:2.0:84.2:186.7:::Allowed:pts6    A 202  GLU:1.00:0.4:272.7:65.9:287.8::OUTLIER:OUTLIERs-    A 203  ILE:1.00:5.0:292.9:199.6:::Favored:mts-    B 154  THR:1.00:0.1:356.0::::OUTLIER:OUTLIERs-    B 316  TYR:1.00:5.4:153.7:68.6:::Favored:t80s/    B  86  ASP:1.00:2.2:321.4:145.1:::Favored:m-20s6    B 377  GLU:1.00:45.3:311.7:166.2:160.1::Favored:mt-10s(    B 378  THR:1.00:23.5:309.4::::Favored:ms!   phenix_regression/pdb/pdb1jxt.entsC   Skipping exercise_ramalyze(): input pdb (pdb1jxt.ent) not availables1   A  29 BTYR:0.35:0.3:191.3:322.7:::OUTLIER:OUTLIERsæ   A   1  THR:1.00:96.6:299.5::::Favored:m
 A   2 ATHR:0.67:55.0:56.1::::Favored:p
 A   2 BTHR:0.33:93.8:298.1::::Favored:m
 A   3  CYS:1.00:28.5:310.5::::Favored:m
 A   4  CYS:1.00:89.0:293.1::::Favored:m
 A   5  PRO:1.00:90.6:30.2::::Favored:Cg_endo
 A   6  SER:1.00:84.6:68.4::::Favored:p
 A   7 AILE:0.45:62.7:290.8:178.2:::Favored:mt
 A   7 BILE:0.55:14.3:284.4:298.4:::Favored:mm
 A   8 AVAL:0.50:3.6:156.7::::Favored:t
 A   8 BVAL:0.30:9.7:71.3::::Favored:p
 A   8 CVAL:0.20:74.3:172.1::::Favored:t
 A  10 AARG:0.65:23.4:176.8:66.5:63.9:180.0:Favored:tpp180
 A  10 BARG:0.35:20.1:176.8:72.8:66.4:171.9:Favored:tpp180
 A  11  SER:1.00:49.6:300.9::::Favored:m
 A  12 AASN:0.50:96.0:286.1:343.8:::Favored:m-20
 A  12 BASN:0.50:99.2:288.4:337.6:::Favored:m-20
 A  13 APHE:0.65:42.3:187.2:276.4:::Favored:t80
 A  13 BPHE:0.35:84.7:179.6:263.1:::Favored:t80
 A  14  ASN:1.00:95.9:289.6:333.0:::Favored:m-20
 A  15  VAL:1.00:47.4:168.2::::Favored:t
 A  16  CYS:1.00:44.7:176.5::::Favored:t
 A  17  ARG:1.00:23.6:289.7:282.8:288.6:158.7:Favored:mmm180
 A  18  LEU:1.00:75.1:287.2:173.3:::Favored:mt
 A  19  PRO:1.00:43.6:24.4::::Favored:Cg_endo
 A  21  THR:1.00:8.5:314.0::::Favored:m
 A  22 APRO:0.55:78.5:333.5::::Favored:Cg_exo
 A  23 AGLU:0.50:92.5:290.9:187.1:341.8::Favored:mt-10
 A  23 BGLU:0.50:94.5:292.0:183.8:339.2::Favored:mt-10
 A  25 ALEU:0.50:96.7:294.4:173.6:::Favored:mt
 A  26  CYS:1.00:92.2:295.0::::Favored:m
 A  28  THR:1.00:37.5:52.9::::Favored:p
 A  29 ATYR:0.65:23.0:161.8:67.8:::Favored:t80
 A  29 BTYR:0.35:0.3:191.3:322.7:::OUTLIER:OUTLIER
 A  30 ATHR:0.70:68.5:57.4::::Favored:p
 A  30 BTHR:0.30:8.8:78.1::::Favored:p
 A  32  CYS:1.00:69.2:301.7::::Favored:m
 A  33  ILE:1.00:37.5:66.5:173.4:::Favored:pt
 A  34 AILE:0.70:66.6:303.6:167.6:::Favored:mt
 A  34 BILE:0.30:33.9:308.5:296.8:::Favored:mm
 A  35  ILE:1.00:48.4:62.4:170.0:::Favored:pt
 A  36  PRO:1.00:36.1:22.5::::Favored:Cg_endo
 A  39 ATHR:0.70:18.3:311.0::::Favored:m
 A  39 BTHR:0.30:17.7:288.8::::Favored:m
 A  40  CYS:1.00:99.0:294.4::::Favored:m
 A  41  PRO:1.00:61.4:34.4::::Favored:Cg_endo
 A  43 AASP:0.75:29.6:56.5:340.3:::Favored:p-10
 A  43 BASP:0.25:45.3:59.6:349.3:::Favored:p-10
 A  44  TYR:1.00:85.6:290.9:85.1:::Favored:m-85
 A  46  ASN:1.00:34.0:301.6:117.9:::Favored:m120
(    t   libtbxt   envt   find_in_repositoriest   ost   patht   isfilet   NoneR   t   TrueR   t   any_filet   file_objectt	   hierarchyR   t   inputR   R
   t   show_old_outputt   Falset   getvaluet   countt   AssertionErrort
   splitlinest   lent   floatR   R	   t   resultst   xyzt   zipt   stripR   (   t   regression_pdbt   pdb_inR"   t   pdb_iot   rR   t   outputt   output_linest   linest   unpicklet   outliert   line_indicest   line_valuest   idxt   val(    (    sV   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/validation/regression/tst_rotalyze.pyt   exercise_rotalyze   s¨    			**#			**	.						3c          C   s!  d }  d } t  j d d  d |  ƒ } | j ƒ  } y t j d | ƒ Wn+ t k
 rq } d t | ƒ k sx t ‚ n Xt ‚ t  j d d  d | ƒ } | j ƒ  } t j d | ƒ } t	 ƒ  } | j
 d | d t ƒ | j ƒ  } | d	 k sñ t | ƒ ‚ t j d | d
 d ƒ } t	 ƒ  } | j
 d | d t ƒ | j ƒ  d	 k sLt | j ƒ  ƒ ‚ y t j d | d
 d ƒ } Wn t k
 r{n Xt ‚ d d l m } | ƒ  }	 g  }
 x^ | j ƒ  D]P } xG | j ƒ  D]9 } x0 | j ƒ  D]" } |	 j | ƒ } |
 j | ƒ qÔWqÁWq®W|
 d d d g k st ‚ d  S(   Nsk  ATOM   2527  N   LEU A 261     -31.022 -24.808 107.479  1.00 28.22           N
ATOM   2528  CA  LEU A 261     -30.054 -23.719 107.237  1.00 21.77           C
ATOM   2529  C   LEU A 261     -30.582 -22.773 106.168  1.00 27.64           C
ATOM   2530  O   LEU A 261     -29.841 -21.977 105.561  1.00 26.70           O
ATOM   2531  CB  LEU A 261     -28.696 -24.276 106.874  1.00 22.58           C
ATOM   2532  CG  LEU A 261     -28.135 -25.066 108.060  1.00 40.89           C
ATOM   2533  CD1 LEU A 261     -26.892 -25.858 107.664  1.00 46.72           C
ATOM   2534  CD2 LEU A 261     -27.806 -24.109 109.202  1.00 38.88           C
ATOM   2535  H   LEU A 261     -31.201 -25.277 106.781  1.00 33.87           H
ATOM   2536  HA  LEU A 261     -29.950 -23.204 108.064  1.00 26.12           H
ATOM   2537  HB2 LEU A 261     -28.781 -24.874 106.115  1.00 27.10           H
ATOM   2538  HB3 LEU A 261     -28.088 -23.548 106.670  1.00 27.10           H
ATOM   2539  HG  LEU A 261     -28.806 -25.693 108.373  1.00 49.07           H
ATOM   2540 HD11 LEU A 261     -26.570 -26.338 108.430  1.00 56.07           H
ATOM   2541 HD12 LEU A 261     -27.124 -26.473 106.965  1.00 56.07           H
ATOM   2542 HD13 LEU A 261     -26.219 -25.247 107.353  1.00 56.07           H
ATOM   2543 HD21 LEU A 261     -28.608 -23.653 109.468  1.00 46.66           H
ATOM   2544 HD22 LEU A 261     -27.455 -24.612 109.941  1.00 46.66           H
ATOM   2545 HD23 LEU A 261     -27.153 -23.474 108.899  1.00 46.66           H
ATOM   2546  N   GLY A 262     -31.887 -22.863 105.948  1.00 23.68           N
ATOM   2547  CA  GLY A 262     -32.572 -21.935 105.075  1.00 21.87      85   C
ATOM   2548  C   GLY A 262     -33.718 -22.620 104.386  1.00 27.32           C
ATOM   2549  O   GLY A 262     -33.943 -23.822 104.556  1.00 23.10           O
ATOM   2550  H   GLY A 262     -32.399 -23.459 106.298  1.00 28.42           H
ATOM   2551  HA2 GLY A 262     -32.916 -21.189 105.591  1.00 26.25      85   H
ATOM   2552  HA3 GLY A 262     -31.958 -21.598 104.405  1.00 26.25      85   H
ATOM   2553  N   SER A 263     -34.460 -21.830 103.628  1.00 24.62           N
ATOM   2554  CA  SER A 263     -35.631 -22.290 102.921  1.00 27.15           C
ATOM   2555  C   SER A 263     -35.594 -21.761 101.492  1.00 22.14           C
ATOM   2556  O   SER A 263     -34.723 -20.945 101.159  1.00 21.01           O
ATOM   2557  CB  SER A 263     -36.839 -21.713 103.619  1.00 25.73           C
ATOM   2558  OG  SER A 263     -36.907 -22.232 104.922  1.00 26.84           O
ATOM   2559  H   SER A 263     -34.296 -20.995 103.507  1.00 29.54           H
ATOM   2560  HA  SER A 263     -35.680 -23.269 102.917  1.00 32.58           H
ATOM   2561  HB2 SER A 263     -36.754 -20.747 103.661  1.00 30.87           H
ATOM   2562  HB3 SER A 263     -37.641 -21.960 103.132  1.00 30.87           H
ATOM   2563  HG  SER A 263     -37.560 -21.925 105.312  1.00 32.20           H
si  
ATOM    453  N   PRO A  47       8.633   6.370   5.022  1.00 13.79           N
ATOM    454  CA  PRO A  47       7.915   7.571   5.496  1.00 14.61           C
ATOM    455  C   PRO A  47       7.612   7.481   6.994  1.00 15.06           C
ATOM    456  O   PRO A  47       7.289   6.377   7.439  1.00 14.39           O
ATOM    457  CB  PRO A  47       6.639   7.559   4.651  1.00 16.24           C
ATOM    458  CG  PRO A  47       7.089   6.901   3.338  1.00 15.52           C
ATOM    459  CD  PRO A  47       7.990   5.773   3.833  1.00 14.40           C
ATOM    460  N   MSE A  48       7.754   8.528   7.779  1.00 15.13           N
ATOM    461  CA  MSE A  48       7.482   8.456   9.201  1.00 16.17           C
ATOM    462  C   MSE A  48       6.040   8.750   9.517  1.00 15.23           C
ATOM    463  O   MSE A  48       5.417   9.418   8.735  1.00 14.77           O
ATOM    464  CB  MSE A  48       8.165   9.538  10.023  1.00 19.62           C
ATOM    465  CG  MSE A  48       9.630   9.466  10.238  1.00 21.70           C
ATOM    466 SE   MSE A  48      10.022  10.161  12.050  0.70 37.95          SE
ATOM    467  CE  MSE A  48      11.268   8.720  12.235  1.00 28.72           C
ATOM    468  N   LYS A  49       5.519   8.291  10.645  1.00 13.93           N
ATOM    469  CA  LYS A  49       4.167   8.624  11.045  1.00 13.79           C
ATOM    470  C   LYS A  49       4.022  10.138  11.202  1.00 14.66           C
ATOM    471  O   LYS A  49       5.011  10.853  11.351  1.00 15.69           O
ATOM    472  CB  LYS A  49       3.797   7.915  12.349  1.00 13.33           C
ATOM    473  CG  LYS A  49       3.593   6.416  12.204  1.00 14.35           C
ATOM    474  CD  LYS A  49       2.121   6.071  12.044  1.00 16.45           C
ATOM    475  CE  LYS A  49       1.571   5.402  13.292  1.00 18.19           C
ATOM    476  NZ  LYS A  49       0.899   4.110  12.980  1.00 19.97           N
t   source_infoR6   R   s	   GLY A 262R   R   sŸ    A  47  PRO:1.00:96.6:329.3::::Favored:Cg_exo
 A  48  MSE:0.70:2.0:287.6:214.8:138.3::Favored:mtt
 A  49  LYS:1.00:0.0:288.6:263.2:251.7:233.0:OUTLIER:OUTLIER
t   data_versiont   8000t   9000iÿÿÿÿ(   t   RotamerEvalt   Cg_exot   mttR   (   R   R#   R   t   construct_hierarchyR   R   t   strR(   R   R
   R$   R%   R&   t
   ValueErrort   mmtbx.rotamer.rotamer_evalRB   t   modelst   chainst   residuest   evaluate_residuet   append(   t   pdb_strt   pdb_str2R2   R"   t   eR3   R   R4   RB   t   rotamer_managerR,   t   modelt   chaint   residuet   cur_rot(    (    sV   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/validation/regression/tst_rotalyze.pyt
   exercise_2ž   sL    '					t   __main__t   OK(   t
   __future__R    RH   R   t   mmtbx.validationR   t   iotbxR   R   t   libtbx.test_utilsR   R   t   libtbx.utilsR   t   libtbx.load_envR   t   libtbx.easy_pickleR   R	   t	   cStringIOR
   t   os.pathR   R=   RV   t   __name__(    (    (    sV   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/validation/regression/tst_rotalyze.pyt   <module>   s    	�	u