ó
xTc           @   sŢ  d  d l  m Z d  d l m Z d  d l m Z d  d l m Z m Z m	 Z	 d  d l
 m Z d  d l m Z m Z m Z d  d l Z d  d l m Z d  d	 l m Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d
   Z d   Z d   Z d   Z d   Z d   Z  d   Z! d   Z" d   Z# d   Z$ d   Z% d   Z& e j' d e( d e j) d   Z* d   Z+ d   Z, d d  Z- d d  Z. d   Z/ d Z0 d  Z1 d!   Z2 d"   Z3 d#   Z4 d$   Z5 d%   Z6 d&   Z7 d'   Z8 i  e( e( d(  Z9 d)   Z: d*   Z; d+   Z< d,   Z= d- d.  Z> d/ d0  Z? d1   Z@ d2   ZA d3   ZB d4   ZC d5   ZD d6   ZE d7   ZF d8   ZG d9   ZH d:   ZI d;   ZJ d<   ZK d=   ZL eM d> k rÚeL e jN d?  n  d S(@   i˙˙˙˙(   t   division(   t   pdb(   t   flex(   t   Exception_expectedt   approx_equalt	   show_diff(   t   show_string(   t   hashlib_md5t   Sorryt   format_cpu_timesN(   t   Auto(   t   StringIOc       	      s  t  j j       j d k s$ t  d   _   j d k sB t  y d   _ Wn1 t t f k
 r }  t |   d k s t  n Xt    j	 d k s t  d   _	   j	 d k sź t    j
 d k sŃ t  d   _
   j
 d k sď t    j d k st  d   _   j d k s"t    j d k s7t  d   _   j d k sUt    j   d	 k smt    j dŁ k st  d¤   _   j dĽ k s t    j dŚ k sľt  d§   _   j d¨ k sÓt    j d
 k sčt  d   _   j d k st    j d
 k st  d   _   j d k s9t    j d
 k sNt  d   _   j d k slt    j d
 k st  d   _   j d k st    j dŠ k s´t    j   sÇt  dŞ   _   j dŤ k sĺt    j   s÷t    j     j   st    j   s't  t  j j j   r  j dŹ k sNt  d­   _   j dŽ k slt    j   st  n    j     j   st    j d
 k słt  d   _   j d k sŃt    j d
 k sćt  d   _   j d k st    j st  t   _   j s,t    j d
 k sAt  y d   _ Wn t  k
 ran Xt    j! d
 k s}t  d   _!   j! d k st    j"   d  k słt  t  j j   j$ d d  j% d d  j& d d  j' d d  j( d  d!  j) d" dŻ  j* d& d°  j+ d( d)  j, d* d  j- d+ d,  j. d- d  j/ d. dą  j0 d2 d'  j1 d3 d)  j2 d4 t    t  j j j   rŠ  j3 d5 d˛    k sŠt  n    j d k sžt    j	 d k sÓt    j
 d k sčt    j d k sýt    j d! k st  t4   j dł  s*t  t4   j d´  sBt  t4   j d)  sZt  t4   j d  srt  t4   j d,  st  t4   j d  s˘t  t4   j dľ  sşt  t  j j j   rçt4   j dś  sçt  n    j söt  t4   j d'  st  t4   j d)  s&t    j! d
 k s;t  y   j$ d d8  Wn1 t t f k
 r}  t |   d9 k st  n Xt  d   _!   j5   } | j! d
 k słt  | j d: k sČt  | j	 d k sÝt  | j
 d k sňt  | j d k st  | j d! k st  t4 | j dˇ  s4t  t4 | j d¸  sLt  t4 | j d)  sdt  t4 | j d  s|t  t4 | j d,  st  t4 | j d  sŹt  t4 | j dš  sÄt  t  j j j   rńt4 | j dş  sńt  n  | j s 	t  t4   j d'  s	t  t4   j d)  s0	t  x; d; d< d= d> d? d@ g D]! }  |    _
   j6   sI	t  qI	Wx? d dA dB dC dD dE dF g D]" }  |    _
   j6   s	t  q	Wd:   _ d   _
   j7   d  k sÚ	t  dG   _ dH   _
   j7   dH k s
t  dI   _
   j7   dI k s%
t  x d dJ dK g D] }  |    _
 dG   _   j7   dL k se
t  d@   _   j7   d@ k s
t  x3 dM D]+ } | d;   _   j7   d= k s
t  q
Wq5
W  j$ d d     j% d d     j& d d     j' d d     j( d  d     j d k s%t    j	 d k s:t    j
 d k sOt    j d k sdt    j d k syt    j8   st    j
 d k sĄt  dN   _   j8   sźt    j
 dH k sŃt  dO   _ d   _
   j8   söt    j
 d k st  dP   _
   j8   s&t    j
 dL k s;t  dP   _
   j8 dQ t9  s]t    j
 dP k srt  dR   _
   j8   st    j
 dH k s˘t  dR   _
   j8 dQ t9  sÄt    j
 dR k sŮt  dH   _
   j8   sőt    j
 dH k s
t  d   _ d   _
   j d k s1t    j:   dK k sIt    j: dS t  d k sgt    f dT   } | d dK d
  | dJ dK d
  | dK dK d
  | dU dK d
  | dV dK d
  | dW dK d
  | dX dK d
  | dY dZ d  | d[ dZ d  | d\ d d]  | d^ d_ d  | d` d_ d  | da db d  | dc dc d
  | dd dc d
  | de de d
  | df de d
  | dg d  d
  | dh d  d
  | di di d  | dj dk d  | dl dl d  | dm dn do  | dp d  d
  | dq d  d
  | dr d  d
  | ds d  d
  | dt d  d
  | du d  d
  | dv d  d
  d   _   j; dw    d
 k s}t    j5   } dť | _ t4   j; dw |  dx  słt  t4 | j; dw    dx  sÔt  t4   j; dy dź  dx  sőt  t4   j; dy d˝  dz  st    j< d{   d|    d  k s:t    j< d{   d|   d} t  d  k sdt    j< d~   j d   j  d  k st    j< d~   j d   j d} t  d  k sžt  t4   j< d{ | d| |  d
  sĺt  t4   j< d{ | d| | d} t  d
  st    j5   } dž | _ t4   j< d{ | d| | d} t  d  sTt  t4 t= j>   j< d{ | d| | d} t9   d  st  t  j j?   } t  j j d | dw    } | j@     j@   k sŇt  | jA   j@   | j@   k söt  | j   j k st  | j	   j	 k s&t  | j
   j
 k s>t  | j   j k sVt  | j   j k snt  | j   j k st  | j   j k st  | j   j k sśt  | j   j k sÎt  | j   j k sćt  | j   j k sţt  | j   j k st  t  j j j   rC| j   j k sCt  n  | j   j k s[t  | j   j k sst  | j   j k st  | j! d
 k s t    jB   d k s¸t  t  j j       j( d  d    k sĺt    j d k sút  d   _   j d k st    j( d  d    k s6t    j d k sKt    j   d k sct  d	   _   j d k st  y   j( d  d  Wn1 t t f k
 rČ}  t |   d k sĎt  n Xt  y   j( d  d  Wn+ t k
 r}  t |   d k st  n Xt  y   j( d  d  Wn+ t k
 rX}  t |   d k s_t  n Xt  y   j( d  tC  Wn+ tD k
 r }  t |   d k s§t  n Xt  y tC   _ Wn+ tD k
 rá}  t |   d k sčt  n Xt  t  j jE   } | jF   | jG   | jH   | jI t  j j    g  | D] } | j ^ q2d g k sVt  g  | D] } | j ^ q]d
 g k st  g  | D] } | j! ^ qd
 g k sŹt  | jF d d]  | jG   | jH d d]  }	 g  | D] } | j ^ qßd g k st  g  | D] } | j ^ q
d
 g k s.t  g  | D] } | j! ^ q5d] g k sYt  | jI t  j j    | jI t  j j    g  | D] } | j ^ qd d d g k sśt  g  | D] } | j ^ q˝d
 d
 d
 g k sçt  g  | D] } | j! ^ qîd] d
 d
 g k st  ~	 g  | D] } | j! ^ q"d
 d
 d
 g k sLt  | jF   | jG   | jH   }	 g  | D] } | j ^ qsd d d g k st  g  | D] } | j ^ q¤d
 d d] g k sÎt  g  | D] } | j! ^ qŐd
 d d] g k s˙t  ~	 g  | D] } | j! ^ q	d
 d
 d
 g k s3t  | jH d d
 d d
  }	 g  | D] } | j! ^ qRd
 g d k szt  ~	 | jH d d d d  }	 g  | D] } | j! ^ qd d] d g k sĆt  ~	 | jJ   }	 g  | D] } | j! ^ qÜd
 d d] g k st  ~	 d> | d
 _
 d; | d] _
 | jJ   }	 g  | D] } | j! ^ q6d d d g k s`t  ~	 g  | D] } | j! ^ qjd
 d
 d
 g k st  | jH   }	 y | jH   Wn+ t k
 rŰ}  t |   d k sât  n Xt  x/ tK | d dG dO g  D] \ } }
 |
 | _ qűWx/ tK | d d dR g  D] \ } }  |  | _
 q-W| j8   d] k s^t  g  | D] } | j
 ^ qed dL dH g k st  x/ tK | d d dR g  D] \ } }  |  | _
 q¨W| j8 dQ t9  d k sßt  g  | D] } | j
 ^ qćd dL dR g k st  tL | jM   jN    d dO dG g k s=t  tL | jM d t  jN    d dL d g k spt  d | d
 _ tL | jM d t  jN    dO dG d g k s°t  | jM d t d t d t9  } tL g  | jO   D] } | j ^ qŢ dG d g k st  y | jM d t d t  Wn/ t k
 rS}  tP t |   d  sZt  n Xt  d | d
 _ | jM d t d t d t  } tL | jN    dL d d g k sŹt  t  j j       f d   } d   _
 d   _ | d dK dK  dP   _
 d   _ | d dP d  dK   _ | d dP dK  d   _
 d   _ | d  dL dZ  dP   _
 dĄ   _ | d˘ dP dĄ  dP   _
 d   _ | d˘ dL dZ  d  S(ż   Nt    t   abcdt   xyzhklsQ   string is too long for target variable (maximum length is 4 characters, 6 given).t   stuvt   cas   2+t   A0000i  i    i   iţ˙˙˙i   g      ŕ?gffffffć?i   i   i˙˙˙˙i   iű˙˙˙i   gš?gÉ?t   new_namet   NaMet	   new_segidt   sEgIt   new_elementt   Elt
   new_charget   cHt
   new_serialt   B1234t   new_xyzgÍĚĚĚĚĚô?gÍĚĚĚĚĚ @g	@t
   new_sigxyzg333333Ó?t   new_occgŮ?t
   new_sigocct   new_bg333333@t   new_sigbt   new_uijg333333@g@g"@t   new_fpt   new_fdpt
   new_heterot
   new_siguijg333333ă?gÍĚĚĚĚĚě?t   12345sQ   string is too long for target variable (maximum length is 4 characters, 5 given).t   1234t   Hs   H s    Ht   Ds   D s    Dt   hs   h s    ht   ds   d s    ds   NA  s    Nt   CUt    s     t   NAt
   0123456789s    N  s    X  t   Nat   tidy_existingt   Nt   stripc            s=   |    _    j   | k s! t    j   | k s9 t  d  S(   N(   t   charget   charge_tidyt   AssertionErrort   charge_as_int(   t   inpt   outt   value(   t   a(    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   checkÚ   s    	t   0s    0s   0 t   00s    +s   1+s   + s   ++i   s    -s   1-s   - s   --s   2-s   0+s   +0s   0-s   -0s   +-s   -+s   3+s   +4s   4+s   5-s   -6s   6-iú˙˙˙s   7 s    8t   12t   1at   a1s   a s    at   othergćQô@t	   other_xyzgÂ#ćş@t   atom_1t   atom_3t   degt
   atom_1_xyzt
   atom_3_xyzgE%]žVE@t   parents                  t   ABCDEt   CDEFGi@ t   A255St   ABCDEFsQ   string is too long for target variable (maximum length is 5 characters, 6 given).iđŘ˙˙s   value is less than -9999i :6s   value is greater than 87440031s"   value must be a Python str or int.t   first_values       2s       1s       3t	   incrementiý˙˙˙s;   Another associated atom_tmp_sentinel instance still exists.t   strip_namest   Xs   x   t   upper_namess   X   t%   throw_runtime_error_if_duplicate_keyss   Duplicate keys in build_dict(strip_names=true, upper_names=true, convert_stars_to_primes=false):
  pdb="x              "
  pdb=" X             "s   x*  t   convert_stars_to_primess   X'c            sF     j  d |   t   j |  s) t  t   j |  sB t  d  S(   Nt   scattering_type(   t8   set_element_and_charge_from_scattering_type_if_necessaryR   t   elementR7   R5   (   RV   t   et   c(   R<   (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyR=   Ł  s    	s   Na+t   +s   NA1+(   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ţ˙˙˙i   i   iű˙˙˙i   i   (   iţ˙˙˙i   i   iű˙˙˙i   i   (   gÍĚĚĚĚĚô?gÍĚĚĚĚĚ @g	@(   gš?gÉ?g333333Ó?(   gÍĚĚĚĚĚô?gÍĚĚĚĚĚ @g	@g333333@g@g"@(   gš?gÉ?g333333Ó?g333333ă?gš?gÍĚĚĚĚĚě?(   gÍĚĚĚĚĚô?gÍĚĚĚĚĚ @g	@(   gš?gÉ?g333333Ó?(   gÍĚĚĚĚĚô?gÍĚĚĚĚĚ @g	@g333333@g@g"@(   gš?gÉ?g333333Ó?g333333ă?gš?gÍĚĚĚĚĚě?(   gÍĚĚĚĚĚô?gÍĚĚĚĚĚ @g	@(   gš?gÉ?g333333Ó?(   gÍĚĚĚĚĚô?gÍĚĚĚĚĚ @g	@g333333@g@g"@(   gš?gÉ?g333333Ó?g333333ă?gš?gÍĚĚĚĚĚě?(   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (Q   R   t	   hierarchyt   atomt   nameR7   t
   ValueErrort   RuntimeErrort   strR   t   segidRX   R5   t   serialt   serial_as_intt   xyzt   sigxyzt   occt   sigocct   bt   sigbt   uijt   uij_is_definedt	   uij_eraset   siguij_is_definedt
   has_siguijt   siguijt   siguij_eraset   fpt   fdpt   heterot   Truet   i_seqt   AttributeErrort   tmpt   chaint   Nonet   set_namet	   set_segidt   set_elementt
   set_charget
   set_serialt   set_xyzt
   set_sigxyzt   set_occt
   set_sigocct   set_bt   set_sigbt   set_uijt   set_fpt   set_fdpt
   set_heterot
   set_siguijR   t   detached_copyt   element_is_hydrogent!   determine_chemical_element_simplet(   set_chemical_element_simple_if_necessaryt   FalseR6   t   distancet   anglet   matht   degreest
   atom_groupt	   memory_idRJ   t   pdb_label_columnst   syst	   TypeErrort   af_shared_atomt   reset_serialt   reset_i_seqt	   reset_tmpt   appendt%   reset_tmp_for_occupancy_groups_simplet   zipt   sortedt
   build_dictt   keyst   valuesR   (   RY   t   acR,   R=   Ri   RZ   t   agt   atomsR]   t   sentinelt   n(    (   R<   sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_atom   s0   	 											
	
			  		! 		"									 												!!!!$**0'-	-'$		     


+++
+++1111

1111/1111 	% % 1% 	1-3		:		'											c          C   si  t  j j   }  |  j d k s$ t  |  j d k s9 t  t  j j d d  d d   }  |  j d k si t  |  j d k s~ t  t  j j d d d d  }  |  j d k sŽ t  |  j d k sĂ t  d  |  _ d  |  _ |  j d k sę t  |  j d k s˙ t  |  j   d k st  d |  _ d |  _ |  j   d	 k sAt  |  j d
 t  j j	   j
 d d   t  j j   } x¨t t  j j d | d |   |  j   g  D]y\ } } | j   |  j   k sÍt  |  j   d  k sĺt  | d k r| j   j   | j   k s0t  n | j   d  k s0t  | j d k sEt  | j d k sZt  | j   d k srt  | j   d j   |  j   d j   k s¤t  | j   d j d k sĂt  |  j d
 t  j j	   j
 d d   |  j   d | k st  | j   d k sŁt  qŁWt  j j   }  |  j   d  k sGt  t  j j   } t  j j   } | j   | j   k st  t  j j d |  }  |  j d t  j   | j   k sÂt  ~ |  j   d  k sÝt  y |  j d t  Wn/ t k
 r"} t t |  d  s)t  n Xt  t  j j   } t  j j d d d d  }  | j d |   |  j d k sxt  |  j d k st  |  j   j   | j   k sąt  ~ |  j   d  k sĚt  |  j d d  |  j   d k sôt  |  j   j   d k st  |  j d
 t  j j	   j
 d d   |  j   d k sOt  |  j   j   d k smt  |  j d
 t  j j	   j
 d d   |  j   d k sŞt  |  j   j   d k sČt  |  j d  j d k sćt  g  |  j   D] } | j ^ qód d g k st  x* t d  D] } |  j t  j j	    q'W|  j   d k s_t  |  j   j   d k s}t  x> |  j   D]0 } | j d t  j   |  j   k st  qWg  |  j   D] } | j ^ qËd d d d d g k sűt  |  j d d d
 t  j j	   j
 d d   g  |  j   D] } | j ^ q3d d d d d d g k sft  |  j d d d
 t  j j	   j
 d d   g  |  j   D] } | j ^ qd d d d d d d g k sÔt  |  j   d } | j   j   |  j   k st  |  j d d  | j   d  k s0t  g  |  j   D] } | j ^ q=d d d d d d g k spt  |  j d d  g  |  j   D] } | j ^ qd d d d d g k s˝t  |  j   d } | j   j   |  j   k sńt  |  j d
 | d t   d k s	t  |  j d d  | j   d  k s=	t  g  |  j   D] } | j ^ qJ	d d d d g k sw	t  t  j j	   j
 d d   } |  j d
 |  d k s°	t  y |  j d
 | d t   Wn+ t k
 r÷	} t |  d! k sţ	t  n Xt  |  j d d" d
 |  |  j d
 |  d" k s2
t  g  |  j   D] } | j ^ q?
d d d d d  g k so
t  x |  j   D] } d# | _! q|
W|  j"   d# k s§
t  d$ |  j   d _! |  j"   d% k sŇ
t  y |  j" d& t   Wn t# k
 rů
n Xt  y t  j j d d'  Wn1 t# t f k
 rJ} t |  d( k sQt  n Xt  t  j j   }	 t  j j	   } | j   d  k st  |	 j d
 |  | j   j   |	 j   k sťt  t  j j   }
 |
 j$ d
 |  | j   j   |	 j   k sţt  ~	 | j   d  k st  y | j d t  Wn/ t k
 r^} t t |  d)  set  n Xt  d  S(*   NR   t   altloct   resnameR<   Re   s       t   lt   rest   lresR]   R   R¨   RJ   RC   i    i   t   oi   t   optionals&   atom_group has no parent residue_groupR   t   number_of_additional_atomsR   i   i   t   iR>   i˙˙˙˙t   xiţ˙˙˙t   must_be_presentt   ys   atom not in atom_group.i   g      đ?g      ŕ?gÍĚĚĚĚĚě?t   raise_error_if_non_uniformt   absP   string is too long for target variable (maximum length is 1 character, 2 given).s   atom has no parent atom_group(%   R   R\   R   RŞ   R7   RŤ   Rz   t   confidt   append_atomR]   R{   t   residue_groupt	   enumerateR   R   RJ   t
   atoms_sizeRŚ   R^   R   R`   R   Ra   R   t   append_atom_groupt   pre_allocate_atomst   sizet   get_atomt   xranget   insert_atomt   remove_atomt   find_atom_indexRu   Rg   t	   occupancyR_   t   append_atom_with_other_parent(   RĽ   t   rgR˛   t   agct   rg1t   rg2RY   R]   R<   t   ag1t   ag2(    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_atom_groupş  s   				%'2%* $%%4.=+@+C$@=$$: =  $$ c             sx  t  j j       j d k s$ t    j d k s9 t    j sH t  d   _   j d k sf t    j   d k s~ t  t  j j d d d d d t      j d k s´ t  d	   _   j d	 k sŇ t    j d k sç t  d
   _   j d
 k st    j st  t	   _   j s-t  t   _ t  j j
 d d  }  |  j   d  k sct    j d |   |  j   j     j   k st  t  j j   } xőt t  j j d | d      j   g  D]Ć\ } } | j     j   k sţt    j   d  k st  | d k rI| j   j   | j   k sat  n | j   d  k sat  | j d	 k svt  | j d
 k st  | j st  | j   d k słt  | j   d j     j   d j   k sĺt  | j   d j d k st    j d t  j j
 d d |     j   d | k sCt  | j   d k s[t  g    j   D] }  |  j ^ qhd d d g | d  k sÔt  qÔWt  j j d d  } t  j j d d  } | j   | j   k sćt  t  j j       j   d  k st  t  j j d |      j d t  j   | j   k sLt  ~   j   d  k sgt  y   j d t  Wn/ t k
 rŹ} t t |  d  słt  n Xt  t  j j d d  } t  j j d d d d  } | j |  | j d k st  | j d k st  t  j j d d  } | j d d  | j   d k sWt  t | j    d k sut  x- t d  D] } | j d t  j j    qW| j   d k s˝t  t | j    d k sŰt  x8 | j   D]* } | j   j   | j   k sčt  qčW| j   d k s.t  | j    j!   d k sLt  x< d d  d! g D]+ }	   j" d d d t  j j
 d |	   q\Wg    j   D] }  |  j ^ qd! d  d g k sÂt    j# d d"  g    j   D] }  |  j ^ qßd! d  g k st    j   d }  |  j   j     j   k s:t    j$ d |   d k sXt    j# d |   |  j   d  k st    j$ d |   d" k st  y   j$ d |  d# t	  Wn+ t k
 rĺ} t |  d$ k sět  n Xt  t  j j
   }
 t  j j
   } t  j j%   } |
 j& d% |  y | j& d% |  Wn+ t k
 rj} t |  d& k sqt  n Xt  t  j j       j'   d' k st  t  j j d d d d      j'   d( k sËt  t  j j d d) d d
      j'   d* k sţt  t  j j d d+ d d      j'   d, k s1	t  t  j j d d+ d d-      j'   d. k sd	t  t  j j     t  j j
 d d/  }    j d |     j(   sŤ	t  t  j j
 d d  }    j d |     j(   să	t  t  j j
 d d  }    j d |     j(   s
t  t  j j       j)   d k sA
t  t  j j
 d d  }    j d |     j)   d k s~
t  t  j j
 d d/  }    j d |     j)   d k sť
t  t  j j     d0   _ y   j   Wn5 t* t f k
 r} t t |  d1  st  n Xt  t  j j     t   j+    d k sLt    f d2   } | d d3  t,   j+    d3 g k st  | d d4  t,   j+    d4 d3 g k sşt  | d5 d3  t,   j+    d4 d3 g k sët  | d5 d6  t,   j+    d4 d3 d6 g k st  t  j j d d7 d d8    t  j j d d5  } | j      j-   d9 k stt  d  S(:   NR   i'  t   A000t   resseqs      1t   icodeR˛   t   link_to_previouss      2t   jRŞ   R<   R   RJ   RC   i    i   s   %di   R>   t   1t   idRi   R°   s!   residue_group has no parent chaint   pt   13RŹ   t#   number_of_additional_residue_groupsRş   t   wt   vt   ui˙˙˙˙R´   s    atom_group not in residue_group.R]   s+   atom has another parent atom_group already.s        s      1is    1 s     1 jt   ABCDs   ABCD t   ERK   R.   Rł   s$   invalid residue sequence number: "x"c            s)     j  d t j j d |  d |   d  S(   NR   RŞ   RŤ   (   R˝   R   R\   R   (   RŞ   RŤ   (   RÇ   (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   rgaŘ  s    t   RN1t   RNt   At   RN2s     30t   Is    A  30I(.   R   R\   Rş   RĎ   R7   RĐ   RŃ   t   resseq_as_intR   Ru   R   RJ   Rz   R˝   R   Ry   Rť   R   t   atom_groups_sizet   atom_groupsRŞ   R`   R   Ra   R   t   append_residue_groupt   pre_allocate_residue_groupst   residue_groups_sizet   lent   residue_groupsRÁ   Rź   RŚ   Rż   t   insert_atom_groupt   remove_atom_groupt   find_atom_group_indexR]   Rš   t   residt   have_conformerst&   move_blank_altloc_atom_groups_to_frontR_   t   unique_resnamest   listt   id_str(   RĽ   RZ   R˛   t   rgct   c1t   c2RY   t   rg13lRş   RŞ   RË   RĚ   R<   RÝ   (    (   RÇ   sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_residue_groupF  s*   					$'2#C* (	 74$  	  !$$'c       
      su  t  j j   }  |  j d k s$ t  t  j j d d  }  |  j d k sN t  d |  _ |  j d k sl t  t  j j d d  } t  j j d d  } | j   | j   k s´ t  t  j j   }  |  j   d  k sŰ t  t  j j d |  }  |  j d t	  j   | j   k st  ~ |  j   d  k s5t  y |  j d t	  Wn/ t
 k
 rz} t t |  d	  st  n Xt  t  j j   }  t  j j   }  |  j d
 d  |  j   d k sÇt  t |  j    d k sĺt  x- t d  D] } |  j d t  j j    qňW|  j   d k s-t  t |  j    d k sKt  x8 |  j   D]* } | j   j   |  j   k sXt  qXW|  j   d k st  |  j   j   d k sźt  d |  j   d _ d |  _ t  j j   } xÓt t  j j d | d |   |  j   g  D]¤\ } } | j   |  j   k s?t  |  j   d  k sWt  | d k r| j   j   | j   k s˘t  n | j   d  k s˘t  | j d k sˇt  | j   d k sĎt  | j   d j   |  j   d j   k st  | j   d j d k s t  |  j d t  j j d d |   |  j   d | k s_t  | j   d k swt  g  |  j   D] } | j ^ qd d d d g | d  k st  qW|  j d d d t  j j d d   g  |  j   D] } | j ^ qďd d d d d g k st  |  j d d  g  |  j   D] } | j ^ q<d d d d g k sit  |  j   d } | j   j   |  j   k st  |  j d |  d k sťt  |  j d |  | j   d  k săt  |  j d |  d k st  y |  j d | d t  Wn+ t
 k
 rH} t |  d k sOt  n Xt  t  j j   }	 t  j j   }
 t  j j   } |	 j  d |  y |
 j  d |  Wn+ t
 k
 rÍ} t |  d k sÔt  n Xt  t  j j!   } t  j j   } | j" |  t  j j d d  }  | j# |   | j$   d k s9t  t  j j d d  d! d"  } |  j d |  t  j j d# d d$ d%  } | j  d |  | j% t  j j&   j' d&   | j(   j)   d' k sĚt  t | j$   d(  sčt  t  j j d d) d! d*  } |  j d |  t  j j d# d+ d$ d,  } | j  d |  | j% t  j j&   j' d-   | j(   j   |  k s{t  t  j j d d. d! d/ d0 t	  } |  j d |  t  j j d# d1 d$ d2  } | j  d |  | j% t  j j&   j' d3   t | j$   d4  s	t  |  j   } | j   d k s6	t  | d j* df  j+ d5  j, d6  | d j- dg  d } t  j j& j.   r	| d j/ dh  d@ } n  t | j$   dA |  sź	t  | j$ dB t	  dC k sÚ	t  | d j- di  d } t  j j& j.   r
