ó
|™xTc           @   sµ   d  d l  m Z d  d l m Z d  d l Z d  d l Z d Z d Z d Z	 d Z
 d Z d	 d
 „ Z d d „ Z d d „ Z d d „ Z e d k r± e ƒ  e ƒ  e ƒ  e ƒ  n  d S(   iÿÿÿÿ(   t   division(   t   approx_equalNsü  
CRYST1  399.000  399.000  399.000  90.00  90.00  90.00 P 1
ATOM      1  N   GLY A  34     125.208 211.886 175.417  1.00  0.00           N
ATOM      2  CA  GLY A  34     125.035 211.123 174.168  1.00  0.00           C
ATOM      3  C   GLY A  34     126.386 210.806 173.507  1.00  0.00           C
ATOM      4  O   GLY A  34     127.304 211.628 173.503  1.00  0.00           O
TER
ATOM      5  N   GLY B  34     251.532 143.432 175.422  1.00  0.00           N
ATOM      6  CA  GLY B  34     252.120 143.948 174.173  1.00  0.00           C
ATOM      7  C   GLY B  34     251.212 144.998 173.512  1.00  0.00           C
ATOM      8  O   GLY B  34     249.986 144.872 173.510  1.00  0.00           O
TER
ATOM      9  N   GLY C  34     189.583 273.076 175.423  1.00  0.00           N
ATOM     10  CA  GLY C  34     188.804 273.006 174.173  1.00  0.00           C
ATOM     11  C   GLY C  34     188.920 271.622 173.510  1.00  0.00           C
ATOM     12  O   GLY C  34     189.986 271.004 173.508  1.00  0.00           O
TER
s¢  
CRYST1  399.000  399.000  399.000  90.00  90.00  90.00 P 1
ATOM      1  O   HOH S   1     109.583 203.076 175.423  1.00  0.00           O
TER
ATOM      1  N   GLY A  34     125.208 211.886 175.417  1.00  0.00           N
ATOM      2  CA  GLY A  34     125.035 211.123 174.168  1.00  0.00           C
ATOM      3  C   GLY A  34     126.386 210.806 173.507  1.00  0.00           C
ATOM      4  O   GLY A  34     127.304 211.628 173.503  1.00  0.00           O
TER
ATOM      5  N   GLY B  34     251.532 143.432 175.422  1.00  0.00           N
ATOM      6  CA  GLY B  34     252.120 143.948 174.173  1.00  0.00           C
ATOM      7  C   GLY B  34     251.212 144.998 173.512  1.00  0.00           C
ATOM      8  O   GLY B  34     249.986 144.872 173.510  1.00  0.00           O
TER
ATOM      9  N   GLY C  34     189.583 273.076 175.423  1.00  0.00           N
ATOM     10  CA  GLY C  34     188.804 273.006 174.173  1.00  0.00           C
ATOM     11  C   GLY C  34     188.920 271.622 173.510  1.00  0.00           C
ATOM     12  O   GLY C  34     189.986 271.004 173.508  1.00  0.00           O
TER
ATOM      9  O   TYR D   4     189.583 273.076 175.423  1.00  0.00           O
TER
sü  
CRYST1  399.000  399.000  399.000  90.00  90.00  90.00 P 1
ATOM      1  N   GLY A  34     125.208 211.886 175.417  1.00  0.00           N
ATOM      2  CA  GLY A  34     125.035 211.123 174.168  1.00  0.00           C
ATOM      3  C   GLY A  34     126.386 210.806 173.507  1.00  0.00           C
ATOM      4  O   GLY A  34     127.304 211.628 173.503  1.00  0.00           O
TER
ATOM      5  N   GLY B  34     251.532 143.432 175.422  1.00  0.00           N
ATOM      6  CA  GLY B  34     252.120 143.948 174.173  1.00  0.00           C
ATOM      7  C   GLY B  34     251.212 144.998 173.512  1.00  0.00           C
ATOM      8  O   GLY B  34     249.986 144.872 173.510  1.00  0.00           O
TER
ATOM      9  O   HOH C  34     189.583 273.076 175.423  1.00  0.00           O
ATOM     10  O   HOH C  34     188.804 273.006 174.173  1.00  0.00           O
ATOM     11  O   HOH C  34     188.920 271.622 173.510  1.00  0.00           O
ATOM     12  O   HOH C  34     189.986 271.004 173.508  1.00  0.00           O
TER
sü  
CRYST1  399.000  399.000  399.000  90.00  90.00  90.00 P 1
ATOM      1  N   GLY A  34     125.208 211.886 175.417  1.00  0.00           N
ATOM      2  CA  GLY A  34     125.035 211.123 174.168  1.00  0.00           C
ATOM      3  C   GLY A  34     126.386 210.806 173.507  1.00  0.00           C
ATOM      4  O   GLY A  34     127.304 211.628 173.503  1.00  0.00           O
TER
ATOM      5  N   GLY B  34     251.532 143.432 175.422  1.00  0.00           N
ATOM      6  CA  GLY B  34     252.120 143.948 174.173  1.00  0.00           C
ATOM      7  C   GLY B  34     251.212 144.998 173.512  1.00  0.00           C
ATOM      8  O   GLY B  34     249.986 144.872 173.510  1.00  0.00           O
TER
ATOM      9  N   TYR C  34     189.583 273.076 175.423  1.00  0.00           N
ATOM     10  CA  TYR C  34     188.804 273.006 174.173  1.00  0.00           C
ATOM     11  C   TYR C  34     188.920 271.622 173.510  1.00  0.00           C
ATOM     12  O   TYR C  34     189.986 271.004 173.508  1.00  0.00           O
TER
sõ	  
ATOM      1  N   MET A   1     158.070 173.095 147.115  1.00 50.00           N
ATOM      2  CA  MET A   1     157.408 172.627 148.359  1.00 50.00           C
ATOM      3  CB  MET A   1     157.550 171.094 148.516  1.00 50.00           C
ATOM      4  CG  MET A   1     156.748 170.503 149.691  1.00 50.00           C
ATOM      5  SD  MET A   1     154.968 170.855 149.612  1.00 50.00           S
ATOM      6  CE  MET A   1     154.505 169.913 151.091  1.00 50.00           C
ATOM      7  C   MET A   1     157.958 173.331 149.563  1.00 50.00           C
ATOM      8  O   MET A   1     157.196 173.814 150.399  1.00 50.00           O
TER
ATOM      9  N   MET B   1     174.781 155.306 150.054  1.00 50.00           N
ATOM     10  CA  MET B   1     174.332 154.630 151.298  1.00 50.00           C
ATOM     11  CB  MET B   1     175.016 153.251 151.453  1.00 50.00           C
ATOM     12  CG  MET B   1     174.481 152.410 152.628  1.00 50.00           C
ATOM     13  SD  MET B   1     172.693 152.099 152.550  1.00 50.00           S
ATOM     14  CE  MET B   1     172.601 151.052 154.028  1.00 50.00           C
ATOM     15  C   MET B   1     174.594 155.484 152.502  1.00 50.00           C
ATOM     16  O   MET B   1     173.710 155.660 153.339  1.00 50.00           O
TER
ATOM     17  N   MET C   1     148.867 195.697 144.146  1.00 50.00           N
ATOM     18  CA  MET C   1     148.080 195.499 145.390  1.00 50.00           C
ATOM     19  CB  MET C   1     147.662 194.018 145.549  1.00 50.00           C
ATOM     20  CG  MET C   1     146.701 193.755 146.723  1.00 50.00           C
ATOM     21  SD  MET C   1     145.166 194.723 146.643  1.00 50.00           S
ATOM     22  CE  MET C   1     144.395 194.012 148.122  1.00 50.00           C
ATOM     23  C   MET C   1     148.846 195.960 146.594  1.00 50.00           C
ATOM     24  O   MET C   1     148.308 196.685 147.429  1.00 50.00           O
TER
ATOM    417  N   MET 1   1     274.499 237.478  69.907  1.00 50.00           N
ATOM    418  CA  MET 1   1     275.223 237.861  71.146  1.00 50.00           C
ATOM    419  CB  MET 1   1     275.281 239.400  71.298  1.00 50.00           C
ATOM    420  CG  MET 1   1     276.159 239.886  72.466  1.00 50.00           C
ATOM    421  SD  MET 1   1     277.878 239.307  72.379  1.00 50.00           S
ATOM    422  CE  MET 1   1     278.468 240.186  73.852  1.00 50.00           C
ATOM    423  C   MET 1   1     274.593 237.238  72.356  1.00 50.00           C
ATOM    424  O   MET 1   1     275.291 236.663  73.190  1.00 50.00           O
TER
END
t   iotbx_ncs_exercise_00c   	      C   se  d |  } d } d „  } xEt  t t g ƒ D]1\ } } t | d ƒ } | | IJ| j ƒ  t j j d | ƒ } | d k rå t j j d | ƒ } | | | ƒ t j j d | ƒ } | | | ƒ t j j d | ƒ } | | | ƒ n  t j j d | d	 | ƒ } | | | ƒ t j j d | d	 | ƒ } | | | ƒ t j j d | d	 | ƒ } | | | ƒ q, Wd  S(
   Ns   %s.pdbsd   
ncs_group {
  master_selection = chain A
  copy_selection = chain B
  copy_selection = chain C
}
  c         S   s=  | d k rG d d d d g d d d d g d	 d
 d d g } } } nS | d k rŽ d d d d g d d d d	 g d
 d d d g } } } n d sš t  ‚ |  j ƒ  } t | ƒ d k s¾ t  ‚ | d } t | j | ƒ sà t  ‚ t | j ƒ d k sû t  ‚ t | j d j | ƒ st  ‚ t | j d j | ƒ s9t  ‚ d  S(   Ni    i   i   i   i   i   i   i   i   i	   i
   i   i   (   t   AssertionErrort   get_ncs_restraints_group_listt   lenR   t   master_iselectiont   copiest
   iselection(   t   ncs_inpt   test_it   l1t   l2t   l3t
   ncs_groupst	   ncs_group(    (    s;   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/ncs/tst.pyt   check_result‡   s    ;;
t   wt	   file_namei    t   pdb_inpt
   pdb_stringt   ncs_selection_params(	   t	   enumeratet	   pdb_str_1t	   pdb_str_2t   opent   closet   iotbxt   pdbt   inputt   ncs(	   t   prefixt   pdb_file_namet   ncs_params_strR   R
   t   pdb_strt   ofR   R	   (    (    s;   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/ncs/tst.pyt   exercise_00~   s0    
	

			t   iotbx_ncs_exercise_01c   	      C   sð   d |  } d } d „  } xÐ t  t t g ƒ D]¼ \ } } t | d ƒ } | | IJ| j ƒ  t j j d | ƒ } t j j d | d | ƒ } | | | ƒ t j j d | d | ƒ } | | | ƒ t j j d | d | ƒ } | | | ƒ q, Wd	 S(
   sP   
  Make sure provided selections take precedence and are correctly respected.
  s   %s.pdbsI   
ncs_group {
  master_selection = chain C
  copy_selection = chain A
}
  c         S   sø   | d k r4 d d d d g d d d d g } } n@ | d k rh d d d d	 g d d d d
 g } } n d st t  ‚ |  j ƒ  } t | ƒ d k s˜ t  ‚ | d } t | j | ƒ sº t  ‚ t | j ƒ d k sÕ t  ‚ t | j d j | ƒ sô t  ‚ d  S(   Ni    i   i	   i
   i   i   i   i   i   i   (   R   R   R   R   R   R   R   (   R	   R
   R   R   R   R   (    (    s;   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/ncs/tst.pyR   »   s    ((
R   R   R   R   R   N(	   R   R   R   R   R   R   R   R   R   (	   R   R    R!   R   R
   R"   R#   R   R	   (    (    s;   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/ncs/tst.pyt   exercise_01°   s"    
	

			t   iotbx_ncs_exercise_02c   	      C   sä   d |  } d } xÍ t  t t g ƒ D]¹ \ } } t | d ƒ } | | IJ| j ƒ  t j j d | ƒ } t j j d | d | ƒ } | j	 ƒ  } t j j d | d | ƒ } | j	 ƒ  } t j j d | d | ƒ } | j	 ƒ  } q# Wd S(	   sE   
  This is expected to fail as requested chains cannot be matched.
  s   %s.pdbsI   
