ó
J™xTc           @   s}  d  d l  m Z d  d l m Z d  d l m Z d  d l m Z d  d l m Z d  d l	 Z
 d  d l
 m Z d  d l m Z m Z d  d	 l 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 d „ Z d „  Z e d „ Z d d „ Z d „  Z d „  Z d e d d „ Z! d „  Z" d „  Z# d „  Z$ d „  Z% d „  Z& e' d k rye& ƒ  n  d S(   iÿÿÿÿ(   t   division(   t   strudat(   t   geometry_restraints(   t   crystal(   t   flexN(   t   matrix(   t   approx_equalt	   show_diff(   t   format_cpu_times(   t   dict_with_default_0(   t   StringIOi   i    c         C   sê  xãt  d |  d ƒ D]Î} d s& | r2 d G| GHn  t j j d | ƒ } y | j ƒ  d } t } WnC t k
 r¦ } t | ƒ d k s‹ t ‚ d d | d } t	 } n Xt
 j j d	 | j ƒ } t
 j d
 | ƒ } | j d | ƒ d sí | r˜| j d	 | j ƒ j }	 d G| Gd Gt j |	 j ƒ GHd Gd Gd Gt j |	 j ƒ GH|	 j j | j ƒ  ƒ s]t ‚ | d k rx) |	 j D] }
 t |
 d ƒ sst ‚ qsWqn… | d k  rt ƒ  } | j d	 | j d | ƒ j }	 |	 j j | j ƒ  ƒ sét ‚ t | j ƒ  j ƒ  ƒ d d g | k st ‚ ~ n  | d k rG| j ƒ  j d ƒ sbt ‚ n | j ƒ  j d ƒ sbt ‚ ~ t
 j d
 | d | ƒ j ƒ  d } d s“| rŸd G| GHn  | s t | | j ƒ  ƒ sÀt ‚ t | | j ƒ  d ƒ sât ‚ q q Wd  S(   Ni    i   s   level:t   levelgü©ñÒMbP?s"   next_neighbors_distance not known.gš™™™™™Ù?i   t
   sites_cartt   asu_mappingst   distance_cutofft   mins        t    t   maxgS¡ÊÒð?t   outiH   i@  i   i   g      à?s   max_distance:gj¼t“ð?(   t   xranget   scitbxt   matht   icosahedront   next_neighbors_distancet   Falset   RuntimeErrort   strt   AssertionErrort   TrueR   t   direct_space_asut!   non_crystallographic_asu_mappingst   sitest   pair_asu_tablet   add_all_pairst   show_distancest   distances_infoR   R   t	   distancesR   t   pair_countst   all_eqR   R
   t   lent   getvaluet
   splitlinest   neighbors_fast_pair_generatort   max_distance_sq(   t	   max_levelt   verboseR   R   R   t   estimated_distance_cutofft   eR   R    t   pst   dt   st   max_distance(    (    sQ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_pair_asu_table.pyt   exercise_icosahedron   sR    

	.	c         C   sh  |  j  ƒ  d d } g  t j d ƒ t j d ƒ t j d ƒ g D] }	 | |	 ^ q? }
 |  j } |  j } |  j } xá d d d g |
 g D]Ê } | | g  t | | ƒ | ƒ D] \ }	 } |	 | ^ q¨ ƒ } | d d d g k sé | | k rò | } n | } | | | | ƒ } | | | | ƒ } | d d d g k r† t | | ƒ d k rPt Sq† q† Wt | | ƒ d k  S(   Ng      à?gš™™™™™¹?i   i   i   i    gü©ñÒMbP?(	   t   shortest_vector_sqR   t   sqrtt   fractionalizet   orthogonalizet   distancet   zipt   absR   (   t	   unit_cellt   i_seqt   site_frac_it   j_seqt   site_frac_jt   special_op_jt
   rt_mx_ji_1t
   rt_mx_ji_2t   ft   xt   trial_shiftst   fract   ortht   distt   shiftsR2   t
   site_j_modt
   site_i_modt   d1t   d2(    (    sQ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_pair_asu_table.pyt   is_sym_equiv_interaction_simple>   s"    A				3!	c         C   s–  |  j  ƒ  } | j ƒ  } |  j ƒ  j ƒ  } xet | j ƒ  ƒ D]Q\ } } | j | d ƒ j ƒ  } x*| j ƒ  D]\ }	 }
 g  } xY t |
 ƒ D]K \ } } x< | D]4 } | j	 | j |	 | ƒ ƒ } | j
 | | f ƒ q  Wq� Wx« | D]£ \ } } x” | D]Œ \ } } t d | d | d | | d |	 d | |	 d | j |	 ƒ d | d	 | ƒ } | rp| s‚| | k smt ‚ q‚qö | | k sö t ‚ qö Wqã Wqn Wq= Wd  S(
   Ni    R<   R=   R>   R?   R@   RA   RB   RC   (   R<   R   t
   scattererst   extract_sitest	   enumeratet   tablet	   get_rt_mxt   inverset   itemst   multiplyt   appendRO   t
   special_opR   (   t	   structuret   bond_asu_tablet   weakR<   R   t
   sites_fracR=   t   recordst   rt_mx_i_invR?   t   j_sym_groupst   i_group_rt_mx_jist   i_groupt   j_sym_groupt   j_symt   rt_mx_jit   git   rit   gjt   rjt   is_sym_equiv(    (    sQ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_pair_asu_table.pyt   check_sym_equivY   s4    

	 c   
      C   s¢   d } x• t  |  j ƒ  | ƒ D]~ \ } } d } x; | j ƒ  D]- \ } } x | D] }	 | t |	 ƒ 7} qN Wq; Wd sx | rˆ d G| G| GHn  | | k s t ‚ q Wd  S(   Ni    s   n, connectivity:(   R:   RS   RV   R'   R   (
   R[   t   connectivitiesR-   t   n_mismatchesR^   t   connectivityt   nR?   R`   Rc   (    (    sQ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_pair_asu_table.pyt   check_connectivitiesu   s    "c         C   s|   |  j  d | ƒ } x$ |  j ƒ  D] } | j d | ƒ q W| j ƒ  j ƒ  j | j ƒ  ƒ s` t ‚ | j ƒ  | k sx t ‚ d  S(   NR   t   original_site(   t   incremental_pairsR]   t   process_site_fracR    R%   R&   R   (   RZ   R   t   reference_pair_asu_tablet   ipt	   site_frac(    (    sQ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_pair_asu_table.pyt   exercise_incremental_pairs€   s    c         C   sB  t  j ƒ  } g  } x¾ t | j ƒ  ƒ D]ª \ } } x› | j ƒ  D]s \ } } | | k rŠ x  | D] }	 d |	 k s] t ‚ q] W| j t ƒ Pn  | | k  r> | | r> | j t ƒ Pq> q> W| j t ƒ | j | ƒ q% W| j	 ƒ  j
 | ƒ sî t ‚ | j	 d d ƒ j
 | d  ƒ st ‚ |  j d | ƒ }
 t  j ƒ  } xB t |  j ƒ  ƒ D]. \ } } |
 j d | ƒ rD| j | ƒ qDqDW| j
 | ƒ s‹t ‚ |  j d | ƒ }
 |
 j d |  j ƒ  d |  j ƒ  ƒ } | j
 | ƒ sÖt ‚ |  j d | ƒ }
 |
 j d |  j ƒ  d |  j ƒ  d d ƒ } | j
 | d  ƒ s+t ‚ |  j d | ƒ }
 |
 j d |  j ƒ  ƒ } | j
 | ƒ sjt ‚ |  j d | ƒ }
 |
 j d |  j ƒ  d d ƒ } | j
 | d  ƒ s³t ‚ |  j d | ƒ }
 |
 j d |  j ƒ  d |  j ƒ  ƒ } | j
 | ƒ sþt ‚ |  j d | ƒ }
 |
 j d |  j ƒ  d |  j ƒ  d d ƒ } | j
 | d  ƒ sSt ‚ |  j d | ƒ }
 |
 j d |  j ƒ  ƒ } | j
 | ƒ s’t ‚ |  j d | ƒ }
 |
 j d |  j ƒ  d d ƒ } | j
 | d  ƒ sÛt ‚ |  j d | d t ƒ }
 |
 j d |  j ƒ  d |  j ƒ  ƒ } | j	 d t ƒ } | j
 | ƒ s>t ‚ d  S(	   Ni    t   max_clustersi   t   min_distanceRq   t   original_sitest   site_symmetry_tablet   general_positions_only(   R   t   size_tRR   RS   RV   R   RX   R   R   t   cluster_pivot_selectionR&   t   site_cluster_analysisR]   Rs   t   process_sites_fracR{   t   process_sites_cartR   (   RZ   R   Rt   t   pat_selectiont   pat_keepR=   t   pair_asu_dictR?   t   pair_asu_j_sym_groupsRc   t   scat   sca_selectionRv   (    (    sQ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_pair_asu_table.pyt   exercise_site_cluster_analysis‹   s’    																		c   	         s@  d s | r d G| GHn  ˆ j  d | ƒ } xt d ƒ D]} | d k r  t j d | ƒ ‰  ˆ  j d | ƒ t d ˆ d | d ˆ  ƒ t d ˆ d | d ˆ  ƒ n` ˆ  j ƒ  ‰ t j d | ƒ ‰  ˆ  j d	 ˆ ƒ ‡  ‡ f d
 †  } | ƒ  ‡ ‡ f d †  } | ƒ  | d  k	 rt
 ˆ  | | ƒ n  t d ˆ d ˆ  d | ƒ q7 Wd  S(   Ni    s   distance_cutoff:t   buffer_thicknessi   R   R   RZ   Rt   t	   sym_tablec             s  ˆ j  ƒ  }  xøt ˆ j ƒ  ƒ D]ä\ } } |  j | d ƒ } | j ƒ  } x·| j ƒ  D]©\ ‰  } ˆ j ƒ  ‰ ‡  ‡ f d †  } d  } xv| D]n} g  }	 x6 | D]. }
 | j |  j ˆ  |
 ƒ ƒ } |	 j	 | ƒ q  W| |	 ƒ } t
 ƒ  } xó |	 D]ë } |  j ƒ  } | j d | d ˆ  d | ƒ } | j ƒ  } | | ƒ } | | k sHt ‚ | j d j g  | D] } t | ƒ ^ q[ƒ ƒ x& |	 D] } | j d | ƒ s~t ‚ q~W| d  k	 rî x* | D] } | j d | ƒ s³t ‚ q³Wqî qî Wt | ƒ d k sõt ‚ |	 } q� WqV Wq Wd  S(   Ni    c            sC   g  } x, |  D]$ } | j  t | ˆ ˆ  j ƒ ƒ q W| j ƒ  | S(   N(   RX   t   numstrt   sitet   sort(   t   symopst   resultR2   (   R?   t   scs(    sQ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_pair_asu_table.pyt
   get_coords  s
    "
R=   R?   Re   t   ;i   (   R   RR   RS   RT   RU   RV   RP   t   NoneRW   RX   t   setR{   t%   symmetry_equivalent_pair_interactionst   getR   t   addt   joinR   t   is_equivalentR'   (   R   R=   t
   j_seq_dictt   rt_mx_iR_   Rc   R‘   t   prev_equiv_rt_mx_jit   j_symst   equiv_rt_mx_jiRd   Re   t
   old_coordst   all_sepit   _t   sepi_objt   sepit
   new_coords(   R[   RZ   (   R?   R�   sQ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_pair_asu_table.pyt.   exercise_symmetry_equivalent_pair_interactionsÿ   s>    		/$c             s  d „  }  d „  } ˆ  j  d ˆ j ƒ  ƒ } |  | ƒ t ƒ  } ˆ j | d | ƒ| j  d ˆ j ƒ  ƒ } |  | ƒ t ƒ  } ˆ j | d | ƒt | j ƒ  | j ƒ  ƒ s° t ‚ | j ƒ  } | | ƒ | j d ˆ j ƒ  ƒ } | | ƒ t ƒ  } ˆ j | d t d | ƒ| j ƒ  j	 d ƒ d k  s+t ‚ | j  d ˆ j ƒ  ƒ } |  | ƒ t ƒ  } ˆ j | d | ƒt | j ƒ  | j ƒ  ƒ s‹t ‚ | j d ˆ j ƒ  ƒ } | | ƒ | j  d ˆ j ƒ  ƒ } |  | ƒ t ƒ  } ˆ j | d | ƒt | j ƒ  | j ƒ  ƒ st ‚ d  S(   Nc         S   s„   x} |  j  ƒ  D]o } | j ƒ  \ } } | | k s7 t ‚ t |  | | ƒ d k sW t ‚ | | k r | |  | k s| t ‚ q q Wd  S(   Ni    (   t   iteratort   i_seqsR   R'   (   t   pstt   sym_pairR=   R?   (    (    sQ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_pair_asu_table.pyt   check_one_way&  s     c         S   sm   xf |  j  ƒ  D]X } | j ƒ  \ } } t |  | | ƒ d k sE t ‚ t |  | | ƒ d k s t ‚ q Wd  S(   Ni    (   R¦   R§   R'   R   (   R¨   R©   R=   R?   (    (    sQ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_pair_asu_table.pyt   check_two_way-  s     R{   R   t   is_full_connectivitys   sym. equiv.i    (
   t   tidyR{   R
   t   pair_sym_table_showR   R(   R   t   full_connectivityR   t   find(   Rª   R«   t   pst_extractedt   sio_extractedR¨   t   siot   pst_fullt	   pst_full2(   t   bond_sym_tableRZ   (    sQ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_pair_asu_table.pyt2   exercise_pair_sym_table_tidy_and_full_connectivity%  sJ    			
		
	"
	
	!	
	"	
	
	R[   R\   (   R   R   R   R    R!   Rw   Rˆ   t   extract_pair_sym_tablet   add_pair_sym_tableR“   Rp   Rk   (	   RZ   R   Rl   t   weak_check_sym_equivR-   R   t   i_passR¥   R·   (    (   R[   R¶   RZ   sQ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_pair_asu_table.pyt   exerciseä   s<    	
	%0c      	   C   sV  |  j  d | ƒ } t j d | ƒ } | j d | ƒ | j ƒ  } | j ƒ  } | j ƒ  } | j ƒ  | j ƒ  k sv t ‚ x@ | D]8 \ } } | | | k sŸ t ‚ | | | k s} t ‚ q} W| j	 ƒ  }	 t
 t | j ƒ  ƒ ƒ t
 | ƒ |	 k só t ‚ t j |  j ƒ  j ƒ  ƒ }
 xm t | ƒ D]_ \ } } xP | j ƒ  D]B } | | k rV| | } } n  t j d d d d ƒ |
 | | <q4WqWt j d |
 d	 | ƒ } t j d
 | ƒ } t j d | d | d t ƒ } t j d | ƒ } x3 | D]+ } | j t j d | d d d d ƒ ƒ qßWd „  } | d | d | ƒ | d | d | ƒ |  j ƒ  } xq | j D]f } | j \ } } t t t j | | ƒ t j | | ƒ ƒ | j ƒ s¤t ‚ | j  d k sSt ‚ qSW| j  ƒ  j! ƒ  j" } | j  ƒ  j# } |  j$ ƒ  } xb | j% D]W } t | | | j& | d | ƒ | | j' ƒ | j ƒ s9t ‚ | j  d k s÷t ‚ q÷Wd  S(   NR‰   R   R   t   distance_idealgÍÌÌÌÌÌ@t   weighti   t   bond_params_tableR[   R    t   minimalt   pairc         S   s¸  |  j  j ƒ  | j  j ƒ  k s$ t ‚ |  j j ƒ  | j j ƒ  k sH t ‚ i  } x7 |  j  D], } | j | j ƒ sw t ‚ d | | j <qX Wx< | j  D]1 } | j | j ƒ s° t ‚ | | j c d 7<q’ W| j ƒ  d g t | ƒ k sì t ‚ i  } xI |  j D]> } | j | j	 | j
 f } | j | ƒ s0t ‚ d | | <qü WxN | j D]C } | j | j	 | j
 f } | j | ƒ s{t ‚ | | c d 7<qHW| j ƒ  d g t | ƒ k s´t ‚ d  S(   Ni    i   (   t   simplet   sizeR   t   asut   has_keyR§   t   valuesR'   R=   R?   Rd   (   t	   proxies_1t	   proxies_2t   ctrlt   proxyt   key(    (    sQ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_pair_asu_table.pyt   compare_proxies„  s(    $$%RÇ   RÈ   ((   R   R   R    R!   R¸   t   simple_edge_listt   full_simple_connectivityRÃ   R   t"   number_of_pairs_involving_symmetryR'   t   listR¦   R   R¿   RP   RR   t   keyst   bond_paramst   bond_sorted_asu_proxiest   neighbors_simple_pair_generatorR   t   processt   bond_asu_proxyR   RÂ   R§   R   R;   R   t   colR½   R¾   R<   R9   t   get_rt_mx_jiR]   RÄ   R=   R?   (   RZ   R   R   R[   R¶   t   elt   est   it   jt   npisR¿   R=   t   bond_sym_dictR?   t   proxies_fastt   proxies_conservativet   pair_generatort   proxies_slowRÁ   RÌ   R   RÊ   R9   RØ   R]   (    (    sQ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_pair_asu_table.pyt    exercise_bond_sorted_asu_proxies]  sp    .										'
c         C   sP  |  j  ƒ  } t j d | ƒ } x+t |  j ƒ  ƒ D]\ } } g  } x[ | j ƒ  D]M \ } } x> t | ƒ D]0 \ } }	 x! |	 D] }
 | j | |
 f ƒ q| Wqi WqP Wx¤ t d t | ƒ d ƒ D]‰ } | | } | j	 | Œ  j
 ƒ  } xa t | d t | ƒ ƒ D]F } | | } | j d | d d | d d | j | j	 | Œ  ƒ ƒ qú Wq» Wq1 W| S(   NR   i    i   R=   R?   Re   (   R   R   R    RR   RS   RV   RX   R   R'   RT   RU   t   add_pairRW   (   t   selfR   R�   R=   t   asu_dictt	   pair_listR?   R`   Rb   Rc   Rd   t   i_jj1t   jj1t   rt_mx_jj1_invt   i_jj2t   jj2(    (    sQ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_pair_asu_table.pyt&   py_pair_asu_table_angle_pair_asu_table­  s$     
 
	

%c   &      C   s­  |  j  d d | ƒ } t j d | ƒ } | j d | d d ƒ t | j ƒ  ƒ | k s\ t ‚ |  j ƒ  } | j  d d | ƒ } t j d | ƒ }	 |	 j d | d d ƒ |  j ƒ  j	 ƒ  }
 | j ƒ  j	 ƒ  } t
 t |
 | j ƒ  ƒ ƒ } x9 t | |	 j ƒ  ƒ D]" \ } } | | | k sû t ‚ qû Wt d | ƒ } | j ƒ  } | j ƒ  | j ƒ  k sZt ‚ i  } x‡ t | j ƒ  ƒ D]s \ } } |
 | } xZ | j ƒ  D]L \ } } |
 | } x3 | D]+ } | j | t ƒ  ƒ | c t | ƒ 7<q³Wq–WqsW|	 j ƒ  } i  } x‡ t | j ƒ  ƒ D]s \ } } | | } xZ | j ƒ  D]L \ } } | | } x3 | D]+ } | j | t ƒ  ƒ | c t | ƒ 7<qOWq2WqWi  } x' |  j ƒ  D] } | j ƒ  | | j <q™Wt | j ƒ  ƒ t | j ƒ  ƒ k sàt ‚ x� | j ƒ  D]� \ } } | | } t | j ƒ  ƒ t | j ƒ  ƒ k s-t ‚ x> | j ƒ  D]0 \ } } | | }  |  | | | k s:t ‚ q:WqíWt | j ƒ  ƒ j d d	 ƒ }! | d  k	 r±|! | k s±t ‚ n  g  }" x¦ t t g D]˜ }# |  j d
 | j ƒ  d |# ƒ }$ |" j  |$ j! j" j# ƒ  |$ j! j$ j# ƒ  g ƒ |# s1|$ j% d  k s\t ‚ qÄ|" j  |$ j% j" j# ƒ  |$ j% j$ j# ƒ  g ƒ qÄWd j& g  |" D] } t | ƒ ^ qmƒ }% | d  k	 r©|% | k s©t ‚ n  d  S(   NR‰   i   R   R   t   min_cubicle_edgei    Rå   R   t    R¶   t   conserve_anglest   ,('   R   R   R    R!   RÐ   R%   R   t   expand_to_p1RP   t   extract_labelst   dictR:   Rí   t   angle_pair_asu_tablet   as_nested_listsRR   RS   RV   t
   setdefaultR	   R'   t   multiplicityt   labelt   sortedRÑ   R   t   replaceR“   R   R   t   conservative_pair_proxiesR¸   t   extendt   bondRÂ   RÃ   RÄ   t   angleR˜   (&   RZ   R   Rl   t   reference_apatanlt   reference_cppct   sg_asu_mappingst   sg_patt   p1_structuret   p1_asu_mappingst   p1_patt	   sg_labelst	   p1_labelst   label_connectt   lt   ct
   sg_apat_pyt   sg_apatt	   sg_countsR=   R„   t   lbl_iR?   R…   t   lbl_jRc   t   p1_apatt	   p1_countst   multiplicitiest   sct   sg_lct   p1_lct   sg_ct   p1_ct   apatanlt   countsRð   t   proxiest   cppc(    (    sQ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_pair_asu_table.pyt   exercise_angle_pair_asu_tableÁ  s€    				"



*
*
"		+/(c             så  d t  j d k }  t d |  ƒ d } t j j d ƒ ‰  ˆ  d  k rM d GHd  S‡  f d †  } | d ƒ } | d	 ƒ } g  } xT d
 d g D]F } t j j	 ˆ  | ƒ } t j j
 | ƒ sÀ d | GHq‡ | j | ƒ q‡ Wx| D]} t j t | ƒ ƒ } xçt | j ƒ D]Ö\ }	 }
 | j d
 ƒ rHd t  j d k p>|	 d d k rHqn  d sT|  rcd G|
 j GHn  |
 j ƒ  } d s{|  rŽ| j ƒ  j ƒ  n  |
 j j d ƒ r¼t |
 j j ƒ  d ƒ } n | } |
 j j d ƒ d k } |
 j d t ƒ } t d | d | d | d | d |  ƒ d s|  r!Hn  | j d
 ƒ rFt d | d | ƒ n  | d  k r[d  } n" |
 j | k spt  ‚ | |
 j } | d  k r’d  } n" |
 j | k s§t  ‚ | |
 j } t! d | d | d | d | d | ƒ qWqØ Wd  S(   Ns	   --verbosei   R-   g      @s   phenix_regression/miscs=   Skipping exercise_all(): phenix_regression/misc not availablec            s�   t  j j ˆ  |  ƒ } t  j j | ƒ s4 d G| GHd  Si  } xN t | ƒ j ƒ  j ƒ  D]4 } | j ƒ  \ } } | | k s} t	 ‚ | | | <qS W| S(   Ns2   Skipping some tests: reference file not available:(
   t   ost   pathR˜   t   isfileR“   t   opent   readR)   t   splitR   (   t	   file_nameR  R�   t   linet   tagt   data(   t   regression_misc(    sQ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_pair_asu_table.pyt   get_reference_dict  s    	t%   angle_pair_asu_tables_as_nested_listst    conservative_pair_proxies_countst   strudat_zeolite_atlast   strudat_special_bondss*   Skipping %s test: input file not availables   --fulli   i    s   strudat tag:t   cutoffRº   t   all_or_nothingRZ   R   Rl   R   R  ("   t   syst   argvR4   t   libtbxt   envt   find_in_repositoriesR“   R  R  R˜   R   RX   R   t   read_all_entriesR!  RR   t   entriest   endswithR&  t   as_xray_structuret   show_summaryt   show_scattererst   titlet
   startswitht   floatR#  t	   referenceR°   Rl   R   R¼   Rã   R   R  (   R-   t   default_distance_cutoffR)  t   reference_apatanl_dictt   reference_cppc_dictt
   file_namesR$  R  t   strudat_entriest   i_entryt   entryRZ   R   Rº   Rl   R   R  (    (   R(  sQ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_pair_asu_table.pyt   exercise_all  sx    		$
		c           C   s   t  ƒ  t ƒ  GHd  S(   N(   RF  R   (    (    (    sQ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_pair_asu_table.pyt   run^  s    t   __main__((   t
   __future__R    t   iotbx.kriberR   t   cctbxR   R   t   cctbx.array_familyR   t   scitbx.mathR   R   t   libtbx.test_utilsR   R   t   libtbx.utilsR   t   libtbx.load_envR2  R	   t	   cStringIOR
   R   R0  R  R4   RO   R   Rk   Rp   Rw   Rˆ   R“   R¼   Rã   Rí   R  RF  RG  t   __name__(    (    (    sQ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/regression/tst_pair_asu_table.pyt   <module>   s:   .			\t	P		O	N	