| d j/ dj  dH } n  | d j0 dI  t | j$   dJ | | f  sT
t  t1   } | j$ dK | dL d  | k s
t  | j$ dK | dL d  | k sĽ
t  | j$ dK | dM t	  | k sÉ
t  | j$ dK | dN t	  | k sí
t  | j$ dK | dO t	  | k st  t2 | j$ dK | dP t	 dQ t	  t  s>t  dR   t  j j& j.   rut | j3      sŁt  n.   f dS   } t | j3   |    sŁt  t | j$ dM t	 dN t	 dO t	 dP t	  dT  s×t  t  j j&   } | j)   dU k sţt  | j' dV  | j)   dW k s#t  t  j j d# d d$ dX  } | j% |  | j)   dY k sct  t  j j d dZ d! d  } | j  |  | j)   d[ k sŁt  t  j j d d\  }  |  j |  | j)   d] k sÝt  | j4   d^ k sőt  | j5 d_  | j4   d` k st  | j0 da  | j4   db k s?t  | j5 dc  | j0 dd  | j4   de k sqt  d  S(k   NR   RÔ   R<   Rł   RÓ   t   2RJ   R°   s   chain has no parent modelR×   i   i    Rş   t   ught   ciRC   RĎ   s   %03di   t   000t   001R˛   t   b012i   i˙˙˙˙R´   s   residue_group not in chain.R   s4   atom_group has another parent residue_group already.RZ   s   TER
t   sRĐ   RŇ   RŞ   RŤ   t   rR¨   s   n   a  r c   sjsG   ATOM        n   a  r c   sj      0.000   0.000   0.000  0.00  0.00
TER
t   tt   kRi   t   qt   mRÚ   RŹ   RŃ   R,   RŐ   RŻ   sÓ   ATOM        n   a  r c   sj      0.000   0.000   0.000  0.00  0.00
ATOM        m   b  q c   tk      0.000   0.000   0.000  0.00  0.00
BREAK
ATOM        o   d  p c   ul      0.000   0.000   0.000  0.00  0.00
TER
i   i   i   i   i   g333333ă?gffffffć?gé?g333333Ó?g      ŕ?gŮ?sG   SIGUIJ      o   d  p c   ul    6000   7000   8000   3000   5000   4000
s_  ATOM        n   a  r c   sj      0.000   0.000   0.000  0.00  0.00
SIGATM      n   a  r c   sj      1.000   2.000   3.000  4.00  5.00
ATOM        m   b  q c   tk      0.000   0.000   0.000  0.00  0.00
ANISOU      m   b  q c   tk   60000  70000  80000  30000  50000  40000
BREAK
ATOM        o   d  p c   ul      0.000   0.000   0.000  0.00  0.00
%sTER
t   output_break_recordssW  ATOM        n   a  r c   sj      0.000   0.000   0.000  0.00  0.00
SIGATM      n   a  r c   sj      1.000   2.000   3.000  4.00  5.00
ATOM        m   b  q c   tk      0.000   0.000   0.000  0.00  0.00
ANISOU      m   b  q c   tk   60000  70000  80000  30000  50000  40000
ATOM        o   d  p c   ul      0.000   0.000   0.000  0.00  0.00
TER
i	   gÉ?gÍĚĚĚĚĚě?gš?sQ   SIGUIJ      n   a  r c   sj    6000   3000   8000   2000   9000   1000        Cg
t   CgsÎ  ATOM        n   a  r c   sj      0.000   0.000   0.000  0.00  0.00            Cg
SIGATM      n   a  r c   sj      1.000   2.000   3.000  4.00  5.00            Cg
ANISOU      n   a  r c   sj   60000  30000  80000  20000  90000  10000        Cg
%sATOM        m   b  q c   tk      0.000   0.000   0.000  0.00  0.00
ANISOU      m   b  q c   tk   60000  70000  80000  30000  50000  40000
BREAK
ATOM        o   d  p c   ul      0.000   0.000   0.000  0.00  0.00
%sTER
t	   cstringiot   interleaved_conft   atom_hetatmt   sigatmt   anisouRp   t   return_cstringiosô  ATOM        n   a  r c   sj      0.000   0.000   0.000  0.00  0.00            Cg
SIGATM      n   a  r c   sj      1.000   2.000   3.000  4.00  5.00            Cg
ANISOU      n   a  r c   sj   60000  30000  80000  20000  90000  10000        Cg
SIGUIJ      n   a  r c   sj    6000   3000   8000   2000   9000   1000        Cg
ATOM        m   b  q c   tk      0.000   0.000   0.000  0.00  0.00
ANISOU      m   b  q c   tk   60000  70000  80000  30000  50000  40000
BREAK
ATOM        o   d  p c   ul      0.000   0.000   0.000  0.00  0.00
SIGUIJ      o   d  p c   ul    6000   7000   8000   3000   5000   4000
TER
ATOM        n   a  r c   sj      0.000   0.000   0.000  0.00  0.00            Cg
SIGATM      n   a  r c   sj      1.000   2.000   3.000  4.00  5.00            Cg
ANISOU      n   a  r c   sj   60000  30000  80000  20000  90000  10000        Cg
SIGUIJ      n   a  r c   sj    6000   3000   8000   2000   9000   1000        Cg
ATOM        m   b  q c   tk      0.000   0.000   0.000  0.00  0.00
ANISOU      m   b  q c   tk   60000  70000  80000  30000  50000  40000
BREAK
ATOM        o   d  p c   ul      0.000   0.000   0.000  0.00  0.00
SIGUIJ      o   d  p c   ul    6000   7000   8000   3000   5000   4000
TER
SIGATM      n   a  r c   sj      1.000   2.000   3.000  4.00  5.00            Cg
ANISOU      n   a  r c   sj   60000  30000  80000  20000  90000  10000        Cg
SIGUIJ      n   a  r c   sj    6000   3000   8000   2000   9000   1000        Cg
ANISOU      m   b  q c   tk   60000  70000  80000  30000  50000  40000
BREAK
SIGUIJ      o   d  p c   ul    6000   7000   8000   3000   5000   4000
TER
ATOM        n   a  r c   sj      0.000   0.000   0.000  0.00  0.00            Cg
ANISOU      n   a  r c   sj   60000  30000  80000  20000  90000  10000        Cg
SIGUIJ      n   a  r c   sj    6000   3000   8000   2000   9000   1000        Cg
ATOM        m   b  q c   tk      0.000   0.000   0.000  0.00  0.00
ANISOU      m   b  q c   tk   60000  70000  80000  30000  50000  40000
BREAK
ATOM        o   d  p c   ul      0.000   0.000   0.000  0.00  0.00
SIGUIJ      o   d  p c   ul    6000   7000   8000   3000   5000   4000
TER
ATOM        n   a  r c   sj      0.000   0.000   0.000  0.00  0.00            Cg
SIGATM      n   a  r c   sj      1.000   2.000   3.000  4.00  5.00            Cg
SIGUIJ      n   a  r c   sj    6000   3000   8000   2000   9000   1000        Cg
ATOM        m   b  q c   tk      0.000   0.000   0.000  0.00  0.00
BREAK
ATOM        o   d  p c   ul      0.000   0.000   0.000  0.00  0.00
SIGUIJ      o   d  p c   ul    6000   7000   8000   3000   5000   4000
TER
ATOM        n   a  r c   sj      0.000   0.000   0.000  0.00  0.00            Cg
SIGATM      n   a  r c   sj      1.000   2.000   3.000  4.00  5.00            Cg
ANISOU      n   a  r c   sj   60000  30000  80000  20000  90000  10000        Cg
ATOM        m   b  q c   tk      0.000   0.000   0.000  0.00  0.00
ANISOU      m   b  q c   tk   60000  70000  80000  30000  50000  40000
BREAK
ATOM        o   d  p c   ul      0.000   0.000   0.000  0.00  0.00
TER
c             sP   g  }  x6   j    D]( } | j d  r. q n  |  j |  q Wd j |   d S(   Nt   SIGUIJs   
(   t
   splitlinest
   startswithR   t   join(   t   resultt   line(   t   expected(    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   filter_expectedÔ  s     s
   BREAK
TER
s                  t   n123s   n123           R­   s   n123ares       t   a000s   n123ares  a000it   ket   n123areskea000is       RY   s    e  R[   s    e+ t   els   2+s   el2+(   i   i   i   (   i   i   i   i   i   i   (   g333333ă?gffffffć?gé?g333333Ó?g      ŕ?gŮ?(   i   i   i   i   i	   i   (   g333333ă?g333333Ó?gé?gÉ?gÍĚĚĚĚĚě?gš?(6   R   R\   Ry   RÔ   R7   t   modelR   RJ   Rz   R   R`   R   Ra   R   Rç   Rč   Ré   Rę   RÁ   Rć   Rş   Rź   RŚ   Rż   RĎ   Rť   R   t   insert_residue_groupt   remove_residue_groupt   find_residue_group_indexRu   R   R˝   t   roott   append_modelt   append_chaint   as_pdb_stringRš   R]   R{   t	   only_atomR   R   R   R   R   Ro   R   R~   R   t
   isinstancet   getvaluet   pdb_element_charge_columnsR}   (   RZ   t   m1t   m2RY   R˛   Rş   R  t   ccRÇ   RÉ   RĘ   RĽ   R   RŚ   t   siguij_2_linet   siguij_0_linet   sioR  R<   (    (   R  sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_chainč  sP   	* (	'	'	$  #				$$$$$6c       	   C   s4  t  j j   }  |  j d k s$ t  t  j j d d  }  |  j d k sN t  d |  _ |  j d k sl t  t  j j d d  }  |  j   d  k s t  |  j d d  |  j   d k sÁ t  t	 |  j
    d k sß t  t  j j d d	  } |  j d
 |  | j d	 k st  | j   j   |  j   k s=t  |  j   d k sUt  t	 |  j
    d k sst  t  j j d d  } | j d k st  | j   d  k sľt  |  j d
 |  |  j   d k sÝt  |  j
   } t	 |  d k st  | d j   | j   k s#t  | d j   | j   k sEt  x* t d  D] } |  j t  j j    qRW|  j   d k st  t	 |  j
    d k s¨t  x8 |  j
   D]* } | j   j   |  j   k sľt  qľW|  j   d k sűt  |  j   j   d k st  t  j j   } xÜt t  j j d | d |   |  j   g  D]­\ } } | j   |  j   k st  |  j   d  k st  | d k rË| j   j   | j   k săt  n | j   d  k săt  | j d k sřt  | j   d k st  | j
   d j   |  j
   d j   k sBt  | j
   d j d	 k sat  |  j d
 t  j j d d |   |  j   d | k s t  | j   d k s¸t  g  |  j
   D] } | j ^ qĹd	 d d d d d d g | d  k sVt  qVW|  j d d d
 t  j j d d   g  |  j
   D] } | j ^ q9d	 d d d d d d d g k srt  |  j d d  g  |  j
   D] } | j ^ qd	 d d d d d d g k sĹt  |  j
   d } | j   j   |  j   k sůt  |  j d
 |  d k st  |  j d
 |  | j   d  k s?t  |  j d
 |  d k s]t  y |  j d
 | d t  Wn+ t k
 r¤}	 t |	  d k sŤt  n Xt  t  j j   }
 t  j j   } t  j j   } |
 j d
 |  y | j d
 |  Wn+ t k
 r)}	 t |	  d k s0t  n Xt  d  S(   NR   RÔ   t   42s   -23t   17t   number_of_additional_chainsi   i    R<   Ry   i   Ri   i   i   RJ   RC   s   %di   R>   RÓ   R˛   iý˙˙˙t   3iţ˙˙˙i˙˙˙˙R´   s   chain not in model.s'   chain has another parent model already.(   R   R\   R  RÔ   R7   RJ   Rz   t   pre_allocate_chainst   chains_sizeRé   t   chainsRy   R   R   RÁ   Rź   RŚ   Rż   R  Rť   R   t   insert_chaint   remove_chaint   find_chain_indexRu   R`   Ra   R   (   R  t   ch_at   ch_bR3  R˛   Ry   R   t   mcRZ   RY   R&  R'  (    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_modelř  s    	$""('2#0%'$$  c          C   sĄ  t  j j   }  t  j j   } | j   d  k s6 t  t  j j d |   } | j   j   |  j   k so t  | j d k s t  t  j j d |  d d  } | j d t	  j   |  j   k sÉ t  | j d k sŢ t  ~  | j   d  k sů t  y | j d t	  Wn/ t
 k
 r>} t t |  d  sEt  n Xt  t  j j   }  |  j j   d k sot  |  j j d  |  j j   d	 k st  t j d
 d g  |  _ |  j j   d k sÍt  |  j d d  |  j   d k sőt  t |  j    d k st  t  j j d d  } |  j d |  | j d k sMt  | j   j   |  j   k sqt  |  j   d	 k st  t |  j    d	 k s§t  t  j j d d  } | j   d  k sÔt  |  j d |  |  j   d k süt  |  j   } t |  d k s t  | d j   | j   k sBt  | d	 j   | j   k sdt  x- t d  D] } |  j d t  j j    qqW|  j   d k sŹt  t |  j    d k sĘt  x8 |  j   D]* } | j   j   |  j   k s×t  q×W|  j   d k st  |  j   j   d k s;t  |  j   } | j   |  j   k set  t | j  d
 d g k st  | j j   |  j j   k sŞt  | j   d k sÂt  | j   d j   |  j   d j   k sôt  | j   d j d k st  |  j d t  j j d d   |  j   d k sJt  | j   d k sbt  g  |  j   D] } | j ^ qod d d d d d g k s˘t  g  | j   D] } | j ^ qŻd d d d d g k sßt  | j d t  j j d d   |  j   d k st  | j   d k s.t  g  | j   D] } | j ^ q;d d d d d d g k snt  | j   }  |  j d d d t  j j d d   g  |  j   D] } | j ^ qŹd d d d d d d g k sât  |  j d d	  g  |  j   D] } | j ^ q˙d d d d d d g k s2t  |  j   d } | j   j   |  j   k sft  |  j d |  d k st  |  j d |  | j   d  k sŹt  |  j d |  d k sĘt  y |  j d | d t   Wn+ t
 k
 r} t |  d k st  n Xt  t  j j   }	 t  j j   }
 t  j j   } |	 j d |  y |
 j d |  Wn+ t
 k
 r} t |  d k st  n Xt  d  S(   NRJ   R   RÔ   Rů   R°   s   model has no parent rooti    t   abci   R<   Ri   i   t   number_of_additional_modelsR0  R  t   5i   i   t   7i   t   8R˛   i   t   Mi˙˙˙˙R´   s   model not in root.s&   model has another parent root already.(!   R   R\   R  R  RJ   Rz   R7   R   RÔ   R   R`   R   Ra   R   t   infoRż   R   R   t
   std_stringt   pre_allocate_modelst   models_sizeRé   t   modelsR  RÁ   Rź   RŚ   t	   deep_copyRň   t   insert_modelt   remove_modelt   find_model_indexRu   (   R   R  RY   t   m_at   m_bRE  R˛   R  t   rct   r1t   r2(    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_rootK  s´    $* $""(!$2@=@%$!$  c    
      C   s  t  j j   }  |  j d d  |  j d d  |  j   d k sG t  |  j d t  d k se t  t  j j d d	 d
 d  } | j	 |   |  j   d k sĽ t  |  j t  d k sŔ t  t  j j
 d d d d  } | j |  |  j   d k s t  |  j d t  d k st  t  j j d d  } | j |  |  j   d k sXt  |  j d t  d k svt  t  j j   } | j |  |  j   d k sŞt  |  j d t  d k sČt  d | _ |  j   d k sét  |  j d t  d k st  d | _ |  j   d k s(t  |  j d t  d k sFt  d | _ |  j   d k sgt  |  j d t  d k st  d | _ d |  _ |  j d t  d  k sľt  |  j d t  d k sÓt  |  j d t  d! k sńt  |  j d t d t  d k st  d | _ |  j   d" k s6t  |  j d t  d# k sTt  |  j d t d t  d k sxt  t  j j   } | j |  |  j   d" k sŹt  |  j d t  d# k sĘt  d$ | _ |  j   d% k sët  |  j d t  d& k s	t  | j   } | j   } | j   d& k s9t  | j d d'  d( k sWt  d | _ | j   d! k sxt  | j d d'  d k st  ~ | j d d)  d* k sˇt  | j d d'  d k sŐt  t  j j   j d+ d,  } | j	 d- |  | j   } | j   } | j d d'  d k s6t  | j d d)  d k sTt  y | j   Wn/ t k
 r}	 t t |	  d.  st  n Xt  d  S(/   NR   R   R   R   s   pdb="NaMe           "t   pdbress   pdbres="          "RŞ   Rŕ   RŤ   t   GLYs   pdb="NaMeAGLY       "s   pdbres="GLY       "RĎ   R(   RĐ   t   Js   pdb="NaMeAGLY  1234J"s   pdbres="GLY  1234J"RÔ   t   Chs   pdb="NaMeAGLYCh1234J"s   pdbres="GLYCh1234J"R   RÓ   s"   model="   1" pdb="NaMeAGLYCh1234J"s    model="   1" pdbres="GLYCh1234J"t   12345678s&   model="12345678" pdb="NaMeAGLYCh1234J"s$   model="12345678" pdbres="GLYCh1234J"t   suppress_segids3   model="12345678" pdb="NaMeAGLYCh1234J" segid="1234"s1   model="12345678" pdbres="GLYCh1234J" segid="1234"s"   pdb="NaMeAGLYCh1234J" segid="1234"s    pdbres="GLYCh1234J" segid="1234"s       s/   model="    " pdb="NaMeAGLYCh1234J" segid="1234"s-   model="    " pdbres="GLYCh1234J" segid="1234"i   s    model="    " pdbres="GLYCh1234J"i˙˙˙˙s    pdbres="GLY  1234J" segid="1234"R   R   R]   sn   residue.id_str(suppress_segid=false): segid is not unique:
  model="12345678" pdbres="GLYCh1234J" segid="1234"(   R   R\   R]   R{   R   Ró   R7   Ru   R   Rš   Rş   R˝   Ry   Rć   R  R   RÔ   Rb   R   R  R  t   only_conformert   only_residueR|   R_   R   Ra   R   (
   R<   RĽ   RÇ   t   cht   mdt   rtt   cft   rdt   a2RY   (    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_atom_id_strŠ  s    								 c          C   s%  t  j j   j d d  j d d  j d dx  j d	 dy  j d d  j d d
  j	 d d  j
 d d  j d dz  }  t  j j j   rŽ |  j d d{  |  k sŽ t  n  xt d f t d f g D]\ } } |  j d |  xäd d d  d! g D]Đ} |  j d" |  xˇd d# d$ d% g D]Ł} |  j d& |  xd d# d' d( g D]v} |  j d) |  d* | | | f } |  j   } t | d+ | | f j    sŁt  |  j d, d   } t | |  sËt  |  j d, d  } t | d- | d.  | d/ f  st  |  j d, d0  } t | d1 | d.  | d/ f  s?t  t |  j   d2 | j    set  t |  j   d3 | j    st  t  j j j   rĆt |  j   d4 | j    sět  n& t |  j   d5 | j    sět  t  j j d6 d7 d8 d9  }	 |	 j d: |   |  j   } t | d; | | f j    sIt  |  j d, d<  } t | d= | d.  | d/ f  st  t |  j   d> | j    sŠt  t |  j   d? | j    sĎt  t  j j j   r
t |  j   d@ | j    s0t  n& t |  j   dA | j    s0t  t  j j dB dC dD dE  }
 |
 j dF |	  |  j   } t | dG | | f j    st  |  j d, d<  } t | d= | d.  | d/ f  sÇt  t |  j   dH | j    sít  t |  j   dI | j    st  t  j j j   rNt |  j   dJ | j    stt  n& t |  j   dK | j    stt  xpd dL dM g D]_} t  j j  dN |  } | j! dO |
  |  j   } t | dP | | | f j    sät  |  j d, d<  } t | d= | d.  | d/ f  st  t |  j   dQ | | f j    sJt  t |  j   dR | | f j    svt  t  j j j   rˇt |  j   dS | | f j    săt  qt |  j   dT | | f j    st  qWt |  j"   dU |  j d, d<  dU  st  t |  j" dV t  dU |  j   dU  sGt  ~	 ~
 ~ |  j   |  j   |  j   g } |  j   r| j# |  j    n  t |  j$   dW j% |   s¸t  t |  j$ dX t  dW j% | dY   sçt  t |  j$ dZ t  dW j% | dY  | d[   st  t |  j$ d\ t  dW j% | d[  | d]   sUt  |  j   rt |  j$ d^ t  dW j% | d_    sžt  qHt |  j$ d^ t  dW j% |   sHt  qHWqWqö WqÇ Wt  j j   } d | _& d| | _' dc | _( dd | _) t | j   de  s	t  d} | _' y | j   Wn/ t* k
 re	} t t+ |  dh  sl	t  n Xt,  d~ | _' di | _( y | j   Wn/ t* k
 r˝	} t t+ |  dj  sÄ	t  n Xt,  df | _( dk | _) y | j   Wn/ t* k
 r
} t t+ |  dl  s
t  n Xt,  d | _- dd | _. dc | _/ t | j   dm  sS
t  d | _- y | j   Wn/ t* k
 r
} t t+ |  do  s˘
t  n Xt,  d | _- dk | _. y | j   Wn/ t* k
 ró
} t t+ |  dp  sú
t  n Xt,  df | _. dq | _/ y | j   Wn/ t* k
 rK} t t+ |  dr  sRt  n Xt,  d | _0 y | j   Wn/ t* k
 r} t t+ |  dt  sĄt  n Xt,  d | _1 t  j j j   ry | j   Wn/ t* k
 rű} t t+ |  dv  st  q!Xt,  n t | j   dw  s!t  d  S(   NR   R   R   R   R   gÍĚĚĚĚĚô?gÍĚĚĚĚĚ @g	@R   gš?gÉ?g333333Ó?R   gŮ?R   R    g333333@R!   gffffffć?R"   g333333@g@g"@R&   g333333ă?gÍĚĚĚĚĚě?s   ATOM  t   HETATMR%   R   s       R˙   R   R   s     RY   R   R   RZ   R   R   s   %-4s%2s%-2ssF   %sB1234 NaMe                 1.300   2.100   3.200  0.40  4.80      %st   replace_floats_withs   %-27.27s%-8.8si   iH   R.   s   %-27.27s %-8.8ssJ   SIGATMB1234 NaMe                 0.100   0.200   0.300  0.10  0.70      %ssJ   ANISOUB1234 NaMe              13000  21000  32000  43000  27000  93000  %ssJ   SIGUIJB1234 NaMe               1000   2000   3000   6000   1000   9000  %ssJ   SIGUIJB1234 NaMe             -10000 -10000 -10000 -10000 -10000 -10000  %sRŞ   Rł   RŤ   t   uvwR]   sF   %sB1234 NaMexuvw             1.300   2.100   3.200  0.40  4.80      %ss   .*.s   %-27.27s.*.%-8.8ssJ   SIGATMB1234 NaMexuvw             0.100   0.200   0.300  0.10  0.70      %ssJ   ANISOUB1234 NaMexuvw          13000  21000  32000  43000  27000  93000  %ssJ   SIGUIJB1234 NaMexuvw           1000   2000   3000   6000   1000   9000  %ssJ   SIGUIJB1234 NaMexuvw         -10000 -10000 -10000 -10000 -10000 -10000  %sRĎ   t   pqrsRĐ   R  R   sF   %sB1234 NaMexuvw  pqrst      1.300   2.100   3.200  0.40  4.80      %ssJ   SIGATMB1234 NaMexuvw  pqrst      0.100   0.200   0.300  0.10  0.70      %ssJ   ANISOUB1234 NaMexuvw  pqrst   13000  21000  32000  43000  27000  93000  %ssJ   SIGUIJB1234 NaMexuvw  pqrst    1000   2000   3000   6000   1000   9000  %ssJ   SIGUIJB1234 NaMexuvw  pqrst  -10000 -10000 -10000 -10000 -10000 -10000  %st   gt   hiRÔ   Rş   sG   %sB1234 NaMexuvw%2spqrst      1.300   2.100   3.200  0.40  4.80      %ssK   SIGATMB1234 NaMexuvw%2spqrst      0.100   0.200   0.300  0.10  0.70      %ssK   ANISOUB1234 NaMexuvw%2spqrst   13000  21000  32000  43000  27000  93000  %ssK   SIGUIJB1234 NaMexuvw%2spqrst    1000   2000   3000   6000   1000   9000  %ssK   SIGUIJB1234 NaMexuvw%2spqrst  -10000 -10000 -10000 -10000 -10000 -10000  %st   "t   fulls   
R	  i   R
  i   R  i   Rp   i˙˙˙˙g    .Ag     jřŔg     jř@g    Ă@g    điř@sB   ATOM        NaMe              1000000.-100000.100000.09999.099999.i    g    ĐcAsl   atom Y coordinate value does not fit into F8.3 format:
  "ATOM        NaMe           "
  value: 10000000.000i  sr   atom occupancy factor does not fit into F6.2 format:
  "ATOM        NaMe           "
  occupancy factor: 100000.00i@ sb   atom B-factor does not fit into F6.2 format:
  "ATOM        NaMe           "
  B-factor: 200000.00sB   SIGATM      NaMe              1000000.-100000.100000.099999.9999.0g    ĐsAsr   atom sigma Z coordinate value does not fit into F8.3 format:
  "SIGATM      NaMe           "
  value: 20000000.000s~   atom sigma occupancy factor does not fit into F6.2 format:
  "SIGATM      NaMe           "
  sigma occupancy factor: 200000.00iŕ sn   atom sigma B-factor does not fit into F6.2 format:
  "SIGATM      NaMe           "
  sigma B-factor: 300000.00ič  so   atom U22 value * 10000 does not fit into F7.0 format:
  "ANISOU      NaMe           "
  value * 10000: 10000000i  su   atom sigma U13 value * 10000 does not fit into F7.0 format:
  "SIGUIJ      NaMe           "
  value * 10000: 33330000sF   SIGUIJ      NaMe             -10000 -10000 -10000 -10000 -10000 -10000(   gÍĚĚĚĚĚô?gÍĚĚĚĚĚ @g	@(   gš?gÉ?g333333Ó?(   gÍĚĚĚĚĚô?gÍĚĚĚĚĚ @g	@g333333@g@g"@(   gš?gÉ?g333333Ó?g333333ă?gš?gÍĚĚĚĚĚě?(   g    .Ag     jřŔg     jř@(   i    g    ĐcAi    (   i    i    i    (   g    .Ag     jřŔg     jř@(   i    i    g    ĐsA(   i    i    i    (   i    ič  i    i    i    i    (   i    i    i    i    i  i    (2   R   R\   R]   R{   R   R   R   R   R   R   R   R   Ro   R   R7   R   Ru   R   R|   R}   R~   t   format_atom_recordR   t   rstripRz   t   format_sigatm_recordt   format_anisou_recordt   format_siguij_recordR   Rš   Rş   R˝   Ry   Rć   t   quoteR   t   format_atom_record_groupR  R^   Re   Rg   Ri   R`   Ra   R   Rf   Rh   Rj   Rk   Rp   (   R<   Rt   t   record_nameRb   RX   R5   t   segielchR˙   t   scRĽ   RÇ   t   chain_idRX  t   rsR]   RY   (    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_format_atom_recordţ  st   	!% (( ( (#(  #$--			",44/8					  		  		  				  		  		  	  	  	c       	   C   s­
  d  d  d  d d  }  |  d d d  |  d d  |  d d	  |  d
 d d d d } | j   } | j   d g k s~ t  | j   d g k s t  | j   d d g k sˇ t  |  d d d  |  d d d d d t j d d  d t j	 d   j
   } | j   d k st  t j d d  d t j	 d   j
   } | j   j sYt  t j d d  d t j	 d   j
   } | j   j st  d } t j	 |  } xŕ d d  g D]Ň } t j d d  d |  j
   } | j   j   } t |  d! k st  | d j st  | d  j s-t  | d" j sAt  | d# j sTt  | d k r¸| j t j d d" d! d$ d% g   } q¸q¸Wy) t j d d  d t j	 d&   j
   Wn/ t k
 rč} t t |  d'  sďt  n Xt  y) t j d d( d t j	 d)   j
   Wn/ t k
 rI} t t |  d*  sPt  n Xt  |  | d+ d, d d- |  | d. d d |  | d/ d d0 |  | d1 d d2 |  | d3 d d4 |  d5 d6 d7  |  d8 d9 d:  |  d; d< d=  t j d d  d t j	 d>   } | j
   j   } | j   d? g k s0t  t | j    d k sNt  | j   | j   y | j d@ d   Wn/ t k
 r§} t t |  dA  sŽt  n Xt  t   }	 | j dB |	  t |	 j   dC  săt  |  dD d  dE  x¤ d dF g D] }
 t j d d  d t j	 dG |
   j
   j   } |
 d k rP| j   q y | j   Wn/ t k
 r} t t |  dH  st  q Xt  q W|  dI dJ dK d d |  dL dM dN d d |  dO d  dP  t j j   } t | j    dQ  st  t | j   j    dR  s#t  t j j!   } | j" d4 |  t | j    dS  s^t  t | j   j    dT  st  t j j#   } | j$ d2 |  t | j    dU  sťt  t | j   j    dV  sÝt  t j j%   } | j& d0 |  t | j    dW  st  t | j   j    dX  s:t  t j j'   } | j( d |  t | j    dY  sut  | j   } t | j    dZ  st  t | j    d k sťt  | j   d[ g k sÖt  t j d d  d t j	 d\   } | j
   j   } t | j    d k s't  | j   y | j   Wn/ t k
 rp} t t |  d]  swt  n Xt  y | j   Wn/ t k
 rś} t t |  d^  s˝t  n Xt  t   }	 t j j) dB |	 d_ d  d` d  da db  } | j j*   j+   dc k s	t  | j j*   j+   dc k s/	t  | j } t | j,  d k sS	t  t |	 j   j-    dd k sw	t  t j d d  d t j	 de   } | j
   j   } | j. i d$ df 6d# dg 6d  dh 6d# di 6k sŰ	t  t j d d  d t j	 dj   } | j
   j   } t | j    dk  s*
t  t j d d  d t j	 dl   } | j
   j   } y | j/ d@ d   Wn/ t k
 r˘
} t t |  dm  sŠ
t  n Xt  d  S(n   NR   c         S   s  t  j d d  d t j |    } | j   } | d  k	 r | j d | d |  } t |  d k rv t j	 j
 |  q t | |  s t  n  | d  k	 rý | j   j d | d d d d  } t |  d k rä t j	 j
 |  qý t | |  sý t  n  | S(	   Nt   source_infot   linest   prefixt   level_idi    t   residue_groups_max_showi   t   duplicate_atom_labels_max_show(   R   t   inputRz   R   t   split_linest   construct_hierarchyt   as_strRé   R   t   stdoutt   writeR   R7   t   overall_counts(   t
   pdb_stringt   expected_root_as_strt   expected_overall_counts_as_strRw  Rv  t   pdb_inpR  R˙   (    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyR=   Ý  s     !	s  MODEL        1
ATOM      1  N   MET A   1       6.215  22.789  24.067  1.00  0.00           N
ATOM      2  CA  MET A   1       6.963  22.789  22.822  1.00  0.00           C
HETATM    3  C   MET A   2       7.478  21.387  22.491  1.00  0.00           C
ATOM      4  O   MET A   2       8.406  20.895  23.132  1.00  0.00           O
ENDMDL
MODEL 3
HETATM    9 2H3  MPR B   5      16.388   0.289   6.613  1.00  0.08
SIGATM    9 2H3  MPR B   5       0.155   0.175   0.155  0.00  0.05
ANISOU    9 2H3  MPR B   5      848    848    848      0      0      0
SIGUIJ    9 2H3  MPR B   5      510    510    510      0      0      0
TER
ATOM     10  N   CYSCH   6      14.270   2.464   3.364  1.00  0.07
SIGATM   10  N   CYSCH   6       0.012   0.012   0.011  0.00  0.00
ANISOU   10  N   CYSCH   6      788    626    677   -344    621   -232
SIGUIJ   10  N   CYSCH   6        3     13      4     11      6     13
TER
ENDMDL
END
s  model id="   1" #chains=1
  chain id="A" #residue_groups=2
    resid="   1 " #atom_groups=1
      altloc="" resname="MET" #atoms=2
        " N  "
        " CA "
    resid="   2 " #atom_groups=1
      altloc="" resname="MET" #atoms=2
        " C  "
        " O  "
model id="   3" #chains=2
  chain id="B" #residue_groups=1
    resid="   5 " #atom_groups=1
      altloc="" resname="MPR" #atoms=1
        "2H3 "
  chain id="CH" #residue_groups=1
    resid="   6 " #atom_groups=1
      altloc="" resname="CYS" #atoms=1
        " N  "
s  total number of:
  models:     2
  chains:     3
  alt. conf.: 0
  residues:   4
  atoms:      6
  anisou:     2
number of atom element+charge types: 4
histogram of atom element+charge frequency:
  "    " 2
  " C  " 2
  " N  " 1
  " O  " 1
residue name classes:
  "common_amino_acid" 3
  "other"             1
number of chain ids: 3
histogram of chain id frequency:
  "A"  1
  "B"  1
  "CH" 1
number of alt. conf. ids: 0
number of residue names: 3
histogram of residue name frequency:
  "MET" 2
  "CYS" 1
  "MPR" 1    other
sT   ATOM         N1 AR01
ATOM         N2 BR01
ATOM         N1 CR02
ATOM         N2  R02
sz  model id="" #chains=1
  chain id=" " #residue_groups=2
    resid="     " #atom_groups=2
      altloc="A" resname="R01" #atoms=1
        " N1 "
      altloc="B" resname="R01" #atoms=1
        " N2 "
    resid="     " #atom_groups=2  ### Info: same as previous resid ###
      altloc="" resname="R02" #atoms=1
        " N2 "
      altloc="C" resname="R02" #atoms=1
        " N1 "
s;  ATOM         N1 BR01
ATOM         N1  R01
ATOM         N2  R01
ATOM         N3 BR01
ATOM         N3  R01
ATOM         N1  R02
ATOM         N1 BR02
ATOM         N2  R02
ATOM         N3 BR02
ATOM         N3  R02
ATOM         N1  R03
ATOM         N1 BR03
ATOM         N2  R03
ATOM         N3 BR03
ATOM         N3  R03
s,  model id="" #chains=1
  chain id=" " #residue_groups=3
    resid="     " #atom_groups=3
      altloc="" resname="R01" #atoms=1
        " N2 "
      altloc=" " resname="R01" #atoms=2
        " N1 "
        " N3 "
      altloc="B" resname="R01" #atoms=2
        " N1 "
        " N3 "
    resid="     " #atom_groups=3  ### Info: same as previous resid ###
      altloc="" resname="R02" #atoms=1
        " N2 "
      altloc=" " resname="R02" #atoms=2
        " N1 "
        " N3 "
      altloc="B" resname="R02" #atoms=2
        " N1 "
        " N3 "
    resid="     " #atom_groups=3  ### Info: same as previous resid ###
      altloc="" resname="R03" #atoms=1
        " N2 "
      altloc=" " resname="R03" #atoms=2
        " N1 "
        " N3 "
      altloc="B" resname="R03" #atoms=2
        " N1 "
        " N3 "
s;  ATOM         N1 BR01
ATOM         N1  R01
ATOM         N2  R01
ATOM         N3 BR01
ATOM         N3  R01
ATOM         N1 AR02
ATOM         N1 BR02
ATOM         N2  R02
ATOM         N3 BR02
ATOM         N3 AR02
ATOM         N1  R03
ATOM         N1 BR03
ATOM         N2  R03
ATOM         N3 BR03
ATOM         N3  R03
sf    model id="" #chains=1
    chain id=" " #residue_groups=3
      resid="     " #atom_groups=3
        altloc="" resname="R01" #atoms=1
          " N2 "
        altloc=" " resname="R01" #atoms=2
          " N1 "
          " N3 "
        altloc="B" resname="R01" #atoms=2
          " N1 "
          " N3 "
      resid="     " #atom_groups=3  ### Info: same as previous resid ###
        altloc="" resname="R02" #atoms=1
          " N2 "
        altloc="A" resname="R02" #atoms=2
          " N1 "
          " N3 "
        altloc="B" resname="R02" #atoms=2
          " N1 "
          " N3 "
      resid="     " #atom_groups=3  ### Info: same as previous resid ###
        altloc="" resname="R03" #atoms=1
          " N2 "
        altloc=" " resname="R03" #atoms=2
          " N1 "
          " N3 "
        altloc="B" resname="R03" #atoms=2
          " N1 "
          " N3 "
sg    total number of:
    models:      1
    chains:      1
    alt. conf.:  3
    residues:    3
    atoms:      15
    anisou:      0
  number of atom element+charge types: 1
  histogram of atom element+charge frequency:
    "    " 15
  residue name classes:
    "other" 3
  number of chain ids: 1
  histogram of chain id frequency:
    " " 1
  number of alt. conf. ids: 3
  histogram of alt. conf. id frequency:
    " " 1
    "A" 1
    "B" 1
  residue alt. conf. situations:
    pure main conf.:     0
    pure alt. conf.:     0
    proper alt. conf.:   1
    ### ERROR: improper alt. conf. ###
    improper alt. conf.: 2
  chains with mix of proper and improper alt. conf.: 1
    residue with proper altloc
      "ATOM         N2  R02       .*.        "
      "ATOM         N1 AR02       .*.        "
      "ATOM         N3 AR02       .*.        "
      "ATOM         N1 BR02       .*.        "
      "ATOM         N3 BR02       .*.        "
    residue with improper altloc
      "ATOM         N2  R01       .*.        "
      "ATOM         N1  R01       .*.        "
      "ATOM         N3  R01       .*.        "
      "ATOM         N1 BR01       .*.        "
      "ATOM         N3 BR01       .*.        "
  number of residue names: 3
  histogram of residue name frequency:
    "R01" 1    other
    "R02" 1    other
    "R03" 1    other
  ### WARNING: consecutive residue_groups with same resid ###
  number of consecutive residue groups with same resid: 2
    residue group:
      "ATOM         N2  R01       .*.        "
      ... 3 atoms not shown
      "ATOM         N3 BR01       .*.        "
    next residue group:
      "ATOM         N2  R02       .*.        "
      ... 3 atoms not shown
      "ATOM         N3 BR02       .*.        "
    next residue group:
      "ATOM         N2  R03       .*.        "
      ... 3 atoms not shown
      "ATOM         N3 BR03       .*.        "
Rv  s     s;   ### WARNING: consecutive residue_groups with same resid ###s"   ### ERROR: improper alt. conf. ###s;  ATOM         N1 BR01
ATOM         N1 AR01
ATOM         N2 CR01
ATOM         N3 BR01
ATOM         N3 AR01
ATOM         N1  R02
ATOM         N1 BR02
ATOM         N2  R02
ATOM         N3 BR02
ATOM         N3  R02
ATOM         N1 CR03
ATOM         N1 BR03
ATOM         N2 BR03
ATOM         N2 CR03
ATOM         N3  R03
s-  model id="" #chains=1
  chain id=" " #residue_groups=3
    resid="     " #atom_groups=3
      altloc="B" resname="R01" #atoms=2
        " N1 "
        " N3 "
      altloc="A" resname="R01" #atoms=2
        " N1 "
        " N3 "
      altloc="C" resname="R01" #atoms=1
        " N2 "
    resid="     " #atom_groups=3  ### Info: same as previous resid ###
      altloc="" resname="R02" #atoms=1
        " N2 "
      altloc=" " resname="R02" #atoms=2
        " N1 "
        " N3 "
      altloc="B" resname="R02" #atoms=2
        " N1 "
        " N3 "
    resid="     " #atom_groups=3  ### Info: same as previous resid ###
      altloc="" resname="R03" #atoms=1
        " N3 "
      altloc="C" resname="R03" #atoms=2
        " N1 "
        " N2 "
      altloc="B" resname="R03" #atoms=2
        " N1 "
        " N2 "
sű  total number of:
  models:      1
  chains:      1
  alt. conf.:  4
  residues:    3
  atoms:      15
  anisou:      0
number of atom element+charge types: 1
histogram of atom element+charge frequency:
  "    " 15
residue name classes:
  "other" 3
number of chain ids: 1
histogram of chain id frequency:
  " " 1
number of alt. conf. ids: 4
histogram of alt. conf. id frequency:
  " " 1
  "A" 1
  "B" 1
  "C" 1
residue alt. conf. situations:
  pure main conf.:     0
  pure alt. conf.:     1
  proper alt. conf.:   1
  ### ERROR: improper alt. conf. ###
  improper alt. conf.: 1
chains with mix of proper and improper alt. conf.: 1
  residue with proper altloc
    "ATOM         N3  R03       .*.        "
    "ATOM         N1 CR03       .*.        "
    "ATOM         N2 CR03       .*.        "
    "ATOM         N1 BR03       .*.        "
    "ATOM         N2 BR03       .*.        "
  residue with improper altloc
    "ATOM         N2  R02       .*.        "
    "ATOM         N1  R02       .*.        "
    "ATOM         N3  R02       .*.        "
    "ATOM         N1 BR02       .*.        "
    "ATOM         N3 BR02       .*.        "
number of residue names: 3
histogram of residue name frequency:
  "R01" 1    other
  "R02" 1    other
  "R03" 1    other
### WARNING: consecutive residue_groups with same resid ###
number of consecutive residue groups with same resid: 2
  residue group:
    "ATOM         N1 BR01       .*.        "
    ... 3 atoms not shown
    "ATOM         N2 CR01       .*.        "
  next residue group:
    "ATOM         N2  R02       .*.        "
    ... 3 atoms not shown
    "ATOM         N3 BR02       .*.        "
  next residue group:
    "ATOM         N3  R03       .*.        "
    ... 3 atoms not shown
    "ATOM         N2 BR03       .*.        "
s6	  REMARK    ANTIBIOTIC                              26-JUL-06   2IZQ
ATOM    220  N  ATRP A  11      20.498  12.832  34.558  0.50  6.03           N
ATOM    221  CA ATRP A  11      21.094  12.032  35.602  0.50  5.24           C
ATOM    222  C  ATRP A  11      22.601  12.088  35.532  0.50  6.49           C
ATOM    223  O  ATRP A  11      23.174  12.012  34.439  0.50  7.24           O
ATOM    234  H  ATRP A  11      20.540  12.567  33.741  0.50  7.24           H
ATOM    235  HA ATRP A  11      20.771  12.306  36.485  0.50  6.28           H
ATOM    244  N  CPHE A  11      20.226  13.044  34.556  0.15  6.35           N
ATOM    245  CA CPHE A  11      20.950  12.135  35.430  0.15  5.92           C
ATOM    246  C  CPHE A  11      22.448  12.425  35.436  0.15  6.32           C
ATOM    247  O  CPHE A  11      22.961  12.790  34.373  0.15  6.08           O
ATOM    255  N  BTYR A  11      20.553  12.751  34.549  0.35  5.21           N
ATOM    256  CA BTYR A  11      21.106  11.838  35.524  0.35  5.51           C
ATOM    257  C  BTYR A  11      22.625  11.920  35.572  0.35  5.42           C
ATOM    258  O  BTYR A  11      23.299  11.781  34.538  0.35  5.30           O
ATOM    262  HB2CPHE A  11      21.221  10.536  34.146  0.15  7.21           H
ATOM    263  CD2BTYR A  11      18.463  10.012  36.681  0.35  9.08           C
ATOM    264  HB3CPHE A  11      21.198  10.093  35.647  0.15  7.21           H
ATOM    265  CE1BTYR A  11      17.195   9.960  34.223  0.35 10.76           C
ATOM    266  HD1CPHE A  11      19.394   9.937  32.837  0.15 10.53           H
ATOM    267  CE2BTYR A  11      17.100   9.826  36.693  0.35 11.29           C
ATOM    268  HD2CPHE A  11      18.873  10.410  36.828  0.15  9.24           H
ATOM    269  CZ BTYR A  11      16.546   9.812  35.432  0.35 11.90           C
ATOM    270  HE1CPHE A  11      17.206   9.172  32.650  0.15 12.52           H
ATOM    271  OH BTYR A  11      15.178   9.650  35.313  0.35 19.29           O
ATOM    272  HE2CPHE A  11      16.661   9.708  36.588  0.15 11.13           H
ATOM    273  HZ CPHE A  11      15.908   9.110  34.509  0.15 13.18           H
ATOM    274  H  BTYR A  11      20.634  12.539  33.720  0.35  6.25           H
ATOM    275  HA BTYR A  11      20.773  12.116  36.402  0.35  6.61           H
ATOM    276  HB2BTYR A  11      20.949  10.064  34.437  0.35  6.78           H
sú   model id="" #chains=1
  chain id="A" #residue_groups=1
    resid="  11 " #atom_groups=3  ### Info: with mixed residue names ###
      altloc="A" resname="TRP" #atoms=6
      altloc="C" resname="PHE" #atoms=11
      altloc="B" resname="TYR" #atoms=12
ső  total number of:
  models:      1
  chains:      1
  alt. conf.:  3
  residues:    1 (1 with mixed residue names)
  atoms:      29
  anisou:      0
number of atom element+charge types: 4
histogram of atom element+charge frequency:
  " H  " 12
  " C  " 10
  " O  "  4
  " N  "  3
residue name classes:
  "common_amino_acid" 3
number of chain ids: 1
histogram of chain id frequency:
  "A" 1
number of alt. conf. ids: 3
histogram of alt. conf. id frequency:
  "A" 1
  "B" 1
  "C" 1
residue alt. conf. situations:
  pure main conf.:     0
  pure alt. conf.:     1
  proper alt. conf.:   0
  improper alt. conf.: 0
chains with mix of proper and improper alt. conf.: 0
number of residue names: 3
histogram of residue name frequency:
  "PHE" 1
  "TRP" 1
  "TYR" 1
Rw  R   Rt  Ru  s   BREAK
i    s+   BREAK
ATOM      1  CB  LYS   109
BREAK
TER
sF   BREAK
ATOM      1  CB  LYS   109
ATOM      2  CG  LYS   109
BREAK
TER
sŢ   ATOM      1  CB  LYS   109
ATOM      2  CG  LYS   109
ATOM      3  CA  LYS   110
ATOM      4  CB  LYS   110
BREAK
ATOM      5  CA  LYS   111
ATOM      6  CB  LYS   111
ATOM      7  CA  LYS   112
ATOM      8  CB  LYS   112
i   i   i   i   i   i   sC   REMARK
ATOM      1  CB  LYS   109
BREAK
ATOM      2  CG  LYS   109
s&   Misplaced BREAK record (input line 3).s   file abcs   REMARK
ATOM      1  CA  LYS   109
ATOM      2  CB  LYS   109
BREAK
ATOM      3  CA  LYS   110
BREAK
ATOM      4  CB  LYS   110
s*   Misplaced BREAK record (file abc, line 6).s  :=model id="" #chains=1
:=  chain id=" " #residue_groups=4
:=    resid=" 109 " #atom_groups=1
:=      altloc="" resname="LYS" #atoms=2
:=        " CB "
:=        " CG "
:=    resid=" 110 " #atom_groups=1
:=      altloc="" resname="LYS" #atoms=2
:=        " CA "
:=        " CB "
:=    ### chain break ###
:=    resid=" 111 " #atom_groups=1
:=      altloc="" resname="LYS" #atoms=2
:=        " CA "
:=        " CB "
:=    resid=" 112 " #atom_groups=1
:=      altloc="" resname="LYS" #atoms=2
:=        " CA "
:=        " CB "
sâ  :=total number of:
:=  models:     1
:=  chains:     1 (1 explicit chain break)
:=  alt. conf.: 0
:=  residues:   4
:=  atoms:      8
:=  anisou:     0
:=number of atom element+charge types: 1
:=histogram of atom element+charge frequency:
:=  "    " 8
:=residue name classes:
:=  "common_amino_acid" 4
:=number of chain ids: 1
:=histogram of chain id frequency:
:=  " " 1
:=number of alt. conf. ids: 0
:=number of residue names: 1
:=histogram of residue name frequency:
:=  "LYS" 4
s   :=so  model id="" #chains=1
  chain id=" " #residue_groups=4
    resid=" 109 " #atom_groups=1
      altloc="" resname="LYS" #atoms=2
    resid=" 110 " #atom_groups=1
      altloc="" resname="LYS" #atoms=2
    ### chain break ###
    resid=" 111 " #atom_groups=1
      altloc="" resname="LYS" #atoms=2
    resid=" 112 " #atom_groups=1
      altloc="" resname="LYS" #atoms=2
sÓ   model id="" #chains=1
  chain id=" " #residue_groups=4
    resid=" 109 " #atom_groups=1
    resid=" 110 " #atom_groups=1
    ### chain break ###
    resid=" 111 " #atom_groups=1
    resid=" 112 " #atom_groups=1
Rş   s7   model id="" #chains=1
  chain id=" " #residue_groups=4
Ry   s   model id="" #chains=1
R  s8   MODEL        1
ENDMDL
MODEL 1
ENDMDL
MODEL     1
ENDMDL
s  model id="   1" #chains=0  ### ERROR: duplicate model id ###
  ### WARNING: empty model ###
model id="   1" #chains=0  ### ERROR: duplicate model id ###
  ### WARNING: empty model ###
model id="   1" #chains=0  ### ERROR: duplicate model id ###
  ### WARNING: empty model ###
sk  total number of:
  ### ERROR: duplicate model ids ###
  ### WARNING: empty model ###
  models:     3 (3 with duplicate model ids; 3 empty)
  chains:     0
  alt. conf.: 0
  residues:   0
  atoms:      0
  anisou:     0
number of atom element+charge types: 0
residue name classes: None
number of chain ids: 0
number of alt. conf. ids: 0
number of residue names: 0
s7  MODEL        1
ATOM                 A
ATOM                 B
ATOM                 A
ENDMDL
MODEL 1
ATOM                 A   1
BREAK
ATOM                 A   2
ATOM                 B
ATOM                 A
ENDMDL
MODEL     2
ATOM                 A
BREAK
ATOM                 A    I
ATOM                 B
ENDMDL
sĆ  model id="   1" #chains=3  ### ERROR: duplicate model id ###
  chain id="A" #residue_groups=1  ### WARNING: duplicate chain id ###
    resid="     " #atom_groups=1
      altloc="" resname="   " #atoms=1
        "    "
  chain id="B" #residue_groups=1
    resid="     " #atom_groups=1
      altloc="" resname="   " #atoms=1
        "    "
  chain id="A" #residue_groups=1  ### WARNING: duplicate chain id ###
    resid="     " #atom_groups=1
      altloc="" resname="   " #atoms=1
        "    "
model id="   1" #chains=3  ### ERROR: duplicate model id ###
  chain id="A" #residue_groups=2  ### WARNING: duplicate chain id ###
    resid="   1 " #atom_groups=1
      altloc="" resname="   " #atoms=1
        "    "
    ### chain break ###
    resid="   2 " #atom_groups=1
      altloc="" resname="   " #atoms=1
        "    "
  chain id="B" #residue_groups=1
    resid="     " #atom_groups=1
      altloc="" resname="   " #atoms=1
        "    "
  chain id="A" #residue_groups=1  ### WARNING: duplicate chain id ###
    resid="     " #atom_groups=1
      altloc="" resname="   " #atoms=1
        "    "
model id="   2" #chains=2
  chain id="A" #residue_groups=2
    resid="     " #atom_groups=1
      altloc="" resname="   " #atoms=1
        "    "
    ### chain break ###
    resid="    I" #atom_groups=1
      altloc="" resname="   " #atoms=1
        "    "
  chain id="B" #residue_groups=1
    resid="     " #atom_groups=1
      altloc="" resname="   " #atoms=1
        "    "
sM  total number of:
  ### ERROR: duplicate model ids ###
  models:      3 (2 with duplicate model ids)
  ### WARNING: duplicate chain ids ###
  chains:      8 (4 with duplicate chain ids; 2 explicit chain breaks)
  alt. conf.:  0
  residues:   10
  ### ERROR: duplicate atom labels ###
  atoms:      10 (2 with duplicate labels)
  anisou:      0
number of atom element+charge types: 1
histogram of atom element+charge frequency:
  "    " 10
residue name classes:
  "other" 10
number of chain ids: 2
histogram of chain id frequency:
  "A" 5
  "B" 3
number of alt. conf. ids: 0
number of residue names: 1
histogram of residue name frequency:
  "   " 10    other
number of groups of duplicate atom labels: 1
  total number of affected atoms:          2
  group "ATOM                 A     .*.        "
        "ATOM                 A     .*.        "
sQ   ATOM     54  CA  GLY A   9
ATOM     55  CA  GLY A   9
ATOM     56  CA BGLY A   9
sŐ   model id="" #chains=1
  chain id="A" #residue_groups=1
    resid="   9 " #atom_groups=2
      altloc=" " resname="GLY" #atoms=2
        " CA "
        " CA "
      altloc="B" resname="GLY" #atoms=1
        " CA "
sQ  total number of:
  models:     1
  chains:     1
  alt. conf.: 2
  residues:   1
  ### ERROR: duplicate atom labels ###
  atoms:      3 (2 with duplicate labels)
  anisou:     0
number of atom element+charge types: 1
histogram of atom element+charge frequency:
  "    " 3
residue name classes:
  "common_amino_acid" 1
number of chain ids: 1
histogram of chain id frequency:
  "A" 1
number of alt. conf. ids: 2
histogram of alt. conf. id frequency:
  " " 1
  "B" 1
residue alt. conf. situations:
  pure main conf.:     0
  pure alt. conf.:     0
  proper alt. conf.:   0
  ### ERROR: improper alt. conf. ###
  improper alt. conf.: 1
chains with mix of proper and improper alt. conf.: 0
residue with improper altloc
  "ATOM     54  CA  GLY A   9 .*.        "
  "ATOM     55  CA  GLY A   9 .*.        "
  "ATOM     56  CA BGLY A   9 .*.        "
number of residue names: 1
histogram of residue name frequency:
  "GLY" 1
number of groups of duplicate atom labels: 1
  total number of affected atoms:          2
  group "ATOM     54  CA  GLY A   9 .*.        "
        "ATOM     55  CA  GLY A   9 .*.        "
s˘   ATOM     68  HD1 LEU B 441
ATOM     69  HD1 LEU B 441
ATOM     70  HD1 LEU B 441
ATOM     71  HD2 LEU B 441
ATOM     72  HD2 LEU B 441
ATOM     73  HD2 LEU B 441
s$   ### ERROR: duplicate atom labels ###t   max_shows  number of groups of duplicate atom labels: 2
  total number of affected atoms:          6
  group "ATOM     68  HD1 LEU B 441 .*.        "
        "ATOM     69  HD1 LEU B 441 .*.        "
        "ATOM     70  HD1 LEU B 441 .*.        "
  ... 1 remaining group not shownR:   s  number of groups of duplicate atom labels: 2
  total number of affected atoms:          6
  group "ATOM     68  HD1 LEU B 441 .*.        "
        "ATOM     69  HD1 LEU B 441 .*.        "
        "ATOM     70  HD1 LEU B 441 .*.        "
  group "ATOM     71  HD2 LEU B 441 .*.        "
        "ATOM     72  HD2 LEU B 441 .*.        "
        "ATOM     73  HD2 LEU B 441 .*.        "
sŘ   ATOM     68  HD1 LEU B 441
ATOM     69  HD2 LEU B 441
ATOM     70  HD3 LEU B 441
ATOM     71  HD4 LEU B 441
ATOM     72  HD1 LEU B 441
ATOM     73  HD2 LEU B 441
ATOM     74  HD3 LEU B 441
ATOM     75  HD4 LEU B 441
s  total number of:
  models:     1
  chains:     1
  alt. conf.: 0
  residues:   1
  ### ERROR: duplicate atom labels ###
  atoms:      8 (8 with duplicate labels)
  anisou:     0
number of atom element+charge types: 1
histogram of atom element+charge frequency:
  "    " 8
residue name classes:
  "common_amino_acid" 1
number of chain ids: 1
histogram of chain id frequency:
  "B" 1
number of alt. conf. ids: 0
number of residue names: 1
histogram of residue name frequency:
  "LEU" 1
number of groups of duplicate atom labels: 4
  total number of affected atoms:          8
  group "ATOM     68  HD1 LEU B 441 .*.        "
        "ATOM     72  HD1 LEU B 441 .*.        "
  group "ATOM     69  HD2 LEU B 441 .*.        "
        "ATOM     73  HD2 LEU B 441 .*.        "
  group "ATOM     70  HD3 LEU B 441 .*.        "
        "ATOM     74  HD3 LEU B 441 .*.        "
  ... 1 remaining group not shown
t   SEGIse   ATOM     68  HD1 LEU   441                                             %s
ATOM     72  HD1 LEU   441
sť   number of groups of duplicate atom labels: 1
  total number of affected atoms:          2
  group "ATOM     68  HD1 LEU   441 .*.        "
        "ATOM     72  HD1 LEU   441 .*.        "sä  HEADER    HYDROLASE                               19-JUL-05   2BWX
ATOM   2038  N   CYS A 249      68.746  44.381  71.143  0.70 21.04           N
ATOM   2039  CA  CYS A 249      68.957  43.022  71.606  0.70 21.28           C
ATOM   2040  C   CYS A 249      70.359  42.507  71.362  0.70 19.80           C
ATOM   2041  O   CYS A 249      71.055  42.917  70.439  0.70 19.80           O
ATOM   2042  CB ACYS A 249      67.945  42.064  70.987  0.40 24.99           C
ATOM   2044  SG ACYS A 249      66.261  42.472  71.389  0.40 27.94           S
ATOM   2043  CB BCYS A 249      67.928  42.101  70.948  0.30 23.34           C
ATOM   2045  SG BCYS A 249      67.977  40.404  71.507  0.30 26.46           S
HETATM 2046  N  CCSO A 249      68.746  44.381  71.143  0.30 21.04           N
HETATM 2047  CA CCSO A 249      68.957  43.022  71.606  0.30 21.28           C
HETATM 2048  CB CCSO A 249      67.945  42.064  70.987  0.30 24.99           C
HETATM 2049  SG CCSO A 249      66.261  42.472  71.389  0.30 27.94           S
HETATM 2050  C  CCSO A 249      70.359  42.507  71.362  0.30 19.80           C
HETATM 2051  O  CCSO A 249      71.055  42.917  70.439  0.30 19.80           O
HETATM 2052  OD CCSO A 249      66.275  42.201  72.870  0.30 23.67           O
s>  model id="" #chains=1
  chain id="A" #residue_groups=2
    resid=" 249 " #atom_groups=3
      altloc="" resname="CYS" #atoms=4
      altloc="A" resname="CYS" #atoms=2
      altloc="B" resname="CYS" #atoms=2
    resid=" 249 " #atom_groups=1  ### Info: same as previous resid ###
      altloc="C" resname="CSO" #atoms=7
sn  total number of:
  models:      1
  chains:      1
  alt. conf.:  3
  residues:    2
  atoms:      15
  anisou:      0
number of atom element+charge types: 4
histogram of atom element+charge frequency:
  " C  " 7
  " O  " 3
  " S  " 3
  " N  " 2
residue name classes:
  "common_amino_acid" 1
  "other"             1
number of chain ids: 1
histogram of chain id frequency:
  "A" 1
number of alt. conf. ids: 3
histogram of alt. conf. id frequency:
  "A" 1
  "B" 1
  "C" 1
residue alt. conf. situations:
  pure main conf.:     0
  pure alt. conf.:     1
  proper alt. conf.:   1
  improper alt. conf.: 0
chains with mix of proper and improper alt. conf.: 0
number of residue names: 2
histogram of residue name frequency:
  "CSO" 1    other
  "CYS" 1
### WARNING: consecutive residue_groups with same resid ###
number of consecutive residue groups with same resid: 1
  residue group:
    "ATOM   2038  N   CYS A 249 .*.     N  "
    ... 6 atoms not shown
    "ATOM   2045  SG BCYS A 249 .*.     S  "
  next residue group:
    "HETATM 2046  N  CCSO A 249 .*.     N  "
    ... 5 atoms not shown
    "HETATM 2052  OD CCSO A 249 .*.     O  "
sF  HEADER    OXIDOREDUCTASE                          17-SEP-97   1OHJ
HETATM 1552  C3  COP   188      11.436  28.065  13.009  1.00  8.51           C
HETATM 1553  C1  COP   188      13.269  26.907  13.759  1.00  8.86           C
HETATM 1582  O24 COP   188      13.931  34.344  22.009  1.00 20.08           O
HETATM 1583  O25 COP   188      13.443  32.717  20.451  1.00 20.18           O
HETATM 1608  O   HOH   188      20.354  30.097  11.632  1.00 21.33           O
HETATM 1569  C28ACOP   188      14.231  36.006  18.087  0.50 25.20           C
HETATM 1571  C29ACOP   188      13.126  36.948  17.945  0.50 26.88           C
HETATM 1604  O40ACOP   188      15.720  40.117  14.909  0.50 31.54           O
HETATM 1606  O41ACOP   188      15.816  42.243  14.385  0.50 31.73           O
HETATM 1570  C28BCOP   188      14.190  36.055  18.102  0.50 24.97           C
HETATM 1572  C29BCOP   188      13.133  37.048  18.009  0.50 26.45           C
HETATM 1605  O40BCOP   188      10.794  41.093  18.747  0.50 30.51           O
HETATM 1607  O41BCOP   188      12.838  40.007  19.337  0.50 30.37           O
s  model id="" #chains=1
  chain id=" " #residue_groups=3
    resid=" 188 " #atom_groups=1
      altloc="" resname="COP" #atoms=4
    resid=" 188 " #atom_groups=1  ### Info: same as previous resid ###
      altloc="" resname="HOH" #atoms=1
    resid=" 188 " #atom_groups=2  ### Info: same as previous resid ###
      altloc="A" resname="COP" #atoms=4
      altloc="B" resname="COP" #atoms=4
s  total number of:
  models:      1
  chains:      1
  alt. conf.:  2
  residues:    3
  atoms:      13
  anisou:      0
number of atom element+charge types: 2
histogram of atom element+charge frequency:
  " O  " 7
  " C  " 6
residue name classes:
  "other"        2
  "common_water" 1
number of chain ids: 1
histogram of chain id frequency:
  " " 1
number of alt. conf. ids: 2
histogram of alt. conf. id frequency:
  "A" 1
  "B" 1
residue alt. conf. situations:
  pure main conf.:     2
  pure alt. conf.:     1
  proper alt. conf.:   0
  improper alt. conf.: 0
chains with mix of proper and improper alt. conf.: 0
number of residue names: 2
histogram of residue name frequency:
  "COP" 2    other
  "HOH" 1    common water
### WARNING: consecutive residue_groups with same resid ###
number of consecutive residue groups with same resid: 2
  residue group:
    "HETATM 1552  C3  COP   188 .*.     C  "
    ... 2 atoms not shown
    "HETATM 1583  O25 COP   188 .*.     O  "
  next residue group:
    "HETATM 1608  O   HOH   188 .*.     O  "
  next residue group:
    "HETATM 1569  C28ACOP   188 .*.     C  "
    ... 6 atoms not shown
    "HETATM 1607  O41BCOP   188 .*.     O  "
s   ATOM      1  N   R01     1I
ATOM      2  N   R02     1I
ATOM      3  N   R03     1I
ATOM      4  N   R04     1I
ATOM      5  N   R05     1I
sš  total number of:
  models:     1
  chains:     1
  alt. conf.: 0
  residues:   5
  atoms:      5
  anisou:     0
number of atom element+charge types: 1
histogram of atom element+charge frequency:
  "    " 5
residue name classes:
  "other" 5
number of chain ids: 1
histogram of chain id frequency:
  " " 1
number of alt. conf. ids: 0
number of residue names: 5
histogram of residue name frequency:
  "R01" 1    other
  "R02" 1    other
  "R03" 1    other
  "R04" 1    other
  "R05" 1    other
### WARNING: consecutive residue_groups with same resid ###
number of consecutive residue groups with same resid: 4
  residue group:
    "ATOM      1  N   R01     1I.*.        "
  next residue group:
    "ATOM      2  N   R02     1I.*.        "
  next residue group:
    "ATOM      3  N   R03     1I.*.        "
  next residue group:
    "ATOM      4  N   R04     1I.*.        "
  ------------------------------------------
  ... 1 remaining instance not shown
s!   ### WARNING: empty hierarchy ###
s  total number of:
  models:     0
  chains:     0
  alt. conf.: 0
  residues:   0
  atoms:      0
  anisou:     0
number of atom element+charge types: 0
residue name classes: None
number of chain ids: 0
number of alt. conf. ids: 0
number of residue names: 0
s5   model id="" #chains=0
  ### WARNING: empty model ###
s*  total number of:
  ### WARNING: empty model ###
  models:     1 (1 empty)
  chains:     0
  alt. conf.: 0
  residues:   0
  atoms:      0
  anisou:     0
number of atom element+charge types: 0
residue name classes: None
number of chain ids: 0
number of alt. conf. ids: 0
number of residue names: 0
sW   model id="" #chains=1
  chain id="" #residue_groups=0
    ### WARNING: empty chain ###
sR  total number of:
  models:     1
  ### WARNING: empty chain ###
  chains:     1 (1 empty)
  alt. conf.: 0
  residues:   0
  atoms:      0
  anisou:     0
number of atom element+charge types: 0
residue name classes: None
number of chain ids: 1
histogram of chain id frequency:
  "" 1
number of alt. conf. ids: 0
number of residue names: 0
s   model id="" #chains=1
  chain id="" #residue_groups=1
    resid="     " #atom_groups=0
      ### WARNING: empty residue_group ###
sj  total number of:
  models:     1
  chains:     1
  alt. conf.: 0
  residues:   1
  atoms:      0
  anisou:     0
  ### WARNING: empty residue_group ###
  empty residue_groups: 1
number of atom element+charge types: 0
residue name classes: None
number of chain ids: 1
histogram of chain id frequency:
  "" 1
number of alt. conf. ids: 0
number of residue names: 0
sĽ   model id="" #chains=1
  chain id="" #residue_groups=1
    resid="     " #atom_groups=1
      altloc="" resname="" #atoms=0
        ### WARNING: empty atom_group ###
s   total number of:
  models:     1
  chains:     1
  alt. conf.: 0
  residues:   1
  atoms:      0
  anisou:     0
  ### WARNING: empty atom_group ###
  empty atom_groups: 1
number of atom element+charge types: 0
residue name classes:
  "other" 1
number of chain ids: 1
histogram of chain id frequency:
  "" 1
number of alt. conf. ids: 0
number of residue names: 1
histogram of residue name frequency:
  "" 1    other
s!   ### WARNING: empty atom_group ###s   ATOM         N1 BR01     1
ATOM         N1  R01     1
ATOM         N1 AR02     2
ATOM         N1 BR02     2
ATOM         N2  R02     2
s  residue with proper altloc
  "ATOM         N2  R02     2 .*.        "
  "ATOM         N1 AR02     2 .*.        "
  "ATOM         N1 BR02     2 .*.        "
residue with improper altloc
  "ATOM         N1  R01     1 .*.        "
  "ATOM         N1 BR01     1 .*.        "sQ  chains with mix of proper and improper alt. conf.: 1
  residue with proper altloc
    "ATOM         N2  R02     2 .*.        "
    "ATOM         N1 AR02     2 .*.        "
    "ATOM         N1 BR02     2 .*.        "
  residue with improper altloc
    "ATOM         N1  R01     1 .*.        "
    "ATOM         N1 BR01     1 .*.        "Rx  Ry  R  s°  HEADER    HYDROLASE (SERINE PROTEINASE)           24-APR-89   1P04
HETATM 1410  N   B2I P   1      14.927  32.740  15.704  1.00 12.51           N
HETATM 1411  CA  B2I P   1      14.664  32.247  14.329  1.00 13.81           C
HETATM 1412  CB  B2I P   1      15.498  33.033  13.284  1.00 15.18           C
HETATM 1413  CG1 B2I P   1      15.052  34.514  13.266  1.00 15.84           C
HETATM 1414  CG2 B2I P   1      17.012  33.028  13.465  1.00 13.83           C
HETATM 1415  CD1 B2I P   1      13.720  34.655  12.538  1.00 16.03           C
HETATM 1416  B   B2I P   1      14.742  30.705  14.151  1.00 13.29           B
HETATM 1417  O1  B2I P   1      14.883  30.181  12.718  1.00 12.46           O
HETATM 1418  O2  B2I P   1      13.824  30.019  15.080  1.00 12.11           O
TER    1419      B2I P   1
HETATM 1420  S   SO4     1      32.724  31.060  29.009  0.99 34.51           S
HETATM 1421  O1  SO4     1      33.557  31.197  30.235  0.95 37.71           O
HETATM 1422  O2  SO4     1      31.648  32.120  28.923  0.86 36.50           O
HETATM 1423  O3  SO4     1      33.681  31.215  27.852  0.96 31.36           O
HETATM 1424  O4  SO4     1      32.067  29.709  28.958  1.00 44.58           O
i   i   sË  ATOM         CA  ASN     1
ATOM         C   ASN     1
ATOM         O   HOH     2
ATOM         H1  HOH     2
ATOM         H2  HOH     2
ATOM         CA  GLU     3
ATOM         C   GLU     3
ATOM         O   H2O     4
ATOM         O   OH2     5
ATOM         O   DOD     6
ATOM         P   U       7
ATOM         O   D2O     8
ATOM         O   OD2     9
ATOM         CA  ALA    10
ATOM         C   ALA    10
ATOM         O   TIP    11
ATOM         O   TIP    12
t   common_waterRC   t   common_rna_dnat   common_amino_acids˘   ATOM         N  AASN     1
ATOM         CA AASN     1
ATOM         N  AGLY     1
ATOM         CA AGLY     1
ATOM         CA AASN     2
ATOM         CA AGLY     2
s!  total number of:
  models:     1
  chains:     1
  alt. conf.: 1
  residues:   2 (2 with mixed residue names)
  atoms:      6
  anisou:     0
number of atom element+charge types: 1
histogram of atom element+charge frequency:
  "    " 6
residue name classes:
  "common_amino_acid" 4
number of chain ids: 1
histogram of chain id frequency:
  " " 1
number of alt. conf. ids: 1
histogram of alt. conf. id frequency:
  "A" 1
residue alt. conf. situations:
  pure main conf.:     0
  pure alt. conf.:     2
  proper alt. conf.:   0
  improper alt. conf.: 0
chains with mix of proper and improper alt. conf.: 0
number of residue names: 2
histogram of residue name frequency:
  "ASN" 2
  "GLY" 2
### ERROR: residue group with multiple resnames using same altloc ###
residue groups with multiple resnames using same altloc: 2
  residue group:
    "ATOM         N  AASN     1 .*.        "
    ... 2 atoms not shown
    "ATOM         CA AGLY     1 .*.        "
  residue group:
    "ATOM         CA AASN     2 .*.        "
    "ATOM         CA AGLY     2 .*.        "
s   ATOM         N  AASN     1
ATOM         N  AGLY     1
ATOM         CA AGLY     1
ATOM         CA AASN     2
ATOM         CA AGLY     2
s÷   residue groups with multiple resnames using same altloc: 2
  residue group:
    "ATOM         N  AASN     1 .*.        "
    "ATOM         N  AGLY     1 .*.        "
    "ATOM         CA AGLY     1 .*.        "
  ... 1 remaining instance not shown(0   Rz   R  t   warningsR7   t   errorst   errors_and_warningsR   Rz  R   R{  R|  RD  t   only_residue_groupRŃ   t
   only_chainRę   Ré   t   selectt   size_tR`   R   Ra   R   t$   raise_improper_alt_conf_if_necessarytB   raise_chains_with_mix_of_proper_and_improper_alt_conf_if_necessaryt(   raise_duplicate_atom_labels_if_necessaryR   R   t   show_duplicate_atom_labelsR$  R\   R  R}  R  R  Ry   R   Rş   Rć   R   R˝   t   show_summaryRŚ   Rż   t*   consecutive_residue_groups_with_same_residR  t   resname_classestJ   raise_residue_groups_with_multiple_resnames_using_same_altloc_if_necessary(   R=   R  t   oct   pdb_strRu  t   i_procRę   RY   R  R+  Rb   R  Ry   Rş   R   t   summary(    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_construct_hierarchyÜ  sş   ;		<#			. 	  	 ,	'

 			 
	-
,$
  		!!	$	(& 	c          C   s  d }  t  j d d  d t j |    } | j   j   j d  sH t  | j	 d t
  } | j   } | j   j d  s t  | j   t  j d d  d t j |    } | j	 d t  } | j   } | j   } | j d  sě t  | j | j    st  t  j d d  d t j |    } | j	   } | j   | j   } | j   } | j d  slt  | j | j    st  d  S(   NsŐ  HEADER    HYDROLASE                               19-JUL-05   2BWX
ATOM   2038  N   CYS A 249      68.746  44.381  71.143  0.70 21.04           N
ATOM   2039  CA  CYS A 249      68.957  43.022  71.606  0.70 21.28           C
ATOM   2040  C   CYS A 249      70.359  42.507  71.362  0.70 19.80           C
ATOM   2041  O   CYS A 249      71.055  42.917  70.439  0.70 19.80           O
ATOM   2042  CB ACYS A 249      67.945  42.064  70.987  0.40 24.99           C
ATOM   2043  CB BCYS A 249      67.928  42.101  70.948  0.30 23.34           C
ATOM   2044  SG ACYS A 249      66.261  42.472  71.389  0.40 27.94           S
ATOM   2045  SG BCYS A 249      67.977  40.404  71.507  0.30 26.46           S
HETATM 2046  N  CCSO A 249      68.746  44.381  71.143  0.30 21.04           N
HETATM 2047  CA CCSO A 249      68.957  43.022  71.606  0.30 21.28           C
HETATM 2048  CB CCSO A 249      67.945  42.064  70.987  0.30 24.99           C
HETATM 2049  SG CCSO A 249      66.261  42.472  71.389  0.30 27.94           S
HETATM 2050  C  CCSO A 249      70.359  42.507  71.362  0.30 19.80           C
HETATM 2051  O  CCSO A 249      71.055  42.917  70.439  0.30 19.80           O
HETATM 2052  OD CCSO A 249      66.275  42.201  72.870  0.30 23.67           O
TER
HETATM    1  O  AHOH B   1       0.000   0.000   0.000  1.0  20.0            O
HETATM    2  O  BHOH B   1       0.500   0.000   0.000  1.0  20.0            O
HETATM    3  O   HOH B   2       4.000   0.000   0.000  1.0  20.0            O
Rt  Ru  i    t   set_atom_i_seq(   R   Rz  Rz   R   R{  RŚ   t   extract_i_seqt   all_eqR7   R|  R   R   Ru   t   reset_atom_i_seqs(   R  t   pdb_inR\   t   pdb_atoms_1t   pdb_atoms_2t   i_seqs_2t   pdb_atoms_3t   i_seqs_3(    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_set_i_seq  s(    !!
!!
c          C   sÜ  t  j d d  d t j d   }  |  j d t  } g  | j   D] } | j ^ q@ d d g k sg t	  g  | j
   D] } | j ^ qt d d g d	 k s t	  g  | j   D] } | j   ^ qŹ d
 d g d k sÚ t	  g  | j   D] } | j   ^ qç d d d d g d k st	  | j   d k s3t	  | j   j   d k sQt	  g  | j   D] } | j ^ q^d d g d k st	  | j   d } g  | j
   D] } | j ^ qŚd d g k sÍt	  g  | j   D] } | j   ^ qÚd
 d g d	 k st	  g  | j   D] } | j   ^ qd d d d g d	 k sIt	  | j   d k sat	  | j   j   d k st	  g  | j   D] } | j ^ qd d g d k sˇt	  | j
   d } g  | j   D] } | j   ^ qÔd
 d g k sţt	  g  | j   D] } | j   ^ qd d d d g k s;t	  | j   d k sSt	  | j   j   d k sqt	  g  | j   D] } | j ^ q~d d g d k sŠt	  | j   d } g  | j   D] } | j   ^ qĆd d g k sđt	  | j   d k st	  | j   j   d k s&t	  g  | j   D] } | j ^ q3d d g d	 k s^t	  | j   d } | j   d	 k st	  | j   j   d	 k s¤t	  g  | j   D] } | j ^ qąd d g k sŘt	  d  S(   NRt  Ru  s  MODEL        1
ATOM      1  N  AR11 A   1
ATOM      2  O  AR11 A   1
ATOM      3  N  BR21 A   1
ATOM      4  O  BR21 A   1
ATOM      5  N  AR12 A   2
ATOM      6  O  AR12 A   2
ATOM      7  N  BR22 A   2
ATOM      8  O  BR22 A   2
TER
ATOM      9  N  AR11 B   1
ATOM     10  O  AR11 B   1
ATOM     11  N  BR21 B   1
ATOM     12  O  BR21 B   1
ATOM     13  N  AR12 B   2
ATOM     14  O  AR12 B   2
ATOM     15  N  BR22 B   2
ATOM     16  O  BR22 B   2
TER
ENDMDL
MODEL        2
ATOM      1  N  AR11 A   1
ATOM      2  O  AR11 A   1
ATOM      3  N  BR21 A   1
ATOM      4  O  BR21 A   1
ATOM      5  N  AR12 A   2
ATOM      6  O  AR12 A   2
ATOM      7  N  BR22 A   2
ATOM      8  O  BR22 A   2
TER
ATOM      9  N  AR11 B   1
ATOM     10  O  AR11 B   1
ATOM     11  N  BR21 B   1
ATOM     12  O  BR21 B   1
ATOM     13  N  AR12 B   2
ATOM     14  O  AR12 B   2
ATOM     15  N  BR22 B   2
ATOM     16  O  BR22 B   2
TER
ENDMDL
t   residue_group_post_processings      1s      2Rŕ   t   Bi   s      1 s      2 i   t   AR11t   BR21t   AR12t   BR22i    s    N  s    O  i   i    i   (   R   Rz  Rz   R   R{  R|  R   RE  RÔ   R7   R3  Rę   Rî   Rĺ   R¸   Rź   RŚ   Rż   R^   (   R  t   objR  Ry   RÇ   RĽ   R]   (    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_convenience_generatorsJ  sH    )48;"84;"87"8"8c          C   sá  t  j d d  d t j d   }  |  j d t  } | } | j   j d k sT t	  | j
   j d k so t	  | j   j   d k s t	  | j   j d k s¨ t	  | j   j d	 k sĂ t	  | j   } | j
   j d k sę t	  | j   j   d k st	  | j   j d
 k s#t	  | j   j d	 k s>t	  | j
   } | j   j   d k sht	  | j   j d k st	  | j   j d	 k st	  | j   } | j   j d
 k sĹt	  | j   j d	 k sŕt	  | j   } | j   j d	 k st	  | } | j   j d k s(t	  | j   j d
 k sCt	  | j   } | j   j d k sjt	  | j   j d
 k st	  | j
   } | j   j d k sŹt	  | j   j d
 k sÇt	  | j   } | j   j d
 k sît	  | j   j d	 k s	t	  | j   } | j   j d	 k s0t	  t  j d d  d t j d   }  |  j d t  } t   } xR | j   D]D } x; | j   D]- } x$ | j   D] } | | j   IJqWqWqyWt | j   d  sÝt	  d  S(   NRt  Ru  s2   MODEL        1
ATOM      2  N  ARES C   3I
ENDMDL
RŠ  s      1t   Cs      3IRŕ   s    N  t   RESss   ATOM      1      R01 A
ATOM      2      R01 A
ATOM      3      R02 A
ATOM      4      R02 A
ATOM      5      R01 B
sÍ   "ATOM      1      R01 A     .*.        "
"ATOM      2      R01 A     .*.        "
"ATOM      3      R02 A     .*.        "
"ATOM      4      R02 A     .*.        "
"ATOM      5      R01 B     .*.        "
(   R   Rz  Rz   R   R{  R|  R   t
   only_modelRÔ   R7   R  R  Rî   t   only_atom_groupRŞ   R"  R^   RŤ   RV  RW  R   R3  t   residuesRŚ   Rl  R   R$  (   R  R\   RŻ  R+  Ry   t   residueR]   (    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_only  s^    	Rt  Ru  sˇ  ATOM   1716  N  ALEU   190      28.628   4.549  20.230  0.70  3.78           N
ATOM   1717  CA ALEU   190      27.606   5.007  19.274  0.70  3.71           C
ATOM   1718  CB ALEU   190      26.715   3.852  18.800  0.70  4.15           C
ATOM   1719  CG ALEU   190      25.758   4.277  17.672  0.70  4.34           C
ATOM   1829  N  BLEU   190      28.428   4.746  20.343  0.30  5.13           N
ATOM   1830  CA BLEU   190      27.378   5.229  19.418  0.30  4.89           C
ATOM   1831  CB BLEU   190      26.539   4.062  18.892  0.30  4.88           C
ATOM   1832  CG BLEU   190      25.427   4.359  17.878  0.30  5.95           C
ATOM   1724  N  ATHR   191      27.350   7.274  20.124  0.70  3.35           N
ATOM   1725  CA ATHR   191      26.814   8.243  21.048  0.70  3.27           C
ATOM   1726  CB ATHR   191      27.925   9.229  21.468  0.70  3.73           C
ATOM   1727  OG1ATHR   191      28.519   9.718  20.259  0.70  5.22           O
ATOM   1728  CG2ATHR   191      28.924   8.567  22.345  0.70  4.21           C
ATOM   1729  C  ATHR   191      25.587   8.983  20.559  0.70  3.53           C
ATOM   1730  O  ATHR   191      24.872   9.566  21.383  0.70  3.93           O
ATOM   1833  CD1BLEU   190      26.014   4.711  16.521  0.30  6.21           C
ATOM   1835  C  BLEU   190      26.506   6.219  20.135  0.30  4.99           C
ATOM   1836  O  BLEU   190      25.418   5.939  20.669  0.30  5.91           O
ATOM   1721  CD2ALEU   190      24.674   3.225  17.536  0.70  5.31           C
ATOM   1722  C  ALEU   190      26.781   6.055  20.023  0.70  3.36           C
ATOM   1723  O  ALEU   190      25.693   5.796  20.563  0.70  3.68           O
ATOM   8722  C  DLEU   190      26.781   6.055  20.023  0.70  3.36           C
ATOM   8723  O  DLEU   190      25.693   5.796  20.563  0.70  3.68           O
ATOM   9722  C  CLEU   190      26.781   6.055  20.023  0.70  3.36           C
ATOM   9723  O  CLEU   190      25.693   5.796  20.563  0.70  3.68           O
c    
      C   sŞ  g  }  t  j d t  } | j   d j   d } | j   } t |  d k sV t  xMd d g D]?} | d j   | } | j	 | j
 f d | d f k sĽ t  | d j   d | } y | d j d | d	 |  Wn/ t k
 r} t t |  d
  st  n Xt  y | d j d | d	 |  Wn/ t k
 rb} t t |  d  sit  n Xt  y, | d j d | d	 | d j   |  Wn4 t k
 rË} t |  j d  d k sŇt  n Xt  | j   d k sęt  | j   d k st  | d j d | d	 |  | j   d k s4t  | j   d k sLt  t   } x$ | j   D] }	 | |	 j   IJqbWt | j   d d g |  sc t  qc Wd  S(   NRŠ  i    i   i   t   ABt   LEUi   t   primaryt	   secondarysZ   "primary" atom_group has a different or no parent (this residue_group must be the parent).s4   "primary" and "secondary" atom_groups are identical.s.   secondary.data->altloc == primary.data->altloci   i   s)  ATOM   1716  N  ALEU   190      28.628   4.549  20.230  0.70  3.78           N
