ó
xTc           @   s   d  d l  m Z d  d l m Z d  d l m Z d  d l Z d  d l Z d   Z d   Z	 d   Z
 d   Z d	   Z e d
 k r e   n  d S(   i’’’’(   t   division(   t   server(   t   dict_with_default_0Nc         C   s¦   d } xB | j  D]7 } | j d  k s: t | j  d k r | d 7} q q Wd } | d k r¢ d G|  G| Gt | j   G| t | j   k r d } n
 d } d GHn  | S(   Ni    i   t   oks   unknown type_energy:t   allt   somes   only some unknown(   t	   atom_listt   type_energyt   Nonet   len(   t   comp_idt   comp_comp_idt   n_unknown_type_energyt   atomt   status(    (    sU   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/monomer_library/tst_all_cif_files.pyt   detect_unknown_type_energy   s    $	c         C   s?   t  | j  d k r d St  | j  d k r2 d Sd G|  GHd S(   Ni   R   i    s   missing bond angle definitions:R   (   R	   R   t
   angle_list(   R
   R   (    (    sU   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/monomer_library/tst_all_cif_files.pyt    detect_missing_angle_definitions   s      	c         C   s   d } d } xI | j  D]> } | j d  k r8 | d 7} n  | j d  k r | d 7} q q W| d k sp | d k r d G| G| GHd Sd S(   Ni    i   s   missing bond values:t   badR   (   t	   bond_listt
   value_distR   t   value_dist_esd(   R
   R   t   n_missing_idealt   n_missing_esdt   bond(    (    sU   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/monomer_library/tst_all_cif_files.pyt   detect_missing_bond_values   s      c         C   s   d } d } xI | j  D]> } | j d  k r8 | d 7} n  | j d  k r | d 7} q q W| d k sp | d k r d G| G| GHd Sd S(   Ni    i   s   missing angle values:R   R   (   R   t   value_angleR   t   value_angle_esd(   R
   R   R   R   R   (    (    sU   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/monomer_library/tst_all_cif_files.pyt   detect_missing_angle_values)   s      c          C   sÓ  t  j   }  t  j  d |   } d G| j GHg  } d } t   } t   } t   } t   } xt j t j D]} t j j	 | j |  }	 t j j
 |	  s” qk n  xŅt j |	  D]Į}
 |
 j   j d  sŅ q± n  |
 d  } | j d  rń q± n  | d k r
| d	  } n  | j   | k r7d
 Gt j j	 | |
  GHn  | j d |  } | d  k rvd | t j j	 |	 |
  f GHq± | d 7} | j d j	 | j   t j j	 | |
  g   t d | d |  } | | c d 7<t d | d |  } | | c d 7<t d | d |  } | | c d 7<t d | d |  } | | c d 7<d r± | d k r± d t j j	 | |
  GHq± q± Wqk Wd G| GHd G| GHd G| GHd G| GHd G| GHd GHt d d  j d j	 |  d  d  S(   Nt   list_cifs   srv.root_path:i    s   .cifiü’’’t   _ELt   CON_CONt   PRN_PRNi   s   Mixed case:R
   s(   Error instantiating comp_comp_id %s (%s)i   t    R   R   s   svn rm "%s"s&   number of cif files read successfully:s   unknown type_energy counts:s&   missing bond angle definitions counts:s   missing bond values counts:s   missing angle values counts:s   writing file table_of_contentst   table_of_contentst   ws   
(   R   R    (   R   t   mon_lib_list_cift	   root_pathR   t   stringt	   lowercaset   digitst   ost   patht   joint   isdirt   listdirt   lowert   endswitht   uppert   get_comp_comp_id_directR   t   appendR   R   R   R   t   opent   write(   R   t   srvR"   t   n_get_comp_comp_id_successest   unknown_type_energy_countst    missing_angle_definitions_countst   missing_bond_values_countst   missing_angle_values_countst
   first_chart   sub_dirt   nodeR
   R   R   (    (    sU   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/monomer_library/tst_all_cif_files.pyt   exercise4   sh    				  
 
+#				t   __main__(   t
   __future__R    t   mmtbx.monomer_libraryR   t   libtbxR   R&   R)   R   R   R   R   R>   t   __name__(    (    (    sU   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/monomer_library/tst_all_cif_files.pyt   <module>   s   					4