ó
|™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	 Z	 d  d l
 Z
 d e	 j f d „  ƒ  YZ d	 Z d
 Z d „  Z e d k r¯ e	 j ƒ  n  d S(   iÿÿÿÿ(   t   division(   t   selection_string_from_selection(   t   get_clean_selection_string(   t   flex(   t   pdbNt   TestNcsPreprocessingFunctionsc           B   s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   s,    Test utility functions in ncs_preprocess.pyc         C   sã   t  j ƒ  j j GHd } d g } d } d | d } g  d d g D] } | ^ qA } d j | ƒ } | | d	 } d | g } t | g  ƒ }	 t | | ƒ }
 t | | ƒ } |  j |	 d ƒ |  j |
 d
 ƒ d } |  j | | ƒ d S(   s#    Check get_clean_selection_string  s   chain As   resseq 1:10t   27cs   (resid s    and (name s    CAs    Ns	    or name t   )s   chain A and resseq 1:10s?   chain A and (resseq 1:10 or (resid 27c and (name CA or name N))N(   t   syst	   _getframet   f_codet   co_namet   joinR   t   assertEqual(   t   selft   ch_selt   res_selection1t   res_idt   st   xt	   atom_namet   atom_strt   res_selection2t   result1t   result2t   result3t   expt(    (    sT   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/ncs/tst_ncs_preprocess_functions.pyt   test_get_clean_selection_string   s     	c         C   s‰  t  j ƒ  j j GHt j j d t ƒ } t j	 d d d d d d d g ƒ } t j	 d d d d d d g ƒ } t j	 d d d d d d g ƒ } t
 | | ƒ } t
 | | ƒ } t
 | | ƒ } |  j | d	 ƒ |  j | d
 ƒ |  j | d ƒ | j j ƒ  j } t | | ƒ j ƒ  ƒ }	 t | | ƒ j ƒ  ƒ }
 t | | ƒ j ƒ  ƒ } |  j |	 t | ƒ ƒ |  j |
 t | ƒ ƒ |  j | t | ƒ ƒ d S(   s&    Test selection_string_from_selection t
   pdb_stringi   i   i   i   i   i   i   s   chain Ds(   (chain D and (resseq 1:3 or resseq 5:7))s   (chain D and resseq 1:6)N(   R   R	   R
   R   R   t	   hierarchyt   inputt
   test_pdb_1R   t   size_tR   R   t   atom_selection_cachet	   selectiont   listt
   iselection(   R   t   pdb_inpt   isel1t   isel2t   isel3t   sel_str1t   sel_str2t   sel_str3t
   atom_cachet   sel1t   sel2t   sel3(    (    sT   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/ncs/tst_ncs_preprocess_functions.pyt$   test_selection_string_from_selection$   s$    $!!c      )   C   sõ  t  j ƒ  j j GHt j j d t ƒ } d d d d d d d d	 d
 d d d d d d d d d d d d d d d d d d d d d d  d! g  } d d d d d d d d	 d
 d d d d d d d d d d d d d d d d d d d d  d! d" d# d$ d% d& d' d( d) d* d+ d, g) } t j	 | ƒ } t j	 | ƒ } t
 | | ƒ } t
 | | ƒ } |  j | d- ƒ d. } | d/ 7} | d0 7} |  j | | ƒ | j j ƒ  j }	 t |	 | ƒ j ƒ  ƒ }
 t |	 | ƒ j ƒ  ƒ } |  j |
 t | ƒ ƒ |  j | t | ƒ ƒ d1 S(2   s&    Test selection_string_from_selection R   i    i   i   i   i   i   i   i   i   i	   i
   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i   i    i!   i"   i#   i$   i%   i&   i'   i(   i)   i*   s'   chain A or (chain B and resseq 153:154)sA   (chain A and (resseq 151 or (resid 152 and (name N or name CA or s@   name C or name O or name CB or name CG or name CD or name NE or s   name CZ )))) or chain BN(   R   R	   R
   R   R   R   R   t
   test_pdb_2R   R    R   R   R!   R"   R#   R$   (   R   R%   t   l1t   l2R&   R'   R)   R*   R   R,   R-   R.   (    (    sT   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/ncs/tst_ncs_preprocess_functions.pyR0   =   s(    NH9

(   t   __name__t
   __module__t   __doc__R   R0   (    (    (    sT   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/ncs/tst_ncs_preprocess_functions.pyR   
   s   		sÌ  CRYST1  577.812  448.715  468.790  90.00  90.00  90.00 P 1
SCALE1      0.001731  0.000000  0.000000        0.00000
SCALE2      0.000000  0.002229  0.000000        0.00000
SCALE3      0.000000  0.000000  0.002133        0.00000
ATOM      1  CA  LYS A 151      10.766   9.333  12.905  1.00 44.22           C
ATOM      2  CA  LYS A 152      10.117   9.159  11.610  1.00 49.42           C
ATOM      3  CA  LYS A 153       9.099   8.000  11.562  1.00 46.15           C
ATOM      4  CA  LYS A 154       8.000   8.202  11.065  1.00 52.97           C
ATOM      5  CA  LYS A 155      11.146   9.065  10.474  1.00 41.68           C
ATOM      6  CA  LYS A 156      10.547   9.007   9.084  1.00 55.55           C
ATOM      7  CA  LYS A 157      11.545   9.413   8.000  1.00 72.27           C
ATOM      8  CA  LYS A 158      12.277  10.718   8.343  1.00 75.78           C
ATOM      9  CA  LYS A 159      11.349  11.791   8.809  1.00 75.88           C
TER
ATOM    222  CA  LEU X  40      94.618  -5.253  91.582  1.00 87.10           C
ATOM    223  CA  ARG X  41      62.395  51.344  80.786  1.00107.25           C
ATOM    224  CA  ARG X  42      62.395  41.344  80.786  1.00107.25           C
TER
ATOM      1  CA  THR D   1       8.111  11.080  10.645  1.00 20.00           C
ATOM      2  CA  THR D   2       8.000   9.722  10.125  1.00 20.00           C
ATOM      3  CA  THR D   3       8.075   8.694  11.249  1.00 20.00           C
ATOM      4  CA  THR D   4       8.890   8.818  12.163  1.00 20.00           C
ATOM      5  CA  THR D   5       9.101   9.421   9.092  1.00 20.00           C
ATOM      6  CA  THR D   6       9.001  10.343   8.000  1.00 20.00           C
ATOM      7  CA  THR D   7       8.964   8.000   8.565  1.00 20.00           C
END
s8  CRYST1   41.870   78.240   85.900  90.00  90.00  90.00 P 2 21 21     8
SCALE1      0.023883  0.000000  0.000000        0.00000
SCALE2      0.000000  0.012781  0.000000        0.00000
SCALE3      0.000000  0.000000  0.011641        0.00000
ATOM      1  N   LYS A 151      16.915  16.113 -32.818  1.00 44.22           N
ATOM      2  CA  LYS A 151      16.266  15.939 -34.113  1.00 49.42           C
ATOM      3  C   LYS A 151      15.248  14.780 -34.161  1.00 46.15           C
ATOM      4  O   LYS A 151      14.149  14.982 -34.658  1.00 52.97           O
ATOM      5  CB  LYS A 151      17.295  15.845 -35.249  1.00 41.68           C
ATOM      6  CG  LYS A 151      16.696  15.787 -36.639  1.00 55.55           C
ATOM      7  CD  LYS A 151      17.694  16.193 -37.723  1.00 72.27           C
ATOM      8  CE  LYS A 151      18.426  17.498 -37.380  1.00 75.78           C
ATOM      9  NZ  LYS A 151      17.498  18.571 -36.914  1.00 75.88           N
ATOM     10  N   ARG A 152      15.575  13.584 -33.658  1.00 41.11           N
ATOM     11  CA  ARG A 152      14.545  12.524 -33.623  1.00 39.90           C
ATOM     12  C   ARG A 152      14.775  11.251 -32.810  1.00 33.61           C
ATOM     13  O   ARG A 152      15.911  10.847 -32.533  1.00 34.25           O
ATOM     14  CB  ARG A 152      14.096  12.135 -35.040  1.00 41.02           C
ATOM     15  CG  ARG A 152      15.094  11.299 -35.813  1.00 45.33           C
ATOM     16  CD  ARG A 152      14.593  11.085 -37.231  1.00 44.56           C
ATOM     17  NE  ARG A 152      13.434  10.190 -37.278  1.00 44.10           N
ATOM     18  CZ  ARG A 152      12.734   9.937 -38.378  1.00 49.14           C
ATOM     19  NH1 ARG A 152      13.064  10.532 -39.521  1.00 44.79           N
ATOM     20  NH2 ARG A 152      11.700   9.097 -38.335  1.00 45.30           N
ATOM     21  N   ALA B 153      13.656  10.621 -32.456  1.00 30.81           N
ATOM     22  CA  ALA B 153      13.619   9.397 -31.651  1.00 29.91           C
ATOM     23  C   ALA B 153      14.208   8.219 -32.409  1.00 31.80           C
ATOM     24  O   ALA B 153      14.248   8.241 -33.644  1.00 31.66           O
ATOM     25  CB  ALA B 153      12.176   9.082 -31.250  1.00 29.44           C
ATOM     26  N   PRO B 154      14.636   7.168 -31.680  1.00 30.22           N
ATOM     27  CA  PRO B 154      15.163   5.989 -32.375  1.00 28.83           C
ATOM     28  C   PRO B 154      14.085   5.348 -33.254  1.00 33.21           C
ATOM     29  O   PRO B 154      12.885   5.472 -32.970  1.00 26.91           O
ATOM     30  CB  PRO B 154      15.534   5.028 -31.234  1.00 27.52           C
ATOM     31  CG  PRO B 154      15.512   5.870 -29.971  1.00 30.59           C
ATOM     32  CD  PRO B 154      14.507   6.943 -30.231  1.00 27.77           C
ATOM     33  N   TYR B 155      14.519   4.680 -34.318  1.00 28.01           N
ATOM     34  CA  TYR B 155      13.603   3.970 -35.194  1.00 26.28           C
ATOM     35  C   TYR B 155      14.387   2.846 -35.845  1.00 32.08           C
ATOM     36  O   TYR B 155      15.623   2.936 -35.993  1.00 29.48           O
ATOM     37  CB  TYR B 155      13.028   4.912 -36.264  1.00 29.02           C
ATOM     38  CG  TYR B 155      14.088   5.528 -37.164  1.00 36.38           C
ATOM     39  CD1 TYR B 155      14.789   6.670 -36.769  1.00 29.69           C
ATOM     40  CD2 TYR B 155      14.403   4.957 -38.401  1.00 38.19           C
ATOM     41  CE1 TYR B 155      15.760   7.237 -37.584  1.00 37.04           C
ATOM     42  CE2 TYR B 155      15.376   5.518 -39.226  1.00 43.21           C
ATOM     43  CZ  TYR B 155      16.051   6.654 -38.804  1.00 41.97           C
END
c          C   s%   d g }  t  j t t |  ƒ ƒ } | S(   sÃ     Run selected tests

  1) List in "tests" the names of the particular test you want to run
  2) Comment out unittest.main()
  3) Un-comment unittest.TextTestRunner().run(run_selected_tests())
  t   test_processing_of_asu_2(   t   unittestt	   TestSuitet   mapR   (   t   testst   suite(    (    sT   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/ncs/tst_ncs_preprocess_functions.pyt   run_selected_tests©   s    	t   __main__(   t
   __future__R    t   iotbx.ncs.ncs_preprocessR   R   t   scitbx.array_familyR   t   iotbxR   R8   R   t   TestCaseR   R   R1   R=   R4   t   main(    (    (    sT   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/ncs/tst_ncs_preprocess_functions.pyt   <module>   s   i3	