ATOM   1717  CA ALEU   190      27.606   5.007  19.274  0.70  3.71           C
ATOM   1718  CB ALEU   190      26.715   3.852  18.800  0.70  4.15           C
ATOM   1719  CG ALEU   190      25.758   4.277  17.672  0.70  4.34           C
ATOM   1721  CD2ALEU   190      24.674   3.225  17.536  0.70  5.31           C
ATOM   1722  C  ALEU   190      26.781   6.055  20.023  0.70  3.36           C
ATOM   1723  O  ALEU   190      25.693   5.796  20.563  0.70  3.68           O
s)  ATOM   1829  N  BLEU   190      28.428   4.746  20.343  0.30  5.13           N
ATOM   1830  CA BLEU   190      27.378   5.229  19.418  0.30  4.89           C
ATOM   1831  CB BLEU   190      26.539   4.062  18.892  0.30  4.88           C
ATOM   1832  CG BLEU   190      25.427   4.359  17.878  0.30  5.95           C
ATOM   1833  CD1BLEU   190      26.014   4.711  16.521  0.30  6.21           C
ATOM   1835  C  BLEU   190      26.506   6.219  20.135  0.30  4.99           C
ATOM   1836  O  BLEU   190      25.418   5.939  20.669  0.30  5.91           O
(   t   exercise_merge_pdb_inpR|  R   RE  R3  Rę   Ré   R7   Rĺ   RŞ   RŤ   t   merge_atom_groupsR`   R   Ra   R   t   findRź   R   RŚ   Rg  R$  (
   Ru  R  Ry   Rę   t   i_agt   primary_atom_groupt   secondary_atom_groupRY   R+  R]   (    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_merge_atom_groupső  s^    		%	c    
      C   s  t  j d t  }  |  j   d j   d } | j   } t |  d k sP t  y" | j d | d d | d  Wn4 t	 k
 r¨ } t
 |  j d  d k sŻ t  n Xt  | d j   d k sË t  | d j   d	 k sç t  | d j   j   | j   k st  | j   d k s't  | j d | d d | d  | d j   d	 k sat  | d j   d k s}t  | d j   d  k st  | j   d k sąt  t   } x? | d j   D]- } x$ | j   D] } | | j   IJqŢWqËWt | j   d
  st  x{ d d g D]m \ } } }	 y" | j d | | d | |  Wn3 t	 k
 r} t t
 |  d |	  st  q%Xt  q%Wd  S(   NRŠ  i    i   Rş  Rť  i   s.   secondary.data->resseq == primary.data->resseqi   i   s  ATOM   1716  N  ALEU   190      28.628   4.549  20.230  0.70  3.78           N
ATOM   1717  CA ALEU   190      27.606   5.007  19.274  0.70  3.71           C
ATOM   1718  CB ALEU   190      26.715   3.852  18.800  0.70  4.15           C
ATOM   1719  CG ALEU   190      25.758   4.277  17.672  0.70  4.34           C
ATOM   1721  CD2ALEU   190      24.674   3.225  17.536  0.70  5.31           C
ATOM   1722  C  ALEU   190      26.781   6.055  20.023  0.70  3.36           C
ATOM   1723  O  ALEU   190      25.693   5.796  20.563  0.70  3.68           O
ATOM   1829  N  BLEU   190      28.428   4.746  20.343  0.30  5.13           N
ATOM   1830  CA BLEU   190      27.378   5.229  19.418  0.30  4.89           C
ATOM   1831  CB BLEU   190      26.539   4.062  18.892  0.30  4.88           C
ATOM   1832  CG BLEU   190      25.427   4.359  17.878  0.30  5.95           C
ATOM   1833  CD1BLEU   190      26.014   4.711  16.521  0.30  6.21           C
ATOM   1835  C  BLEU   190      26.506   6.219  20.135  0.30  4.99           C
ATOM   1836  O  BLEU   190      25.418   5.939  20.669  0.30  5.91           O
ATOM   8722  C  DLEU   190      26.781   6.055  20.023  0.70  3.36           C
ATOM   8723  O  DLEU   190      25.693   5.796  20.563  0.70  3.68           O
ATOM   9722  C  CLEU   190      26.781   6.055  20.023  0.70  3.36           C
ATOM   9723  O  CLEU   190      25.693   5.796  20.563  0.70  3.68           O
sP   "%s" residue_group has a different or no parent (this chain must be the parent).(   i   i   Rş  (   i    i   Rť  (   Rź  R|  R   RE  R3  Rę   Ré   R7   t   merge_residue_groupsR`   Ra   Rž  R   Rä   RJ   R   Rč   Rz   R   Rĺ   RŚ   Rg  R   R$  (
   R  Ry   Rę   RY   R+  R   R]   t   i_rgt   j_rgR˙   (    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_merge_residue_groups5  sL    			
%(	
		
i   c   	   	   C   sP  t  j d d  d t j d   } xł t t g D]Ľ } | j d |  j   } | s | j	   d k sj t
  | j   } t |  d g k s t
  n  | j	   d k sŹ t
  | j   } | j   d k sĐ t
  ~ q. Wt j d	  } t  j d d  d |  } | j d t  j   } | j	   d
 k s.t
  | j   } t |  d d g k sXt
  | j	   d k spt
  | j   } | j   d k st
  xŕ t |   D]Ň } t  j d d  d | j t j d | j      } | j d t  j   } | j   } | j   d k st
  | j   } | j   d k s:t
  ~ | j   j   } | j   } | j   d k sĄt
  qĄWt  j d d  d t j d   } | j d t  j   } | j	   d k sČt
  g  | j   D] } | j   ^ qŐd d d d g k st
  xZ | j   D]L } | j   d k s0t
  | j   d j   j   | j   k st
  qWg  | j   D] } | j   d j ^ qod d d d g k sŚt
  t  j d d  d t j d   } | j d t  j   } | j	   d k s÷t
  xZ | j   D]L } | j   d k s"t
  | j   d j   j   | j   k st
  qWt  j d d  d t j d   } | j d t  j   } | j	   d k sĽt
  | j   d j   j d k sĘt
  x | j   D] } | j   q×W| j   d j   j d k st
  | j   } | j   d k s4t
  | j	   d k sLt
  d  S(   NRt  Ru  sÎ  HEADER    HYDROLASE                               22-NOV-07   2VHL
HETATM 6362  O   HOH B2048      47.616  10.724 150.212  1.00 46.48           O
HETATM 6363  O  AHOH B2049      46.408  16.672 146.066  0.50 12.81           O
HETATM 6364  O   HOH B2050      29.343  12.806 185.898  1.00 35.57           O
HETATM 6365  O  BHOH B2049      43.786  12.615 147.734  0.50 28.43           O
HETATM 6366  O   HOH B2052      35.068  19.167 155.349  1.00 15.97           O
RŠ  i   i   i   i    s˘   HETATM 6363  O  AHOH B2049
HETATM 6364  O  ZHOH B2050
HETATM 6365  O  BHOH B2049
HETATM 6366  O  YHOH B2052
HETATM 9365  O  CHOH B2049
HETATM 9367  O  XHOH B2052
i   i   i   Rż   s3  HEADER    SERINE PROTEASE                         10-NOV-95   1RTF
HETATM 2397  P   PO4     1      -7.520  25.376  38.369  1.00 39.37           P
HETATM 2398  O1  PO4     1      -6.610  24.262  38.967  1.00 40.00           O
HETATM 2399  O2  PO4     1      -6.901  25.919  37.049  1.00 41.07           O
HETATM 2400  O3  PO4     1      -8.894  24.741  38.097  1.00 45.09           O
HETATM 2401  O4  PO4     1      -7.722  26.556  39.350  1.00 42.48           O
HETATM 2402  C1  BEN     1      -6.921  31.206  33.893  1.00 23.35           C
HETATM 2403  C2  BEN     1      -8.189  30.836  34.344  1.00 23.15           C
HETATM 2404  C3  BEN     1      -8.335  29.863  35.342  1.00 20.74           C
HETATM 2405  C4  BEN     1      -7.206  29.254  35.893  1.00 19.45           C
HETATM 2406  C5  BEN     1      -5.932  29.618  35.445  1.00 20.83           C
HETATM 2407  C6  BEN     1      -5.794  30.589  34.450  1.00 20.99           C
HETATM 2408  C   BEN     1      -6.767  32.249  32.859  1.00 24.30           C
HETATM 2409  N1  BEN     1      -5.570  32.641  32.497  1.00 24.56           N
HETATM 2410  N2  BEN     1      -7.824  32.785  32.299  1.00 24.58           N
HETATM 2415  O   HOH     1       4.020  20.521  19.336  1.00 38.74           O
HETATM 2418  O   WAT     2      14.154  16.852  21.753  1.00 49.41           O
s      1 s      2 t   PO4t   BENt   HOHt   WATsz  HETATM 2418  O   WAT     2
HETATM 2397  P   PO4     1
HETATM 2398  O1  PO4     1
HETATM 2402  C1  BEN     1
HETATM 2403  C2  BEN     1
HETATM 2404  C3  BEN     1
HETATM 2415  O   HOH     1
HETATM 9418  O   WAT     2
HETATM 9397  P   PO4     1
HETATM 9398  O1  PO4     1
HETATM 9402  C1  BEN     1
HETATM 9403  C2  BEN     1
HETATM 9404  C3  BEN     1
HETATM 9415  O   HOH     1
i   sl   HETATM 6362  O  CHOH B   1
HETATM 6363  O  AHOH B   1
HETATM 6364  O   HOH B   2
HETATM 6365  O   HOH B   1
R.   R   (   R   Rz  Rz   R   R{  R   Ru   R|  R  Rč   R7   t2   merge_disconnected_residue_groups_with_pure_altlocRň   Rż   RÁ   R  t   random_permutationRę   Rî   Rä   Rĺ   RJ   R   RŤ   R´  RŞ   t   edit_blank_altloc(	   t   n_trialsR  t   rgppRy   t   indicesRu  t   i_trialRş   RÇ   (    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt#   exercise_chain_merge_residue_groupsp  s    				$		"&		%%c         C   sđ  t  j d d  d t j d   } x^ t t g D]P } | j d |  j   } x, d d g D] } | j	   d k sY t
  qY W~ q. Wt  j d d  d t j d   } x t t g D]t } | j d |  j   } | j   } | j   d k sň t
  x, d d g D] } | j	   d k s˙ t
  q˙ W~ q° Wt  j d d  d t j d   } x,t t g D]} | j d |  j   } | sÓ| j   } t |  d	 k st
  | d j d
 k sˇt
  | d j d k sÓt
  n  x d d g D] } | sů| d k r| j	   d k st
  n  | j   } t |  d	 k s8t
  | d j d k sQt
  | d j d k sŕt
  qŕW~ ~ qVWt  j d d  d t j d   } | j d t  j   } | j   } t |  d	 k sŐt
  | d j d
 k sît
  | d j d k st
  | j   } | j   d k s+t
  x d d g D]t } | j	   d k sVt
  | j   } t |  d	 k szt
  | d j d
 k st
  | d j d k s8t
  q8Wt  j d d  d t j d   } xjt t g D]\} | j d t  j   } | j   } | j   } t |  d	 k s,t
  | d j d k sEt
  | d j d
 k s^t
  | j   } | j   d k st
  xŹ d d g D] } | sś| j	   d k s×t
  n! x | j   D] }	 |	 j	   qĂW| j   } t |  d	 k sűt
  | d j d
 k st
  | d j d k st
  qW~ ~ ~ qŢWt j d  }
 xt |   D]} t  j d d  d |
  } | j d t  j   } | j   } t |  d	 k s´t
  | d k rő| d j d k sŮt
  | d j d
 k s)t
  n4 t g  | D] } | j ^ q˙ d
 d g k s)t
  xź d d g D]Ž } | j	   d k sTt
  | j   } t |  d k sxt
  | d j d k st
  | d j d
 k sŞt
  | d	 j d k sĂt
  |
 j t j d |
 j     }
 q6WqZWd  S(   NRt  Ru  s    ATOM         N1
ATOM         N2
RŠ  i    i   s$   ATOM         N1 A
ATOM         N2 B
s"   ATOM         N1
ATOM         N2 B
i   R.   RŞ  R   s"   ATOM         N1
ATOM         N1 B
s"   ATOM         N1 B
ATOM         N1
sT   ATOM         N1 B
ATOM         N1
ATOM         N2
ATOM         N3 B
ATOM         N3
i   Rż   (   i   i    (   i    i    (   i   i    (   i    i   (   i    i   (   i   i   (   R   Rz  Rz   R   R{  R   Ru   R|  R  RÍ  R7   R   Rđ   Rĺ   Ré   RŞ   R  Rę   RÁ   R    R  RĚ  Rż   (   RÎ  R  RĎ  Rş   R  Rô   Rĺ   t
   edit_chainRy   RÇ   Ru  RŃ  R   (    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_edit_blank_altlocě  sÄ    							c          C   sb  t  j j   }  |  j   j   d k s- t  t  j d d  d t j	 d   } | j
   j   }  |  j   j   d k s~ t  t  j d d  d t j	 d   } | j
   j   }  |  j   j   d k sĎ t  t  j d d  d t j	 d   } | j
   j   }  t |  j    d g k s#t  t  j d d  d t j	 d   } | j
   j   }  |  j   j   d k stt  t  j d d  d t j	 d	   } | j
   j   }  |  j   j   d k sĹt  t  j d d  d t j	 d
   } | j
   j   }  t |  j    d d d  d! d" g k s%t  t  j d d  d t j	 d   } | j
   j   }  |  j   j   d k svt  d } t  j d d  d t j	 d   } | j
   j   }  t |  j    d# g k sĐt  t |  j d |   d$ g k s÷t  t  j d d  d t j	 d   } | j
   j   }  t |  j    d% g k sKt  t |  j d |   d& g k srt  t  j d d  d t j	 d   } | j
   j   }  t |  j    d' g k sĆt  |  j d |  j   d k sęt  t  j d d  d t j	 d   } | j
   j   }  t |  j    d( g k s>t  t |  j d |   d) g k set  t  j d d  d t j	 d   } | j
   j   }  t |  j    d* g k sšt  t |  j d |   d+ g k sŕt  t  j d d  d t j	 d   } | j
   j   }  t |  j    d, g k s4t  t |  j d |   d- d. g k s^t  d  S(/   Ni    Rt  Ru  s   ATOM            A        1
s6   ATOM            A        1
ATOM            B        1
s6   ATOM            A        1
ATOM            B        2
i   s<   ATOM            A        1
BREAK
ATOM            B        2
sQ   ATOM            A        1
ATOM            B        1
ATOM                     2
s"  ATOM            A        1
ATOM            B        2
ATOM            C        3
ATOM                     4
ATOM            E        5
ATOM            F        6
ATOM            G        6
ATOM            H        6
ATOM                     7
ATOM                     8
ATOM            I        9
ATOM            J       10
BREAK
ATOM            L       11
ATOM            M       12
ATOM         N1 N       13
ATOM         N2         13
ATOM            O       14
ATOM                    14
ATOM            P       15
ATOM                    15
i   i   i   i   i
   i   i   i   sť  HEADER    CELL CYCLE                              13-SEP-05   2B05
HETATM10989  O   HOH    29     -66.337 -28.299 -26.997  1.00 40.05           O
HETATM10990  O  AHOH    32     -57.432 -22.290 -45.876  0.50  2.46           O
HETATM10991  O  BHOH    32     -59.435 -22.422 -45.055  0.50 17.09           O
HETATM10992  O   HOH    36     -56.803 -18.433 -29.790  1.00 43.00           O
HETATM10993  O   HOH    37     -51.860 -26.755 -35.092  1.00 35.90           O
HETATM10994  O  AHOH    39     -68.867 -23.643 -49.077  0.50 12.37           O
HETATM10995  O  BHOH    39     -69.097 -21.979 -50.740  0.50 21.64           O
HETATM10996  O   HOH    40     -65.221 -13.774 -33.183  1.00 36.14           O
R  s˘   ATOM            AALA     1
ATOM            BGLY     1
ATOM            ATYR     2
ATOM            BTHR     2
ATOM            AHOH     3
ATOM            BHOH     3
t   common_residue_name_class_onlys˘   ATOM            AHOH     3
ATOM            BHOH     3
ATOM            AALA     1
ATOM            BGLY     1
ATOM            ATYR     2
ATOM            BTHR     2
i   s˘   ATOM            AALA     1
ATOM            BGLY     1
ATOM            AHOH     3
ATOM            BHOH     3
ATOM            ATYR     2
ATOM            BTHR     2
sŘ   ATOM            AALA     1
ATOM            BGLY     1
ATOM            AHOH     3
ATOM            BHOH     3
ATOM            ATYR     2
ATOM            BTHR     2
ATOM            ASER     4
ATOM            BSER     4
sŘ   ATOM            ASER     4
ATOM            BSER     4
ATOM            AALA     1
ATOM            BGLY     1
ATOM            AHOH     3
ATOM            BHOH     3
ATOM            ATYR     2
ATOM            BTHR     2
s_  ATOM             MET     1
ATOM            ALEU     2
ATOM            ASER     3
ATOM            BSER     3
ATOM            AALA     4
ATOM            BGLY     4
ATOM            AHOH     5
ATOM            BHOH     5
ATOM            AHOH     6
ATOM            ATYR     7
ATOM            BTHR     7
ATOM            AGLY     8
ATOM            BGLY     8
(   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   (   R   R\   Ry   t   find_pure_altloc_rangesRż   R7   Rz  Rz   R   R{  R|  R  Rň   (   RZ   R  t   caa(    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt    exercise_find_pure_altloc_rangesf  s    !
!!!	!	!!s6	  HEADER    HYDROLASE                               12-FEB-03   1NYM
ATOM     60  CA  LYS A  32      10.574   8.177  11.768  1.00 11.49           C
ATOM     63  CB ALYS A  32       9.197   8.686  12.246  0.29 14.71           C
ATOM     64  CB BLYS A  32       9.193   8.732  12.170  0.71 12.23           C
ATOM     74  CA  VAL A  33      11.708   5.617  14.332  1.00 11.42           C
ATOM     77  CB  VAL A  33      11.101   4.227  14.591  1.00 11.47           C
ATOM     82  CA ALYS A  34      14.979   4.895  12.608  0.60 15.67           C
ATOM     83  CA BLYS A  34      14.977   5.207  12.331  0.40 16.38           C
ATOM     88  CB ALYS A  34      15.128   3.896  11.472  0.60 12.11           C
ATOM     89  CB BLYS A  34      15.132   4.867  10.839  0.40 13.86           C
ATOM    100  CA AASP A  35      15.328   8.688  12.044  0.60 16.75           C
ATOM    101  CA BASP A  35      15.474   8.937  12.096  0.40 17.43           C
ATOM    106  CB AASP A  35      14.367   9.683  11.373  0.60 16.80           C
ATOM    107  CB BASP A  35      14.491   9.903  11.431  0.40 18.66           C
ATOM    115  CA  ALA A  36      14.978   9.140  15.828  1.00 12.65           C
ATOM    118  CB  ALA A  36      13.768   8.688  16.639  1.00 13.00           C
ATOM    121  CA AGLU A  37      17.683   6.514  16.549  0.59 12.26           C
ATOM    122  CA BGLU A  37      17.999   6.949  16.048  0.41 12.47           C
ATOM    127  CB AGLU A  37      17.694   5.030  16.164  0.59 11.08           C
ATOM    128  CB BGLU A  37      18.148   5.560  15.440  0.41 12.53           C
ATOM    139  CA AASP A  38      19.923   8.463  14.202  0.59 17.31           C
ATOM    140  CA BASP A  38      19.789   9.284  13.597  0.41 19.32           C
ATOM    145  CB AASP A  38      19.615   8.739  12.727  0.59 24.06           C
ATOM    146  CB BASP A  38      19.279   9.626  12.201  0.41 26.28           C
ATOM    155  CA AGLN A  39      19.069  11.941  15.596  0.62 19.31           C
ATOM    156  CA BGLN A  39      18.919  12.283  15.753  0.38 20.06           C
ATOM    161  CB AGLN A  39      17.681  12.586  15.630  0.62 21.92           C
ATOM    162  CB BGLN A  39      17.560  12.987  15.681  0.38 21.79           C
ATOM    172  CA  LEU A  40      19.526  10.711  19.160  1.00 13.99           C
ATOM    175  CB  LEU A  40      18.478   9.858  19.880  1.00 13.56           C
sÝ  HEADER    ANTIBIOTIC                              26-JUL-06   2IZQ
ATOM    220  N  ATRP A  11      20.498  12.832  34.558  0.50  6.03           N
ATOM    221  CA ATRP A  11      21.094  12.032  35.602  0.50  5.24           C
ATOM    222  C  ATRP A  11      22.601  12.088  35.532  0.50  6.49           C
ATOM    223  O  ATRP A  11      23.174  12.012  34.439  0.50  7.24           O
ATOM    224  CB ATRP A  11      20.690  10.588  35.288  0.50  6.15           C
ATOM    225  CG ATRP A  11      19.252  10.269  35.140  0.50  5.91           C
ATOM    226  CD1ATRP A  11      18.524  10.178  33.986  0.50  7.01           C
ATOM    227  CD2ATRP A  11      18.371   9.973  36.236  0.50  5.97           C
ATOM    228  NE1ATRP A  11      17.252   9.820  34.321  0.50  9.83           N
ATOM    229  CE2ATRP A  11      17.132   9.708  35.665  0.50  7.37           C
ATOM    230  CE3ATRP A  11      18.543   9.924  37.615  0.50  6.38           C
ATOM    231  CZ2ATRP A  11      16.033   9.388  36.460  0.50  8.25           C
ATOM    232  CZ3ATRP A  11      17.448   9.586  38.402  0.50  8.04           C
ATOM    233  CH2ATRP A  11      16.240   9.320  37.784  0.50  8.66           C
ATOM    234  H  ATRP A  11      20.540  12.567  33.741  0.50  7.24           H
ATOM    235  HA ATRP A  11      20.771  12.306  36.485  0.50  6.28           H
ATOM    236  HB2ATRP A  11      21.135  10.330  34.466  0.50  7.38           H
ATOM    237  HB3ATRP A  11      21.045  10.023  35.993  0.50  7.38           H
ATOM    244  N  CPHE A  11      20.226  13.044  34.556  0.15  6.35           N
ATOM    245  CA CPHE A  11      20.950  12.135  35.430  0.15  5.92           C
ATOM    246  C  CPHE A  11      22.448  12.425  35.436  0.15  6.32           C
ATOM    247  O  CPHE A  11      22.961  12.790  34.373  0.15  6.08           O
ATOM    248  CB CPHE A  11      20.768  10.667  34.994  0.15  6.01           C
ATOM    249  CG CPHE A  11      19.330  10.235  34.845  0.15  7.05           C
ATOM    250  CD1CPHE A  11      18.847   9.877  33.587  0.15  8.78           C
ATOM    251  CD2CPHE A  11      18.533  10.174  35.995  0.15  7.70           C
ATOM    252  CE1CPHE A  11      17.551   9.436  33.473  0.15 10.43           C
ATOM    253  CE2CPHE A  11      17.230   9.752  35.854  0.15  9.27           C
ATOM    254  CZ CPHE A  11      16.789   9.396  34.594  0.15 10.98           C
ATOM    255  N  BTYR A  11      20.553  12.751  34.549  0.35  5.21           N
ATOM    256  CA BTYR A  11      21.106  11.838  35.524  0.35  5.51           C
ATOM    257  C  BTYR A  11      22.625  11.920  35.572  0.35  5.42           C
ATOM    258  O  BTYR A  11      23.299  11.781  34.538  0.35  5.30           O
ATOM    259  CB BTYR A  11      20.694  10.354  35.327  0.35  5.65           C
ATOM    260  CG BTYR A  11      19.188  10.175  35.507  0.35  7.68           C
ATOM    261  CD1BTYR A  11      18.548  10.134  34.268  0.35  9.45           C
ATOM    262  HB2CPHE A  11      21.221  10.536  34.146  0.15  7.21           H
ATOM    263  CD2BTYR A  11      18.463  10.012  36.681  0.35  9.08           C
ATOM    264  HB3CPHE A  11      21.198  10.093  35.647  0.15  7.21           H
ATOM    265  CE1BTYR A  11      17.195   9.960  34.223  0.35 10.76           C
ATOM    266  HD1CPHE A  11      19.394   9.937  32.837  0.15 10.53           H
ATOM    267  CE2BTYR A  11      17.100   9.826  36.693  0.35 11.29           C
ATOM    268  HD2CPHE A  11      18.873  10.410  36.828  0.15  9.24           H
ATOM    269  CZ BTYR A  11      16.546   9.812  35.432  0.35 11.90           C
ATOM    270  HE1CPHE A  11      17.206   9.172  32.650  0.15 12.52           H
ATOM    271  OH BTYR A  11      15.178   9.650  35.313  0.35 19.29           O
ATOM    272  HE2CPHE A  11      16.661   9.708  36.588  0.15 11.13           H
ATOM    273  HZ CPHE A  11      15.908   9.110  34.509  0.15 13.18           H
ATOM    274  H  BTYR A  11      20.634  12.539  33.720  0.35  6.25           H
ATOM    275  HA BTYR A  11      20.773  12.116  36.402  0.35  6.61           H
HETATM  283  N   DLE A  12      23.179  12.148  36.720  1.00  7.16           N
HETATM  284  CA  DLE A  12      24.625  12.084  36.893  1.00  8.29           C
HETATM  285  CB ADLE A  12      25.039  10.717  37.621  0.65  9.02           C
HETATM  286  CB BDLE A  12      25.209  10.741  37.032  0.35 12.70           C
HETATM  287  CG ADLE A  12      24.658   9.548  36.780  0.65 12.06           C
HETATM  288  CG BDLE A  12      25.429   9.378  36.572  0.35 15.20           C
HETATM  289  CD1ADLE A  12      25.656   9.433  35.596  0.65 16.84           C
HETATM  290  CD1BDLE A  12      26.192   8.543  37.585  0.35 16.77           C
HETATM  291  CD2ADLE A  12      24.682   8.288  37.613  0.65 15.34           C
HETATM  292  CD2BDLE A  12      24.065   8.724  36.277  0.35 16.96           C
HETATM  293  C   DLE A  12      25.029  13.153  37.899  1.00  8.11           C
HETATM  294  O   DLE A  12      24.343  13.330  38.907  1.00 11.62           O
HETATM  295  H  ADLE A  12      22.682  12.228  37.418  0.50  8.60           H
HETATM  296  HA ADLE A  12      25.095  12.196  36.041  0.50  9.94           H
HETATM  297  HB1ADLE A  12      25.997  10.708  37.775  0.65 10.83           H
HETATM  298  HB1BDLE A  12      26.135  11.000  37.162  0.35 15.23           H
HETATM  299  HB2ADLE A  12      24.595  10.659  38.481  0.65 10.83           H
HETATM  300  HB2BDLE A  12      24.897  10.541  37.929  0.35 15.23           H
HETATM  301  HG ADLE A  12      23.753   9.685  36.429  0.65 14.47           H
HETATM  302  HG BDLE A  12      25.946   9.409  35.740  0.35 18.24           H
c             sm  d     d t    f d  }  x` d d g D]R } t j d d  d t j d |   } |  |  d	 g d
 g g g k s+ t  q+ Wt j d d  d t j d   } |  |  d d d d d g d d d d d g g g k sá t  t j d d  d t j d   } |  |  d g d g g g k s)t  t j d d  d t j d   } |  |  g  k sbt  t j d d  d t j d   } |  |  d g g g k s¤t  t j d d  d t j d   } |  |  g  k sÝt  t j d d  d t j d   } |  |  d g g d d  d! d" g d# d$ d% d& g g g k s@t  t j d d  d t j d'   } |  |  d( g d	 g g g k st  t j d d  d t j d)   } |  |  d( g g g k sĘt  t j d d  d t j t   } |  |  d* g d+ g g d, d- d. d/ g d0 d1 d2 d3 g g d4 d5 d6 d7 d8 d9 g d: d; d< d= d> d? g g g k s`t  t j d d  d t j d@   } |  |  d, d- g d0 d1 g g d. d/ g d2 d3 g g g k sĂt  t j d d  d t j t   } |  |  dA dB dC dD dE dF dG dH dI dJ dK dL dM dN g dO dP dQ dR dS dT dU dV dW dX dY g dZ d[ d\ d] d^ d_ d` da db dc dd de g g df dg dh di g dj dk dl dm g g g k st  t j d d  d t j dn   } |  |  dB dE g dP dS g d[ d^ g g df dg g dj dk g g g k st  |  | do d  dB dE df dg g dP dS g d[ d^ dj dk g g g k sLt  t j d d  d t j dp   } |  | do d  d dq g d dr g d g ds g g g k sŹt  |  | do d  dt t	 d g d g d g ds g g dq g dr g g g k sút  t j d d  d t j du   } | j
   } | j do d  } | dv g d( g g d	 g d
 g g g k sit  d  S(w   Nc         S   sl   g  } x_ | D]W } g  } x; | D]3 } | j  g  | D] } t |  | j  ^ q3  q  W| j  |  q W| S(   N(   R   t   intRc   (   RŚ   t   list_of_occ_groupsR  t   groupst   group_namest   groupR˛   (    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   atom_serials}  s    1R  c            sO   |  j    } | j   } | j   } | j   }   | | j d | d |   S(   NRŐ  t   always_group_adjacent(   R|  RŚ   R   R  t   occupancy_groups_simple(   R  RŐ  Rß  R\   RŚ   R§   Ry   (   RŢ  (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   grouped_serials  s    Rŕ   R.   Rt  Ru  s   ATOM      0  S   SO4
ATOM      1  O1  SO4
ATOM      2  O2 %sSO4
ATOM      3  O2 BSO4
ATOM      4  O3  SO4
ATOM      5  O4  SO4
i   i   s  ATOM      6  S  ASO4     1       1.302   1.419   1.560  0.70 10.00           S
ATOM      7  O1 ASO4     1       1.497   1.295   0.118  0.70 10.00           O
ATOM      8  O2 ASO4     1       1.098   0.095   2.140  0.70 10.00           O
ATOM      9  O3 ASO4     1       2.481   2.037   2.159  0.70 10.00           O
ATOM     10  O4 ASO4     1       0.131   2.251   1.823  0.70 10.00           O
ATOM     11  S  BSO4     1       3.302   3.419   3.560  0.30 10.00           S
ATOM     12  O1 BSO4     1       3.497   3.295   2.118  0.30 10.00           O
ATOM     13  O2 BSO4     1       3.098   2.095   4.140  0.30 10.00           O
ATOM     14  O3 BSO4     1       4.481   4.037   4.159  0.30 10.00           O
ATOM     15  O4 BSO4     1       2.131   4.251   3.823  0.30 10.00           O
i   i   i   i	   i
   i   i   i   i   i   s   ATOM     16  O  AHOH     2       5.131   5.251   5.823  0.60 10.00           O
ATOM     17  O  BHOH     2       6.131   6.251   6.823  0.40 10.00           O
i   i   sí   ATOM     18  O   HOH     3       1.132   5.963   7.065  1.00 15.00           O
ATOM     19  H1  HOH     3       1.160   5.211   6.437  1.00 15.00           H
ATOM     20  H2  HOH     3       1.122   5.579   7.967  1.00 15.00           H
sO   ATOM     21  O   HOH     4       6.131   7.251   5.000  0.50 15.00           O
i   sO   ATOM     22  O   HOH     5       0.131   7.251   5.000  0.00 15.00           O
sÇ  ATOM     23  S   SO4     6       6.302   6.419   1.560  0.50 10.00           S
ATOM     24  O1 ASO4     6       6.497   6.295   0.118  0.60 10.00           O
ATOM     25  O2 ASO4     6       6.098   5.095   2.140  0.60 10.00           O
ATOM     26  O3 ASO4     6       7.481   7.037   2.159  0.60 10.00           O
ATOM     27  O4 ASO4     6       5.131   7.251   1.823  0.60 10.00           O
ATOM     28  O1 BSO4     6       8.497   8.295   2.118  0.40 10.00           O
ATOM     29  O2 BSO4     6       8.098   7.095   4.140  0.40 10.00           O
ATOM     30  O3 BSO4     6       9.481   9.037   4.159  0.40 10.00           O
ATOM     31  O4 BSO4     6       7.131   9.251   3.823  0.40 10.00           O
i   i   i   i   i   i   i   i   i   sÚ  ATOM      1  O  AHOH     1                                                   O
ATOM      2  O  BHOH     1                                                   O
ATOM      3  H1 AHOH     1                                                   H
ATOM      4  H1 BHOH     1                                                   H
ATOM      5  H2 AHOH     1                                                   H
ATOM      6  H2 BHOH     1                                                   H
i   sí   ATOM      1  O   HOH     1                              0.60                 O
ATOM      2  H1  HOH     1                              0.60                 H
ATOM      3  H2  HOH     1                              0.60                 H
i?   i@   iR   iX   id   ij   iS   iY   ie   ik   iy   i   i   i   i   iĄ   iz   i   i   i   i   i˘   sx  ATOM     82  CA AMOD A  34      14.979   4.895  12.608  0.60 15.67           C
ATOM     83  CA BMOD A  34      14.977   5.207  12.331  0.40 16.38           C
ATOM     88  CB AMOD A  34      15.128   3.896  11.472  0.60 12.11           C
ATOM     89  CB BMOD A  34      15.132   4.867  10.839  0.40 13.86           C
ATOM    100  CA AASP A  35      15.328   8.688  12.044  0.60 16.75           C
ATOM    101  CA BASP A  35      15.474   8.937  12.096  0.40 17.43           C
ATOM    106  CB AASP A  35      14.367   9.683  11.373  0.60 16.80           C
ATOM    107  CB BASP A  35      14.491   9.903  11.431  0.40 18.66           C
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   i"  i$  s  ATOM    221  CA ATRP A  11      21.094  12.032  35.602  0.50  5.24           C
ATOM    224  CB ATRP A  11      20.690  10.588  35.288  0.50  6.15           C
ATOM    245  CA CPHE A  11      20.950  12.135  35.430  0.15  5.92           C
ATOM    248  CB CPHE A  11      20.768  10.667  34.994  0.15  6.01           C
ATOM    256  CA BTYR A  11      21.106  11.838  35.524  0.35  5.51           C
ATOM    259  CB BTYR A  11      20.694  10.354  35.327  0.35  5.65           C
HETATM  285  CB ADLE A  12      25.039  10.717  37.621  0.65  9.02           C
HETATM  286  CB BDLE A  12      25.209  10.741  37.032  0.35 12.70           C
HETATM  287  CG ADLE A  12      24.658   9.548  36.780  0.65 12.06           C
HETATM  288  CG BDLE A  12      25.429   9.378  36.572  0.35 15.20           C
RŐ  s*  ATOM      0  N   SER A  41       4.113   5.460   7.786  1.00  5.58           N
ATOM      6  N  ALYS A  42       6.572   6.690   8.417  0.30  4.64           N
ATOM     15  N  BLYS A  42       6.744   6.602   8.454  0.20  5.86           N
ATOM     24  N  CLYS A  42       6.661   6.659   8.442  0.10  5.63           N
ATOM     33  N  DLYS A  42       6.664   6.660   8.439  0.40  4.72           N
ATOM     42  N  AGLU A  43       6.158   9.341   9.210  0.60  4.32           N
ATOM     51  N  BGLU A  43       6.272   9.302   9.294  0.40  5.00           N

i*   i3   i!   Rß  s<  ATOM      1  O  AHOH A   1                                                   O
ATOM      2  O  BHOH A   1                                                   O
ATOM      3  O  AHOH B   1                                                   O
ATOM      4  O  BHOH B   1                                                   O
i    (   Ru   R   Rz  Rz   R   R{  R7   t   pdb_1nym_60t   pdb_2izq_220R   R|  Rŕ  (   Rá  t   altloc_o2_aR  R\   t   list_of_groups(    (   RŢ  sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt    exercise_occupancy_groups_simple|  s    		+?'!
B'!!	!<		$!	-$*0	B9	0?		c         C   s  t    } xđ |  D]č } | d It | j  IJxĆ | j   D]¸ } | j   t j d d d | j  k so t  | d It | j	  It | j  It | j
  It | j  It | j  IJx- | j   D] } | d It | j  IJqŃ Wq< Wq W| j   S(   Ns
   conformer:t   widthi   R˙   s
     residue:s	       atom:(   R   R   RŞ   Rľ  Ră   R   t
   hy36decodeRĎ   R7   RŤ   RĐ   RŮ  RŃ   t   is_pure_main_confRŚ   R^   R$  (   t
   conformersR˙   R[  R\  R]   (    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   conformers_as_str&  s    	-
%c          C   sd  t  t j j   j    d k s' t  t  t j j   j    d k sN t  d   }  |  d d  |  d d  |  d d  x) d	 d
 g D] } |  d | d |  q W|  d d  |  d d  |  d d  |  d d  |  d d  |  d d  |  d d  |  d d  |  d d  |  d d   |  t d!  |  t d"  |  d# d$  |  d% d&  d  S('   Ni    c   
      S   sń  t  j d d  d t j |    } | j   j   } | j   } t |  } t	 |  d k rp t
 j j |  n t | |  s t  xd| j   D]V} xV | j   D]H } | j d t  j   | j   k sÖ t  | j   d k sŚ t  qŚ W| j   } x | j   D] } | j   d  k s)t  | j   d k sAt  y | j d t  Wn/ t k
 r}	 t t |	  d  st  qXt  qW| j   d k r | j   } t |  } t	 |  d k rét | |  sćt  qéq q Wd  S(   NRt  Ru  i    R°   i   s   conformer has no parent chain(   R   Rz  Rz   R   R{  R|  R  Rę  Rë  Ré   R   R~  R  R   R7   Rę   RJ   R   R   t   residues_sizeR   R`   Ra   R   Rč   (
   R  R  R  Ry   Rę  R˙   RÇ   R[  Rô   RY   (    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyR=   :  s2    !* 
s   ATOM         N   RES     1I
s?   conformer: ""
  residue: "RES" "   1" "I" 0 1
    atom: " N  "
s   ATOM         N  ARES     1I
s@   conformer: "A"
  residue: "RES" "   1" "I" 0 0
    atom: " N  "
s8   ATOM         N1  RES     1I
ATOM         N2 ARES     1I
sQ   conformer: "A"
  residue: "RES" "   1" "I" 0 0
    atom: " N1 "
    atom: " N2 "
Rŕ   R.   sU   ATOM         S   SO4     1I
ATOM         O1 %sSO4     1I
ATOM         O1 BSO4     1I
sŁ   conformer: "%s"
  residue: "SO4" "   1" "I" 0 0
    atom: " S  "
    atom: " O1 "
conformer: "B"
  residue: "SO4" "   1" "I" 0 0
    atom: " S  "
    atom: " O1 "
s˘   ATOM         S  ASO4     1
ATOM         O1 ASO4     1
ATOM         O2 ASO4     1
ATOM         S  BSO4     1
ATOM         O1 BSO4     1
ATOM         O2 BSO4     1
sÄ   conformer: "A"
  residue: "SO4" "   1" " " 0 0
    atom: " S  "
    atom: " O1 "
    atom: " O2 "
conformer: "B"
  residue: "SO4" "   1" " " 0 0
    atom: " S  "
    atom: " O1 "
    atom: " O2 "
s˝   ATOM         S  ASO4     1
ATOM         O1 ASO4     1
ATOM         O2 ASO4     1
ATOM         S  BSO4     1
ATOM         O1 BSO4     1
ATOM         O2 BSO4     1
ATOM         O   HOH     2
s&  conformer: "A"
  residue: "SO4" "   1" " " 0 0
    atom: " S  "
    atom: " O1 "
    atom: " O2 "
  residue: "HOH" "   2" " " 1 1
    atom: " O  "
conformer: "B"
  residue: "SO4" "   1" " " 0 0
    atom: " S  "
    atom: " O1 "
    atom: " O2 "
  residue: "HOH" "   2" " " 1 1
    atom: " O  "
s   ATOM         S   SO4     6
ATOM         O1 ASO4     6
ATOM         O2 ASO4     6
ATOM         O3 BSO4     6
ATOM         O4 BSO4     6
sÄ   conformer: "A"
  residue: "SO4" "   6" " " 0 0
    atom: " S  "
    atom: " O1 "
    atom: " O2 "
conformer: "B"
  residue: "SO4" "   6" " " 0 0
    atom: " S  "
    atom: " O3 "
    atom: " O4 "
sp   ATOM         N1  R01     1I
ATOM         N2  R01     1I
ATOM         N1  R02     1I
ATOM         N2  R02     1I
s   conformer: ""
  residue: "R01" "   1" "I" 0 1
    atom: " N1 "
    atom: " N2 "
  residue: "R02" "   1" "I" 1 1
    atom: " N1 "
    atom: " N2 "
sp   ATOM         N1 AR01     1I
ATOM         N2  R01     1I
ATOM         N1  R02     1I
ATOM         N2  R02     1I
s   conformer: "A"
  residue: "R01" "   1" "I" 0 0
    atom: " N2 "
    atom: " N1 "
  residue: "R02" "   1" "I" 1 1
    atom: " N1 "
    atom: " N2 "
sp   ATOM         N1 AR01     1I
ATOM         N2  R01     1I
ATOM         N1 AR02     1I
ATOM         N2  R02     1I
s   conformer: "A"
  residue: "R01" "   1" "I" 0 0
    atom: " N2 "
    atom: " N1 "
  residue: "R02" "   1" "I" 1 0
    atom: " N2 "
    atom: " N1 "
sp   ATOM         N1 AR01     1I
ATOM         N2  R01     1I
ATOM         N1 BR02     1I
ATOM         N2  R02     1I
s  conformer: "A"
  residue: "R01" "   1" "I" 0 0
    atom: " N2 "
    atom: " N1 "
  residue: "R02" "   1" "I" 1 1
    atom: " N2 "
conformer: "B"
  residue: "R01" "   1" "I" 0 1
    atom: " N2 "
  residue: "R02" "   1" "I" 1 0
    atom: " N2 "
    atom: " N1 "
sp   ATOM         N1 AR01     1I
ATOM         N2 BR01     1I
ATOM         N1  R02     1I
ATOM         N2  R02     1I
s  conformer: "A"
  residue: "R01" "   1" "I" 0 0
    atom: " N1 "
  residue: "R02" "   1" "I" 1 1
    atom: " N1 "
    atom: " N2 "
conformer: "B"
  residue: "R01" "   1" "I" 0 0
    atom: " N2 "
  residue: "R02" "   1" "I" 1 1
    atom: " N1 "
    atom: " N2 "
sp   ATOM         N1 AR01     1I
ATOM         N2 BR01     1I
ATOM         N1 CR02     1I
ATOM         N2  R02     1I
s3  conformer: "A"
  residue: "R01" "   1" "I" 0 0
    atom: " N1 "
  residue: "R02" "   1" "I" 1 1
    atom: " N2 "
conformer: "B"
  residue: "R01" "   1" "I" 0 0
    atom: " N2 "
  residue: "R02" "   1" "I" 1 1
    atom: " N2 "
conformer: "C"
  residue: "R02" "   1" "I" 1 0
    atom: " N2 "
    atom: " N1 "
sp   ATOM         N1 AR01     1I
ATOM         N2 BR01     1I
ATOM         N1 CR02     1I
ATOM         N2 DR02     1I
s   conformer: "A"
  residue: "R01" "   1" "I" 0 0
    atom: " N1 "
conformer: "B"
  residue: "R01" "   1" "I" 0 0
    atom: " N2 "
conformer: "C"
  residue: "R02" "   1" "I" 0 0
    atom: " N1 "
conformer: "D"
  residue: "R02" "   1" "I" 0 0
    atom: " N2 "
sÂ  conformer: "A"
  residue: "LYS" "  32" " " 0 0
    atom: " CA "
    atom: " CB "
  residue: "VAL" "  33" " " 1 1
    atom: " CA "
    atom: " CB "
  residue: "LYS" "  34" " " 1 0
    atom: " CA "
    atom: " CB "
  residue: "ASP" "  35" " " 1 0
    atom: " CA "
    atom: " CB "
  residue: "ALA" "  36" " " 1 1
    atom: " CA "
    atom: " CB "
  residue: "GLU" "  37" " " 1 0
    atom: " CA "
    atom: " CB "
  residue: "ASP" "  38" " " 1 0
    atom: " CA "
    atom: " CB "
  residue: "GLN" "  39" " " 1 0
    atom: " CA "
    atom: " CB "
  residue: "LEU" "  40" " " 1 1
    atom: " CA "
    atom: " CB "
conformer: "B"
  residue: "LYS" "  32" " " 0 0
    atom: " CA "
    atom: " CB "
  residue: "VAL" "  33" " " 1 1
    atom: " CA "
    atom: " CB "
  residue: "LYS" "  34" " " 1 0
    atom: " CA "
    atom: " CB "
  residue: "ASP" "  35" " " 1 0
    atom: " CA "
    atom: " CB "
  residue: "ALA" "  36" " " 1 1
    atom: " CA "
    atom: " CB "
  residue: "GLU" "  37" " " 1 0
    atom: " CA "
    atom: " CB "
  residue: "ASP" "  38" " " 1 0
    atom: " CA "
    atom: " CB "
  residue: "GLN" "  39" " " 1 0
    atom: " CA "
    atom: " CB "
  residue: "LEU" "  40" " " 1 1
    atom: " CA "
    atom: " CB "
s  conformer: "A"
  residue: "TRP" "  11" " " 0 0
    atom: " N  "
    atom: " CA "
    atom: " C  "
    atom: " O  "
    atom: " CB "
    atom: " CG "
    atom: " CD1"
    atom: " CD2"
    atom: " NE1"
    atom: " CE2"
    atom: " CE3"
    atom: " CZ2"
    atom: " CZ3"
    atom: " CH2"
    atom: " H  "
    atom: " HA "
    atom: " HB2"
    atom: " HB3"
  residue: "DLE" "  12" " " 1 0
    atom: " N  "
    atom: " CA "
    atom: " C  "
    atom: " O  "
    atom: " CB "
    atom: " CG "
    atom: " CD1"
    atom: " CD2"
    atom: " H  "
    atom: " HA "
    atom: " HB1"
    atom: " HB2"
    atom: " HG "
conformer: "C"
  residue: "PHE" "  11" " " 0 0
    atom: " N  "
    atom: " CA "
    atom: " C  "
    atom: " O  "
    atom: " CB "
    atom: " CG "
    atom: " CD1"
    atom: " CD2"
    atom: " CE1"
    atom: " CE2"
    atom: " CZ "
    atom: " HB2"
    atom: " HB3"
    atom: " HD1"
    atom: " HD2"
    atom: " HE1"
    atom: " HE2"
    atom: " HZ "
  residue: "DLE" "  12" " " 1 1
    atom: " N  "
    atom: " CA "
    atom: " C  "
    atom: " O  "
conformer: "B"
  residue: "TYR" "  11" " " 0 0
    atom: " N  "
    atom: " CA "
    atom: " C  "
    atom: " O  "
    atom: " CB "
    atom: " CG "
    atom: " CD1"
    atom: " CD2"
    atom: " CE1"
    atom: " CE2"
    atom: " CZ "
    atom: " OH "
    atom: " H  "
    atom: " HA "
  residue: "DLE" "  12" " " 1 0
    atom: " N  "
    atom: " CA "
    atom: " C  "
    atom: " O  "
    atom: " CB "
    atom: " CG "
    atom: " CD1"
    atom: " CD2"
    atom: " HB1"
    atom: " HB2"
    atom: " HG "
sŃ  HEADER    HORMONE                                 01-MAY-98   1ZEH
HETATM  878  C1 ACRS     5      12.880  14.021   1.197  0.50 33.23           C
HETATM  879  C1 BCRS     5      12.880  14.007   1.210  0.50 34.27           C
HETATM  880  C2 ACRS     5      12.755  14.853   0.093  0.50 33.88           C
HETATM  881  C2 BCRS     5      13.935  13.115   1.278  0.50 34.25           C
HETATM  882  C3 ACRS     5      13.668  14.754  -0.945  0.50 33.82           C
HETATM  883  C3 BCRS     5      14.848  13.014   0.238  0.50 34.30           C
HETATM  884  C4 ACRS     5      14.707  13.834  -0.888  0.50 33.46           C
HETATM  885  C4 BCRS     5      14.695  13.821  -0.884  0.50 34.40           C
HETATM  886  C5 ACRS     5      14.835  13.001   0.219  0.50 33.30           C
HETATM  887  C5 BCRS     5      13.635  14.719  -0.957  0.50 34.78           C
HETATM  888  C6 ACRS     5      13.916  13.105   1.252  0.50 33.26           C
HETATM  889  C6 BCRS     5      12.731  14.813   0.090  0.50 34.86           C
HETATM  890  C7 ACRS     5      13.552  15.660  -2.169  0.50 33.90           C
HETATM  891  C7 BCRS     5      16.001  12.014   0.353  0.50 34.77           C
HETATM  892  O1 ACRS     5      11.973  14.116   2.233  0.50 34.24           O
HETATM  893  O1 BCRS     5      11.973  14.107   2.248  0.50 35.28           O
HETATM  894  O   HOH     5      -0.924  19.122  -8.629  1.00 11.73           O
HETATM  895  O   HOH     6     -19.752  11.918   3.524  1.00 13.44           O
s2  conformer: "A"
  residue: "CRS" "   5" " " 0 0
    atom: " C1 "
    atom: " C2 "
    atom: " C3 "
    atom: " C4 "
    atom: " C5 "
    atom: " C6 "
    atom: " C7 "
    atom: " O1 "
  residue: "HOH" "   5" " " 1 1
    atom: " O  "
  residue: "HOH" "   6" " " 1 1
    atom: " O  "
conformer: "B"
  residue: "CRS" "   5" " " 0 0
    atom: " C1 "
    atom: " C2 "
    atom: " C3 "
    atom: " C4 "
    atom: " C5 "
    atom: " C6 "
    atom: " C7 "
    atom: " O1 "
  residue: "HOH" "   5" " " 1 1
    atom: " O  "
  residue: "HOH" "   6" " " 1 1
    atom: " O  "
sÎ  HEADER    HYDROLASE                               22-NOV-07   2VHL
HETATM 6362  O   HOH B2048      47.616  10.724 150.212  1.00 46.48           O
HETATM 6363  O  AHOH B2049      46.408  16.672 146.066  0.50 12.81           O
HETATM 6364  O   HOH B2050      29.343  12.806 185.898  1.00 35.57           O
HETATM 6365  O  BHOH B2049      43.786  12.615 147.734  0.50 28.43           O
HETATM 6366  O   HOH B2052      35.068  19.167 155.349  1.00 15.97           O
sŚ  conformer: "A"
  residue: "HOH" "2048" " " 0 1
    atom: " O  "
  residue: "HOH" "2049" " " 1 0
    atom: " O  "
  residue: "HOH" "2050" " " 1 1
    atom: " O  "
  residue: "HOH" "2052" " " 1 1
    atom: " O  "
conformer: "B"
  residue: "HOH" "2048" " " 0 1
    atom: " O  "
  residue: "HOH" "2049" " " 1 0
    atom: " O  "
  residue: "HOH" "2050" " " 1 1
    atom: " O  "
  residue: "HOH" "2052" " " 1 1
    atom: " O  "
(	   Ré   R   R\   Ry   Rę  R7   Rş   Râ  Ră  (   R=   Rä  (    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_conformers6  sp    ''		9Xc          C   s  t  j d d  d t j d   }  |  j   } | j   } | j   d k sQ t  | j	 d d   d  k so t  | j	 d d  j
 d k s t  | j	 d d  d  k sŽ t  | j	 d d  j
 d k sĎ t  y | j d	 t  Wn/ t k
 r} t t |  d
  st  n Xt  d  S(   NRt  Ru  s6   ATOM      1  N   MET A   1
ATOM      2  CA  MET A   1
s      1 R^   s    N  s   N   s    CA R°   s   residue has no parent conformer(   R   Rz  Rz   R   R{  R|  RW  Rî   R7   t   find_atom_byR^   RJ   R   R`   R   Ra   R   (   R  R+   Rś  RY   (    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_residue$  s    !! c          C   s  t  j d d  d t j d   }  |  j   j   } | d j | d  sP t  | d j | d  sm t  | d j	   j d | d j	    s t  | d j	   j
   d j d | d j	   j
   d  sŮ t  xś | d D]Ş } | d j d |  st  | j d | d  s$t  | d j	   j d | j	    sMt  | d j	   j
   d j d | d j	   j
   d  sä t  qä Wd  S(   NRt  Ru  s÷  MODEL        0
ATOM      1  N   MET A   1
ATOM      2  CA  MET A   1
ATOM      3  N   GLY A   2
ATOM      4  CA  GLY A   2
ENDMDL
MODEL        1
ATOM      1  N   MET A   1
ATOM      2  CA  MET A   1
ATOM      3  N   GLY A   2
ATOM      4  CA  GLY A   2
ENDMDL
MODEL        2
ATOM      1  N   MET A   1
HETATM    2  CA  MET A   1
ATOM      3  N   GLY A   2
ATOM      4  CA  GLY A   2
ENDMDL
MODEL        3
ATOM      1  N   MET A   1
ATOM     12  CA  MET A   1
ATOM      3  N   GLY A   2
ATOM      4  CA  GLY A   2
ENDMDL
MODEL        4
ATOM      1  N   MET A   1
ATOM      2  CA  MET A   1
ATOM      3  NX  GLY A   2
ATOM      4  CA  GLY A   2
ENDMDL
MODEL        5
ATOM      1  N   MET A   1                                                   E
ATOM      2  CA  MET A   1
ATOM      3  N   GLY A   2
ATOM      4  CA  GLY A   2
ENDMDL
MODEL        6
ATOM      1  N   MET A   1
ATOM      2  CA  MET A   1
ATOM      3  N   GLY A   2                                                    X
ATOM      4  CA  GLY A   2
ENDMDL
i    i   RC   i   (   R   Rz  Rz   R   R{  R|  RE  t   is_identical_hierarchyR7   R  Rę   (   R  RE  RC   (    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_is_identical_hierarchy6  s     +#c       
   C   s  d }  t  j d d  d t j |  d   } | j   } | j d |  sO t  | j d | j    sm t  | j	   d j d | j	   d  s t  | j	   d j
   j d | j	   d j
    sŃ t  | j	   d j
   j   d j d | j	   d j
   j   d  st  x[d d g D]M\ } } t  j d d  d t j |  | | | f   } | j   } | j d |  st  | j d |  s˘t  | j	   d j d | j	   d  | d k k sŰt  | j	   d j
   j d | j	   d j
    | d k k st  | j	   d j
   j   d j d | j	   d j
   j   d  | d k k s*t  q*Wd  S(   Ns  MODEL        0
ATOM      1  %s  MET A   1
ATOM      2  CA AMET A   1
ATOM      3  N   GLY A   2
ATOM      4  CA AGLY A   2
ENDMDL
MODEL        1
ATOM      1  N   MET A   1
ATOM      2  CA AMET A   1
ATOM      3  N   %3s A   2
ATOM      4  CA A%3s A   2
ENDMDL
Rt  Ru  s   N RQ  RC   i    i   s   C t   ALA(   s   N s   GLYs   GLY(   s   C s   GLY(   s   N Rň  (   R   Rz  Rz   R   R{  R|  t   is_similar_hierarchyR7   RF  RE  R  Rę   (   t   s0t   i1t   h1t   ant   rnt   i2t   h2(    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_is_similar_hierarchyr  s0    #)&+#c          C   sú
  t  j d d  d t j d   }  |  j   } t | j    d d d d d d	 d
 g k s` t  t | j	    d d d d d d d g k s t  t | j
    d d d d d d d g k sĆ t  | j   } t | d d d d d d  dĄ g  sü t  | j   } t | d˘ dŁ d¤ dĽ dŚ d§ d¨ g  s2t  | j   } t | d, d- d. d, d, d/ d, g  sht  | j   } t | d( d0 d( d( d( d( d( g  st  | j   } t | d1 d2 d3 d4 d5 d6 d7 g  sÔt  | j   } t | d( d8 d( d( d( d( d( g  s
t  | j   } t | dŠ dŞ dŤ dŹ d­ dŽ dŻ g  s@t  d° dą d˛ dł d´ dľ dś g }	 t  j j j   r| j   }
 t |
 |	  st  n  | j   j d(  sŹt  | j   j d(  sÇt  t | j    dL dM g k sët  t | j    dN dO dO dP dQ dR dP g k st  | j dS t  j | j    sEt  t | j dS t   dT dU dU dV dW dR dV g k s~t  | j   t | j    t  dX  k sŹt  t t  j j! | dY | dM g  j    dY dM g k sęt  t | j"    d( g dX k st  x' t# |  D] \ } } | dY | _$ qWt | j"    dY dZ dL dM dX d[ d\ g k slt  d9 | dY _$ y | j"   Wn/ t% k
 r¸} t& t' |  d]  sżt  n Xt(  | j) d^ | dˇ  | k sát  t | j   d¸ dš dş dť dź d˝ dž g  st  | j* dv | dż  | k s3t  t | j   dŔ dÁ dÂ dĂ dÄ dĹ dĆ g  sct  | j+ dz | d{  | k st  t | j   d| d} d~ d| d| d d| g  sľt  | j, d | dY  | k s×t  t | j   dY d dY dY dY dY dY g  st  | j- d | d  | k s)t  t | j   d d d d d d d g  sYt  | j. d | dL  | k s{t  t | j   dL d dL dL dL dL dL g  sŤt  | j/ d t j0 |	   | k sŇt  t | j   |	  sít  t  j j j   rP| j1 d |  | k st  t | j   dÇ dČ dÉ dĘ dË dĚ dÍ g  sPt  n  t j2 d( d d d( d( d( d( g  } t j2 d( d d d d( d( d( g  } | j3 d |  | k sśt  | j4 d |  | k sÔt  t | j   |  sďt  t | j   |  s
t  |  j5 d t  } xĘ t6 d`  D]ź } | j7   } t8 |  j9   } t  j j j   rt| d k st  n | d k st  | j: d d  t& t; d  j<   |  s¸t  t  j d d  d t j |   j5 d t  } q)W| j   j= d t j> d` dL dY d( g   } g  | D] } | j? ^ q	d d d d g k sJ	t  | j= d t j> dY d( d_ d` g  d t  } g  | D] } | j? ^ q~	d d d d g k sŤ	t  | j= d t j> dY d( d_ d` g  d t  } g  | D] } | j? ^ qß	d d d d g k s
t  | j= t j@ t t t t g   } g  | D] } | j? ^ q7
d g k s[
t  g  | jA   D] } tB | jC  ^ qh
d` dY dZ dL dM dX g k sĄ
t  | j   j   | jA   jD   d( k sĎ
t  t  j jE   jA   jD   d( k sö
t  d  S(Î   NRt  Ru  sX  ATOM      1  N   GLN A   3      35.299  11.075  19.070  1.00 36.89           N
ATOM      2  CA  GLN A   3      34.482   9.927  18.794  0.63 37.88           C
SIGATM    2  CA  GLN A   3       1.200   2.300   3.400  0.04  0.05           C
ANISOU    2  CA  GLN A   3     7794   3221   3376  -1227   1064   2601       C
ATOM      3  Q   GLN A   3      35.130   8.880  17.864  0.84 37.52           C
ANISOU    3  Q   GLN A   3     7875   3041   3340   -981    727   2663       C
SIGUIJ    3  Q   GLN A   3       75     41     40     -1      7     63       C
ATOM      4  O   GLN A   3      34.548   7.819  17.724  1.00 38.54      STUV
ATOM      5 1CB AGLN A   3      32.979  10.223  18.469  1.00 37.80          X
HETATM    6 CA  AION B   1      32.360  11.092  17.308  0.92 35.96          CA2+
HETATM    7 CA   ION B   2      30.822  10.665  17.190  1.00 36.87
s       1s       2s       3s       4s       5s       6s       7s    N  s    CA s    Q  s    O  s   1CB s   CA  s       t   STUVgŔĘĄEŚA@gfffff&&@gR¸ë3@gV-˛=A@g´ČvžÚ#@g%CË2@gq=
×ŁA@gĂő(\Â!@gwž/Ý1@g /Ý$FA@g-˛ď§F@gÓMbXš1@gZd;ßO}@@gV-r$@gňŇMbx2@gŽGáz.@@gÉvž/&@g+ŮN1@gßOnŇ>@gŽGázT%@gq=
×Ł01@i    g333333ó?gffffff@g333333@g      đ?g)\Âő(ä?gázŽGáę?gq=
×Łpí?g{ŽGáz¤?gR¸ëqB@gq=
×ŁđB@gĂő(\ÂB@gëQ¸EC@gfffffćB@g{ŽGáúA@gÂő(\oB@gŠ?i˙˙˙˙gŠĐDŘđč?gŠQIÔ?g^KČ=Ő?g~8gDiżżgĚ]KČ=ť?gh"lxzĽĐ?g333333é?gŤ­Ř_vÓ?gÇK7A`Ő?g[ÓźăšżgąPkw˛?gě/ť'Ń?g¸ëQ¸~?g	^)Ëp?güŠńŇMbp?g-Cëâ6żgÇş¸đF?g Ňo_Îy?i   i   s    Ns    Cs     s   X t   CAR4   R3   Rą  R   RR   i   i   i   i   i	   s:   atom.tmp less than zero: cannot convert to unsigned value.R   i   i   gŔĘĄE&B@gfffff&*@gR¸ë6@gV-˛˝A@g´ČvžÚ'@g%CË5@gq=
×ŁB@gĂő(\Â%@gwž/Ý4@g /Ý$ĆA@gŮÎ÷SŁ#@gÓMbXš4@gZd;ßOý@@gV-r(@gňŇMbx5@gŽGázŽ@@gÉvž/*@g+ŮN4@gßOnŇ?@gŽGázT)@gq=
×Ł04@R   g@g333333@g@R   gŽGázŽó?g×Łp=
×@gĂő(\Âý?gÂő(\ @g333333@R   gR¸ëQ@R    i
   gR¸ëqG@gq=
×ŁđG@gĂő(\ÂG@gëQ¸EH@gfffffćG@g{ŽGáúF@gÂő(\oG@R!   g333333@R"   R&   gš?gÉ?g333333Ó?R#   R$   R  t    c4089359af431bb2962d6a8e457dd86ft    a1dd6605ed08b56862b9d7ae6b9a547bt	   file_names   tmp_tst_hierarchy.pdbRĐ  t   reverse(   gŔĘĄEŚA@gfffff&&@gR¸ë3@(   gV-˛=A@g´ČvžÚ#@g%CË2@(   gq=
×ŁA@gĂő(\Â!@gwž/Ý1@(   g /Ý$FA@g-˛ď§F@gÓMbXš1@(   gZd;ßO}@@gV-r$@gňŇMbx2@(   gŽGáz.@@gÉvž/&@g+ŮN1@(   gßOnŇ>@gŽGázT%@gq=
×Ł01@(   i    i    i    (   g333333ó?gffffff@g333333@(   i    i    i    (   i    i    i    (   i    i    i    (   i    i    i    (   i    i    i    (   i˙˙˙˙i˙˙˙˙i˙˙˙˙i˙˙˙˙i˙˙˙˙i˙˙˙˙(   gŠĐDŘđč?gŠQIÔ?g^KČ=Ő?g~8gDiżżgĚ]KČ=ť?gh"lxzĽĐ?(   g333333é?gŤ­Ř_vÓ?gÇK7A`Ő?g[ÓźăšżgąPkw˛?gě/ť'Ń?(   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˙˙˙˙(   g¸ëQ¸~?g	^)Ëp?güŠńŇMbp?g-Cëâ6żgÇş¸đF?g Ňo_Îy?(   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   (   gŔĘĄE&B@gfffff&*@gR¸ë6@(   gV-˛˝A@g´ČvžÚ'@g%CË5@(   gq=
×ŁB@gĂő(\Â%@gwž/Ý4@(   g /Ý$ĆA@gŮÎ÷SŁ#@gÓMbXš4@(   gZd;ßOý@@gV-r(@gňŇMbx5@(   gŽGázŽ@@gÉvž/*@g+ŮN4@(   gßOnŇ?@gŽGázT)@gq=
×Ł04@(   i   i   i   (   i   i   i   (   g@g333333@g@(   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i˙˙˙˙i˙˙˙˙i˙˙˙˙i˙˙˙˙i˙˙˙˙i˙˙˙˙(   gŠĐDŘđč?gŠQIÔ?g^KČ=Ő?g~8gDiżżgĚ]KČ=ť?gh"lxzĽĐ?(   g333333é?gŤ­Ř_vÓ?gÇK7A`Ő?g[ÓźăšżgąPkw˛?gě/ť'Ń?(   i˙˙˙˙i˙˙˙˙i˙˙˙˙i˙˙˙˙i˙˙˙˙i˙˙˙˙(   i˙˙˙˙i˙˙˙˙i˙˙˙˙i˙˙˙˙i˙˙˙˙i˙˙˙˙(   i˙˙˙˙i˙˙˙˙i˙˙˙˙i˙˙˙˙i˙˙˙˙i˙˙˙˙(   i˙˙˙˙i˙˙˙˙i˙˙˙˙i˙˙˙˙i˙˙˙˙i˙˙˙˙(F   R   Rz  Rz   R   R{  RŚ   Rň   t   extract_serialR7   t   extract_namet   extract_segidt   extract_xyzR   t   extract_sigxyzt   extract_occt   extract_sigocct	   extract_bt   extract_sigbt   extract_uijR\   R]   Ro   t   extract_siguijt
   extract_fpR   t   extract_fdpt   extract_heterot   extract_elementR   Ru   R   R  t   rangeR   t   extract_tmp_as_size_tRť   Rx   R`   R   Ra   R   R   R   R   R   R   R   R   t   sym_mat3_doubleR   t   doubleR   R   R|  RÁ   R!  R   t	   hexdigestt   write_pdb_filet   opent   readR  R  R^   t   boolt   atoms_with_i_seq_mismatchRŮ  Rc   Rż   R  (   R  RŚ   Re   Rf   Rg   Rh   Ri   Rj   Rk   t   expected_siguijRp   R˛   R]   RY   R#   R$   R+   R˙   R,   R<   (    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_atoms  s2   $$$$$$$	$3'9
$&% 3 """$"$"$"$'$$"	-4-4-4$+%!c   
      C   s%  d | k r$ |  j    j |   } n |  j |   } | d  k	 rT | j | d  } n  | d  k rs t j j |  n t | |  s t  |  j	 d d |  t
 d  j   } | d  k	 rĎ | j | d  } n  t | |  sĺ t  t j d d  } | j   j   |  j   k st  t |  } x* d d g D] } | | k r4| | =q4q4W| j	 d d |  | j |   } t t
 d  j   |  st  t j d d  }	 |	 j   j   | j   j   k sÔt  | j   |	 j   k sňt  d | k r!| j   d | d k s!t  n  | S(	   Nt   atoms_reset_serial_first_valueR   R   s   tmp_tst_hierarchy.pdbR  s   tmp2.pdbt   cryst1_zs   %4s(   RF  R!  Rz   t   replaceR   R~  R  R   R7   R  R  R  R   Rz  RŚ   Rż   Rź   t   dictt   extract_cryst1_z_columns(
   R\   t   kwargst   trailingR  R  t   pdb_fileR  t   discardt   pdb_str2t   pdb_inp2(    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt	   check_wpfD  s:      $ "*	#c          C   s  t  j d d  d t j d   }  |  j   } x­ | j   | j   | j   | g D] } x~ d d d g D]m } g  | j	 d |  D] } | j
 d d	  ^ q } t d
 j g  | D] } | d  ^ qŻ  d  sh t  qh WqR Wx | j   | j   | j   | g D]m } g  | j	 d d  D] } | j
 d d	  ^ q} t d
 j g  | D] } | d  ^ qI d  st  qWd } t | i d d 6| d  t | i d d 6| d  t  j d d  d t j d   }  |  j   } g  | j   j	 d d  D] } | j
 d d	  ^ qó} t d
 j g  | D] } | d  ^ q! d  sGt  g  | j   j	 d d  D] } | j
 d d	  ^ q`} t d
 j g  | D] } | d  ^ q d  s´t  t | i d d 6| d  x1 d d d g D]  } t | i | d 6| d  qŢWt | i d d 6d d 6| d  t | j	   j    d d d d d  d! d" d# d$ d% g
 k set  t  j d d  d t j d&   j   } | j d d d' d(  t | j	   j    d) d* d+ d g d k sÖt  | j   t | j	   j    d, d- d. d/ g d k st  d  S(0   NRt  Ru  s  ATOM      1  N  ATRP A   1I
ATOM      4  N  CPHE A   1I
ATOM      2  C  ATRP A   1I
ATOM      8  CA BTYR A   1I
ATOM      3  O  ATRP A   1I
ATOM      5  CA CPHE A   1I
ATOM      6  C  CPHE A   1I
ATOM      9  C  BTYR A   1I
ATOM      7  O  CPHE A   1I
ATOM     10  O  BTYR A   1I
i˙˙˙˙i    i   R  R`  R   s   
iř˙˙˙s  ATOM      1  N  ATRP A   1I
ATOM      2  C  ATRP A   1I
ATOM      3  O  ATRP A   1I
ATOM      4  N  CPHE A   1I
ATOM      5  CA CPHE A   1I
ATOM      6  C  CPHE A   1I
ATOM      7  O  CPHE A   1I
ATOM      8  CA BTYR A   1I
ATOM      9  C  BTYR A   1I
ATOM     10  O  BTYR A   1Ii   s  ATOM      1  N  ATRP A   1I
ATOM      4  N  CPHE A   1I
ATOM      2  C  ATRP A   1I
ATOM      6  C  CPHE A   1I
ATOM      9  C  BTYR A   1I
ATOM      3  O  ATRP A   1I
ATOM      7  O  CPHE A   1I
ATOM     10  O  BTYR A   1I
ATOM      5  CA CPHE A   1I
ATOM      8  CA BTYR A   1Is.    A   1I      0.000   0.000   0.000  0.00  0.00sÖ   ATOM      1  N  ATRP
ATOM      2  C  ATRP
ATOM      3  O  ATRP
ATOM      4  N  CPHE
ATOM      5  CA CPHE
ATOM      6  C  CPHE
ATOM      7  O  CPHE
ATOM      8  CA BTYR
ATOM      9  C  BTYR
ATOM     10  O  BTYR
TER
sÖ   ATOM      1  N  ATRP
ATOM      4  N  CPHE
ATOM      2  C  ATRP
ATOM      6  C  CPHE
ATOM      9  C  BTYR
ATOM      3  O  ATRP
ATOM      7  O  CPHE
ATOM     10  O  BTYR
ATOM      5  CA CPHE
ATOM      8  CA BTYR
TER
s  ATOM      1  N  ATRP A   1I
ATOM      4  N  CPHE A   1I
ATOM      2  C  ATRP A   1I
ATOM      8  CA BTRP A   1I
ATOM      3  O  ATRP A   1I
ATOM      5  CA CPHE A   1I
ATOM      6  C  CPHE A   1I
ATOM      9  C  BTRP A   1I
ATOM      7  O  CPHE A   1I
ATOM     10  O  BTRP A   1I
s  ATOM      1  N  ATRP A   1I
ATOM      2  C  ATRP A   1I
ATOM      9  C  BTRP A   1I
ATOM      3  O  ATRP A   1I
ATOM     10  O  BTRP A   1I
ATOM      8  CA BTRP A   1I
ATOM      4  N  CPHE A   1I
ATOM      5  CA CPHE A   1I
ATOM      6  C  CPHE A   1I
ATOM      7  O  CPHE A   1Is  ATOM      1  N  ATRP A   1I
ATOM      4  N  CPHE A   1I
ATOM      2  C  ATRP A   1I
ATOM      6  C  CPHE A   1I
ATOM      9  C  BTRP A   1I
ATOM      3  O  ATRP A   1I
ATOM      7  O  CPHE A   1I
ATOM     10  O  BTRP A   1I
ATOM      5  CA CPHE A   1I
ATOM      8  CA BTRP A   1IsÖ   ATOM      1  N  ATRP
ATOM      2  C  ATRP
ATOM      9  C  BTRP
ATOM      3  O  ATRP
ATOM     10  O  BTRP
ATOM      8  CA BTRP
ATOM      4  N  CPHE
ATOM      5  CA CPHE
ATOM      6  C  CPHE
ATOM      7  O  CPHE
TER
i   i   sÖ   ATOM      1  N  ATRP
ATOM      4  N  CPHE
ATOM      2  C  ATRP
ATOM      6  C  CPHE
ATOM      9  C  BTRP
ATOM      3  O  ATRP
ATOM      7  O  CPHE
ATOM     10  O  BTRP
ATOM      5  CA CPHE
ATOM      8  CA BTRP
TER
i   R  sÖ   ATOM     13  N  ATRP
ATOM     14  N  CPHE
ATOM     15  C  ATRP
ATOM     16  C  CPHE
ATOM     17  C  BTRP
ATOM     18  O  ATRP
ATOM     19  O  CPHE
ATOM     20  O  BTRP
ATOM     21  CA CPHE
ATOM     22  CA BTRP
TER
s      13s      15s      18s      14s      21s      16s      19s      22s      17s      20s  MODEL        1
ATOM      1  N   MET A   1
ATOM      2  CA  MET A   1
ATOM      3  N   GLY A   2
ATOM      4  CA  GLY A   2
ENDMDL
MODEL        2
ATOM      1  N   MET A   1
ATOM      2  CA  MET A   1
ATOM      3  N   GLY A   2
ATOM      4  CA  GLY A   2
ENDMDL
RO   i
   s      10s      11s      12s       1s       2s       3s       4(   R   Rz  Rz   R   R{  R|  R  R  Rł  RŚ   Rg  R   R  R7   R(  Rň   R  t   atoms_reset_serial(   R  R\   RŻ  R  R]   Rr  R   R#  (    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_atoms_interleaved_confd  sp    		.&
		.&
4&
4&



c      
   C   s}  d } t  j d d  d t j |   } | j   } t | d | d d } xq | | g D]c } t d d  | IJ| j d	 d d
 t	 d t	  t
 t d  j   | d | d  sZ t  qZ Wt | d i d5 d 6d d 6d d | d t | d i d d 6t d 6d d | d xw | | g D]i } t d d  | IJ| j d	 d d d d t d
 t	  t
 t d  j   | d | d  s&t  q&Wt  j d d  d t j d   } | j   } | j d d   }	 t
 |	 d!  sčt  t  j d d  d t j |	   }
 |
 j   } | j d d   } t
 | d"  s=t  | j d# |  sUt  | j d# |  smt  t d d$  j d%  t  j d& d d' d(  t
 t d(  j   d)  sťt  t  j d& d d' d( d* t	 d+ t	  t
 t d(  j   d,  s˙t  |  d  k rd- GHd  Sd  } x\|  D]T} | rFt j   d. k rFq!n  t  j d	 |  } | j   } | j d t  } t  j d d  d t j |   } | j   } t d/ | d i t	 d 6d | d0  | j d# |  sßt  | j d# |  s÷t  | d  k	 rĂ| j d# |  s'| j d# |  rĂt j j |  } t j j |  } | d  | d  k rŔt |  d1 k  st |  d1 k  s| d2 | d2 k rŔd3 GHd4 Gt |  GHd4 Gt |  GHqŔqĂn  | } | } | } g  } x~ | | g D]p } t   } xK | j   D]= } | | j   It | j  It | j  I| j IJqW| j | j     qčWt
 |   s!t |   q!Wd  S(6   Ns   HETATM  145  C21 DA7  3014      18.627   3.558  25.202  0.50 29.50           C
ATOM    146  C8 ADA7  3015       9.021 -13.845  22.131  0.50 26.57           C
Rt  Ru  R  s   TER
s   REMARK EXERCISEs   tmp_tst_hierarchy.pdbRŘ   R   t   open_appendt
   append_ends   
s   TER
END
R"  i   i   i   iP   iZ   id   t   crystal_symmetryi   R  sď   CRYST1    2.000    3.000    4.000  80.00  90.00 100.00 P 1           5
SCALE1      0.500000  0.088163 -0.015793        0.00000
SCALE2      0.000000  0.338476 -0.060632        0.00000
SCALE3      0.000000  0.000000  0.253979        0.00000
i   t   write_scale_recordssG   CRYST1    1.000    1.000    1.000  90.00  90.00  90.00 P 1           7
R   s<   
CRYST1    1.000    1.000    1.000  90.00  90.00  90.00 P 1
s
  HEADER    TRANSPORT PROTEIN                       21-AUG-07   2V93
ATOM   1549  O  ACYS A 211      24.080  12.057  26.978  0.95  0.00           O
ATOM   1550  SG ACYS A 211      24.960  15.526  27.230  0.16  0.00           S
ATOM   1551  SG BCYS A 211      24.418  16.196  28.728  0.16  0.00           S
ATOM   1552  N  CCYS A 211      12.649  13.688  18.306  0.05  0.00           N
ATOM   1553  CA CCYS A 211      12.104  13.010  17.135  0.05  0.00           C
ATOM   1554  C  CCYS A 211      13.148  12.135  16.481  0.05  0.00           C
ATOM   1555  O  CCYS A 211      12.770  11.031  16.051  0.05  0.00           O
ATOM   1556  CB CCYS A 211      11.540  14.072  16.172  0.05  0.00           C
ATOM   1557  SG CCYS A 211      24.361  15.163  26.341  0.16  0.00           S
R  i   sË  ATOM   1549  O  ACYS A 211      24.080  12.057  26.978  0.95  0.00           O
ATOM   1555  O  CCYS A 211      12.770  11.031  16.051  0.05  0.00           O
ATOM   1550  SG ACYS A 211      24.960  15.526  27.230  0.16  0.00           S
ATOM   1551  SG BCYS A 211      24.418  16.196  28.728  0.16  0.00           S
ATOM   1557  SG CCYS A 211      24.361  15.163  26.341  0.16  0.00           S
ATOM   1552  N  CCYS A 211      12.649  13.688  18.306  0.05  0.00           N
ATOM   1553  CA CCYS A 211      12.104  13.010  17.135  0.05  0.00           C
ATOM   1554  C  CCYS A 211      13.148  12.135  16.481  0.05  0.00           C
ATOM   1556  CB CCYS A 211      11.540  14.072  16.172  0.05  0.00           C
TER
sË  ATOM   1549  O  ACYS A 211      24.080  12.057  26.978  0.95  0.00           O
ATOM   1555  O  CCYS A 211      12.770  11.031  16.051  0.05  0.00           O
ATOM   1550  SG ACYS A 211      24.960  15.526  27.230  0.16  0.00           S
ATOM   1557  SG CCYS A 211      24.361  15.163  26.341  0.16  0.00           S
ATOM   1551  SG BCYS A 211      24.418  16.196  28.728  0.16  0.00           S
ATOM   1552  N  CCYS A 211      12.649  13.688  18.306  0.05  0.00           N
ATOM   1553  CA CCYS A 211      12.104  13.010  17.135  0.05  0.00           C
ATOM   1554  C  CCYS A 211      13.148  12.135  16.481  0.05  0.00           C
ATOM   1556  CB CCYS A 211      11.540  14.072  16.172  0.05  0.00           C
TER
RC   t   wbs!  CRYST1    2.000    3.000    4.000  90.00  80.00  90.00 P 2           5
ATOM      0  S   SO4     0       3.302   8.419   8.560  1.00 10.00           S
ATOM      1  O1  SO4     0       3.497   8.295   7.118  1.00 10.00           O
ATOM      2  O2 ASO4     0       3.098   7.095   9.140  0.80 10.00           O
ATOM      3  O2 BSO4     0       3.498   7.495   9.440  0.20 10.00           O
ATOM      4  O3  SO4     0       4.481   9.037   9.159  1.00 10.00           O
ATOM      5  O4  SO4     0       2.131   9.251   8.823  1.00 10.00           O
t   input_file_namet   output_file_names   tmp_norm.pdbsÉ  CRYST1    2.000    3.000    4.000  90.00  80.00  90.00 P 1 2 1
SCALE1      0.500000  0.000000 -0.088163        0.00000
SCALE2      0.000000  0.333333  0.000000        0.00000
SCALE3      0.000000  0.000000  0.253857        0.00000
ATOM      1  S   SO4     0       3.302   8.419   8.560  1.00 10.00           S
ATOM      2  O1  SO4     0       3.497   8.295   7.118  1.00 10.00           O
ATOM      3  O3  SO4     0       4.481   9.037   9.159  1.00 10.00           O
ATOM      4  O4  SO4     0       2.131   9.251   8.823  1.00 10.00           O
ATOM      5  O2 ASO4     0       3.098   7.095   9.140  0.80 10.00           O
ATOM      6  O2 BSO4     0       3.498   7.495   9.440  0.20 10.00           O
TER
END
t&   keep_original_crystallographic_sectiont   keep_original_atom_serials)  CRYST1    2.000    3.000    4.000  90.00  80.00  90.00 P 2           5
ATOM      0  S   SO4     0       3.302   8.419   8.560  1.00 10.00           S
ATOM      1  O1  SO4     0       3.497   8.295   7.118  1.00 10.00           O
ATOM      4  O3  SO4     0       4.481   9.037   9.159  1.00 10.00           O
ATOM      5  O4  SO4     0       2.131   9.251   8.823  1.00 10.00           O
ATOM      2  O2 ASO4     0       3.098   7.095   9.140  0.80 10.00           O
ATOM      3  O2 BSO4     0       3.498   7.495   9.440  0.20 10.00           O
TER
END
s<   Skipping exercise_as_pdb_string(): input files not availablegŠ?R\   s   END
i   iô˙˙˙s   WARNING: similar hierarchies:R.   (   i   i   i   iP   iZ   id   (!   R   Rz  Rz   R   R{  R|  R(  R  R  Ru   R   R  R7   R   R!  Ró  R  t   rewrite_normalizedt   randomt   ost   patht   basenameRé   R   R   t   atoms_with_labelsRm  RŮ  t   is_first_in_chaint   is_first_after_breakt   model_idR   R$  (   t   pdb_file_namest   comprehensiveR  R  R\   t   remRŻ  Rő  Rö  t   s1Rů  Rú  t   s2t   prev_file_nameR   t	   pdb_inp_1t   hierarchy_1t	   pdb_str_1t	   pdb_inp_2t   hierarchy_2t   prev_hierarchyRŐ   RZ   t   prev_pdb_strt   awlsR+  t   awl(    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_as_pdb_string  sÂ    !	/	 !		
	8	c          C   s;
  t  j j   }  t |  j   d  s+ t  t |  j d d  d  sM t  t |  j   d  si t  |  j d k s~ t  |  j d k s t  |  j	 d k s¨ t  |  j
 d k s˝ t  |  j d k sŇ t  |  j d k sç t  |  j d k sü t  |  j d k st  |  j s!t  |  j s1t  |  j   } d |  _ | j d k s[t  d |  _ d |  _	 |  j	 d k st  | j	 d k st  d	 |  _
 d
 |  _ |  j   d k sÁt  d |  _ |  j   d k sât  d |  _ d |  _ t |  _ |  j st  t |  _ |  j s$t  t |  j   d  s@t  t |  j   d  s\t  t |  j   d  sxt  t |  j d t  d  st  dJ |  _ dK |  _ dL |  _ t |  j   d  sŃt  t |  j   d  sít  t  j j j   r:t |  j   d  st  t |  j   d  srt  n8 t |  j   d  sVt  t |  j   d  srt  t |  j d  t d! t d" t  d  s t  t |  j   d#  sźt  t |  j d$ t  d%  sŢt  d& |  _  t |  j   d'  st  t |  j d( t  d#  s%t  t |  j d$ t  d)  sGt  d |  _	 t |  j d( t  d*  srt  t |  j d$ t  d+  st  t |  j d$ t d( t  d,  sźt  d- |  _  t |  j   d.  sát  t |  j d$ t  d,  st  t  j j   } d/ | _ y | j!   Wn5 t" t# f k
 r`} t t$ |  d0  sgt  n Xt%  d/ |  _ y |  j!   Wn5 t" t# f k
 rľ} t t$ |  d1  sźt  n Xt%  d2 |  _ y |  j   Wn5 t" t# f k
 r
} t t$ |  d3  st  n Xt%  t  j& d4 d  d5 t( j) d6   j*   } xl | j+   | j,   g D]R } y | j   Wn5 t" t# f k
 r} t t$ |  d7  sŁt  qQXt%  qQWt  j j- d8 d9  } | j. t  j j/ d: d;   | j0   d< j1 t  j j2    xr | j+   | j3   j,   g D]R } y | j   Wn5 t" t# f k
 rb} t t$ |  d=  sit  qXt%  qWt  j& d4 d  d5 t( j) d>   } | j*   } x2| | g D]$}	 xd? d? g D]}
 t4   } xß |	 j5   D]Ń }  |  j6 d@ t  d  k	 sút  |  j   } | j6   d  k st  y | j6 d@ t  Wn/ t" k
 rc} t t$ |  dA  sjt  n Xt%  | t7 |  |
    It8 |  j  It8 |  j  I|  j	 IJqÖWt | j9   dB  sşt  qşWq§WdC } x t t g D]s } | rű| dD 7} n  t | j: dE |  |  s	t  | j; dF dG dE |  t t< dG  j=   |  sât  qâWt( j) dH  } t  j& d4 d  d5 |  } | j*   } | j>   d< j?   }  t |  j   | d  sÂ	t  |  j	 dI k s×	t  |  j sç	t  |  j s÷	t  t@ jA |   } t@ jB |  } t |  j   | j    s7