ncs_group {
  master_selection = chain C
  copy_selection = chain A
}
  R   R   R   R   R   N(
   R   t	   pdb_str_3t	   pdb_str_4R   R   R   R   R   R   R   (	   R   R    R!   R
   R"   R#   R   R	   R   (    (    s;   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/ncs/tst.pyt   exercise_02Ù   s     


			t   iotbx_ncs_exercise_03c   
      C   sF  t  j j d d d t ƒ } t  j j d | ƒ } | j ƒ  } | j j ƒ  } | j	 d d ƒ } | j	 d d ƒ } | j	 d d ƒ } | j	 d d ƒ } t
 | ƒ d	 k s« t ‚ | d
 }	 t | j ƒ  |	 j ƒ sÓ t ‚ t | j ƒ  |	 j d	 j ƒ sø t ‚ t | j ƒ  |	 j d j ƒ st ‚ t | j ƒ  |	 j d
 j ƒ sBt ‚ d S(   s%   
  Expect one master and 3 copies.
  t   source_infot   linesR   t   strings   chain As   chain Bs   chain Cs   chain 1i   i    i   N(   R   R   R   t   Nonet	   pdb_str_5R   R   t	   hierarchyt   atom_selection_cachet	   selectionR   R   R   R   R   R   (
   R   R   R	   R   t   asct
   sel_mastert
   sel_copy_1t
   sel_copy_2t
   sel_copy_3t   ng(    (    s;   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/ncs/tst.pyt   exercise_03ö   s    
%%t   __main__(   t
   __future__R    t   libtbx.test_utilsR   t	   iotbx.ncsR   t	   iotbx.pdbR   R   R(   R)   R0   R$   R&   R*   R:   t   __name__(    (    (    s;   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/ncs/tst.pyt   <module>   s"   (2)