ó
‚™xTc           @   sý   d  d l  m Z d  d l Z d  d l Z d  d l m Z d  d l m Z d  d l	 m
 Z
 d  d l Z e j j Z d e j j Z d e j j f d „  ƒ  YZ d d d	 d
 „ Z d „  Z d e
 j f d „  ƒ  YZ d „  Z e d k rù e e j d ƒ n  d S(   iÿÿÿÿ(   t   divisionN(   t   format_value(   t   Sorry(   t   runtime_utilssD  
file_name = None
  .type = path
  .short_caption = Unmerged data
  .style = file_type:hkl OnChange:extract_unmerged_intensities bold
labels = None
  .type = str
  .input_size = 200
  .style = renderer:draw_unmerged_intensities_widget
space_group = None
  .type = space_group
  .input_size = 120
unit_cell = None
  .type = unit_cell
symmetry_file = None
  .type = path
  .style = file_type:pdb,hkl OnChange:extract_symmetry
%s
debug = False
  .type = bool
loggraph = False
  .type = bool
estimate_cutoffs = False
  .type = bool
include scope libtbx.phil.interface.tracking_params
t   cmdline_processorc           B   s   e  Z d  „  Z RS(   c         C   s•   d | k r‘ | j  d ƒ } t | ƒ d k r‘ | d d k r‘ d d	 l m } | j | ƒ } | j ƒ  d  k	 rŽ t j j d
 |  j	 | f ƒ Sq‘ n  t
 S(   Nt   =i   i   t
   amplitudest   intensitiest   hklf3t   hklf4iÿÿÿÿ(   t   reflection_file_readers   %s=%s(   R   R   R   R	   (   t   splitt   lent   iotbxR
   t   any_reflection_filet	   file_typet   Nonet   philt   parset   reflection_file_deft   False(   t   selft   argt   fieldsR
   t   hkl_in(    (    sS   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/command_line/merging_statistics.pyt   process_other*   s    	(   t   __name__t
   __module__R   (    (    (    sS   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/command_line/merging_statistics.pyR   )   s   R   c         C   s  | d  k r t j } n  d d  l } | d  k rK | j j t d t ƒ} n  t d |  d | d d d d d	 d
 d d d d t	 ƒ } | j
 j ƒ  } | j j d | j d | j d | d | ƒ } | j ƒ  j ƒ  | _ t | ƒ d  } | j d  k	 r<d d l m }	 |	 j d | j ƒ } | d  k r<t d | j ƒ ‚ q<n  | d  k rý| j ƒ  }
 |
 d  k r�| j d  k	 r�| j j ƒ  }
 q�t d ƒ ‚ n  | j ƒ  } | d  k rÒ| j d  k	 rÃ| j } qÒt d ƒ ‚ n  d d l m } | j d
 |
 d | ƒ } n  | j ƒ  d  k rt d ƒ ‚ n  | j j d | d | d | j  d | j! d | j" d | j# d | j$ d | j d | j% d  | j& d | ƒ } | j' d! | ƒ t( | d" t) ƒ r¼| j* d! | ƒ n  | j+ rØ| j, d! | ƒ n  | d# IJ| d$ IJ| t	 IJ| d# IJ| S(%   Niÿÿÿÿt   process_includest   argst   master_philR   t	   file_namet   pdb_file_deft   symmetry_filet   space_group_deft   space_groupt   unit_cell_deft	   unit_cellt   usage_stringse  phenix.merging_statistics [data_file] [options...]

Calculate merging statistics for non-unique data, including R-merge, R-meas,
R-pim, and redundancy.  Any format supported by Phenix is allowed, including
MTZ, unmerged Scalepack, or XDS/XSCALE (and possibly others).  Data should
already be on a common scale, but with individual observations unmerged.
%s
t   data_labelst   logt    assume_shelx_observation_type_is(   t   crystal_symmetry_from_anys    No symmetry records found in %s.s    Missing space group information.s   Missing unit cell information.(   t   crystals.   Sigma(I) values required for this application.t   i_obst   crystal_symmetryt   d_mint   d_maxt   n_binst	   anomaloust   debugt   sigma_filteringt   extend_d_max_mint   outt   loggrapht    s   References:(-   R   t   syst   stdoutt
   iotbx.philR   R   R   t   TrueR   t   citations_strt   workt   extractt   merging_statisticst   select_dataR   t   labelst   infot   label_stringt   validate_paramsR!   R   R*   t   extract_fromR   R#   t   groupR%   t   cctbxR+   t   symmetryt   sigmast   dataset_statisticst   high_resolutiont   low_resolutionR0   R1   R2   R3   R4   t   showt   getattrR   t   show_loggrapht   estimate_cutoffst   show_estimated_cutoffs(   R   R5   t   master_paramsR)   R   t   cmdlinet   paramsR,   t   symmR*   t   sgt   ucR+   t   result(    (    sS   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/command_line/merging_statistics.pyt   run6   s†     				
												



c         C   s    |  j  d  k r t d ƒ ‚ n |  j d  k r< t d ƒ ‚ n  d  |  j |  j g k r| |  j |  j k  rœ t d d ƒ ‚ qœ n  |  j rœ t d d d ƒ ‚ n  t S(   Ns   No data file specified!s   No data labels selected!s6   Resolution limits flipped - high resolution must be a s#   smaller number than low resolution.s8   High and low resolution limits must be explicitly given s@   when calculating statistics relative to user-defined resolution s   range (extend_d_max_min=True).(   R   R   R   RA   RK   RL   R4   R;   (   RT   (    (    sS   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/command_line/merging_statistics.pyRD   ‡   s    	t   launcherc           B   s   e  Z d  „  Z RS(   c         C   s%   t  d t |  j ƒ d t j d d ƒ S(   NR   R5   R)   R   (   RY   t   listR   R8   R9   (   R   (    (    sS   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/command_line/merging_statistics.pyRY   —   s    	(   R   R   RY   (    (    (    sS   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/command_line/merging_statistics.pyRZ   –   s   c         C   sù   g  } |  d  k	 rï d t d |  j j ƒ f d t d |  j j ƒ f d t d |  j j ƒ f d t d |  j d j ƒ f d t d	 |  j j ƒ f d
 t d	 |  j d j ƒ f d t d |  j j d ƒ f d t d |  j d j d ƒ f g } n  g  | f S(   Ns   High resolutions   %.3gt
   Redundancys   %.1fs   R-meass   R-meas (high-res)iÿÿÿÿs	   <I/sigma>s   %.2gs   <I/sigma> (high-res)t   Completenesss   %.1f%%id   s   Completeness (high-res)(	   R   R   t   overallR.   t   mean_redundancyt   r_meast   binst   i_over_sigma_meant   completeness(   RX   t   stats(    (    sS   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/command_line/merging_statistics.pyt
   finish_jobœ   s    		 t   __main__i   (   t
   __future__R    t   iotbx.merging_statisticsR   R:   t   libtbx.str_utilsR   t   libtbx.utilsR   t   libtbxR   R8   R?   R<   t   merging_params_strR   R   t   process_command_line_with_filesR   R   RY   RD   t   target_with_save_resultRZ   Re   R   t   argv(    (    (    sS   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/command_line/merging_statistics.pyt   <module>   s    P		