ó
«™xTc           @   s·   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
 d  d l Z d  d l m Z d d	 d
 d „ Z d „  Z e d k r³ e e j d ƒ n  d S(   iÿÿÿÿ(   t   division(   t   option_parser(   t   flexN(   t   Sorry(   t   scaling(   t
   data_plotsg      @iè  s   Outlier plotc         C   s   t  j |  g ƒ } t  j | g ƒ } t  j | g ƒ } t  j | g ƒ } t  j | g ƒ } t  j | g ƒ } t j | d  | | | | | ƒ } | J| d IJ| d I|
 IJ| d I| IJ| d I|  IJ| d I| IJ| d I| IJ| d I| IJ| d I| IJ| j ƒ  d	 } t j d
 t j	 | j
 ƒ  d	 ƒ ƒ } | d IJ| d IJ| d IJ| d IJ| d I| IJ| d I| IJ| J| d IJ| d IJ| d I| j ƒ  d	 IJ| d I| j ƒ  d	 IJ| d IJ| d I| j ƒ  d	 | j ƒ  d	 IJ| d IJ| j ƒ  } | d I| d	 Id IJ| | | } | d	 k  rZd	 } n  | | | } |  | k  rš|  d | } | d	 k  ršd	 } qšn  |  | k r·|  d | } n  t  j t |	 ƒ ƒ | | t |	 ƒ | } t  j | g |	 ƒ } t  j | g |	 ƒ } t  j | g |	 ƒ } t  j | g |	 ƒ } t  j | g |	 ƒ } t j | d  | | | | | ƒ } | j ƒ  } t  j | ƒ } | d  k s¤| d	 k r±|  d } n  | |  t | ƒ } t  j | | d ƒ t j d t j | | ƒ } t  j | ƒ d } t  j | | k ƒ } | j | | ƒ } t j d |
 d d d  d! d" | d# | d$ d% d& d' |  | | f ƒ } | j d# | d$ d( ƒ t j | | ƒ d  S()   Ns   #Input parameters: s   #Title        : s   #F-calc       : s   #F-obs        : s   #epsilon      : s   #alpha        : s   #beta         : s   #centric      : i    g      ð?s4   #A Gaussian approximation of the likelihood functions'   #could be constructed as follows with: s7   # exp[-(fobs-mode)**2/(2*stdev**2)] /(sqrt(2 pi) stdev)s   #withs   #mode         = s   #stdev        = s,   #The log likelihood values for the mode and s   #observed values ares   #Log[P(fobs)] : s   #Log[P(mode)] : s   #Their difference is:s   #delta        : t   #s   #mean f_obs   : s      (first moment)g       @g      >@gš™™™™™ñ?t
   plot_titlet   x_labelt   Fobst   y_labels   P(Fobs)t   x_datat   y_datat   y_legends   P(Fobs|Fcalc,alpha,beta)t   commentss$   Fobs=%5.2f, sigma=%5.2f, Fcalc=%5.2fs   P(Fobs|<Fobs>,sigma)(   R   t   doublet   boolR   t   likelihood_ratio_outlier_testt   Nonet   posterior_modet   matht   sqrtt   fabst   posterior_mode_snd_dert   log_likelihoodt   posterior_mode_log_likelihoodt	   mean_fobst   ranget   floatt   expt   pit   maxt   set_selectedR   t	   plot_datat   add_datat   plot_data_loggraph(   t   fobst   sigmat   fcalct   alphat   betat   epsilont   centrict   outt   limitt   stepsR   t   fobs_at   fcalc_at	   epsilon_at   alpha_at   beta_at	   centric_at   p_calct   modet   snd_derR   t	   low_limitt
   high_limitt   llt	   obs_gausst   max_llt   truncate_maskt   ccp4_loggraph_plot(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/scaling/outlier_plots.pyt   plotit   s®    	
&






(
	+			c         C   s\  t  d d d d ƒ j d  d d d d d	 d
 d d d ƒj d  d d d d d	 d
 d d d ƒj d  d d d d d	 d
 d d d ƒj d  d d d d d	 d
 d d d ƒj d  d d d d d	 d
 d ƒj d  d d d d d	 d
 d ƒj d  d d d d t d
 d ƒj d  d d d d d	 d d d
 d ƒj d  d d d d d  d d! d
 d" ƒj d# |  ƒ } | j j d  k rtt d$ ƒ ‚ n  | j j d  k r•t d% ƒ ‚ n  | j j	 d  k r¶t d& ƒ ‚ n  | j j
 d  k r×t d' ƒ ‚ n  | j j d  k røt d( ƒ ‚ n  t | j j | j j | j j | j j
 | j j | j j	 | j j t j | j j | j j ƒ
 } d  S()   Nt   usages   mmtbx.p-plotter [options]t   descriptions   produces a gnuplot plots   --fobst   actiont   storet   typeR   t   helps   F obst   metavart   FLOATs   --sigmas
   sigma Fobss   --fcalcs   F calcs   --alphaR'   s   --betaR(   s	   --epsilonR)   s	   --centrict
   store_truet   defaults   centricity flags   --limiti
   s   plotting limits   --stepst   intiè  s   number of stepst   argss   please provide fobss   please provide fcalcs   please provide epsilons   please provide alphas   please provide beta(   R   t   optionR   t   Falset   processt   optionsR$   R   R&   R)   R'   R(   R>   R%   R*   t   syst   stdoutR,   R-   (   RJ   t   command_linet   plottery(    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/scaling/outlier_plots.pyt   run~   s„    																										t   __main__i    (   t
   __future__R    t   iotbx.option_parserR   t   scitbx.array_familyR   RO   t   libtbx.utilsR   t   mmtbxR   R   t   iotbxR   R>   RS   t   __name__t   argv(    (    (    sI   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/scaling/outlier_plots.pyt   <module>   s   i	J