ó
Š™xTc           @   sn   d  d l  m Z d  d l Z d  d l m Z d  d l m Z d e f d „  ƒ  YZ d d „ Z
 d d „ Z d S(	   iÿÿÿÿ(   t   divisionN(   t   format_value(   t
   smart_opent   get_r_rfree_sigmac           B   sw   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d d „ Z RS(   c            sâ  | |  _  g  g  g  g  g  g  f \ |  _ |  _ |  _ |  _ |  _ |  _ t } t } xæ| D]Þ} | j ƒ  } | j	 ƒ  ‰  t
 ˆ  ƒ d k rŽ qX n  | s¦ |  j | ƒ } n  ‡  f d †  } | ræ |  j | ƒ ræ |  j j | d d ƒ ƒ n  | r|  j | ƒ r|  j j | d d ƒ ƒ n  | rH|  j | ƒ rH|  j j | d d ƒ ƒ n  | s`|  j | ƒ } n  | r”|  j | ƒ r”|  j j |  j d ˆ  ƒ ƒ n  | rÈ|  j | ƒ rÈ|  j j |  j d ˆ  ƒ ƒ n  |  j | ƒ rX | d d ƒ } |  j d  k r#y t | d d	 !ƒ } Wq#t k
 rq#Xn  |  j j | ƒ qX qX Wt
 |  j ƒ d
 k sdt
 |  j ƒ d k rpd  |  _ n |  j d |  _ t
 |  j ƒ d
 k sªt
 |  j ƒ d k r¶d  |  _ n |  j d |  _ t
 |  j ƒ d
 k sðt
 |  j ƒ d k rüd  |  _ n |  j d |  _ t
 |  j ƒ d
 k s6t
 |  j ƒ d k rBd  |  _ n |  j d |  _ t
 |  j ƒ d
 k s|t
 |  j ƒ d k rˆd  |  _ n |  j d |  _ t
 |  j ƒ d
 k sÂt
 |  j ƒ d k rÎd  |  _ n |  j d |  _ d  S(   Ni    c            sA   t  ˆ  ƒ |  k r d  Sy t ˆ  |  ƒ SWn t k
 r< d  SXd  S(   N(   t   lent   Nonet   floatt
   ValueError(   t   i(   t   flds(    sZ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/extract_rfactors_resolutions_sigma.pyt   get_value_at   s       R   i   i   R	   i   i   i   i   (   t	   file_namet   r_workt   r_freet   sigmat   hight   lowt
   resolutiont   Falset   stript   splitR   t   is_DataUsedInRefinementt   is_ResolutionRangeHight   appendt   is_ResolutionRangeLowt   is_DataCutoffSigmat   is_FitToDataUsedInRefinementt   is_RValueWorkingSett	   get_valuet   is_FreeRValuet   is_ResolutionR   R   R   (   t   selft   remark_2_and_3_recordsR   t   start_DataUsedInRefinementt   start_FitToDataUsedInRefinementt   lineR
   t   tmp(    (   R	   sZ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/extract_rfactors_resolutions_sigma.pyt   __init__   sd    	<   * * * * * * c         C   s`   | d } d  } y t | ƒ } Wn9 t k
 r[ y t | d ƒ } Wq\ t k
 rW q\ Xn X| S(   Niÿÿÿÿi   (   R   R   R   (   R   R	   t   lastt   value(    (    sZ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/extract_rfactors_resolutions_sigma.pyR   7   s    
   c         C   s7   | j  d ƒ } | j d ƒ p* | j d ƒ } | o6 | S(   Ns   REMARK   2 RESOLUTIONt	   ANGSTROMSs
   ANGSTROMS.(   t
   startswitht   endswith(   R   R#   t   r1t   r2(    (    sZ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/extract_rfactors_resolutions_sigma.pyR   @   s    c         C   s   | j  d ƒ } | S(   Ns#   REMARK   3  DATA USED IN REFINEMENT(   R)   (   R   R#   R+   (    (    sZ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/extract_rfactors_resolutions_sigma.pyR   E   s    c         C   s   | j  d ƒ } | S(   Ns"   REMARK   3   RESOLUTION RANGE HIGH(   R)   (   R   R#   R+   (    (    sZ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/extract_rfactors_resolutions_sigma.pyR   I   s    c         C   s   | j  d ƒ } | S(   Ns!   REMARK   3   RESOLUTION RANGE LOW(   R)   (   R   R#   R+   (    (    sZ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/extract_rfactors_resolutions_sigma.pyR   M   s    c         C   s   | j  d ƒ } | S(   Ns0   REMARK   3   DATA CUTOFF            (SIGMA(F)) :(   R)   (   R   R#   R+   (    (    sZ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/extract_rfactors_resolutions_sigma.pyR   Q   s    c         C   s(   | j  d ƒ } | j  d ƒ } | p' | S(   Ns.   REMARK   3   R VALUE            (WORKING SET) s7   REMARK   3   R VALUE          (WORKING SET, NO CUTOFF) (   R)   (   R   R#   R+   R,   (    (    sZ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/extract_rfactors_resolutions_sigma.pyR   U   s    	c         C   s(   | j  d ƒ } | j  d ƒ } | p' | S(   Ns.   REMARK   3   FREE R VALUE                     s7   REMARK   3   FREE R VALUE                  (NO CUTOFF) (   R)   (   R   R#   R+   R,   (    (    sZ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/extract_rfactors_resolutions_sigma.pyR   [   s    	c         C   sC   | j  d ƒ } | j  d ƒ } | j  d ƒ } | p< | p< | } | S(   Ns*   REMARK   3  FIT TO DATA USED IN REFINEMENTs*   REMARK   3  USING DATA ABOVE SIGMA CUTOFF.s7   REMARK   3  FIT TO DATA USED IN REFINEMENT (NO CUTOFF).(   R)   (   R   R#   R+   R,   t   r3t   result(    (    sZ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/extract_rfactors_resolutions_sigma.pyR   a   s    	c         C   s›   d t  d |  j ƒ t  d t |  j ƒ ƒ t  d t |  j ƒ ƒ t  d t |  j ƒ ƒ t  d t |  j ƒ ƒ t  d t |  j ƒ ƒ t  d t |  j ƒ ƒ f } | S(   Ns   %s %s %s %s %s %s %ss   %6s(	   R   R   t   strR   R   R   R   R   R   (   R   R.   (    (    sZ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/extract_rfactors_resolutions_sigma.pyt   formatted_stringi   s    c         C   s,   | d  k r t j } n  | |  j ƒ  IJd  S(   N(   R   t   syst   stdoutR0   (   R   t   log(    (    sZ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/extract_rfactors_resolutions_sigma.pyt   showt   s     N(   t   __name__t
   __module__R%   R   R   R   R   R   R   R   R   R   R0   R   R4   (    (    (    sZ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/extract_rfactors_resolutions_sigma.pyR      s   	0											c         C   s°   g  } | d  k r3 t j d |  ƒ j ƒ  j ƒ  } n |  d  k sE t ‚ xd | D]\ } | j d ƒ sp | j d ƒ r† t } | j | ƒ qL | j d ƒ s¤ | j d ƒ rL PqL qL W| S(   NR   s   REMARK   3 s   REMARK   2 s   ATOM s   HETATM (	   R   R   t   for_readingt   readt
   splitlinest   AssertionErrorR)   t   TrueR   (   R   t
   file_linesR.   t   rect   start(    (    sZ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/extract_rfactors_resolutions_sigma.pyt   extract_remark_2_and_3_recordsx   s    	c         C   sD   t  d |  d | ƒ } t | ƒ d k r+ d  St d | d |  ƒ } | S(   NR   R<   i    R    (   R?   R   R   R   (   R   R<   t   remarks_2_and_3R.   (    (    sZ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/extract_rfactors_resolutions_sigma.pyt   extractˆ   s    		(   t
   __future__R    R1   t   libtbx.str_utilsR   t   libtbxR   t   objectR   R   R?   RA   (    (    (    sZ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/pdb/extract_rfactors_resolutions_sigma.pyt   <module>   s   r