t  d  S(M   NsB   ATOM                             0.000   0.000   0.000  0.00  0.00R`  t   #s$   ATOM                       #        R   R'   R   t   MoDlRS  RŰ   i}`  Râ   t   ABCDIRŹ   t   rNmsB   ATOM  12345 NaMelrNmChABCDI      0.000   0.000   0.000  0.00  0.00s(   "ATOM  12345 NaMelrNmChABCDI.*.        "Rf  sD   "ATOM  12345 NaMelrNmChABCDI      0.000   0.000   0.000  0.00  0.00"gš?gÉ?g333333Ó?i   i   i   sB   SIGATM12345 NaMelrNmChABCDI      0.100   0.200   0.300  0.00  0.00sF   ANISOU12345 NaMelrNmChABCDI   10000  20000  30000   1000   2000   3000sF   SIGUIJ12345 NaMelrNmChABCDI   30000  10000  20000   3000   1000   2000s  ATOM  12345 NaMelrNmChABCDI      0.000   0.000   0.000  0.00  0.00
SIGATM12345 NaMelrNmChABCDI      0.100   0.200   0.300  0.00  0.00
ANISOU12345 NaMelrNmChABCDI   10000  20000  30000   1000   2000   3000
SIGUIJ12345 NaMelrNmChABCDI   30000  10000  20000   3000   1000   2000sF   SIGUIJ12345 NaMelrNmChABCDI  -10000 -10000 -10000 -10000 -10000 -10000sĚ   ATOM  12345 NaMelrNmChABCDI      0.000   0.000   0.000  0.00  0.00
SIGATM12345 NaMelrNmChABCDI      0.100   0.200   0.300  0.00  0.00
ANISOU12345 NaMelrNmChABCDI   10000  20000  30000   1000   2000   3000R
  R  Rp   s"   model="MoDl" pdb="NaMelrNmChABCDI"RP  s    model="MoDl" pdbres="rNmChABCDI"R   s/   model="MoDl" pdb="NaMelrNmChABCDI" segid="sEgI"RU  s-   model="MoDl" pdbres="rNmChABCDI" segid="sEgI"s"   pdb="NaMelrNmChABCDI" segid="sEgI"s    pdbres="rNmChABCDI" segid="sEgI"s   pdbres="rNmChABCDI"s       s   pdb="NaMelrNmChABCDI"s      1As#   invalid atom serial number: "   1A"sn   invalid atom serial number:
  ATOM     1A NaMelrNmChABCDI      0.000   0.000   0.000  0.00  0.00
        ^^^^^s    18As   invalid residue sequence number:
  ATOM     1A NaMelrNmCh 18AI      0.000   0.000   0.000  0.00  0.00
                        ^^^^Rt  Ru  s   ATOM                    1B
s   invalid residue sequence number:
  ATOM                    1B       0.000   0.000   0.000  0.00  0.00
                        ^^^^RÔ   Rą  RĎ   s     1Ci    s'   invalid residue sequence number: "  1C"s
  MODEL        0
ATOM      1  C   MET A   1
ATOM      2  CA AMET A   1
BREAK
ATOM      3  N   GLY A   2
ATOM      4  CA AGLY A   2
ENDMDL
MODEL        1
ATOM      1  N   MET A   1
ATOM      2  CA AMET A   1
ATOM      3  N   ALA B   2
ATOM      4  CA AALA B   2
ENDMDL
Rm  R°   s   atom has no parent atom_groups`  ATOM      1  C   MET A   1       0.000   0.000   0.000  0.00  0.00 1 0    0
ATOM      2  CA AMET A   1       0.000   0.000   0.000  0.00  0.00 0 0    0
ATOM      3  N   GLY A   2       0.000   0.000   0.000  0.00  0.00 0 1    0
ATOM      4  CA AGLY A   2       0.000   0.000   0.000  0.00  0.00 0 0    0
ATOM      1  N   MET A   1       0.000   0.000   0.000  0.00  0.00 1 0    1
ATOM      2  CA AMET A   1       0.000   0.000   0.000  0.00  0.00 0 0    1
ATOM      3  N   ALA B   2       0.000   0.000   0.000  0.00  0.00 1 0    1
ATOM      4  CA AALA B   2       0.000   0.000   0.000  0.00  0.00 0 0    1
sV  MODEL        0
ATOM      1  C   MET A   1       0.000   0.000   0.000  0.00  0.00
ATOM      2  CA AMET A   1       0.000   0.000   0.000  0.00  0.00
BREAK
ATOM      3  N   GLY A   2       0.000   0.000   0.000  0.00  0.00
ATOM      4  CA AGLY A   2       0.000   0.000   0.000  0.00  0.00
TER
ENDMDL
MODEL        1
ATOM      1  N   MET A   1       0.000   0.000   0.000  0.00  0.00
ATOM      2  CA AMET A   1       0.000   0.000   0.000  0.00  0.00
TER
ATOM      3  N   ALA B   2       0.000   0.000   0.000  0.00  0.00
ATOM      4  CA AALA B   2       0.000   0.000   0.000  0.00  0.00
TER
ENDMDL
s   END
R,  R   s   tmp_tst_hierarchy.pdbsg   MODEL     SKDI
HETATMB1234 NaMeLResChUvwqI      1.300   2.100   3.200  0.40  4.80      sEgIElcH
ENDMDL
t   SKDI(   gš?gÉ?g333333Ó?(   i   i   i   gš?gÉ?g333333Ó?(   i   i   i   g333333Ó?gš?gÉ?(C   R   R\   t   atom_with_labelsR   Rg  R7   Rm  Rc   R^   R<  Rq  RĎ   RĐ   RŞ   RŤ   R:  R;  R   Ră   Rî   Ru   Rl  Rf   Rk   Rp   Ri  Rj  R]   Ro   Rk  R   Ró   Rb   Rd   R`   R_   Ra   R   Rz  Rz   R   R{  R|  R  RW  Ry   Rć   Rş   Rę   R˝   R   RV  R   R9  RJ   t   getattrRŮ  R$  R!  R  R  R  RŚ   t   fetch_labelst   cPicklet   dumpst   loads(   RK  t   awlcR<   RY   R+   R   RX  R  R\   RŻ  t   fmtR+  R  R,  Ru  t   awl_pklt	   awl_unpkl(    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_atom_with_labelsĚ  sH   																	  	 	  
 %  
	 	 "&	 c          C   sł  d }  t  j d d  d t j d |  |  j d d  f   } | j   } | j   } g  | D] } | j   ^ q\ d d g k s t	  | d j
 d	 | d
  g  | D] } | j   ^ qĽ d d g k sĎ t	  | j d | d
  d } t | d | d d xÚ t d g D]Ě } g  |  |  j d d  g D]- } t  j d d  d t j |   j   ^ q+} t  j j d | d |  }	 | t k rd \ }
 } n d  \ }
 } d } t |	 d | d d |
 |
 |
 |
 | | | | f qWg  t  j d d  d t j d |  |  j d d  |  j d d  f   t  j d d  d t j d |  j d d  |  j d d  f   g D] } | j   ^ qf} t  j j d |  }	 d } t |	 d | d d d  S(!   Ns[   ATOM      1  X1      A
ATOM      2  X2      A
ATOM      3  X1      B
ATOM      4  X2      BRt  Ru  s2   MODEL        1
%s
ENDMDL
MODEL        2
%s
ENDMDL
RR   t   Yi   i    RC   i   i   R  s,              0.000   0.000   0.000  0.00  0.00R#  R  sČ   ATOM      1  X1      A
ATOM      2  X2      A
TER
ATOM      3  X1      B
ATOM      4  X2      B
TER
ATOM      1  Y1      A
ATOM      2  Y2      A
TER
ATOM      3  Y1      B
ATOM      4  Y2      B
TER
t   FGt   rootst   chain_id_suffixesRÓ   Rů   t   Ft   GsĐ   ATOM      1  X1     A%s
ATOM      2  X2     A%s
TER
ATOM      3  X1     B%s
ATOM      4  X2     B%s
TER
ATOM      1  Y1     A%s
ATOM      2  Y2     A%s
TER
ATOM      3  Y1     B%s
ATOM      4  Y2     B%s
TER
sK   MODEL        1
%s
ENDMDL
MODEL        1
%s
ENDMDL
MODEL        1
%s
ENDMDL
t   Zs2   MODEL        3
%s
ENDMDL
MODEL        3
%s
ENDMDL
t   Pt   Qs6  MODEL        1
ATOM      1  X1     A1
ATOM      2  X2     A1
TER
ATOM      3  X1     B1
ATOM      4  X2     B1
TER
ATOM      1  P1     A2
ATOM      2  P2     A2
TER
ATOM      3  P1     B2
ATOM      4  P2     B2
TER
ENDMDL
MODEL        2
ATOM      1  Y1     A1
ATOM      2  Y2     A1
TER
ATOM      3  Y1     B1
ATOM      4  Y2     B1
TER
ATOM      1  Q1     A2
ATOM      2  Q2     A2
TER
ATOM      3  Q1     B2
ATOM      4  Q2     B2
TER
ENDMDL
MODEL        3
ATOM      1  Z1     A1
ATOM      2  Z2     A1
TER
ATOM      3  Z1     B1
ATOM      4  Z2     B1
TER
ENDMDL
(   RÓ   Rů   (   Ra  Rb  (   R   Rz  Rz   R   R{  R  R|  RE  R2  R7   t   transfer_chains_from_otherRH  R(  R
   R\   t
   join_roots(   t   atoms_xR  R\   RE  RY  R#  t   suffixesRu  R_  t   joinedt   fRc  (    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt#   exercise_transfer_chains_from_otherŹ  s@    "11I '
.G%id   c      
      s(  t  j d d  d t j d   j   } y | j d t j    Wn1 t t	 f k
 rt } t
 |  d k s{ t  n Xt  y  | j d t j d t   Wn1 t t	 f k
 rÎ } t
 |  d k sŐ t  n Xt  y# | j d t j d d	 g   Wn1 t t	 f k
 r+} t
 |  d
 k s2t  n Xt  y  | j d t j d g   Wn1 t t	 f k
 r} t
 |  d k st  n Xt  x t j d t  t j   g t j   t j   g g D]\ } | j d | d	  } | j   d	 k s÷t  | j d | d  j   d	 k sĂt  qĂWy  | j d t j d t   Wn1 t t	 f k
 rv} t
 |  d k s}t  n Xt  y  | j d t j d	 g   Wn1 t t	 f k
 rĐ} t
 |  d k s×t  n Xt  xk t j d t  t j d  g D]H } | j d |  } | j d |  s)t  | j d |  sůt  qůWxł t j t g d t g d  t j d  g D] } | j d |  } | j   d k sŚt  | j   j d | j   d	  sÎt  | j   j d | j   d  svt  qvWxś t j t g d t g d  t j d d  g D] } | j d |  } | j   d k s_t  | j   j d | j   d	  st  | j   j d | j   d  s/t  q/Wx t j t t g d  t j d d d  g D]d } | j d |  } g  | j   D] } | j j   ^ qd d d d d d d d g k săt  qăWx t j t t g d  t j d	 d d  g D]d } | j d |  } g  | j   D] } | j j   ^ qd d d d d d d d g k szt  qzW| j   } | j   | j d  d d! d	  } xt t g D] xú t |   D]ě }	 t j d" d d# d$  }
 | j |
    | j |
 d%  } | j   |
 j t  k st     f d&   } | |  | j |
 j   d%  } | |  | j |  sét  | j |  sţt  | j    | j    k s0t  q0WqWd  S('   NRt  Ru  sě   MODEL        1
ATOM      1
ATOM      2
ATOM      3
ATOM      4
ATOM      5
ATOM      6
ATOM      7
ATOM      8
ENDMDL
MODEL        2
ATOM     11
ATOM     12
ATOM     13
ATOM     14
ATOM     15
ATOM     16
ATOM     17
ATOM     18
ENDMDL
t   atom_selections   atom_selection array too short.i   s   atom_selection array too large.i   i    s7   atom_selection indices not in strictly ascending order.i   s@   atom_selection indices greater than or equal to number of atoms.RC   i   i   Rů   t   4t   6R?  R@   t   14t   16t   18RÓ   R0  R=  R>  t   11RÖ   t   15R.  RO   RP   Rż   t	   thresholdg      ŕ?t
   copy_atomsc            sĆ   xż t    |  j    D]¨ \ } } | j | j k s: t   r  | j   | j   k s^ t  | j d k ss t  | j d k s t  | j d k sž t  q | j   | j   k s t  q Wd  S(   Ni   i    (   R   RŚ   Rc   R7   R   Rx   Rv   (   t   h_selR<   Ri   (   t   a_selRv  (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyR=     s    "(!   R   Rz  Rz   R   R{  R|  R  R  R_   R`   Ra   R7   R   R   R  RD  Ru   t   size_t_rangeRó  Rł  Rđ  RE  RŚ   Rc   t   lstripR   R   RÁ   t   random_boolRź   t   countt
   iselectionR!  (   RÎ  t   h_allRY   t   atom_selectionsRw  Rm  R<   t   a_allR§   RŃ  t   selR=   t   h_isel(    (   Rx  Rv  sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_root_select&  sŹ        #  	,    	!!%+%+
!


i
   c   
      C   s  t  j d  } xt |   D]ú } t j d d  d | j t  j d | j      } | j	   } | j
   } t g  | j   j   D]> \ } } | t g  | D] } t | | j  ^ q  f ^ q  }	 |	 i d d d d g d	 6d
 g d 6d d d g d 6d d g d 6k s t  q Wd  S(   Ns§   ATOM      1  N
ATOM      2  CB A
ATOM      3  CA
ATOM      4  CB B
ATOM      5  CG
ATOM      6  CG A
ATOM      7  CD A
ATOM      8  C
ATOM      9  CD B
ATOM     10  O
Rt  Ru  Rż   i   i   i   i
   R   i   R.   i   i   i   Rŕ   i   i	   RŞ  (   R   R{  RÁ   R   Rz  Rz   R  RĚ  Rż   R|  RŚ   R   t   altloc_indicest   itemsR    RŮ  Rc   R7   (
   RÎ  Ru  RŃ  R  R\   RŚ   R  RŮ   R˛   t   ai(    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_root_altloc_indices  s    		$W
c          C   sĐ   t  j d d  d d  }  |  j   } | j j d  | j j d  x t t g D]w } | j | d  } | j	 |  } t
 d j | j  d j | j   sŚ t  t
 | j   | j    sQ t  qQ Wd  S(   NRt  Ru  s  MODEL        1
ATOM      1  N   MET A   1       6.215  22.789  24.067  1.00  0.00           N
ATOM      2  CA  MET A   1       6.963  22.789  22.822  1.00  0.00           C
BREAK
HETATM    3  C   MET A   2       7.478  21.387  22.491  1.00  0.00           C
ATOM      4  O   MET A   2       8.406  20.895  23.132  1.00  0.00           O
ENDMDL
MODEL 3
HETATM    9 2H3  MPR B   5      16.388   0.289   6.613  1.00  0.08
SIGATM    9 2H3  MPR B   5       0.155   0.175   0.155  0.00  0.05
ANISOU    9 2H3  MPR B   5      848    848    848      0      0      0
SIGUIJ    9 2H3  MPR B   5      510    510    510      0      0      0
TER
ATOM     10  N   CYSCH   6      14.270   2.464   3.364  1.00  0.07
SIGATM   10  N   CYSCH   6       0.012   0.012   0.011  0.00  0.00
ANISOU   10  N   CYSCH   6      788    626    677   -344    621   -232
SIGUIJ   10  N   CYSCH   6        3     13      4     11      6     13
TER
ENDMDL
R<   Ri   i   s   
(   R   Rz  Rz   R|  RA  R   t   pickleRU  RV  RW  R   R  R7   R!  (   R  R\   RŐ   R˙   RŹ   (    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_root_pickling°  s    	.c          C   s8  t  j d d  d d  }  |  j   } | j   j   | j   } xń | j   D]ă } | j | j   j	    j
   } | j   } t | j   j
   |  s˘ t  x t t g D]} } xt | | g D]f } x] t d  D]O } | j | d  }	 | j |	  }
 t |
 j   j
   |  st  |
 } qŐ WqÂ WqŻ WqM Wd  S(   NRt  Ru  sR  ATOM      1  N   GLY A   1      -9.009   4.612   6.102  1.00 16.77           N
ATOM      2  CA  GLY A   1      -9.052   4.207   4.651  1.00 16.57           C
ANISOU    2  CA  GLY A   1      788    626    677   -344    621   -232       C
ATOM      3  C   GLY A   1      -8.015   3.140   4.419  1.00 16.16           C
ATOM      4  O   GLY A   1      -7.523   2.521   5.381  1.00 16.78           O
ATOM      5  N   ASN A   2      -7.656   2.923   3.155  1.00 15.02           N
ATOM      6  CA  ASN A   2      -6.522   2.038   2.831  1.00 14.10           C
ATOM      7  C   ASN A   2      -5.241   2.537   3.427  1.00 13.13           C
ATOM      8  O   ASN A   2      -4.978   3.742   3.426  1.00 11.91           O
ATOM      9  N   ASN A   3      -4.438   1.590   3.905  1.00 12.26           N
SIGATM    9  N   ASN A   3       0.012   0.012   0.011  0.00  0.00           N
ATOM     10  CA  ASN A   3      -3.193   1.904   4.589  1.00 11.74           C
ATOM     11  C   ASN A   3      -1.955   1.332   3.895  1.00 11.10           C
ATOM     12  O   ASN A   3      -1.872   0.119   3.648  1.00 10.42           O
i   i   (   R   Rz  Rz   R|  RŚ   R   RV  Rľ  R  R  R!  t   standalone_copyR   R  R7   R  RU  RÁ   RV  RW  (   R  R\   t	   conformerRś  t   epst   rscRŐ   t   rpt   i_passR˙   RŹ   (    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_residue_picklingĐ  s     	!""c          C   s´   t  j j d t  }  |  j j   } |  j j   } | j   d k sK t  | j   d k sc t  |  j   } |  j   } d   } | | j	 |  |  | | j	 |  |  d  S(   NR  iF   c         S   sB   x; t  |  |  D]* \ } } | j   | j   k s t  q Wd  S(   N(   R   R   R7   (   RŚ   t
   atoms_permR<   t   ap(    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyR=   ů  s    (
   R   R\   Rz  Ră  RŚ   Rż   R7   t#   hierarchy_to_input_atom_permutationt#   input_to_hierarchy_atom_permutationR  (   t   pdb_objt   i_atomst   h_atomst   h_i_permt   i_h_permR=   (    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_hierarchy_inputń  s    	c           C   se  t  j d d  d d  }  |  j   } | j   } | j   j   | j   j   k sZ t  | j	 d  | j
   j   j   d j   d } | j   d k sĽ t  | j   } | j | j   | j    t | j   ds dt du dv dw dx g  sú t  t | j   d d d d d d g  s't  | j   | j | j   | j    t | j   dy g d  sot  t | j   d d d d d d g  st  t  j d d  d d  }  |  j   } t  j d d  d d  } | j   } | j   d j   d } t  j j |  } t | j   | j    s2t  t  j j | |  t | j   d  sat  t  j d d  d d  j   }	 |	 j   }
 |
 j   |	 j   j   k sŻt  t |
 d  d d d d g k s×t  t  j d d  d d  j   }	 |	 j   j   |	 j   }
 t |
 d  d d g k s3t  t |
 d   d g k sRt  t |
 d!  d d" g k stt  t |
 d"  d! g k st  t  j! j" d# d$ d% t# j$ j%  } | d  k	 rt  j j& |  \ } } } | d& k r˙| d k r˙| d' k st  n  t  j d d  d d(  j   }	 |	 j   } g  | D] } t |  ^ q9d g d g g  g k slt  d) } t  j j d* |  } | j'   } | j   j   d+ k sąt  t | j   d, d d- d. d/ sÚt  t  j d d  d |  } | j   } | j d0 | j(    } | j   j   d+ k s4t  t | j   d, d d- d. d/ s]t  t  j d d  d d1  j   }	 |	 j   d j   d j)   d } | j*   d2 d3 d3 d4 d4 d3 d5 g i d d6 6f k sŮt  | j+   d7 d8 d8 d9 d9 d8 d: g k st  | j,   d; k st  |	 j   d j   d } | j*   d2 d3 d3 d4 d4 d3 d5 g i d d6 6f k srt  | j+   d7 d8 d8 d9 d9 d8 d: g k st  | j,   d; k sˇt  | j-   rĐ| j.   sÖt  |	 j/   sčt  |	 j0   sűt  |	 j1   st  t  j d d  d d<  j   }	 |	 j0   s>t  |	 j1   sPt  t  j d d  d d=  j   }	 |	 j0   st  |	 j1   st  t  j d d  d d>  j   }	 |	 j
   j   j-   sĎt  |	 j
   j   j- d? t2  sôt  t  j d d  d d@  j   }	 |	 j
   j   j-   s1t  |	 j
   j   j- d? t2  sVt  t  j d d  d dA  j   }	 |	 j   d j   d j)   d } | j+   d7 d8 d8 d9 d9 d8 d: g k sĹt  | j,   dB k sÝt  |	 j   d j   d } | j+   d7 d8 d8 d9 d9 d8 d: g k s$	t  | j,   dB k s<	t  t  j d d  d dC  j   }	 |	 j   d j   d j)   d } | j*   d2 d3 d3 d4 dD d2 d4 d3 d5 g	 i dE d6 6f k sž	t  | j+   d7 d8 d8 d9 dF d7 d9 d8 d: g	 k sń	t  | j,   dG k s	
