ó
™™xTc           @   sˆ   d  d l  m Z d  d l m Z d  d l m Z d  d l Z d e f d „  ƒ  YZ d „  Z	 d „  Z
 e d	 k r„ e
 e j d
 ƒ n  d S(   iÿÿÿÿ(   t   division(   t   rna_sugar_pucker_analysis(   t   approx_equalNt   atomc           B   s   e  Z d  „  Z RS(   c         C   s   | |  _  d  S(   N(   t   xyz(   t   OR   (    (    sa   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/monomer_library/tst_rna_sugar_pucker_analysis.pyt   __init__   s    (   t   __name__t
   __module__R   (    (    (    sa   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/monomer_library/tst_rna_sugar_pucker_analysis.pyR      s   c         C   s_   t  |  ƒ d k s t ‚ t g  t d d d d d g |  ƒ D] \ } } | t | ƒ f ^ q: ƒ S(   Ni   s   C1's   O3's   C3's   C4's   C5'(   t   lent   AssertionErrort   dictt   zipR   (   t   xyz_listt   keyR   (    (    sa   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/monomer_library/tst_rna_sugar_pucker_analysis.pyt	   atom_dict
   s    c         C   sÉ  t  |  ƒ d k s t ‚ t j j ƒ  j ƒ  } x‘t d d g ƒ D]}\ } } t j d | d t | d d f dL dM dN dO g ƒ d t	 dP ƒ d t	 dQ ƒ ƒ } | j
 d  k s¯ t ‚ | d k rÓ | j d  k së t ‚ n t | j d ƒ së t ‚ | j d  k s t ‚ | j d  k st ‚ | d k rx| j d  k s6t ‚ | j d  k sKt ‚ | j d  k s`t ‚ | j d  k s½t ‚ q@ | j sˆt ‚ | j d  k s�t ‚ | j s­t ‚ | j s@ t ‚ q@ Wt j d | d t dR dS dT dU dV g ƒ d t	 dW ƒ d t	 dX ƒ ƒ } t | j
 d2 ƒ st ‚ t | j d3 ƒ s6t ‚ t | j d4 ƒ sNt ‚ t | j d5 ƒ sft ‚ | j svt ‚ | j s…t ‚ | j s”t ‚ | j s£t ‚ | j s²t ‚ xÍ t	 dY ƒ d  g D]¹ } t j d | d t dZ d[ d\ d] d^ g ƒ d t	 d_ ƒ d | ƒ } | j st ‚ | j s*t ‚ | d  k	 rI| j s^t ‚ n | j d  k s^t ‚ | j snt ‚ | j sÅt ‚ qÅWd  | _ d  | _ d  | _ d  | _ d  | _ d  | _ d  | _ d  | _ t j d | d t d` da db dc dd g ƒ d t	 de ƒ d t	 df ƒ ƒ } t | j
 d2 ƒ s't ‚ t | j d3 ƒ s?t ‚ t | j d4 ƒ sWt ‚ | j d  k slt ‚ | j d  k s�t ‚ | j d  k s–t ‚ | j d  k s«t ‚ | j d  k sÀt ‚ dK GHd  S(g   Ni    g`åÐ"Û?@g`åÐ"Û5@t   paramst   residue_1_deoxy_ribo_atom_dictg?5^ºI>@gš™™™™©@@gÉv¾Ÿ/6@gNbX9´<@g¢E¶óýDB@gôýÔxé†5@gÕxé&1È<@g‡ÙÎ÷£A@g/Ý$a6@g¶óýÔxI<@g¬Zd;A@g“V­6@gìQ¸…Ë:@gj¼t“A@t   residue_1_c1p_outbound_atomgTã¥›Ä 3@gÕxé&1(>@gD‹lçûy@@t   residue_2_p_atomg�•C‹l‡@@gÝ$�•ó@@gX9´ÈvN@@g1Š¤kQ@g�•C‹<I@gü©ñÒMâ#@g'1¬B@g`åÐ"ÛyH@gF¶óýÔx$@gßO�—nÒ@@gé&1¬¼H@g“Vm&@gV-²�?A@gw¾Ÿ/}I@g+‡Y&@gÝ$�•#A@g{®GáÚI@g�—nƒ )@g\�Âõ(A@gJ+‡vI@g^ºI+$@gF¶óýÔÈB@g;ßO�—H@gÕxé&1H%@g#Ûù~j,@@g´-�ëèVo@g¢Êh˜õ¹`@g¼Št€?aø?g)^Œ ç‰ë?g!°rh‘íD@gÛù~j¼”1@g7‰A`å0?@g‘í|?5^E@gåÐ"Ûùþ)@gð§ÆK7©?@g¼t“vE@g�•C‹l‡0@gÛù~j¼´?@gX9´È6E@g˜nƒÀŠ.@g–C‹lçû?@g7‰A`å�E@gìQ¸…k-@gHáz®—@@gö(\�ÂEE@g˜nƒÀJ.@gÅ °rhAA@g�•C‹l·D@gD‹lçû©(@gžï§ÆKw?@t   OK(   gÉv¾Ÿ/6@gNbX9´<@g¢E¶óýDB@(   gôýÔxé†5@gÕxé&1È<@g‡ÙÎ÷£A@(   g/Ý$a6@g¶óýÔxI<@g¬Zd;A@(   g“V­6@gìQ¸…Ë:@gj¼t“A@(   gTã¥›Ä 3@gÕxé&1(>@gD‹lçûy@@(   g�•C‹l‡@@gÝ$�•ó@@gX9´ÈvN@@(   g�•C‹<I@gü©ñÒMâ#@g'1¬B@(   g`åÐ"ÛyH@gF¶óýÔx$@gßO�—nÒ@@(   gé&1¬¼H@g“Vm&@gV-²�?A@(   gw¾Ÿ/}I@g+‡Y&@gÝ$�•#A@(   g{®GáÚI@g�—nƒ )@g\�Âõ(A@(   gJ+‡vI@g^ºI+$@gF¶óýÔÈB@(   g;ßO�—H@gÕxé&1H%@g#Ûù~j,@@(   g!°rh‘íD@gÛù~j¼”1@g7‰A`å0?@(   g‘í|?5^E@gåÐ"Ûùþ)@gð§ÆK7©?@(   g¼t“vE@g�•C‹l‡0@gÛù~j¼´?@(   gX9´È6E@g˜nƒÀŠ.@g–C‹lçû?@(   g7‰A`å�E@gìQ¸…k-@gHáz®—@@(   gö(\�ÂEE@g˜nƒÀJ.@gÅ °rhAA@(   g�•C‹l·D@gD‹lçû©(@gžï§ÆKw?@(   g�•C‹<I@gü©ñÒMâ#@g'1¬B@(   g`åÐ"ÛyH@gF¶óýÔx$@gßO�—nÒ@@(   gé&1¬¼H@g“Vm&@gV-²�?A@(   gw¾Ÿ/}I@g+‡Y&@gÝ$�•#A@(   g{®GáÚI@g�—nƒ )@g\�Âõ(A@(   gJ+‡vI@g^ºI+$@gF¶óýÔÈB@(   g;ßO�—H@gÕxé&1H%@g#Ûù~j,@@(   R	   R
   R   t   master_philt   fetcht   extractt	   enumeratet   evaluateR   R   t   epsilont   Nonet   deltaR   t   p_distance_c1p_outbound_linet   is_epsilon_outliert   is_2p_deltat"   is_2p_p_distance_c1p_outbound_linet$   is_2p_o3p_distance_c1p_outbound_linet   is_2pt   o3p_distance_c1p_outbound_linet   epsilon_range_mint   epsilon_range_maxt   delta_range_2p_mint   delta_range_2p_maxt   delta_range_3p_mint   delta_range_3p_maxt#   p_distance_c1p_outbound_line_2p_maxt%   o3p_distance_c1p_outbound_line_2p_max(   t   argsR   t   i_passt   some_xt   analysisR   (    (    sa   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/monomer_library/tst_rna_sugar_pucker_analysis.pyt   exercise   s     																t   __main__i   (   t
   __future__R    t   mmtbx.monomer_libraryR   t   libtbx.test_utilsR   t   syst   objectR   R   R0   R   t   argv(    (    (    sa   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/monomer_library/tst_rna_sugar_pucker_analysis.pyt   <module>   s   		W