ó
Á™xTc           @   s‚  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 m	 Z	 d  d l
 m Z d  d l Z
 d  d l m Z m Z d  d l
 m Z d  d l m Z m Z m Z m Z d  d	 l m Z d  d l Z d  d l m	 Z	 d  d
 l m Z d e f d „  ƒ  YZ d „  Z d „  Z d d „ Z  d d „ Z! d d „ Z" d d „ Z# d d „ Z$ d d „ Z% d d „ Z& d d „ Z' d d „ Z( d d „ Z) d d „ Z* d „  Z+ d „  Z, d „  Z- d „  Z. d „  Z/ d  „  Z0 d! „  Z1 d" „  Z2 d# „  Z3 d$ „  Z4 d% „  Z5 d& „  Z6 d' „  Z7 d( „  Z8 d) „  Z9 d* „  Z: d+ „  Z; d, „  Z< d- „  Z= e> d. k r~e ƒ  e= e j? d/ ƒ n  d S(0   iÿÿÿÿ(   t   division(   t   easy_runN(   t   flex(   t   monomer_library(   t   remove_filest
   search_for(   t   utils(   t   approx_equalt   not_approx_equalt   run_commandt	   show_diff(   t   show_times_at_exit(   t   adptbxt   xray_structure_plusc           B   s   e  Z d  „  Z d „  Z RS(   c         C   sV  t  j j ƒ  } t  j j ƒ  } t  j j d | d | d | ƒ } | j d t ƒ |  _ | j |  _ |  j j ƒ  } |  j j	 ƒ  j
 ƒ  |  _ |  j j	 ƒ  j ƒ  |  _ |  j j	 ƒ  j | ƒ |  _ |  j j ƒ  |  _ |  j j ƒ  |  _ |  j j ƒ  |  _ |  j j |  j ƒ |  _ |  j j |  j ƒ |  _ |  j j |  j ƒ |  _ |  j j |  j ƒ |  _ d  S(   Nt   mon_lib_srvt   ener_libt	   file_namet   show_summary(   R   t   serverR   t   pdb_interpretationt   processt   xray_structuret   Falset   all_chain_proxiest	   unit_cellt
   scattererst   extract_occupanciest   occt   extract_u_isot   u_isot   extract_u_cartt   u_cartt
   sites_cartt	   use_u_isot   use_u_anisot   selectt
   u_iso_usedt   u_cart_usedt   u_iso_not_usedt   u_cart_not_used(   t   selfR   R   R   t   processed_pdb_filet   uc(    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyt   __init__   s&    	c      	   C   s,   t  j d t d |  j d | d |  j ƒ d S(   Nt
   iselectionR   t   selection_stringsR   i    (   R   t   get_atom_selectionsR   R   R   (   R(   R-   (    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyt	   selection'   s    	(   t   __name__t
   __module__R+   R/   (    (    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyR      s   	c      	   C   sv  t  j j |  d ƒ } d } t d | ƒ } | j d ƒ d k  sE t ‚ d | | f } xëd  d g D]Ý} | j d | ƒ } | d  k rª | j ƒ  | j	 t
 ƒ k s× t ‚ n- | j ƒ  d	 k rÑ | j	 t
 ƒ d
 k s× t ‚ | d t | ƒ } t | | | | | | ƒ | d t | ƒ } t | | | | | | ƒ | d t | ƒ } t | | | | | | ƒ | d t | ƒ } t | | | | | | ƒ | d t | ƒ } t | | | | | | ƒ | d t | ƒ } t | | | | | | ƒ d }	 | d t |	 ƒ t | ƒ f } t | | | | | |	 | ƒ | d t | ƒ } t | | | | | | ƒ | d t | ƒ } t | | | | | | ƒ | d t | ƒ } t | | | | | | ƒ d }
 | d t |
 ƒ t | ƒ f } t | | | | | |
 | ƒ d } | d t | ƒ t | ƒ f } t | | | | | | | ƒ t | | ƒ qb W| } t | | | | ƒ | } t | | | ƒ d  S(   Ns	   phe_e.pdbs   modified.pdbR   t   "i    s0   phenix.pdbtools "%s" modify.output.file_name=%s s   chain A or chain CR-   i$   i   s!   adp.randomize=true selection="%s"s!   adp.set_b_iso=10.0 selection="%s"s#   adp.shift_b_iso=20.0 selection="%s"s    adp.scale_adp=2.0 selection="%s"s&   adp.convert_to_iso=true selection="%s"s(   adp.convert_to_aniso=true selection="%s"g      ø?s   sites.shake=%s selection="%s"s;   sites.rotate="1,2,3" sites.translate="4,5,6" selection="%s"s)   occupancies.randomize=true selection="%s"s#   occupancies.set=0.75 selection="%s"s	   element Cs   remove="%s" selection="%s"s   keep="%s" selection="%s"(   t   ost   patht   joinR   t   findt   AssertionErrort   NoneR/   t   sizet   countt   Truet   strt   check_adp_randt   check_adp_set_b_isot   check_adp_to_isot   check_adp_to_anisot   check_sites_shaket   check_sites_rtt   check_occ_randomizet   check_occ_sett   check_remove_selectiont   check_keep_selectiont
   test_quiett   check_all_nonet   check_keep_remove_conflict(   t   pdb_dirt   verboseR   t   outputt	   xrsp_initt   baset   selection_strR/   t   cmdt   shaket   remove_selection_strt   keep_selection_str(    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyt   exercise_basic-   sv    $- 

c         C   s‰   d } t  d ƒ t  | ƒ |  j d ƒ d k  s5 t ‚ d |  | f } t d | d | ƒ t d d ƒ j ƒ  } t | ƒ d k s… t ‚ d  S(	   Ns   shifted.pdbt   logR2   i    s@   phenix.pdbtools "%s" output.file_name=%s shake=0.1 --quiet > logt   commandRK   t   r(   R   R6   R7   R	   t   opent	   readlinest   len(   R   RK   t   output_file_nameRP   t   lines(    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyRG   {   s    

gü©ñÒMbP?c   
      C   s  t  | ƒ t d |  d | ƒ t d | ƒ } t | j | j | ƒ sJ t ‚ t | j | j | ƒ sh t ‚ t | j | j | ƒ s† t ‚ t | j | j | ƒ s¤ t ‚ t | j	 | j	 | ƒ sÂ t ‚ t | j
 | j
 | ƒ sà t ‚ | d  k r+t | j | j | ƒ s
t ‚ t | j | j | ƒ sýt ‚ nÒ | j j | j | j ƒ ƒ } | j j | j | j ƒ ƒ }	 | j ƒ  d k r”t | |	 | ƒ s”t ‚ n  | j j | j | j ƒ ƒ } | j j | j | j ƒ ƒ }	 | j ƒ  d k rýt | |	 | ƒ sýt ‚ n  d  S(   NRV   RK   R   i    (   R   R	   R   R   R   R7   R    R!   R"   R&   R'   R8   R   R$   R%   R#   R9   (
   RP   RM   RL   R/   RO   RK   t	   tolerancet   xrspt   arg1t   arg2(    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyR=   †   s(    
!  c         C   sP  t  | ƒ t d |  d | ƒ t d | ƒ } t | j | j | ƒ sJ t ‚ t | j | j | ƒ sh t ‚ t | j | j | ƒ s† t ‚ t | j | j | ƒ s¤ t ‚ t | j	 | j	 | ƒ sÂ t ‚ t | j
 | j
 | ƒ sà t ‚ | d  k rxt | j | j | ƒ s
t ‚ x?| j D]] } t j t j | ƒ ƒ }	 |	 d k rYt |	 d d ƒ sqt ‚ qt |	 d d ƒ st ‚ qWnÔ | j j | j | j ƒ ƒ }
 | j j | j | j ƒ ƒ } |
 j ƒ  d k rát |
 | | ƒ sát ‚ n  xh | j D]] } t j t j | ƒ ƒ }	 |	 d k r0t |	 d d ƒ sHt ‚ qët |	 d d ƒ sët ‚ qëWd  S(   NRV   RK   R   i    i
   g{®Gázt?gw¾Ÿ/½SÀ(   R   R	   R   R   R   R7   R    R!   R"   R&   R'   R8   R   R$   R   R   t   u_as_bt   u_cart_as_u_isoR#   R9   (   RP   RM   RL   R/   RO   RK   R]   R^   t   ucartt   b_isoR_   R`   (    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyR>   �   s2    
   c         C   s  t  | ƒ t d |  d | ƒ t d | ƒ } t | j | j | ƒ sJ t ‚ t | j | j | ƒ sh t ‚ t | j | j | ƒ s† t ‚ t | j	 | j	 | ƒ s¤ t ‚ | j
 j ƒ  d k s¿ t ‚ | j
 j ƒ  d k sÚ t ‚ | j j ƒ  d k sõ t ‚ | j j ƒ  d k st ‚ d  S(   NRV   RK   R   i    (   R   R	   R   R   R   R7   R    R   R!   R"   R&   R9   R%   (   RP   RM   RL   R/   RO   RK   R]   R^   (    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyR?   ¸   s    
c         C   s_  t  | ƒ t d |  d | ƒ t d | ƒ } t | j | j | ƒ sJ t ‚ t | j | j | ƒ sh t ‚ | d  k rt | j	 | j	 | ƒ s’ t ‚ t | j
 | j
 | ƒ s° t ‚ | j j ƒ  d k sË t ‚ | j j ƒ  d k sæ t ‚ | j j ƒ  d k st ‚ | j j ƒ  d k s[t ‚ n< t | j	 | j	 | ƒ s=t ‚ t | j
 | j
 | ƒ s[t ‚ d  S(   NRV   RK   R   i    (   R   R	   R   R   R   R7   R    R8   R   R!   R"   R$   R9   R'   (   RP   RM   RL   R/   RO   RK   R]   R^   (    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyR@   Ç   s    
c   
      C   s_  t  | ƒ t d |  d | ƒ t d | ƒ } t | j | j | ƒ sJ t ‚ t | j | j | ƒ sh t ‚ t | j | j | ƒ s† t ‚ | d  k rØ | j	 | j	 }	 t t
 j t j |	 j ƒ  ƒ ƒ | d | ƒ s[t ‚ nƒ | j	 | j	 }	 t t
 j t j |	 j | ƒ j ƒ  ƒ ƒ | d ƒ s!t ‚ t t
 j t j |	 j | ƒ j ƒ  ƒ ƒ d | ƒ s[t ‚ d  S(   NRV   RK   R   gü©ñÒMbP?g        (   R   R	   R   R   R   R7   R   R   R8   R    t   matht   sqrtR   t   meant   dotR#   (
   RP   RM   RL   R/   RO   RQ   RK   R]   R^   t   diff(    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyRA   Ú   s    
36c   	      C   sP  t  | ƒ t d |  d | ƒ t d | ƒ } t | j | j | ƒ sJ t ‚ t | j | j | ƒ sh t ‚ t | j | j | ƒ s† t ‚ | d  k rÏ | j	 | j	 } t
 j t j | j ƒ  ƒ ƒ d k sLt ‚ n} | j	 | j	 } t
 j t j | j | ƒ j ƒ  ƒ ƒ d k st ‚ t t
 j t j | j | ƒ j ƒ  ƒ ƒ d | ƒ sLt ‚ d  S(   NRV   RK   R   g      ð?g        (   R   R	   R   R   R   R7   R   R   R8   R    Re   Rf   R   Rg   Rh   R#   (	   RP   RM   RL   R/   RO   RK   R]   R^   Ri   (    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyRB   î   s    
-3c   	      C   sb  t  | ƒ t d |  d | ƒ t d | ƒ } t | j | j | ƒ sJ t ‚ t | j | j | ƒ sh t ‚ t | j | j | ƒ s† t ‚ | d  k rä t	 j
 | j | j ƒ } t	 j | ƒ d k sÆ t ‚ t	 j | ƒ d k s^t ‚ nz t	 j
 | j | j ƒ } t	 j | ƒ d k st ‚ t	 j | ƒ d k s3t ‚ t t	 j | j | ƒ ƒ d | ƒ s^t ‚ d  S(   NRV   RK   R   g        (   R   R	   R   R   R    R7   R   R   R8   R   t   absR   Rg   t   maxR#   (	   RP   RM   RL   R/   RO   RK   R]   R^   Ri   (    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyRC      s    
c         C   sL  t  | ƒ t d |  d | ƒ t d | ƒ } t | j | j | ƒ sJ t ‚ t | j | j | ƒ sh t ‚ t | j | j | ƒ s† t ‚ | d  k rä t	 j
 | j | j ƒ } t	 j | ƒ d k sÆ t ‚ t	 j | ƒ d k sHt ‚ nd | j }	 | j }
 |	 j d ƒ st ‚ |
 j | ƒ j d ƒ s*t ‚ |
 j | ƒ j d ƒ sHt ‚ d  S(   NRV   RK   R   g        g      ð?g      è?(   R   R	   R   R   R    R7   R   R   R8   R   Rj   R   Rg   Rk   t   all_eqR#   (   RP   RM   RL   R/   RO   RK   R]   R^   Ri   t   occ_initt   occ_mod(    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyRD     s    
		c         C   sŸ  t  | ƒ t d |  d | ƒ t d | ƒ } | j d | ƒ }	 |	 j ƒ  |	 j t ƒ k s` t ‚ t | j	 | j	 j
 |	 ƒ | ƒ s‡ t ‚ t | j | j j
 |	 ƒ | ƒ s® t ‚ t | j | j j
 |	 ƒ | ƒ sÕ t ‚ t | j | j j
 |	 ƒ | ƒ sü t ‚ | j j ƒ  j ƒ  }
 |
 j d ƒ d k s,t ‚ | j j ƒ  j ƒ  } | j d ƒ d k s\t ‚ | j ƒ  |	 j t ƒ k s}t ‚ |
 j ƒ  | j ƒ  k s›t ‚ d  S(   NRV   RK   R   R-   t   Ci    (   R   R	   R   R/   R9   R:   R;   R7   R   R    R#   R   R   R   R   R   t   extract_scattering_types(   RP   RM   RL   R/   RO   RR   RK   R]   R^   t   remove_selectiont   sct1t   sct2(    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyRE   '  s(    
	
!	$$$!c         C   sž  t  | ƒ t d |  d | ƒ t d | ƒ } | j d | ƒ }	 t | j | j j |	 ƒ | ƒ se t ‚ t | j | j j |	 ƒ | ƒ sŒ t ‚ t | j	 | j	 j |	 ƒ | ƒ s³ t ‚ t | j
 | j
 j |	 ƒ | ƒ sÚ t ‚ | j j ƒ  j ƒ  }
 |
 j d ƒ d k r|
 j ƒ  |
 j d ƒ k s%t ‚ | j j ƒ  j ƒ  } | j d ƒ | j ƒ  k s[t ‚ |
 j ƒ  |	 j t ƒ k s|t ‚ |
 j ƒ  | j ƒ  k sšt ‚ d  S(   NRV   RK   R   R-   Ro   i    (   R   R	   R   R/   R   R    R#   R7   R   R   R   R   R   Rp   R:   R9   R;   (   RP   RM   RL   R/   RO   RS   RK   R]   R^   t   keep_selectionRr   Rs   (    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyRF   ?  s"    
	'$$6!!c         C   sä   t  | ƒ t d |  d | ƒ t d | ƒ } t | j | j | ƒ sJ t ‚ t | j | j | ƒ sh t ‚ t | j | j | ƒ s† t ‚ t | j | j | ƒ s¤ t ‚ t | j	 | j	 | ƒ sÂ t ‚ t | j
 | j
 | ƒ sà t ‚ d  S(   NRV   RK   R   (   R   R	   R   R   R   R7   R    R!   R"   R   R   (   RP   RM   RL   RK   R]   R^   (    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyRH   T  s    
c         C   s_   |  d 7}  t  d |  d | d t ƒ } t d d d d d	 | j ƒ } t | ƒ d
 k s[ t ‚ d  S(   Ns    keep=all remove=all RV   RK   t   sorry_expectedt   patternsW   Sorry: Ambiguous selection: 'keep' and 'remove' keywords cannot be used simultaneously:t   modes   ==R\   i   (   R	   R;   R   t   stdout_linesRZ   R7   (   RP   RL   RK   t
   cmd_resultt   sorry_lines(    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyRI   _  s    
c   	      C   s!  d } t  d d ƒ j | ƒ t j j |  d ƒ } | j d ƒ d k  sL t ‚ d | } | GHt d | d	 | ƒ } | j } x? t	 | ƒ D]% \ } } | j d
 ƒ d k r† Pq† q† Wt
 d ƒ ‚ | | d d k sÕ t ‚ | | d d k sï t ‚ t d j | | d | d !ƒ d ƒ st ‚ d  S(   Nss  modify{
adp {
  atom_selection = chain A
  randomize = True
}
adp {
  atom_selection = chain B
  shift_b_iso = 10
}
sites {
  atom_selection = chain B
  shake = 1.5
}
sites {
  atom_selection = chain A or chain C
  translate = 1 2 3
  rotate = 4 5 6
}
occupancies
{
  atom_selection = chain A
  randomize = True
}
occupancies
{
  atom_selection = chain C
  set = 0.1
}
}
t   paramst   ws	   phe_e.pdbR2   i    s@   phenix.pdbtools "%s" modify.output.file_name=modified.pdb paramsRV   RK   s(   Performing requested model manipulationss   Expected output not found.i   t    i   s   
i   s1  Randomizing ADP: selected atoms: 12 of 36
Adding shift = 10.00 to all ADP: selected atoms: 12 of 36
Shaking sites (RMS = 1.500): selected atoms: 12 of 36
Rigid body shift: selected atoms: 24 of 36
Randomizing occupancies: selected atoms: 12 of 36
Setting occupancies to:    0.100: selected atoms: 12 of 36(   RX   t   writeR3   R4   R5   R6   R7   R	   Rx   t	   enumeratet   RuntimeErrorR
   (	   RJ   RK   R{   R   RP   t   resultR\   t   it   line(    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyt   exercise_multiplei  s"    	c         C   sÇ  t  j j |  d ƒ } d } | j d ƒ d k  s6 t ‚ d | | f } | d } t d | d | ƒ g  } xr t | d	 ƒ j ƒ  D][ } | j ƒ  } | j	 d
 ƒ d k s¬ t ‚ | j
 d ƒ sÊ | j
 d ƒ r | j | ƒ q q Wg  } xr t | d	 ƒ j ƒ  D][ } | j ƒ  } | j	 d
 ƒ d k s't ‚ | j
 d ƒ sE| j
 d ƒ rú | j | ƒ qú qú Wt | ƒ t | ƒ k swt ‚ xI t | | ƒ D]8 \ }	 }
 |	 d d !j ƒ  |
 d d !j ƒ  k s‡t ‚ q‡Wd  S(   Ns   t.pdbs   modified.pdbR2   i    s0   phenix.pdbtools "%s" modify.output.file_name=%s s,   sites.rotate="0 0 0" sites.translate="0 0 0"RV   RK   RW   t   CRYST1t   ATOMt   HETATMi   iF   (   R3   R4   R5   R6   R7   R	   RX   RY   t   stripR:   t
   startswitht   appendRZ   t   zip(   RJ   RK   R   RL   RN   RP   t   lines1Rƒ   t   lines2t   l1t   l2(    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyt   exercise_no_cryst1   s*    
c         C   sQ   t  j j |  d ƒ } | j d ƒ d k  s0 t ‚ d | } t d | d | ƒ d  S(   Ns   t.pdbR2   i    s*   phenix.pdbtools "%s" --show-adp-statisticsRV   RK   (   R3   R4   R5   R6   R7   R	   (   RJ   RK   R   RP   (    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyt   exercise_show_adp_statistics·  s    
c         C   sQ   t  j j |  d ƒ } | j d ƒ d k  s0 t ‚ d | } t d | d | ƒ d  S(   Ns	   phe_e.pdbR2   i    s/   phenix.pdbtools "%s" --show-geometry-statisticsRV   RK   (   R3   R4   R5   R6   R7   R	   (   RJ   RK   R   RP   (    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyt!   exercise_show_geometry_statistics½  s    
c         C   sÓ   t  j j |  d ƒ } d } | j d ƒ d k  s6 t ‚ d | | f } t | ƒ t d | d | ƒ t  j j | ƒ s{ t ‚ d } x9 t | ƒ j	 ƒ  j
 ƒ  D] } | d k rš | d	 7} qš qš W| d	 k sÏ t ‚ d  S(
   Ns	   phe_h.pdbs#   exercise_show_number_of_removed.logR2   i    s,   phenix.pdbtools "%s" remove="element H" > %sRV   RK   s   Atoms to be kept: 13 of 24i   (   R3   R4   R5   R6   R7   R   R	   t   isfileRX   t   readt
   splitlines(   RJ   RK   R   RU   RP   t   n_foundRƒ   (    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyt   exercise_show_number_of_removedÃ  s    
c         C   sÏ   t  j j |  d ƒ } | j d ƒ d k  s0 t ‚ d | } t d | d | ƒ d d d	 d
 d g } t j j j	 d d ƒ } d } x6 | j j
 ƒ  D]% } | j | k s« t ‚ | d 7} q� W| d k sË t ‚ d  S(   Ns   enk_gbr.pdbR2   i    s-   phenix.pdbtools "%s" truncate_to_polyala=trueRV   RK   s    N  s    CA s    C  s    O  s    CB R   s   enk_gbr.pdb_modified.pdbi   i   (   R3   R4   R5   R6   R7   R	   t   iotbxt   pdbt	   hierarchyt   inputt   atoms_with_labelst   name(   RJ   RK   R   RP   t   ala_atom_namest   pdb_inpt   countert   a(    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyt   exercise_truncate_to_polyalaÑ  s    
c          C   s¢   d d l  m }  d } t d d ƒ j | ƒ t j d ƒ |  j d ƒ j } | j } | j	 ƒ  } | j
 ƒ  d j d	 k s t ‚ | j ƒ  d j d
 k sž t ‚ d  S(   Niÿÿÿÿ(   t   file_readersT   
ATOM      1  CL  CL  X   1       0.000   0.000   0.000  1.00 20.00          CL
END
s
   tmp_cl.pdbR|   sJ   phenix.pdbtools tmp_cl.pdb charge_selection="element Cl" charge=-1 --quiets   tmp_cl.pdb_modified.pdbi    s   Cl1-s   1-(   R˜   R£   RX   R~   R   t   callt   any_filet   file_objectRš   t   xray_structure_simpleR   t   scattering_typeR7   t   atomst   charge(   R£   t	   input_pdbt   pdb_inRš   t   xrs(    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyt   exercise_set_chargeÞ  s    	c    	      C   sc  d }  d } d } t  | d ƒ j |  ƒ t j d | ƒ j ƒ  x] t t  | d ƒ j ƒ  | j ƒ  ƒ D]6 \ } } | j ƒ  } | j ƒ  } | | k se t	 ‚ qe Wd } t j d | ƒ j ƒ  t  | d ƒ j ƒ  } xA t | | j ƒ  ƒ D]* \ } } | j ƒ  | j ƒ  k sè t	 ‚ qè Wt j d	 | ƒ j ƒ  t  | d ƒ j
 ƒ  } d
 } t | | ƒ s_t	 ‚ d  S(   NsÅ  
ATOM      1  O   GLY A   3       1.434   1.460   2.496  1.00  6.04           O
ATOM      2  O   CYS A   7       2.196   4.467   3.911  1.00  4.51           O
ATOM      3  O   CYS A   1      -1.433   4.734   5.405  1.00  7.85           O
TER
ATOM      4  O   SER B   4       0.297   0.843   7.226  1.00  7.65           O
ATOM      5  OG ASER B   4      -2.625   1.057   4.064  0.50  5.46           O
ATOM      6  OG BSER B   4      -0.885   0.189   3.843  0.50 11.74           O
ATOM      7  O   LEU B   8       3.613   4.307   6.646  1.00  5.39           O
ATOM      8  O   PRO B  -1       4.398   6.723   8.658  1.00  6.65           O
ATOM      9  O   TYR B   7       7.294   7.360   6.923  1.00  8.75           O
ATOM     10  O   CYS B   0       5.256   8.262   4.185  1.00  6.08           O
ATOM     11  O   ALA B   9       3.028  10.447   5.584  1.00  7.39           O
TER
ATOM     12  O   LEU C   0       5.613  12.448   6.864  1.00  7.32           O
TER
END
sÀ  ATOM      1  O   GLY A   1       1.434   1.460   2.496  1.00  6.04           O
ATOM      2  O   CYS A   2       2.196   4.467   3.911  1.00  4.51           O
ATOM      3  O   CYS A   3      -1.433   4.734   5.405  1.00  7.85           O
TER
ATOM      4  O   SER B   1       0.297   0.843   7.226  1.00  7.65           O
ATOM      5  OG ASER B   1      -2.625   1.057   4.064  0.50  5.46           O
ATOM      6  OG BSER B   1      -0.885   0.189   3.843  0.50 11.74           O
ATOM      7  O   LEU B   2       3.613   4.307   6.646  1.00  5.39           O
ATOM      8  O   PRO B   3       4.398   6.723   8.658  1.00  6.65           O
ATOM      9  O   TYR B   4       7.294   7.360   6.923  1.00  8.75           O
ATOM     10  O   CYS B   5       5.256   8.262   4.185  1.00  6.08           O
ATOM     11  O   ALA B   6       3.028  10.447   5.584  1.00  7.39           O
TER
ATOM     12  O   LEU C   1       5.613  12.448   6.864  1.00  7.32           O
TER
s   exercise_renumber_residues.pdbR|   s+   phenix.pdbtools "%s" renumber_residues=trues   _modified.pdbsÀ  ATOM      1  O   GLY A   3       1.434   1.460   2.496  1.00  6.04           O
ATOM      2  O   CYS A   7       2.196   4.467   3.911  1.00  4.51           O
ATOM      3  O   CYS A   1      -1.433   4.734   5.405  1.00  7.85           O
TER
ATOM      4  O   SER B   1       0.297   0.843   7.226  1.00  7.65           O
ATOM      5  OG ASER B   1      -2.625   1.057   4.064  0.50  5.46           O
ATOM      6  OG BSER B   1      -0.885   0.189   3.843  0.50 11.74           O
ATOM      7  O   LEU B   2       3.613   4.307   6.646  1.00  5.39           O
ATOM      8  O   PRO B   3       4.398   6.723   8.658  1.00  6.65           O
ATOM      9  O   TYR B   4       7.294   7.360   6.923  1.00  8.75           O
ATOM     10  O   CYS B   5       5.256   8.262   4.185  1.00  6.08           O
ATOM     11  O   ALA B   6       3.028  10.447   5.584  1.00  7.39           O
TER
ATOM     12  O   LEU C   0       5.613  12.448   6.864  1.00  7.32           O
TER
s?   phenix.pdbtools "%s" renumber_residues=true selection="chain B"s<   phenix.pdbtools "%s" increment_resseq=10 selection="chain B"sÄ  ATOM      1  O   GLY A   3       1.434   1.460   2.496  1.00  6.04           O
ATOM      2  O   CYS A   7       2.196   4.467   3.911  1.00  4.51           O
ATOM      3  O   CYS A   1      -1.433   4.734   5.405  1.00  7.85           O
TER
ATOM      4  O   SER B  14       0.297   0.843   7.226  1.00  7.65           O
ATOM      5  OG ASER B  14      -2.625   1.057   4.064  0.50  5.46           O
ATOM      6  OG BSER B  14      -0.885   0.189   3.843  0.50 11.74           O
ATOM      7  O   LEU B  18       3.613   4.307   6.646  1.00  5.39           O
ATOM      8  O   PRO B   9       4.398   6.723   8.658  1.00  6.65           O
ATOM      9  O   TYR B  17       7.294   7.360   6.923  1.00  8.75           O
ATOM     10  O   CYS B  10       5.256   8.262   4.185  1.00  6.08           O
ATOM     11  O   ALA B  19       3.028  10.447   5.584  1.00  7.39           O
TER
ATOM     12  O   LEU C   0       5.613  12.448   6.864  1.00  7.32           O
TER
END
(   RX   R~   R   t   fully_bufferedt   raise_if_errorsR‹   RY   R•   Rˆ   R7   R”   R
   (	   R«   t   expected_output_pdbt   ifnt   line1t   line2t   expected_output_pdb_2t	   new_linest   pdb_newt   expected_output_pdb_3(    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyt   exercise_renumber_residuesì  s&    2""c          C   s†   d }  t  d d ƒ j |  ƒ t j d ƒ t  d ƒ j ƒ  } t | d ƒ sQ t ‚ t j d ƒ t  d ƒ j ƒ  } | |  k s‚ t ‚ d  S(	   Ns9  ATOM      1  O   GLY A   3       1.434   1.460   2.496  1.00  6.04           O
ATOM      2  O   CYS A   7       2.196   4.467   3.911  1.00  4.51           O
ATOM      3  O   CYS A   1      -1.433   4.734   5.405  1.00  7.85           O
TER
ATOM      4  O   SER B   4       0.297   0.843   7.226  1.00  7.65           O
ATOM      5  OG ASER B   4      -2.625   1.057   4.064  0.50  5.46           O
ATOM      6  OG BSER B   4      -0.885   0.189   3.843  0.50 11.74           O
TER
ATOM      7  O   LEU     0       5.613  12.448   6.864  1.00  7.32           O
TER
END
s   tmp_seg_id.pdbR|   sB   phenix.pdbtools tmp_seg_id.pdb set_seg_id_to_chain_id=True --quiets   tmp_seg_id.pdb_modified.pdbs9  ATOM      1  O   GLY A   3       1.434   1.460   2.496  1.00  6.04      A    O
ATOM      2  O   CYS A   7       2.196   4.467   3.911  1.00  4.51      A    O
ATOM      3  O   CYS A   1      -1.433   4.734   5.405  1.00  7.85      A    O
TER
ATOM      4  O   SER B   4       0.297   0.843   7.226  1.00  7.65      B    O
ATOM      5  OG ASER B   4      -2.625   1.057   4.064  0.50  5.46      B    O
ATOM      6  OG BSER B   4      -0.885   0.189   3.843  0.50 11.74      B    O
TER
ATOM      7  O   LEU     0       5.613  12.448   6.864  1.00  7.32           O
TER
END
sE   phenix.pdbtools tmp_seg_id.pdb_modified.pdb clear_seg_id=True --quiets(   tmp_seg_id.pdb_modified.pdb_modified.pdb(   RX   R~   R   R¤   R”   R
   R7   (   R«   t	   pdb_out_1t	   pdb_out_2(    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyt   exercise_set_seg_idC  s    c         C   s×   t  j j |  d ƒ } t j j j d | ƒ j ƒ  j ƒ  j	 ƒ  } | j
 d ƒ d k  sZ t ‚ d | } t d | d | ƒ t j j j d d ƒ } t j j j d d ƒ j ƒ  j ƒ  j	 ƒ  } | d	 | d
 k sÓ t ‚ d  S(   Ns   enk_gbr.pdbR   R2   i    s6   phenix.pdbtools "%s" remove_first_n_atoms_fraction=0.6RV   RK   s   enk_gbr.pdb_modified.pdbg      ð?gš™™™™™Ù?(   R3   R4   R5   R˜   R™   Rš   R›   R§   R   R9   R6   R7   R	   (   RJ   RK   R   t   n_atoms_startRP   RŸ   t   n_atoms_final(    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyt&   exercise_remove_first_n_atoms_fractione  s    
c          C   sä   t  d d ƒ j d ƒ d }  t d |  d t ƒ d t  d ƒ j ƒ  k sM t ‚ t j j j	 d	 d ƒ } t } xf | j j
 ƒ  D]U } | j ƒ  } | j d
 k s¢ t ‚ | j d k r{ t } | j d k sÌ t ‚ Pq{ q{ W| sà t ‚ d  S(   Ns   tmp_semet.pdbR|   sx  HETATM  507  N   MSE A 106      53.211  45.681  34.889  1.00  1.05           N
HETATM  508  CA  MSE A 106      51.827  45.381  35.207  1.00  1.35           C
HETATM  509  C   MSE A 106      50.937  45.462  33.968  1.00  3.57           C
HETATM  510  O   MSE A 106      49.956  44.737  33.860  1.00  4.67           O
HETATM  511  CB  MSE A 106      51.318  46.310  36.304  1.00  1.07           C
HETATM  512  CG  MSE A 106      49.833  46.180  36.603  1.00  1.06           C
HETATM  513 SE   MSE A 106      49.249  47.284  38.129  0.82 10.02          Se
HETATM  514  CE  MSE A 106      50.851  47.140  39.206  1.00  1.19           C
s7   phenix.pdbtools tmp_semet.pdb convert_semet_to_met=TrueRV   RK   R‡   s   tmp_semet.pdb_modified.pdbR   t   METs    SD s    S(   RX   R~   R	   R   R”   R7   R˜   R™   Rš   R›   R©   t   fetch_labelst   resnameR�   R;   t   element(   RP   RŸ   t   found_sdt   atomt   labels(    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyt   exercise_convert_semet_to_metq  s    	c          C   s�   t  d d ƒ j d ƒ d }  t d |  d t ƒ t  d ƒ j ƒ  } x9 | D]1 } | j d ƒ rH | j ƒ  d	 k su t ‚ PqH qH Wd  S(
   Ns   tmp_pdbtools_cb_op.pdbR|   s„  CRYST1   21.937    4.866   23.477  90.00 107.08  90.00 P 1 21 1      2
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  s>   phenix.pdbtools tmp_pdbtools_cb_op.pdb change_of_basis='a,c,b'RV   RK   s#   tmp_pdbtools_cb_op.pdb_modified.pdbR…   s?   CRYST1   21.937   23.477    4.866  90.00  90.00 107.08 P 1 1 21(   RX   R~   R	   R   RY   R‰   Rˆ   R7   (   RP   R\   Rƒ   (    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyt   exercise_change_of_basisŠ  s    	c          C   s±  d d l  m }  |  d d ƒ } | j d ƒ | j ƒ  d j d d | j d	 d
 g ƒ } t d | d t ƒ t j	 j
 | j d ƒ sŠ t ‚ t j j d | j d ƒ } | j ƒ  d k s¾ t ‚ | j ƒ  } g  | j ƒ  D] } | j ^ q× d d g k sþ t ‚ d j d d | j d d g ƒ } t d | d t ƒ t j	 j
 | j d ƒ sRt ‚ t j j d | j d ƒ } | j ƒ  d k s†t ‚ | j ƒ  } | j ƒ  j t ƒ s­t ‚ d  S(   Niÿÿÿÿ(   t   open_tmp_filet   suffixs   pdbtools.cifs8  data_phenix
_space_group.name_H-M_alt         'C 1 2 1'
_space_group.name_Hall            ' C 2y'
_cell.length_a                    46.053
_cell.length_b                    9.561
_cell.length_c                    20.871
_cell.angle_alpha                 90.0
_cell.angle_beta                  97.43
_cell.angle_gamma                 90.0
_cell.volume                      9112.60599144
loop_
  _atom_site.group_PDB
  _atom_site.id
  _atom_site.label_atom_id
  _atom_site.label_alt_id
  _atom_site.label_comp_id
  _atom_site.auth_asym_id
  _atom_site.auth_seq_id
  _atom_site.pdbx_PDB_ins_code
  _atom_site.Cartn_x
  _atom_site.Cartn_y
  _atom_site.Cartn_z
  _atom_site.occupancy
  _atom_site.B_iso_or_equiv
  _atom_site.type_symbol
  _atom_site.pdbx_formal_charge
  _atom_site.label_asym_id
  _atom_site.label_entity_id
  _atom_site.label_seq_id
  _atom_site.pdbx_PDB_model_num
  ATOM      2  CA  .  LYS  A  1  ?    7.49733  -0.62028   4.35289  1.000  10.25989  C  ?  A  ?   1  1
  ATOM     11  CA  .  LEU  A  2  ?    3.72032  -0.19320   3.89326  1.000   7.80433  C  ?  A  ?   2  1
  ATOM     19  CA  .  VAL  A  3  ?    0.78668  -0.39555   6.35234  1.000   5.03864  C  ?  A  ?   3  1
  ATOM     26  CA  .  PHE  A  4  ?   -2.75438  -0.21383   5.02429  1.000   8.93080  C  ?  A  ?   4  1
  ATOM     37  CA  .  PHE  A  5  ?   -6.05155  -0.46197   6.85390  1.000   9.57417  C  ?  A  ?   5  1
  ATOM     48  CA  .  ALA  A  6  ?   -9.57646  -0.10942   5.55847  1.000  17.73488  C  ?  A  ?   6  1
  ATOM     54  CA  .  LYS  B  1  ?   -8.86604  -5.20044   5.46515  1.000  16.15297  C  ?  B  ?   7  1
t    s   phenix.pdbtoolss   "%s"s   rename_chain_id.old_id=As   rename_chain_id.new_id=CRV   RK   s   _modified.pdbR   R™   Ro   t   Bs   adp.convert_to_anisotropic=Trues   output.format=mmcifs   _modified.cift   mmcif(   t   libtbx.test_utilsRÉ   R~   t   closeR5   R�   R	   R   R3   R4   R“   R7   R˜   R™   R›   t	   file_typet   construct_hierarchyt   chainst   idR§   R"   Rl   R;   (   RÉ   t   fRP   RŸ   Rš   t   chaint   xs(    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyt   exercise_mmcif_supportš  s.    &
4c          C   si   d }  d } t  d d ƒ j |  ƒ d } t d | d t ƒ t  d ƒ j ƒ  } | | k se t | ƒ ‚ d  S(	   Ns,  ATOM     16  O  AHOH A   2       5.131   5.251   5.823  0.60 10.00           O
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     18  O   HOH A   3       1.132   5.963   7.065  1.00 15.00           O
ATOM     19  H1  HOH A   3       1.160   5.211   6.437  1.00 15.00           H
ATOM     20  H2  HOH A   3       1.122   5.579   7.967  1.00 15.00           H
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
ATOM     23 CL   CL  B   1       6.302   6.419   1.560  0.50 10.00          CL
HETATM 6362  O   HOH B   2      47.616  10.724 150.212  1.00 46.48       B   O
HETATM 6363  O  AHOH B   3      46.408  16.672 146.066  0.50 12.81       B   O
HETATM 6364  O   HOH B   4      29.343  12.806 185.898  1.00 35.57       B   O
HETATM 6365  O  BHOH B   5      43.786  12.615 147.734  0.50 28.43       B   O
HETATM 6366  O   HOH B   6      35.068  19.167 155.349  1.00 15.97       B   O
sD  ATOM      1  CA  LYS A  32      10.574   8.177  11.768  1.00 11.49           C
ATOM      2  CB ALYS A  32       9.197   8.686  12.246  0.29 14.71           C
ATOM      3  CB BLYS A  32       9.193   8.732  12.170  0.71 12.23           C
ATOM      4  CA  VAL A  33      11.708   5.617  14.332  1.00 11.42           C
ATOM      5  CB  VAL A  33      11.101   4.227  14.591  1.00 11.47           C
TER
HETATM    6  P   PO4     1      -7.520  25.376  38.369  1.00 39.37           P
HETATM    7  O1  PO4     1      -6.610  24.262  38.967  1.00 40.00           O
HETATM    8  O2  PO4     1      -6.901  25.919  37.049  1.00 41.07           O
HETATM    9  O3  PO4     1      -8.894  24.741  38.097  1.00 45.09           O
HETATM   10  O4  PO4     1      -7.722  26.556  39.350  1.00 42.48           O
TER
ATOM     11 CL   CL  B   1       6.302   6.419   1.560  0.50 10.00          Cl
TER
ATOM     12  O  AHOH A   2       5.131   5.251   5.823  0.60 10.00           O
ATOM     13  O   HOH A   3       1.132   5.963   7.065  1.00 15.00           O
ATOM     14  H1  HOH A   3       1.160   5.211   6.437  1.00 15.00           H
ATOM     15  H2  HOH A   3       1.122   5.579   7.967  1.00 15.00           H
TER
HETATM   16  O   HOH B   2      47.616  10.724 150.212  1.00 46.48       B   O
HETATM   17  O  AHOH B   3      46.408  16.672 146.066  0.50 12.81       B   O
HETATM   18  O   HOH B   4      29.343  12.806 185.898  1.00 35.57       B   O
HETATM   19  O  BHOH B   5      43.786  12.615 147.734  0.50 28.43       B   O
HETATM   20  O   HOH B   6      35.068  19.167 155.349  1.00 15.97       B   O
TER
END
s   tst_pdbtools_move_waters.pdbR|   sB   phenix.pdbtools tst_pdbtools_move_waters.pdb move_waters_last=TrueRV   RK   s)   tst_pdbtools_move_waters.pdb_modified.pdb(   RX   R~   R	   R   R”   R7   (   R¬   t   pdb_outRP   R·   (    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyt   exercise_move_watersØ  s    c          C   sP   d }  t  d d ƒ j |  ƒ d } t d | d t ƒ | d } t d | ƒ d  S(   Ns‹  HETATM   16  O   UNK B   2      47.616  10.724 150.212  1.00 46.48       B   O
HETATM   17  O   UNK B   3      46.408  16.672 146.066  0.50 12.81       B   O
HETATM   18  O   UNK B   4      29.343  12.806 185.898  1.00 35.57       B   O
HETATM   19  O   UNK B   5      43.786  12.615 147.734  0.50 28.43       B   O
HETATM   20  O   UNK B   6      35.068  19.167 155.349  1.00 15.97       B   O
s   tst_pdbtools_unknown.pdbR|   s5   phenix.pdbtools tst_pdbtools_unknown.pdb set_b_iso=20RV   Ru   s    stop_for_unknowns=False(   RX   R~   R	   R;   (   R¬   RP   t   cmd2(    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyt   exercise_stop_for_unknowns  s    
c          C   sž   d }  t  d d ƒ j |  ƒ d } t d | d t ƒ t  d ƒ j ƒ  } | d k sY t ‚ d	 d
 } t d | d t ƒ t  d ƒ j ƒ  } | d k sš t ‚ d  S(   Nsx  ATOM     16  O  AHOH A   2       5.131   5.251   5.823  0.60 10.00           O
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     18  O   HOH A   3       1.132   5.963   7.065  1.00 15.00           O
ATOM     19  O  BHOH A   4       4.132   9.963   7.800  0.50 15.00           O
s   tst_pdbtools_alt_confs.pdbR|   s@   phenix.pdbtools tst_pdbtools_alt_confs.pdb remove_alt_confs=TrueRV   RK   s'   tst_pdbtools_alt_confs.pdb_modified.pdbsâ  ATOM      1  O   HOH A   2       5.131   5.251   5.823  1.00 10.00           O
ATOM      2  CA  LYS A  32      10.574   8.177  11.768  1.00 11.49           C
ATOM      3  CB  LYS A  32       9.197   8.686  12.246  1.00 14.71           C
ATOM      4  CA  VAL A  33      11.708   5.617  14.332  1.00 11.42           C
ATOM      5  CB  VAL A  33      11.101   4.227  14.591  1.00 11.47           C
ATOM      6  O   HOH A   3       1.132   5.963   7.065  1.00 15.00           O
TER
END
sA   phenix.pdbtools tst_pdbtools_alt_confs.pdb remove_alt_confs=True s   always_keep_one_conformer=Trues1  ATOM      1  O   HOH A   2       5.131   5.251   5.823  1.00 10.00           O
ATOM      2  CA  LYS A  32      10.574   8.177  11.768  1.00 11.49           C
ATOM      3  CB  LYS A  32       9.193   8.732  12.170  1.00 12.23           C
ATOM      4  CA  VAL A  33      11.708   5.617  14.332  1.00 11.42           C
ATOM      5  CB  VAL A  33      11.101   4.227  14.591  1.00 11.47           C
ATOM      6  O   HOH A   3       1.132   5.963   7.065  1.00 15.00           O
ATOM      7  O   HOH A   4       4.132   9.963   7.800  1.00 15.00           O
TER
END
(   RX   R~   R	   R   R”   R7   (   R¬   RP   R·   (    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyt   exercise_remove_alt_confs  s    
	
c          C   s]   d }  t  d d ƒ j |  ƒ d } t d | d t ƒ t  d ƒ j ƒ  } | d k sY t ‚ d  S(	   Nse  ATOM     16  O  AHOH A   2       5.131   5.251   5.823  0.60 10.00           O
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.41 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     18  O  AHOH B   3       1.132   5.963   7.065  0.80 15.00           O
ATOM     18  O  BHOH B   3       1.132   5.963   7.065  0.50 15.00           O
ATOM     19  O  AHOH B   4       4.132   9.963   7.800  0.50 15.00           O
ATOM     20  O  BHOH B   4       4.132   9.963   7.800  0.40 15.00           O
ATOM     21 ZN   ZN  C   5       8.000  12.124  11.900  0.75 20.00          ZN
s   tst_pdbtools_norm_occ.pdbR|   s_   phenix.pdbtools tst_pdbtools_norm_occ.pdb occupancies.normalize=True selection="not element ZN"RV   RK   s&   tst_pdbtools_norm_occ.pdb_modified.pdbsu  ATOM      1  O  AHOH A   2       5.131   5.251   5.823  1.00 10.00           O
ATOM      2  CA  LYS A  32      10.574   8.177  11.768  1.00 11.49           C
ATOM      3  CB ALYS A  32       9.197   8.686  12.246  0.59 14.71           C
ATOM      4  CB BLYS A  32       9.193   8.732  12.170  0.41 12.23           C
ATOM      5  CA  VAL A  33      11.708   5.617  14.332  1.00 11.42           C
ATOM      6  CB  VAL A  33      11.101   4.227  14.591  1.00 11.47           C
TER
ATOM      7  O  AHOH B   3       1.132   5.963   7.065  0.50 15.00           O
ATOM      8  O  BHOH B   3       1.132   5.963   7.065  0.50 15.00           O
ATOM      9  O  AHOH B   4       4.132   9.963   7.800  0.60 15.00           O
ATOM     10  O  BHOH B   4       4.132   9.963   7.800  0.40 15.00           O
TER
ATOM     11 ZN   ZN  C   5       8.000  12.124  11.900  0.75 20.00          Zn
TER
END
(   RX   R~   R	   R   R”   R7   (   R¬   RP   R·   (    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyt   exercise_normalize_occupanciesH  s    c         C   s  d |  k r d } n d |  k r* d } n d } t  j j d d d t j j ƒ } | d  k rf d	 GHd  Si | d
 6| d 6} t ƒ  t ƒ  t	 | �  t
 | �  t | �  t | �  t | �  t | �  t | �  t ƒ  t | �  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  d  S(   Ns   --show-everythingi   s	   --verbosei   i    t   relative_paths   phenix_regression/pdbt   tests.   Skipping exercise(): input files not availableRJ   RK   (   t   libtbxt   envt   find_in_repositoriesR3   R4   t   isdirR8   RÛ   R×   RT   R„   R�   R‘   R’   R—   R¢   R¹   R¿   R¼   R®   RÇ   RÈ   RÙ   RÜ   RÝ   (   t   argsRK   RJ   t   eargs(    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyt   exercisel  s:    		







t   __main__i   (@   t
   __future__R    Rà   R   t   libtbx.load_envt   sysR3   Re   t   cctbx.array_familyR   t   mmtbxR   t(   mmtbx.monomer_library.pdb_interpretationt   libtbx.utilsR   R   R   RÎ   R   R   R	   R
   R   t   iotbx.pdb.hierarchyR˜   t   scitbx.array_familyt   cctbxR   t   objectR   RT   RG   R=   R>   R?   R@   RA   RB   RC   RD   RE   RF   RH   RI   R„   R�   R‘   R’   R—   R¢   R®   R¹   R¼   R¿   RÇ   RÈ   R×   RÙ   RÛ   RÜ   RÝ   Ræ   R0   t   argv(    (    (    sK   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_pdbtools.pyt   <module>   sb   $"	N		
	7							W	"				>	9		)	$	 