t  | j, dH t3  d; k s'
t  | j4   } t5 |  d! k sK
t  | d | d k oj
d  k n su
t  | dI j6   dJ k s
t  | j7   } t5 |  d! k sľ
t  | d  d  d2 d3 d3 d4 dD d2 d4 d3 d5 g k sč
t  t5 | j7 dK t2   dE k st  |	 j   d j   d } | j*   d2 d3 d3 d4 dD d2 d4 d3 d5 g	 i dE d6 6f k sft  | j+   d7 d8 d8 d9 dF d7 d9 d8 d: g	 k st  | j,   dG k sąt  | j, dH t3  d; k sĎt  | j4   } t5 |  d! k sót  | d | d k od  k n st  | dI j6   dJ k s9t  | j7   } t5 |  d! k s]t  | d  d  d2 d3 d3 d4 dD d2 d4 d3 d5 g k st  t5 | j7 dK t2   dE k s´t  t  j d d  d dL  j   }	 |	 j   d j   d j)   d } | j*   d3 d2 dM dN dO dD dD dP d2 g	 i dE d6 6f k s6t  | j+   d8 d7 dQ dR dS dF dF dT d7 g	 k sit  | j,   dU k st  | j4   dV dW dX dY dZ d  d  d[ d\ d  d] d^ g k s˝t  | j7   d3 d2 dM dN dO d  d  dD dD d  dP d2 g k sůt  |	 j   d j   d } | j*   d3 d2 dM dN dO dD dD dM dP d2 g
 i d  d6 6f k sVt  | j+   d8 d7 dQ dR dS dF dF dQ dT d7 g
 k st  | j,   d_ k s¤t  | j4   dV dW dX dY dZ d  d  d[ d\ d` d] d^ g k sŕt  | j7   d3 d2 dM dN dO d  d  dD dD dM dP d2 g k st  t  j d d  d da  j   }	 |	 j   d j   d j)   d } | j,   dG k svt  t  j d d  d db  j   } t  j d d  d dc  j   } t  j j8 | |  } t | j   j   dd dd dd de df g  s÷t  t  j j8 | | dg t2 dh t2 } t | dd dd dd de di g  s<t  t9   } t  j! j" d# dj d% t# j$ j%  } | d  k rvd  St  j dk |  } t  j: | dl | } dm } | j;   | k sËt dn | j;     t  j d d  d do  j   }	 t  j j< |	  } | dp dq g k st  t  j d d  d dr  j   } | j=   d k sIt  | j
   j   sat  d  S(z   NRt  Ru  sp  CRYST1    2.000    3.000    4.000  90.00  80.00  90.00 P 2           5
ATOM      0  S   SO4     0       3.302   8.419   8.560  1.00 10.00           S
ANISOU    0  S   SO4     0     1000   2000   3000    400   -500    600
ATOM      1  O1  SO4     0       3.497   8.295   7.118  1.00 10.00           O
ATOM      4  O3  SO4     0       4.481   9.037   9.159  1.00 20.00           O
ATOM      5  O4  SO4     0       2.131   9.251   8.823  1.00 30.00           O
ATOM      2  O2 ASO4     0       3.098   7.095   9.140  0.80 40.00           O
ATOM      3  O2 BSO4     0       3.498   7.495   9.440  0.20 50.00           O
TER
END
g       @i    s    SO4     0 gÉ?gŮ?g333333ă?g{ŽGáz´?gšżg¸ëQ¸ž?i˙˙˙˙gĂÝ.?@g      4@g      D@g      N@g      T@g      Y@i   s?  ATOM      1  N   GLY A   1      -9.009   4.612   6.102  1.00 16.77           N
ATOM      2  CA  GLY A   1      -9.052   4.207   4.651  1.00 16.57           C
ANISOU    2  CA  GLY A   1      788    626    677   -344    621   -232       C
ATOM      3  C   GLY A   1      -8.015   3.140   4.419  1.00 16.16           C
ATOM      4  O   GLY A   1      -7.523   2.521   5.381  1.00 16.78           O
ATOM      5  N   ASN B   2      -7.656   2.923   3.155  1.00 15.02           N
ATOM      6  CA  ASN B   2      -6.522   2.038   2.831  1.00 14.10           C
ATOM      7  C   ASN B   2      -5.241   2.537   3.427  1.00 13.13           C
ATOM      8  O   ASN B   2      -4.978   3.742   3.426  1.00 11.91           O
ATOM      9  N   ASN B   3      -4.438   1.590   3.905  1.00 12.26           N
ATOM     10  CA  ASN B   3      -3.193   1.904   4.589  1.00 11.74           C
ATOM     11  C   ASN B   3      -1.955   1.332   3.895  1.00 11.10           C
ATOM     12  O   ASN B   3      -1.872   0.119   3.648  1.00 10.42           O
ATOM      0  S   SO4 C   4       3.302   8.419   8.560  1.00 10.00           S
ATOM      1  O1  SO4 C   4       3.497   8.295   7.118  1.00 10.00           O
ATOM      4  O3  SO4 C   4       4.481   9.037   9.159  1.00 10.00           O
ATOM      5  O4  SO4 C   4       2.131   9.251   8.823  1.00 10.00           O
s´  ATOM      5  N   ASN B   2      -7.656   2.923   3.155  1.00 15.02           N
ATOM      6  CA  ASN B   2      -6.522   2.038   2.831  1.00 14.10           C
ATOM      7  C   ASN B   2      -5.241   2.537   3.427  1.00 13.13           C
ATOM      8  O   ASN B   2      -4.978   3.742   3.426  1.00 11.91           O
ATOM      9  N  AASN B   3      -4.438   1.590   3.905  1.00 12.26           N
ATOM     10  CA AASN B   3      -3.193   1.904   4.589  1.00 11.74           C
ATOM     11  C  AASN B   3      -1.955   1.332   3.895  1.00 11.10           C
ATOM     12  O  AASN B   3      -1.872   0.119   3.648  1.00 10.42           O
ATOM      9  N  BASN B   3      -4.438   1.590   3.905  1.00 12.26           N
ATOM     10  CA BASN B   3      -3.193   1.904   4.589  1.00 11.74           C
ATOM     11  C  BASN B   3      -1.955   1.332   3.895  1.00 11.10           C
ATOM     12  O  BASN B   3      -1.872   0.119   3.648  1.00 10.42           O
s  ATOM      1  N   GLY A   1      -9.009   4.612   6.102  1.00 16.77           N
ATOM      2  CA  GLY A   1      -9.052   4.207   4.651  1.00 16.57           C
ANISOU    2  CA  GLY A   1      788    626    677   -344    621   -232       C
ATOM      3  C   GLY A   1      -8.015   3.140   4.419  1.00 16.16           C
ATOM      4  O   GLY A   1      -7.523   2.521   5.381  1.00 16.78           O
TER
ATOM      5  N   ASN B   2      -7.656   2.923   3.155  1.00 15.02           N
ATOM      6  CA  ASN B   2      -6.522   2.038   2.831  1.00 14.10           C
ATOM      7  C   ASN B   2      -5.241   2.537   3.427  1.00 13.13           C
ATOM      8  O   ASN B   2      -4.978   3.742   3.426  1.00 11.91           O
ATOM      9  N  AASN B   3      -4.438   1.590   3.905  1.00 12.26           N
ATOM     10  CA AASN B   3      -3.193   1.904   4.589  1.00 11.74           C
ATOM     11  C  AASN B   3      -1.955   1.332   3.895  1.00 11.10           C
ATOM     12  O  AASN B   3      -1.872   0.119   3.648  1.00 10.42           O
ATOM      9  N  BASN B   3      -4.438   1.590   3.905  1.00 12.26           N
ATOM     10  CA BASN B   3      -3.193   1.904   4.589  1.00 11.74           C
ATOM     11  C  BASN B   3      -1.955   1.332   3.895  1.00 11.10           C
ATOM     12  O  BASN B   3      -1.872   0.119   3.648  1.00 10.42           O
TER
ATOM      0  S   SO4 C   4       3.302   8.419   8.560  1.00 10.00           S
ATOM      1  O1  SO4 C   4       3.497   8.295   7.118  1.00 10.00           O
ATOM      4  O3  SO4 C   4       4.481   9.037   9.159  1.00 10.00           O
ATOM      5  O4  SO4 C   4       2.131   9.251   8.823  1.00 10.00           O
TER
sh  ATOM      1  C01 LIG A   1      -2.986   0.015   1.643  1.00 20.00      A    C
ATOM      2  N02 LIG A   1      -1.545   0.015   1.643  1.00 20.00      A    N
ATOM      3  C03 LIG A   1      -0.733   0.015   2.801  1.00 20.00      A    C
ATOM      4  N04 LIG A   1       0.593   0.015   2.395  1.00 20.00      A    N
ATOM      5  C05 LIG A   1       0.618   0.015   1.034  1.00 20.00      A    C
ATOM      6  N06 LIG A   1       1.758   0.015   0.102  1.00 20.00      A    N
ATOM      7  C07 LIG A   1       3.092  -0.060   0.694  1.00 20.00      A    C
ATOM      8  C08 LIG A   1       1.525   0.015  -1.360  1.00 20.00      A    C
ATOM      9  O09 LIG A   1       2.489  -0.024  -2.139  1.00 20.00      A    O
ATOM     10  N10 LIG A   1       0.158   0.015  -1.888  1.00 20.00      A    N
ATOM     11  C11 LIG A   1      -0.025   0.024  -3.330  1.00 20.00      A    C
ATOM     12  C12 LIG A   1      -0.986   0.015  -0.959  1.00 20.00      A    C
ATOM     13  O13 LIG A   1      -2.155   0.008  -1.408  1.00 20.00      A    O
ATOM     14  C14 LIG A   1      -0.733   0.015   0.565  1.00 20.00      A    C
ATOM     15 H011 LIG A   1      -3.346   0.016   2.662  1.00 20.00      A    H
ATOM     16 H012 LIG A   1      -3.347   0.896   1.133  1.00 20.00      A    H
ATOM     17 H013 LIG A   1      -3.347  -0.868   1.136  1.00 20.00      A    H
ATOM     18 H031 LIG A   1      -1.083   0.020   3.822  1.00 20.00      A    H
ATOM     19 H071 LIG A   1       3.184  -0.975   1.260  1.00 20.00      A    H
ATOM     20 H072 LIG A   1       3.245   0.785   1.348  1.00 20.00      A    H
ATOM     21 H073 LIG A   1       3.835  -0.047  -0.090  1.00 20.00      A    H
ATOM     22 H111 LIG A   1       0.508   0.861  -3.756  1.00 20.00      A    H
ATOM     23 H112 LIG A   1      -1.076   0.113  -3.560  1.00 20.00      A    H
ATOM     24 H113 LIG A   1       0.358  -0.896  -3.748  1.00 20.00      A    H
i   i   i   i   s  ATOM      1  C1  EOH     1       3.108   0.653  -8.526  1.00  0.00           C
ATOM      2  C2  EOH     1       4.597   0.674  -8.132  1.00  0.00           C
ATOM      3 1H1  EOH     1       2.815  -0.349  -8.761  1.00  0.00           H
ATOM      4 2H1  EOH     1       2.517   1.015  -7.711  1.00  0.00           H
ATOM      5 3H1  EOH     1       2.956   1.278  -9.381  1.00  0.00           H
ATOM      6 1H2 AEOH     1       5.210   0.503  -9.017  1.00  0.00           H
ATOM      7 2H2 AEOH     1       4.790  -0.110  -7.400  1.00  0.00           H
ATOM      8  OH AEOH     1       4.922   1.945  -7.565  1.00  0.00           O
ATOM      9  HH AEOH     1       5.850   1.958  -7.320  1.00  0.00           H
ATOM     10 1H2 BEOH     1       5.198   0.305  -8.963  1.00  0.00           H
ATOM     11 2H2 BEOH     1       4.751   0.037  -7.261  1.00  0.00           H
ATOM     12  OH BEOH     1       4.988   2.012  -7.818  1.00  0.00           O
ATOM     13  HH BEOH     1       5.916   2.025  -7.573  1.00  0.00           H
i   i   i
   i   i   t   relative_paths   phenix_regression/pdb/2hr0.pdbt   testi  iÄ  sí   HETATM    0  PA  ANP A   1      27.977  39.209  67.441  1.00 26.15           P
HETATM    1  O2A ANP A   1      28.552  39.588  68.829  1.00 27.12           O
HETATM    2 MN    MN B   1      28.911  38.079  64.440  1.00 24.79          Mn
s  ATOM      1  C1  EOH     1       3.108   0.653  -8.526  1.00  0.00           C
ATOM      2  C2  EOH     1       4.597   0.674  -8.132  1.00  0.00           C
ATOM      3 1H1  EOH     1       2.815  -0.349  -8.761  1.00  0.00           H
ATOM      4 2H1  EOH     1       2.517   1.015  -7.711  1.00  0.00           H
ATOM      5 3H1  EOH     1       2.956   1.278  -9.381  1.00  0.00           H
ATOM      6 1H2 AEOH     1       5.210   0.503  -9.017  1.00  0.00           H
ATOM      7 1H2 BEOH     1       5.198   0.305  -8.963  1.00  0.00           H
ATOM      8 2H2 AEOH     1       4.790  -0.110  -7.400  1.00  0.00           H
ATOM      9 2H2 BEOH     1       4.751   0.037  -7.261  1.00  0.00           H
ATOM     10  OH AEOH     1       4.922   1.945  -7.565  1.00  0.00           O
ATOM     11  OH BEOH     1       4.988   2.012  -7.818  1.00  0.00           O
ATOM     12  HH AEOH     1       5.850   1.958  -7.320  1.00  0.00           H
ATOM     13  HH BEOH     1       5.916   2.025  -7.573  1.00  0.00           H
R  i   iý˙˙˙g%CŔR  g-Cëâ6?R-  s)  ATOM      2  CA  GLY A   3      -9.052   4.207   4.651  1.00 16.57           C
ATOM      6  CA  ASN A   4      -6.522   2.038   2.831  1.00 14.10           C
ATOM     14  CA  ASN A   5      -3.193   1.904   4.589  1.00 11.74           C
ATOM     22  CA  GLN A   6       0.384   1.888   3.199  1.00 10.53           C
ATOM     31  CA  GLN A   7       3.270   2.361   5.640  1.00 11.39           C
ATOM     40  CA  ASN A   8       6.831   2.310   4.318  1.00 12.30           C
ATOM     48  CA  TYR A   9       9.159   2.144   7.299  1.00 15.18           C
RQ  t   ASNt   GLNt   TYRR  Rb  R3   Re  R]  t	   XXGNNQQNYs)  ATOM   1282  P     U A  75       8.046  10.090  17.379  1.00 20.97           P
ATOM   1302  P     A A  76       3.836  12.353  14.321  1.00 22.14           P
ATOM   1324  P     U A  77      -0.490  11.589  11.092  1.00 27.25           P
ATOM   1344  P     G A  78      -4.128   7.571   8.789  1.00 29.69           P
ATOM   1367  P     U A  79      -6.043   2.064   7.771  1.00 35.59           P
ATOM   1387  P     C A  80      -6.888  -3.348   8.809  1.00 52.93           P
ATOM   1407  P     C A  81      -6.452  -7.275  14.101  1.00 67.04           P
sÚ  ATOM    590  P    DG B  19       0.025   6.958  12.325  1.00  0.00           P
ATOM    623  P    DC B  20      -6.245   5.331  12.090  1.00  0.00           P
ATOM    653  P    DC B  21     -10.927   0.678  11.688  1.00  0.00           P
ATOM    683  P    DG B  22     -13.972  -4.787  13.859  1.00  0.00           P
ATOM    716  P    DA B  23     -14.817 -10.233  18.166  1.00  0.00           P
ATOM    748  P    DG B  24     -15.074 -12.316  24.830  1.00  0.00           P
s  ATOM      2  CA  UNK A   3      -9.052   4.207   4.651  1.00 16.57           C
ATOM      6  CA  UNK A   4      -6.522   2.038   2.831  1.00 14.10           C
ATOM     14  CA  UNK A   5      -3.193   1.904   4.589  1.00 11.74           C
ATOM     22  CA  UNK A   6       0.384   1.888   3.199  1.00 10.53           C
ATOM     31  CA  UNK A   7       3.270   2.361   5.640  1.00 11.39           C
ATOM     40  CA  UNK A   8       6.831   2.310   4.318  1.00 12.30           C
ATOM     48  CA  UNK A   9       9.159   2.144   7.299  1.00 15.18           C
HETATM   48  O   HOH A  10       0.000  20.000   7.299  1.00 15.18           O
HETATM   48  O   HOH A  11       2.000  16.000   7.299  1.00 15.18           O
HETATM   48  O   HOH A  12       4.000  12.000   7.299  1.00 15.18           O
HETATM   48  O   HOH A  13       6.000   8.000   7.299  1.00 15.18           O
HETATM   48  O   HOH A  14       8.000   4.000   7.299  1.00 15.18           O
HETATM   48  O   HOH A  15      10.000   0.000   7.299  1.00 15.18           O
t   ignore_watersÚ  HETATM   48  O   HOH A  10       0.000  20.000   7.299  1.00 15.18           O
HETATM   48  O   HOH A  11       2.000  16.000   7.299  1.00 15.18           O
HETATM   48  O   HOH A  12       4.000  12.000   7.299  1.00 15.18           O
HETATM   48  O   HOH A  13       6.000   8.000   7.299  1.00 15.18           O
HETATM   48  O   HOH A  14       8.000   4.000   7.299  1.00 15.18           O
HETATM   48  O   HOH A  15      10.000   0.000   7.299  1.00 15.18           O
s)  ATOM      2  CA  GLY A  -2      -9.052   4.207   4.651  1.00 16.57           C
ATOM      6  CA  ASN A  -1      -6.522   2.038   2.831  1.00 14.10           C
ATOM     14  CA  ASN A   0      -3.193   1.904   4.589  1.00 11.74           C
ATOM     22  CA  GLN A   1       0.384   1.888   3.199  1.00 10.53           C
ATOM     31  CA  GLN A   4       3.270   2.361   5.640  1.00 11.39           C
ATOM     40  CA  ASN A   5       6.831   2.310   4.318  1.00 12.30           C
ATOM     48  CA  TYR A   6       9.159   2.144   7.299  1.00 15.18           C
t	   GNNQXXQNYsÇ  ATOM      2  CA  GLY A   3      -9.052   4.207   4.651  1.00 16.57           C
ATOM      6  CA  ASN A   4      -6.522   2.038   2.831  1.00 14.10           C
ATOM     14  CA  ASN A   5      -3.193   1.904   4.589  1.00 11.74           C
ATOM     22  CA  GLN A   6       0.384   1.888   3.199  1.00 10.53           C
ATOM     22  CA  ALA A   6A      0.384   1.888   3.199  1.00 10.53           C
ATOM     22  CA  GLY A   6B      0.384   1.888   3.199  1.00 10.53           C
ATOM     31  CA  GLN A   7       3.270   2.361   5.640  1.00 11.39           C
ATOM     40  CA  ASN A   8       6.831   2.310   4.318  1.00 12.30           C
ATOM     48  CA  TYR A   9       9.159   2.144   7.299  1.00 15.18           C
Rň  i	   Rŕ   t   XXGNNQAGQNYt   skip_insertionsiü˙˙˙t   6Bt   pad_at_starts´  ATOM    450  CA  ASN A   1      37.242  41.665  44.160  1.00 35.89           C
ATOM    458  CA  GLY A   2      37.796  38.269  42.523  1.00 30.13           C
HETATM  463  CA AMSE A   3      35.878  39.005  39.326  0.54 22.83           C
HETATM  464  CA BMSE A   3      35.892  39.018  39.323  0.46 22.96           C
ATOM    478  CA  ILE A   4      37.580  38.048  36.061  1.00 22.00           C
ATOM    486  CA  SER A   5      37.593  40.843  33.476  1.00 18.73           C
ATOM    819  CA  ALA A   8      25.982  34.781  27.220  1.00 18.43           C
ATOM    824  CA  ALA A   9      23.292  32.475  28.614  1.00 19.60           C
HETATM  830  CA BMSE A  10      22.793  30.814  25.223  0.41 22.60           C
HETATM  831  CA CMSE A  10      22.801  30.850  25.208  0.59 22.54           C
ATOM    845  CA  GLU A  11      26.504  30.054  24.966  1.00 25.19           C
ATOM    854  CA  GLY A  12      25.907  28.394  28.320  1.00 38.88           C
t   MSEt   ILEt   SERt   GLUR@  Râ   t   SRÜ   t   NGMISXXAAXEGs      1 s      2 s      3 s      4 s      5 s      8 s      9 s     11 s     12 t   NGMISXXAAMEGs     10 sÇ  ATOM      2  CA  GLY A   3      -9.052   4.207   4.651  1.00 16.57           C
ATOM      6  CA  ASN A   4      -6.522   2.038   2.831  1.00 14.10           C
ATOM     14  CA  ASN A   5      -3.193   1.904   4.589  1.00 11.74           C
ATOM     22  CA  GLN A   6       0.384   1.888   3.199  1.00 10.53           C
ATOM     22  CA  ALA A   6A      0.384   1.888   3.199  1.00 10.53           C
ATOM     22  CA  GLY A   6B      0.384   1.888   3.199  1.00 10.53           C
ATOM     31  CA  GLN A   7       3.270   2.361   5.640  1.00 11.39           C
ATOM     40  CA  ASN A   8       6.831   2.310   4.318  1.00 12.30           C
ATOM     48  CA  PTR A   9       9.159   2.144   7.299  1.00 15.18           C
sŢ  ATOM      0  O   WAT B   1      17.523   2.521  10.381  1.10 16.78           O
ATOM      1  N   GLY A   1      -9.009   4.612   6.102  1.00 16.77           N
ATOM      2  CA  GLY A   1      -9.052   4.207   4.651  1.00 16.57           C
ATOM      3  C   GLY A   1      -8.015   3.140   4.419  1.00 16.16           C
ATOM      4  O   GLY A   1      -7.523   2.521   5.381  1.00 16.78           O
TER
ATOM      5  O   HOH S   1      -7.523   2.521  10.381  0.10  6.78           O
s  ATOM      1  N   GLY A   1      -9.009   4.612   7.102  1.00 16.77           N
ATOM      2  CA  GLY A   1      -9.052   4.207   5.651  1.00 16.57           C
ATOM      3  C   GLY A   1      -8.015   3.140   5.419  1.00 16.16           C
ATOM      4  O   GLY A   1      -6.523   3.521   6.381  1.00 16.78           O
TER
ATOM      5  O   HOH S   1      -9.523   5.521  11.381  0.10  6.78           O
g      đ?g+Pćzśű?g      đżt   exclude_waterst   return_hierarchygí°.ęî@s   phenix_regression/pdb/2C30.pdbR   R:   s  Number of atoms:          2691
Number of chains:         3
Chain IDs:                A, Z
Alternate conformations:  0
Amino acid residues:      289
Water molecules:          350
Elemental ions:           1 ( CL)
Other molecules:          2 (PO4, SEP)
Mean isotropic B-factor:  22.10 (range: 10.58 - 55.34)
Space group:              P 21 21 21
Unit cell:                59.781 66.674 96.999 90 90 90
s   
s  ATOM      2  CA  GLY A  -1      -9.052   4.207   4.651  1.00 16.57           C
ATOM      6  CA  ASN A   0      -6.522   2.038   2.831  1.00 14.10           C
ATOM     14  CA  ASN A   1      -3.193   1.904   4.589  1.00 11.74           C
ATOM     22  CA  GLN A   2       0.384   1.888   3.199  1.00 10.53           C
ATOM     22  CA  ALA A   2A      0.384   1.888   3.199  1.00 10.53           C
ATOM     22  CA  GLY A   2B      0.384   1.888   3.199  1.00 10.53           C
ATOM     31  CA  GLN A   4       3.270   2.361   5.640  1.00 11.39           C
ATOM     40  CA  ASN A   5       6.831   2.310   4.318  1.00 12.30           C
ATOM     48  CA  TYR A   6       9.159   2.144   7.299  1.00 15.18           C
TER
ATOM      5  O   HOH S   1      -9.523   5.521  11.381  0.10  6.78           O
sJ   chain 'A' and ((resid   -1  through    2B) or (resid    4  through    6 ))s   chain 'S' and ((resid    1 ))sŠ  ATOM     39  N   ASN A   6       5.514   2.664   4.856  1.00 11.99           N
ATOM     40  CA  ASN A   6       6.831   2.310   4.318  1.00 12.30           C
ATOM     41  C   ASN A   6       7.854   2.761   5.324  1.00 13.40           C
ATOM     42  O   ASN A   6       8.219   3.943   5.374  1.00 13.92           O
ATOM     43  CB  ASN A   6       7.065   3.016   2.993  1.00 12.13           C
ATOM     44  CG  ASN A   6       5.961   2.735   2.003  1.00 12.77           C
ATOM     45  OD1 ASN A   6       5.798   1.604   1.551  1.00 14.27           O
ATOM     46  ND2 ASN A   6       5.195   3.747   1.679  1.00 10.07           N
ATOM      0  H   ASN A   6       5.376   3.649   4.962  1.00 11.99           H
ATOM      0  HA  ASN A   6       6.900   1.226   4.142  1.00 12.30           H
ATOM      0 1HB  ASN A   6       7.137   4.100   3.163  1.00 12.13           H
ATOM      0 2HB  ASN A   6       8.027   2.692   2.570  1.00 12.13           H
ATOM      0 1HD2 ASN A   6       4.439   3.617   1.038  1.00 10.07           H
ATOM      0 2HD2 ASN A   6       5.366   4.650   2.073  1.00 10.07           H
TER
ATOM     60  H   ASN B   1       5.376   3.649   4.962  1.00 11.99           H
END
(   gÉ?gŮ?g333333ă?g{ŽGáz´?gšżg¸ëQ¸ž?(   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˙˙˙˙(>   R   Rz  Rz   R|  t   extract_xray_structuret
   sites_cartRż   RŚ   R7   t
   scale_adpsRł  R  Rę   Rĺ   Ró   t   set_adps_from_scattererst
   scattererst	   unit_cellR   R  R	  t   convert_to_isotropicRE  R3  R\   t   new_hierarchy_from_chainR   R!  t   find_and_replace_chainst'   distance_based_simple_two_way_bond_setsRň   R   t   libtbxt   envt   find_in_repositoriesR6  R7  t   isfilet   get_residue_and_fragment_countt   xray_structure_simpleR-  Rę  t   get_residue_names_and_classest   as_sequencet   as_padded_sequencet
   is_proteint   is_nat   contains_proteint   contains_nucleic_acidt   contains_rnaR   Ru   t   get_residue_idsRé   R4   t   get_residue_names_paddedt
   sites_diffR   t   show_file_summaryR$  t   get_contiguous_rangest	   remove_hd(    R  R\   t   xray_structureRĽ   RŚ   t   pdb_inp_newRú  t   chain_bt   partial_hierarchyt   pdb_hierarchyt   bondsR$  t   n_rest   n_fragt   n_watt	   bond_setst   bondR  R˘  t   xrst	   main_confRy   t   residst   resnamesRD  RG  t   hierarchy_newt   deltasR:   RA  R  t
   selections(    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_other˙  s   	*&	!
"!		"$(""-:)	)$	1-	1-$--
$	3*0$	3*0$$	3		3	!6		3
$$	(c          C   sM  t  j j   }  t  j j   } |  j |  t  j j   } | j |  t  j j   } | j |  t  j j	   } | j
 |  t  j j   } | j |  t |  | | | | | g  } | j   } | |  k	 s× t  | |  k sé t  | | k sű t  | j   } | | k	 st  | | k s+t  | | k s=t  | j   }	 |	 | k	 s[t  |	 | k smt  |	 | k st  | j   }
 |
 | k	 st  |
 | k sŻt  |
 | k sÁt  | j   } | | k	 sßt  | | k sńt  | | k st  | j   d } | | k	 s%t  | | k s7t  | | k sIt  d  S(   Ni    (   R   R\   R  R  R  Ry   R   Rş   Rć   R   R˝   R]   Rš   t   setRJ   R7   RŚ   (   R  R  Ry   RÇ   RĽ   R]   t
   collectiont   prt   pmt   pct   prgt   pagt   pa(    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_equality_and_hashingÔ  sH    c          C   sň   t  j d d  d d  j   }  |  j   } xr d d g D]d } x5 t d  D]' } | | j | | |  sJ t  qJ W| | d j | | d  s7 t  q7 WxL t d  D]> } x5 t d d  D]$ } | | j | |  sÂ t  qÂ WqŹ Wd  S(	   NRt  Ru  sŽ   MODEL        1
ATOM      0  N   MET
ATOM      1  CA AMET
ATOM      2  CA BMET
ENDMDL
MODEL        2
ATOM      3  N   MET
ATOM      4  CA  MET
ATOM      5  CA BMET
ENDMDL
END
i    i   i   i   i   (   R   Rz  Rz   R|  RŚ   RÁ   t   is_in_same_conformer_asR7   (   RŇ  RŚ   t   firstR˛   RŇ   (    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt%   exercise_atom_is_in_same_conformer_as  s    %*c          C   s   t  j j d  }  |  d  k r" d  Sg  } xW t j |   D]F } | j d  pY | j d  sb q8 n  | j t j j	 |  |   q8 Wt
 |  d k s t  | S(   Ns   phenix_regression/pdbs   .pdbs   .enti    (   Rş  Rť  Rź  Rz   R6  t   listdirt   endswithR   R7  R  Ré   R7   (   t   pdb_dirR  t   node(    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt$   get_phenix_regression_pdb_file_names  s       c          C   su  d d l  m }  t j d d  d d  } | j   } | j   } | j   } | j   | j	   | j
 d d  | j d |  | j d	 | j    } | j   } | j } xÔ t | j   | j    D]ˇ \ } }	 t | | j  | |	 j  d
  s˙ t  t |  j | j  |  j |	 j  d  s/t  t | j |	 j d  sMt  t | j |	 j  sht  | j |	 j k sÉ t  qÉ W| j d |  }
 y | j d |
  Wn t k
 rż} n Xt |  d k sŘt  | j   } | j d d d d  x> | j   D]0 } | j d k s"t  | j  d k st  qW| j d |  d d d d d d d g } d d d d d d d g } t g  | j   D] } | j ^ q|  s˛t  t g  | j   D] } | j  ^ qÂ|  săt  | j d |  xF | j!   D]8 } x/ | j"   D]! } | j# d k rd | _# qqWq Wy | j d |  Wn t$ k
 re} n Xt%  | j d | d t&  | j d	 | j    } xÔ t | j   | j    D]ˇ \ } }	 t | | j  | |	 j  d
  sět  t |  j | j  |  j |	 j  d  st  t | j |	 j d  s:t  t | j |	 j  sUt  | j |	 j k sśt  qśWd  S(   Ni˙˙˙˙(   t   adptbxRt  Ru  s
  CRYST1   12.000   13.000   14.000  80.00  90.00 100.00 P 1
ATOM      0  O   WAT B   1      17.523   2.521  10.381  1.10 16.78           O
ATOM      1  N   GLY A   1      -9.009   4.612   6.102  1.00 16.77           N
ATOM      2  CA  GLY A   1      -9.052   4.207   4.651  1.00 16.57           C
ANISOU    2  CA  GLY A   1      788    626    677   -344    621   -232       C
ATOM      3  C   GLY A   1      -8.015   3.140   4.419  1.00 16.16           C
ATOM      4  O   GLY A   1      -7.523   2.521   5.381  1.00 16.78           O
TER
ATOM      5  O   HOH S   1      -7.523   2.521  10.381  0.10  6.78           O
TER
ATOM      6  O   HOH     1      10.523   2.521   5.381  1.00 16.78           O
ANISOU    6  O   HOH     1      788    626    677   -344    621   -232       O
t   rms_differenceg      ŕ?RÎ  R-  güŠńŇMbP?g{ŽGáz?RC   s4   Incompatible size of hierarchy and scatterers array.t   photongffffffö?t   tablet   sasakii    g	ů głęŁ?g=UŤ­?gň°Pkw?gF%u?g%u?g<,Ôć}?Rŕ   Rą  t   assert_identical_id_str('   t   cctbxRň  R   Rz  Rz   R|  Rż  t   deep_copy_scattererst	   shake_adpt   shake_occupanciest   shake_sites_in_placet   adopt_xray_structureR°  R-  Rľ  t   orthogonalizeR   R´  R   t   siteR7   t   u_as_bt   u_isoRĹ   t   u_starRV   t   concatenateR`   Ra   t   set_inelastic_form_factorsRŚ   Rr   Rs   RE  R3  RÔ   t	   ExceptionR   R   (   Rň  R  R\   RŮ  t   xrs_new1t   xrs_new2t   uct   orthR@  RA  t   xrs_new3RY   t   xrs_new4R]   t   expected_fpt   expected_fdpR  Ry   t   xrs_new5(    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_adopt_xray_structure(  sp    	

		(*0  11   		(*0c          C   sq   t  j d d  d d  }  |  j   } |  j   } t  j d d  d d  } | j   } | j   } | j |  d  S(   NRt  Ru  s   CRYST1   12.000   13.000   14.000  80.00  90.00 100.00 P 1
ATOM   1134  MG  MG  A1002      46.207  95.853 116.979  1.00 40.88          Mg
s   CRYST1   12.000   13.000   14.000  80.00  90.00 100.00 P 1
HETATM 1135 MG   MG  A1002      46.279  95.897 117.018  1.00 40.88          Mg
(   R   Rz  Rz   R|  Rż  Rý  (   t   p1Rö  t   xrs1t   p2Rú  t   xrs2(    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_adopt_xray_structure2o  s    		c       	   C   sé   t  j d d  d d  j   }  t  j d d  d d  j   } |  j   d j   d } | j   d j   d } | j   d j   d } | j   d j   d } t  j j	 d | d | d t
 d	 d   t |  j   d
  sĺ t  d  S(   NRt  Ru  sR  ATOM     39  N   ASN A   6       5.514   2.664   4.856  1.00 11.99           N
ATOM     40  CA  ASN A   6       6.831   2.310   4.318  1.00 12.30           C
ATOM     41  C   ASN A   6       7.854   2.761   5.324  1.00 13.40           C
ATOM     42  O   ASN A   6       8.219   3.943   5.374  1.00 13.92           O
ATOM     43  CB  ASN A   6       7.065   3.016   2.993  1.00 12.13           C
ATOM     44  CG  ASN A   6       5.961   2.735   2.003  1.00 12.77           C
ATOM     45  OD1 ASN A   6       5.798   1.604   1.551  1.00 14.27           O
ATOM     46  ND2 ASN A   6       5.195   3.747   1.679  1.00 10.07           N
ATOM      0  H   ASN A   6       5.376   3.649   4.962  1.00 11.99           H
ATOM      0  HA  ASN A   6       6.900   1.226   4.142  1.00 12.30           H
ATOM      0 1HB  ASN A   6       7.137   4.100   3.163  1.00 12.13           H
ATOM      0 2HB  ASN A   6       8.027   2.692   2.570  1.00 12.13           H
ATOM      0 1HD2 ASN A   6       4.439   3.617   1.038  1.00 10.07           H
ATOM      0 2HD2 ASN A   6       5.366   4.650   2.073  1.00 10.07           H
s  ATOM     47  N   TYR A   7       8.292   1.817   6.147  1.00 14.70           N
ATOM     48  CA  TYR A   7       9.159   2.144   7.299  1.00 15.18           C
ATOM     49  C   TYR A   7      10.603   2.331   6.885  1.00 15.91           C
ATOM     50  O   TYR A   7      11.041   1.811   5.855  1.00 15.76           O
ATOM     51  CB  TYR A   7       9.061   1.065   8.369  1.00 15.35           C
ATOM     52  CG  TYR A   7       7.665   0.929   8.902  1.00 14.45           C
ATOM     53  CD1 TYR A   7       6.771   0.021   8.327  1.00 15.68           C
ATOM     54  CD2 TYR A   7       7.210   1.756   9.920  1.00 14.80           C
ATOM     55  CE1 TYR A   7       5.480  -0.094   8.796  1.00 13.46           C
ATOM     56  CE2 TYR A   7       5.904   1.649  10.416  1.00 14.33           C
ATOM     57  CZ  TYR A   7       5.047   0.729   9.831  1.00 15.09           C
ATOM     58  OH  TYR A   7       3.766   0.589  10.291  1.00 14.39           O
ATOM     59  OXT TYR A   7      11.358   2.999   7.612  1.00 17.49           O
i    t   current_groupt	   new_groupt   backbone_onlyt   logs  ATOM     39  N   TYR A   6       5.514   2.664   4.856  1.00 11.99           N
ATOM     40  CA  TYR A   6       6.831   2.310   4.318  1.00 12.30           C
ATOM     41  C   TYR A   6       7.854   2.761   5.324  1.00 13.40           C
ATOM     42  O   TYR A   6       8.219   3.943   5.374  1.00 13.92           O
ATOM     43  CB  TYR A   6       7.065   3.016   2.993  1.00 12.13           C
ATOM     52  CG  TYR A   6       6.101   2.535   1.948  1.00 12.77           C
ATOM     53  CD1 TYR A   6       4.898   3.215   1.734  1.00 14.27           C
ATOM     54  CD2 TYR A   6       6.343   1.371   1.232  1.00 14.27           C
ATOM     55  CE1 TYR A   6       3.994   2.773   0.792  1.00 14.27           C
ATOM     56  CE2 TYR A   6       5.440   0.910   0.265  1.00 14.27           C
ATOM     57  CZ  TYR A   6       4.262   1.615   0.069  1.00 14.27           C
ATOM     58  OH  TYR A   6       3.358   1.201  -0.871  1.00 14.27           O
ATOM     59  OXT TYR A   6       9.015   2.205   5.262  1.00 14.27           O
TER
(   R   Rz  Rz   R|  RE  R3  Rę   Rĺ   R\   t   substitute_atom_groupRu   R   R!  R7   (   t
   hierarchy1t
   hierarchy2t   chain1t   chain2R  R  (    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_substitute_atom_group  s    c          C   sŇ   t  j d d  d t j d   }  |  j   } | j   j   t | j	    d d d d g k sg t
  t  j d d  d t j d   }  |  j   } | j   j   t | j	    d d	 d
 d g k sÎ t
  d  S(   NRt  Ru  s´  MODEL        0
ATOM      1  C   MET A   1
ATOM      2  CA AMET A   1
BREAK
ATOM      3  N   GLY A   2
ATOM      4  CA AGLY A   2
ENDMDL
MODEL        1
ATOM      1  N   MET A   1
ATOM      2  CA AMET A   1
ATOM      3  N   ALA B   2
ATOM      4  CA AALA B   2
ENDMDL
MODEL        2
HETATM    6 CA  AION B   1      32.360  11.092  17.308  0.92 35.96          CA2+
HETATM    7 CA   ION B   2      30.822  10.665  17.190  1.00 36.87
ENDMDL
i   i   i   i   sB	  ATOM      1  N   THR A   2      -3.791  -8.769  29.092  1.00 24.15           N
ATOM      2  CA  THR A   2      -3.627  -7.675  28.090  1.00 25.97           C
ATOM      3  C   THR A   2      -2.202  -7.127  28.152  1.00 24.18           C
ATOM      4  O   THR A   2      -1.633  -6.984  29.233  1.00 24.71           O
ATOM      5  CB  THR A   2      -4.627  -6.527  28.357  1.00 26.50           C
ATOM      6  OG1 THR A   2      -5.961  -7.056  28.404  1.00 28.79           O
ATOM      7  CG2 THR A   2      -4.548  -5.486  27.255  1.00 27.05           C
ATOM      8  N   LYS A   3      -1.629  -6.832  26.988  1.00 24.44           N
ATOM     10  C   LYS A   3      -0.196  -4.896  27.485  1.00 23.66           C
ATOM     11  O   LYS A   3      -1.094  -4.084  27.265  1.00 23.75           O
ATOM     12  CB  LYS A   3       0.199  -6.262  25.438  1.00 26.61           C
ATOM      9  CA ALYS A   3      -0.266  -6.307  26.901  1.00 25.16           C
ATOM     13  CG ALYS A   3       0.312  -7.619  24.754  0.50 27.88           C
ATOM     15  CD ALYS A   3       1.436  -8.454  25.347  0.50 27.58           C
ATOM     17  CE ALYS A   3       1.585  -9.783  24.621  0.50 28.69           C
ATOM     19  NZ ALYS A   3       0.362 -10.624  24.732  0.50 28.63           N
ATOM      9  CA BLYS A   3      -0.266  -6.307  26.901  1.00 25.16           C
ATOM     14  CG BLYS A   3       0.201  -7.603  24.718  0.50 27.66           C
ATOM     16  CD BLYS A   3       1.205  -8.570  25.325  0.50 27.30           C
ATOM     18  CE BLYS A   3       1.213  -9.893  24.575  0.50 28.17           C
ATOM     20  NZ BLYS A   3       2.149 -10.873  25.188  0.50 27.40           N
ATOM     21  N   LYS A   4       0.873  -4.612  28.225  1.00 22.24           N
ATOM     22  CA  LYS A   4       1.068  -3.295  28.826  1.00 21.81           C
ATOM     23  C   LYS A   4       2.337  -2.642  28.295  1.00 19.26           C
ATOM     24  O   LYS A   4       3.417  -3.243  28.310  1.00 18.66           O
ATOM     25  CB  LYS A   4       1.156  -3.398  30.354  1.00 23.29           C
ATOM     26  CG  LYS A   4      -0.170  -3.685  31.031  1.00 27.60           C
ATOM     27  CD  LYS A   4      -0.049  -3.681  32.551  1.00 32.16           C
ATOM     28  CE  LYS A   4       0.797  -4.842  33.052  1.00 33.04           C
ATOM     29  NZ  LYS A   4       0.827  -4.892  34.541  1.00 36.05           N
i   i   i   (   R   Rz  Rz   R   R{  R|  RŚ   R   Rň   t   get_peptide_c_alpha_selectionR7   (   R  R+   (    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt&   exercise_get_peptide_c_alpha_selectionş  s    *c          C   s  t  j d d  d t j d   }  |  j   } | j   j   | j   j	   } | j
 d d  } t |  d k sy t  | j
 d d  } t | d  d d d d d	 d
 d g k sź t  t | d  d d d d d d d d d d d d d d g k st  t | d  d d d d d d d  d! d" g	 k s9t  t |  d k sQt  xA | D]9 } t | j |  | j |  j   j	    sXt  qXW| j
 d d  } t | d  d d d d d	 d
 d d d d d d d d d d d d d d d g k st  t | d  d d d d d d d  d! d" g	 k s9t  t |  d k sQt  xA | D]9 } t | j |  | j |  j   j	    sXt  qXW| j
 d 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" g k st  t |  d k s5t  xA | D]9 } t | j |  | j |  j   j	    s<t  q<Wt  j d d  d t j d#   }  |  j   } | j   j   | j   j	   } | j
 d d  } xA | D]9 } t | j |  | j |  j   j	    sát  qáWt | d  d d d d d	 d
 d d d d d d g k s^t  t | d  d d d d g k st  t | d  d d d d d d d d d d d d  g k sĆt  t | d  d! d" d$ d% d& d' d( d) g k sút  t |  d	 k st  d  S(*   NRt  Ru  sB	  ATOM      0  N   THR A   2      -3.791  -8.769  29.092  1.00 24.15           N
