ó
œ™xTc           @   s   d  d l  m Z d  d l Z d  d l m Z d  d l Z i  Z x0 e j j	 j
 ƒ  D] \ Z Z e e e j ƒ  <qQ Wd e d <d „  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 d „  Z e d k re d e j d ƒ n  d S(   iÿÿÿÿ(   t   divisionN(   t   split_keeping_spacess   H2*s   H2'c         C   s�   |  | } t  | } | |  | <| d t |  ƒ k  r‰ t |  | d ƒ } t | ƒ t | ƒ } | | k sp t ‚ d | | |  | d <n  d  S(   Ni   t    (   t
   trans_dictt   lent   AssertionError(   t   fldst   it   v3t   v2t   lt   d(    (    sN   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/monomer_library/conv_v2_v3.pyt   trans_field   s    


c         c   s>   x7 |  D]/ } | j  d ƒ s( | d k r1 | GHd  S| Vq Wd  S(   Nt   #t   loop_(   t
   startswith(   t   linest   line(    (    sN   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/monomer_library/conv_v2_v3.pyt   iter_until_loop   s    c         C   sk   xd t  |  ƒ D]V } t | ƒ } t | ƒ | k s7 t ‚ x | D] } t | | ƒ q> Wd j | ƒ GHq Wd  S(   Nt    (   R   R   R   R   R   t   join(   R   t   len_fldst   i_listR   R   R   (    (    sN   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/monomer_library/conv_v2_v3.pyt   rename_generic   s    c         C   s   t  |  d d g ƒ d  S(   Ni
   i   (   R   (   R   (    (    sN   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/monomer_library/conv_v2_v3.pyt   rename_atom&   s    c         C   sŠ   xƒ t  |  ƒ D]u } t | ƒ } t | ƒ d k s7 t ‚ x: d d d d g D]& } | | d k rJ t | | ƒ qJ qJ Wd j | ƒ GHq Wd  S(   Ni
   i   i   i   i	   s   n/at   STARTt   ADDt   ENDt   .R   (   s   n/aR   R   R   R   (   R   R   R   R   R   R   (   R   R   R   R   (    (    sN   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/monomer_library/conv_v2_v3.pyt   rename_tree)   s    c         C   s   t  |  d d d g ƒ d  S(   Ni   i   i   (   R   (   R   (    (    sN   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/monomer_library/conv_v2_v3.pyt   rename_bond2   s    c         C   s   t  |  d d d d g ƒ d  S(   Ni   i   i   i   (   R   (   R   (    (    sN   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/monomer_library/conv_v2_v3.pyt   rename_angle5   s    c         C   s    t  |  d d d d d g ƒ d  S(   Ni   i   i   i	   i   (   R   (   R   (    (    sN   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/monomer_library/conv_v2_v3.pyt
   rename_tor8   s    c         C   s    t  |  d d d d d g ƒ d  S(   Ni   i   i   i	   i   (   R   (   R   (    (    sN   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/monomer_library/conv_v2_v3.pyt   rename_chir;   s    c         C   s   t  |  d d g ƒ d  S(   Ni   i   (   R   (   R   (    (    sN   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/monomer_library/conv_v2_v3.pyt   rename_plan>   s    c         C   s   t  |  d d d g ƒ d  S(   Ni   i   i	   (   R   (   R   (    (    sN   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/monomer_library/conv_v2_v3.pyt   rename_link_bondA   s    c         C   s   t  |  d d d d g ƒ d  S(   Ni   i   i	   i   (   R   (   R   (    (    sN   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/monomer_library/conv_v2_v3.pyt   rename_link_angleD   s    c         C   s    t  |  d d d d d g ƒ d  S(   Ni   i   i   i   i   (   R   (   R   (    (    sN   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/monomer_library/conv_v2_v3.pyt   rename_link_torG   s    c         C   s„  t  |  ƒ d k s t ‚ t t |  d ƒ j ƒ  j ƒ  ƒ } xC| D];} | GH| d k re t | ƒ qA | d k r~ t | ƒ qA | d k r— t | ƒ qA | d k r° t	 | ƒ qA | d k rÉ t
 | ƒ qA | d k râ t | ƒ qA | d	 k rû t | ƒ qA | d
 k rt | ƒ qA | d k r-t | ƒ qA | d k rFt | ƒ qA | d k rat d ƒ ‚ qA | d k rA t d ƒ ‚ qA qA Wd  S(   Ni   i    s   _chem_comp_atom.partial_charges   _chem_comp_tree.connect_types   _chem_comp_bond.value_dist_esds    _chem_comp_angle.value_angle_esds   _chem_comp_tor.periods   _chem_comp_chir.volume_signs   _chem_comp_plane_atom.dist_esds   _chem_link_bond.value_dist_esds    _chem_link_angle.value_angle_esds   _chem_link_tor.periods   _chem_link_chir.volume_signs   Not implemented.s   _chem_link_plane.dist_esd(   R   R   t   itert   opent   readt
   splitlinesR   R   R   R   R    R!   R"   R#   R$   R%   t   RuntimeError(   t   argsR   R   (    (    sN   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/monomer_library/conv_v2_v3.pyt   runJ   s8    "t   __main__R+   i   (   t
   __future__R    t	   iotbx.pdbt   iotbxt   libtbx.str_utilsR   t   sysR   t   pdbt8   rna_dna_atom_names_reference_to_mon_lib_translation_dictt   itemst   kt   vt   stripR   R   R   R   R   R   R   R    R!   R"   R#   R$   R%   R,   t   __name__t   argv(    (    (    sN   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/monomer_library/conv_v2_v3.pyt   <module>   s.   
	
														