ó
ŽxTc           @   s   d  d l  m Z d  d l m Z m Z d  d l Z d  d l m Z d  d l	 Z
 d  d l m Z d  d l Z d  d l Z d   Z e d k r e   d GHn  d S(	   i˙˙˙˙(   t   division(   t   servert   pdb_interpretationN(   t   file_reader(   t   null_outc          C   sű  t  j j d d d t j j  }  t j   } t j   } t j	 j
   } t j d | d | d | d t j |  d d	 j d
 t    } | j j } t j j j d | d
 t    } t |  d k sĚ t  t j j j | d
 t   } | j   } | j   j   }	 t j   }
 g  } x! | j D] } | j | j   q$W| j! d |	 d | j d t" d
 |
  } |
 j#   d k s}t  | d k st  xe t$ | j  D]T \ } } | d k rĎ| j  d k sót  q| d k r| j  d k sót  qqWd  S(   Nt   relative_paths   phenix_regression/pdb/enk.pdbt   testt   mon_lib_srvt   ener_libt   paramst   pdb_inpt
   force_typet   pdbt   logt   pdb_hierarchyi   t
   sites_cartt   dihedral_proxiest   verbosesŠ    Updating dihedral proxies from rotamer library
   TYR A   1  : Sm30 (rmsd=1.395)
   PHE A   4  : Sm30 (rmsd=0.684)
   LEU A   5  : tp (rmsd=0.004)
 6 proxies modified.
i   i   g     @S@i	   g     @UŔ(%   t   libtbxt   envt   find_in_repositoriest   ost   patht   isfileR   R   R   t   master_paramst   extractt   processR   t   any_filet   file_objectR   t   all_chain_proxiesR   t   mmtbxt   geometry_restraintst   rotamert   extract_proxiest   lent   AssertionErrort   managert   geometry_restraints_managert   atomst   extract_xyzt	   cStringIOt   StringIOR   t   appendt   angle_idealt   update_dihedral_proxiest   Truet   getvaluet	   enumerate(   t   pdb_fileR   R   R	   t   processed_pdb_fileR   t   proxiest   mt   grmR   t   tmp_logt
   old_anglest   proxyt	   n_updatest   i(    (    sS   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry_restraints/tst_rotamer.pyt   exercise
   sJ    					  t   __main__t   OK(   t
   __future__R    t   mmtbx.monomer_libraryR   R   t!   mmtbx.geometry_restraints.rotamerR   t   iotbxR   t   libtbx.load_envR   t   libtbx.utilsR   R(   R   R:   t   __name__(    (    (    sS   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/geometry_restraints/tst_rotamer.pyt   <module>   s   	+