ATOM      1  CA  THR A   2      -3.627  -7.675  28.090  1.00 25.97           C
ATOM      2  C   THR A   2      -2.202  -7.127  28.152  1.00 24.18           C
ATOM      3  O   THR A   2      -1.633  -6.984  29.233  1.00 24.71           O
ATOM      4  CB  THR A   2      -4.627  -6.527  28.357  1.00 26.50           C
ATOM      5  OG1 THR A   2      -5.961  -7.056  28.404  1.00 28.79           O
ATOM      6  CG2 THR A   2      -4.548  -5.486  27.255  1.00 27.05           C
ATOM      7  N   LYS A   3      -1.629  -6.832  26.988  1.00 24.44           N
ATOM      8  C   LYS A   3      -0.196  -4.896  27.485  1.00 23.66           C
ATOM      9  O   LYS A   3      -1.094  -4.084  27.265  1.00 23.75           O
ATOM     10  CB  LYS A   3       0.199  -6.262  25.438  1.00 26.61           C
ATOM     11  CA ALYS A   3      -0.266  -6.307  26.901  1.00 25.16           C
ATOM     12  CG ALYS A   3       0.312  -7.619  24.754  0.50 27.88           C
ATOM     13  CD ALYS A   3       1.436  -8.454  25.347  0.50 27.58           C
ATOM     14  CE ALYS A   3       1.585  -9.783  24.621  0.50 28.69           C
ATOM     15  NZ ALYS A   3       0.362 -10.624  24.732  0.50 28.63           N
ATOM     16  CA BLYS A   3      -0.266  -6.307  26.901  1.00 25.16           C
ATOM     17  CG BLYS A   3       0.201  -7.603  24.718  0.50 27.66           C
ATOM     18  CD BLYS A   3       1.205  -8.570  25.325  0.50 27.30           C
ATOM     19  CE BLYS A   3       1.213  -9.893  24.575  0.50 28.17           C
ATOM     20  NZ BLYS A   3       2.149 -10.873  25.188  0.50 27.40           N
ATOM     21  N   LYS A   4       0.873  -4.612  28.225  1.00 22.24           N
ATOM     22  CA  LYS A   4       1.068  -3.295  28.826  1.00 21.81           C
ATOM     23  C   LYS A   4       2.337  -2.642  28.295  1.00 19.26           C
ATOM     24  O   LYS A   4       3.417  -3.243  28.310  1.00 18.66           O
ATOM     25  CB  LYS A   4       1.156  -3.398  30.354  1.00 23.29           C
ATOM     26  CG  LYS A   4      -0.170  -3.685  31.031  1.00 27.60           C
ATOM     27  CD  LYS A   4      -0.049  -3.681  32.551  1.00 32.16           C
ATOM     28  CE  LYS A   4       0.797  -4.842  33.052  1.00 33.04           C
ATOM     29  NZ  LYS A   4       0.827  -4.892  34.541  1.00 36.05           N
t   residues_per_chunki    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$  ATOM      0  N   ASP A   1      49.347 -62.804  60.380  1.00 34.60           N
ATOM      1  CA  ASP A   1      47.975 -63.194  59.946  1.00 33.86           C
ATOM      2  C   ASP A   1      47.122 -63.665  61.114  1.00 34.02           C
ATOM      3  O   ASP A   1      47.573 -64.451  61.947  1.00 32.23           O
ATOM      4  N   VAL A   2      45.889 -63.176  61.175  1.00 31.94           N
ATOM      5  CA  VAL A   2      44.978 -63.576  62.233  1.00 29.81           C
ATOM      6  C   VAL A   2      44.472 -64.973  61.900  1.00 28.28           C
ATOM      7  O   VAL A   2      43.989 -65.221  60.796  1.00 27.24           O
ATOM      8  N   GLN A   3      44.585 -65.878  62.864  1.00 25.93           N
ATOM      9  CA  GLN A   3      44.166 -67.262  62.686  1.00 24.46           C
ATOM     10  C   GLN A   3      42.730 -67.505  63.153  1.00 23.33           C
ATOM     11  O   GLN A   3      42.389 -67.234  64.302  1.00 20.10           O
ATOM     12  N   MET A   4      41.894 -68.026  62.256  1.00 24.27           N
ATOM     13  CA  MET A   4      40.497 -68.318  62.576  1.00 22.89           C
ATOM     14  C   MET A   4      40.326 -69.824  62.795  1.00 21.48           C
ATOM     15  O   MET A   4      40.633 -70.625  61.911  1.00 23.73           O
TER
ATOM     16  N   THR B   5      39.836 -70.208  63.971  1.00 20.55           N
ATOM     17  CA  THR B   5      39.652 -71.626  64.301  1.00 20.64           C
ATOM     18  C   THR B   5      38.188 -72.004  64.496  1.00 20.08           C
ATOM     19  O   THR B   5      37.534 -71.507  65.409  1.00 20.87           O
ATOM     20  N   GLN B   6      37.680 -72.891  63.643  1.00 21.97           N
ATOM     21  CA  GLN B   6      36.288 -73.325  63.743  1.00 25.11           C
ATOM     22  C   GLN B   6      36.147 -74.705  64.370  1.00 25.56           C
ATOM     23  O   GLN B   6      36.912 -75.622  64.064  1.00 26.32           O
ATOM     24  N   THR B   7      35.141 -74.839  65.229  1.00 27.28           N
ATOM     25  CA  THR B   7      34.842 -76.087  65.919  1.00 29.94           C
ATOM     26  C   THR B   7      33.332 -76.282  65.861  1.00 30.28           C
ATOM     27  O   THR B   7      32.576 -75.339  66.091  1.00 30.65           O
ATOM     28  N   PRO B   8      32.867 -77.502  65.555  1.00 29.43           N
ATOM     29  CA  PRO B   8      33.636 -78.711  65.256  1.00 27.63           C
ATOM     30  C   PRO B   8      33.982 -78.790  63.773  1.00 27.58           C
ATOM     31  O   PRO B   8      33.634 -77.895  63.000  1.00 28.53           O
ATOM     32  N   LEU B   9      34.669 -79.856  63.373  1.00 27.41           N
ATOM     33  CA  LEU B   9      35.035 -80.024  61.969  1.00 25.92           C
ATOM     34  C   LEU B   9      33.808 -80.409  61.159  1.00 23.43           C
ATOM     35  O   LEU B   9      33.602 -79.903  60.059  1.00 22.17           O
TER
i   i   i    i!   i"   i#   (   R   Rz  Rz   R   R{  R|  RŚ   R   R°  Rą  t   chunk_selectionsRé   R7   Rň   R   R  (   R  R+   Rą  t   csst   cs(    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercise_chunk_selectionsö  sV    1F7([7(=9('(@(@4c         C   sâ  d |  k } d |  k } d Gt  j j j   GHt  j j j   } | r d GHd } x? t | j    D]( \ } } d | | | | f GH| } qc Wn  t   } x8t rŐt	   t
   t   t   t   t   t   t   t   t   t   t   t   t   t   t   t   t   t   t   t   t   t   t    t!   t"   t#   t$   t% d | d |  t&   t'   t(   t)   t*   t+   t,   t-   t.   t/   t0   | s Pq q Wt1   GHd  S(	   Ns   --comprehensives	   --forevers'   iotbx.pdb.hierarchy.atom.sizeof_data():s(   iotbx.pdb.hierarchy.atom.data_offsets():i    s     %+3d %3d %sR=  R>  (2   R   R\   R]   t   sizeof_datat   data_offsetsR    R  Rń  Ru   R%  R¨  R   R  R  RŠ   RÍ   Rř   R,  R:  RO  R^  Rs  R  R°  Rˇ  RÂ  RĆ  RŇ  RÔ  RŘ  Rć  Rí  Rď  Rń  Rű  R  R*  RL  R\  Rl  R  R  R  R  R  Rŕ  Ré  Rě  R  R	   (   t   argsR>  t   forevert   offsetst   prevt   keyR;   t    phenix_regression_pdb_file_names(    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   exercisep  st    		 t   __main__i   (O   t
   __future__R    t   iotbxR   t   cctbx.array_familyR   t   libtbx.test_utilsR   R   R   t   libtbx.str_utilsR   t   libtbx.utilsR   R   R	   t   libtbx.load_envRş  R
   t	   cStringIOR   R   RU  R  R5  R   R6  RŠ   RÍ   Rř   R,  R:  RO  R^  Rs  R  R¨  R°  Rˇ  Rz  Rz   R{  Rź  RÂ  RĆ  RŇ  RÔ  RŘ  Râ  Ră  Rć  Rë  Rí  Rď  Rń  Rű  R  R(  R*  RL  R\  Rl  R  R  R  R  R  Rŕ  Ré  Rě  Rń  R  R  R  R   R%  R.  t   __name__t   argv(    (    (    sE   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/tst_hierarchy.pyt   <module>   s   	˙ Ť		˘	˙ 	S	^	U	Ţ	˙ ˙ ˙ ˙ ˙ H	+	N	@		@	;|z	ĘJ	Ş		˙ ď		<	(	Ş 	ˇ	ą	ŕ	zo	 	!		˙ Ö	3		
	G		:	<	z	;